1.配置编译工具
#apt-get install libncurses5-dev build-essential kernel-package
2.下载内核代码
因为kernel.org的代码和ubuntu内核的代码并不完全一致,所以直接从kernel.org下载下来的代码无法确保编译后可以成功运行于老的ubuntu平台,所以应该使用ubuntu的最新的内核代码
下载ubuntu最新的内核代码
#sudo apt-cache search linux-source
结果如下
linux-source - Linux kernel source with Ubuntu patches
linux-source-4.4.0 - Linux kernel source for version 4.4.0 with Ubuntu patches
linux-source-4.8.0 - Linux kernel source for version 4.8.0 with Ubuntu patches
选择比较新的4.8#sudo apt-get install linux-source-4.8.0 1
代码会下载在/usr/src下,里面内容如下:
drwxr-xr-x 27 root root 4096 4月 21 2016 linux-headers-4.4.0-21
drwxr-xr-x 7 root root 4096 4月 21 2016 linux-headers-4.4.0-21-generic
drwxr-xr-x 27 root root 4096 1月 22 21:35 linux-headers-4.4.0-59
drwxr-xr-x 7 root root 4096 1月 22 21:35 linux-headers-4.4.0-59-generic
drwxr-xr-x 4 root root 4096 1月 22 23:00 linux-source-4.8.0
lrwxrwxrwx 1 root root 45 12月 22 04:36 linux-source-4.8.0.tar.bz2 -> linux-source-4.8.0/linux-source-4.8.0.tar.bz2
编译与替换
1.拷贝到其他工作目录
2.在源代码目录执行
cp arch/x86/configs/x86_64_defconfig .config
3.编译
make menuconfig
make
sudo make moudules_install
sudo make install
sudo reboot
验证
重启后执行uanme -a 命令,查看内核版本,会发现内核版本已经从4.4.0-59变为4.8.11
意义
编译/替换内核之后,可以获得与当前内核版本相匹配的头文件,方便进行驱动开发。另外可以获得带符号的vmlinux,可以方便的进行内核的调试与学习。
附录:
1,另一种编译ubuntu内核方法BuildYourOwnKernel
2,Ubuntu内核版本代码:
ubuntu17.04 — zesty
ubuntu16.10 — yakkety
ubuntu16.04 — xenial
ubuntu15.10 — willy
ubuntu15.04 — vivid
ubuntu14.04 — trusty
ubuntu12.04 — precise
3,Ubuntu内核下载:
http://kernel.ubuntu.com/git/
4,UBUNTU历史版本下载地址:http://releases.ubuntu.com/releases/
5,RollingLTSEnablementStack