编译linux内核tips

TIPS:

1.下载源码解压后,一般在字符终端下用make menuconfig,在字符界面中根据需要生成对应.config的配置文件,配置内核可以根据需要与爱好使用下面命令中的一个: 
#make config(基于文本的最为传统的配置界面,不推荐使用) 
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用) 
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用) 
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦) 

2.以上操作会在当前目录下生成.config配置文件,再执行"make dep"会读取这个配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要

3.有了.config的配置文件后,可以make bzImage, 会在/boot目录中生成一些重要的文件,比如:initrdfsxxx.img,vmlinuzxxx, 这两个文件很重要,是需要成功后去替换原系统对应的两个文件的,让其在开机启动时加载到内存的新的小文件系统,如果这两个文件不对,或者说.config文件没有配置好,很可能启动时会遇到kernel panic之类的错误, make bzImage时,很可能失败,会编译不过,赶紧根据提示的错误去修改menuconfig吧,去GUI修改配置,保存,具体的错误就太多了。

4.再make modules, make modules后会生成modules.order的文件,该文件是执行make modules_install时的必须文件,可能所有的modules加起来很大,超过1G,如果对每个ko文件执行strip --strip-debug xxx.ko可以减少为原来的十分之一左右。所有的modules加起来大概几十兆,这更有利于装自己的私有系统,make modules_install 会将所有的modules默认安装到/lib/modules中

5.如果想加入自己的KO文件,或者自带的KO文件不足以满足需求,可以去网上下载符合要求版本的源码,单独编译此module生成KO文件,插入或覆盖(文件名相同)到/lib/modules/(kernel_version)/ 中对应的目录。

6.新系统装好后,可以修改/etc/udev/rule.d目录,添加一些rule,自己定义的一些设备名字,udev是动态管理 /dev目录下的所有的设备。具体如何改去google一下

7."depmod -a"命令和编译过程并没有关系,一般make install到原系统后增加了些新KO文件时,可以执行这个命令,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。 

你可能感兴趣的:(linux,编译内核)