Tag: kernel

  • 编译 64bit Linux Kernel 时报 genksyms 找不到

    可以使用 $ make mrproper $ make cloneconfig $ make prepare-all 来解决。 不过如果报错:“/bin/sh: scripts/genksyms/genksyms: No such file or directory”,可以将 “make prepare-all” 改为 “make prepare scripts”。如下: $ make mrproper $ make cloneconfig $ make prepare scripts  

  • 单独编译 kernel 中某些 ko 的方法

    更改 Linux kernel 驱动每次重编 kernel 引导非常费力。为了便于调试,可以通过已经有的 Makefile 使用 gcc 来对特定 module 进行编译。这样只需要将 module 以模块方式加载。可以在 linux 环境下进行简单的调试。 命令: make -C $src_path M=$(pwd) modules 例如: make -C /home/edwin/rpmbuild/BUILD/kernel-2.6.40.fc15/ M=$(pwd) modules [root@localhost ata]# ls acard-ahci.c         libahci.mod.c       pata_artop.c    pata_it821x.c        pata_piccolo.c      sata_inic162x.c ahci.c               libahci.mod.o       pata_at32.c     pata_ixp4xx_cf.c     pata_platform.c     sata_mv.c ahci.h               libahci.o           pata_at91.c     pata_jmicron.c       pata_pxa.c          sata_mv.ko ahci.ko              libata-acpi.c       pata_atiixp.c   pata_legacy.c        pata_qdi.c          sata_mv.mod.c…

  • gcc: error: elf_i386/elf_x86_64: No such file or directory

    最近碰到个 PM 连接的硬盘在 Fedora 15 (FC15)中无法识别的问题,但是在 Fedora 13 中却是可以侦测到的。对比 fc13 使用的是 2.6.34,fc15 则是 2.6.40(3.0.4)。决定逐一将 kernel 降级来判断到底是从那一版的 kernel 开始出现这个问题的。那在使用 fc15 的 gcc 编译 2.6.36.2 以下 kernel 时,一直报错。 错误提示: gcc: error: elf_x86_64: No such file or directory 解决方法: 这个问题是由于 gcc 4.6 不再支持 linker-style 架构。讲 arch/x86/vdso/Makefile 中, 将以 VDSO_LDFLAGS_vdso.lds 开头所在行的 "-m elf_x86_64" 替换为 "-m64"。 将以 VDSO_LDFLAGS_vdso32.lds 开头所在行的 "-m…

  • 【转】Linux Kernel 内核编译安装

    一、获取内核源码文件。 从http://www.kernel.org下载内核源码包(linux-2.6.26.tar.gz)。 # cp linux-2.6.26.tar.gz /usr/src # tar -xvzf linux-2.6.26.tar.gz # ln -s linux-2.6.26  linux-2.6 二、配置内核。 1. 进入内核文件所在目录。     # cd /usr/src/linux-2.6 2. 编辑 /usr/src/linux-2.6/Makefile 文件的EXTRAVERSION的值。     EXTRAVERSION = No_Power_Management_Support   # 以此标识内核 3. 运行命令make mrproper,以确保源文件处于一致、干净的状态。这个命令会删除内核配置文件.config(如果有的话)。 4. 保存默认的配置文件(/usr/src/linux-2.6/arch/x86/i386_defconfig)到安全位置,比如软盘,以便必要时恢复默认配置。 5. 使用配置工具设置内核选项。 #make config(基于文本的最为传统的配置界面,由于有几百个问题要回答,一般使用其它的配置工具。) #make menuconfig(基于文本选单的配置界面) #make xconfig(基于图形窗口模式的配置界面) #make oldconfig(使用已有的内核配置文件,仅提示一些新的特性。) 选择相应的配置时,有三种选择:    “Y”- 将该功能编译进内核  “N”- 不将该功能编译进内核…

  • Linux Kernel Loglevel 和 Linux Runlevel

    Linux Kernel 有 8 个级别的 loglevel: #define KERN_EMERG    "<0>"  /* system is unusable,系统不可用 */ #define KERN_ALERT    "<1>"  /* action must be taken immediately,立即执行 */ #define KERN_CRIT     "<2>"  /* critical conditions,紧急情况 */ #define KERN_ERR      "<3>"  /* error conditions,错误情况 */ #define KERN_WARNING  "<4>"  /* warning conditions,警告情况 */ #define KERN_NOTICE   "<5>"  /* normal but significant condition,常规但重要的情况 */ #define…