环境Ubuntu16.04
下载内核
~$ apt search linux-source
~$ sudo apt-get install linux-source-4.13.0(会下载到/usr/src/目录下)
解压 linux-source-4.13.0.tar.bz2
tar xjvf linux-source-4.13.0.tar.bz2
进入解压后的目录:
开始编译
make mrproper 清理所有编译生成的文件、 config及某些备份文件
make menuconfig (图形化界面配置)
make clean 清除内核编译的目标文件
编译内核
make bzImage
若出现scripts/sign-file.c:23:30: fatal error: openssl/opensslv.h错误
sudo apt-get install libssl-dev
成功后会有提示:Kernel: arch/x86/boot/bzImage is ready (#1)
我是在x86_64的目录下找到了该镜像文件linux-source-4.13.0/arch/x86_64/boot/bzImage
编译可加载模块
如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。
其实我们上面编译的Android源码他的内核源码Google已经编译好了
make modules 编译模块
make modelus_install 安装模块