如何在Debian/Ubuntu Linux上编译安装内核 v4.9.11
时间:2019-11-20 08:53:07 来源:igfitidea点击:
在Debian Linux中,如何编译和安装最新版本的Linux内核?
如何在基于Debian或Ubuntu Linux的系统上构建和安装自定义Linux内核?
下面在Debian Linux v8.x和Ubuntu Linux v14.04.4/16.04.2 LTS中编译安装新内核:
安装所需的软件包
执行以下apt-get命令, 安装用于构建Linux内核的必需软件包:
$ sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc
安装kernel-package软件包:
$ sudo apt-get install kernel-package
或者
$ sudo apt-get --no-install-recommends install kernel-package
下载Linux内核源代码
执行以下wget命令,下载源代码和pgp密钥:
$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.11.tar.sign $ wget wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.11.tar.xz
使用GnuPG验证内核签名:
$ unxz linux-4.9.11.tar.xz $ gpg --verify linux-4.9.11.tar.sign
从PGP密钥服务器获取公共密钥:
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 00411886
再次验证:
$ gpg --verify linux-4.9.11.tar.sign
解压Linux内核包
$ tar xvf linux-4.9.11.tar $ ls $ cd linux-4.9.11/ $ ls
配置Linux内核
复制现有的Linux内核配置文件
$ cd linux-4.9.11 $ cp -v /boot/config-$(uname -r) .config
配置内核:
$ make menuconfig
删除驱动程序需要小心,否则可能导致内核损坏。例如,删除了ext4驱动程序,则系统可能无法启动。
保存并退出menuconfig。
编译Linux内核
清理源代码树并重置内核软件包参数:
$ make-kpkg clean
编译内核:
$ fakeroot make-kpkg --initrd --revision=1.0.NAS kernel_image kernel_headers
如果想加快编译速度,可以使用-j选项指定编译的CPU内核数
$ fakeroot make-kpkg --initrd --revision=1.0.NAS kernel_image kernel_headers -j 16
fakeroot在拥有root权限的环境下运行make-kpkg的命令。
make-kpkg命令从Linux内核源代码和选项构建Debian/Ubuntu内核软件包:
--initrd
:创建一个initrd图像。--revision = 1.0.NAS
:设置自定义内核版本。kernel_image
:这个目标产生Linux内核源映像的Debian软件包,以及在内核配置文件.config中配置的任何模块。kernel_headers
:这个目标产生Linux内核头文件映像的Debian软件包。
验证内核deb文件:
$ ls ../*.deb `../linux-headers-4.9.11_1.0.NAS_amd64.deb ../linux-image-4.9.11_1.0.NAS_amd64.deb`
安装自定义内核
执行以下dpkg命令,在系统上安装定制内核:
$ cd .. $ sudo dpkg -i linux-headers-4.9.11_1.0.NAS_amd64.deb $ sudo dpkg -i linux-image-4.9.11_1.0.NAS_amd64.deb
重启系统
执行以下命令:
$ sudo reboot
或者
$ sudo shutdown -r now
检查新内核
验证新内核是否正常运行:
$ uname -a $ uname -r $ uname -mrs $ dmesg | more $ dmesg | egrep -i --color 'error|critical|failed'