下载内核源码
- kernel.org 下载开源社区的源码
- 下载各发行版自带的源码,如: apt-cache search linux-source
配置文件
可以直接使用当前系统的配置, cp /boot/config-xxx 源码目录/.config,然后,make menuconfig,加载配置后,保存退出。
编译
- make -jn
- make O=build_xxx -jn, 如果有多种配置,建议使用这个命令,创建一个输出文件夹。
默认情况下,新编译出的内核版本号会多一个“+”号,这样不至于发生冲突,确认需要直接替换当前内核,可以在内核源码目录下,执行 'make LOCALVERSION=' 或者 'touch .scmversion' ,这样不添加'+'在版本号后面。
一般调试阶段,建议在版本号后面添加“+”。如果,内核不能正常启动,还可以使用旧内核。调试成功后,可以生成当前版本的内核直接替换,或者升级一下版本号,多内核共存。
安装模块
make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=o modules_install
o 是输出目录,不指定PATH的话,默认安装到 /lib 目录下。 推荐指定安装目录,不要直接安装到 /lib/下,以免在没有做备份的情况下,覆盖当前系统的文件。" ls o/lib/modules" 可以查看到当前内核的版本号,如果/lib/下有同名