0 前言
Linux系统中可同时安装多个内核镜像,启动时选其一运行即可,《Ubuntu14.04安装Linux内核》介绍了通过apt-get工具安装内核的方法,本文将介绍如果由源码安装新内核。
验证版本:Ubuntu14.04、Ubuntu18.04、Uos-professional-20
1 源码
1.1 标准内核
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.6.4.tar.gz
tar axvf linux-4.6.4.tar.gz
1.2 发行版内核
(1)方法1
Ubuntu/UOS/银河麒麟都可通过下面方式下载含发行版patch的内核:
# 确认当前所用内核版本
uname -r
# 查看可用内核源码
apt-cache search linux-source
# 安装内核源码
apt-get install -y linux-source-5.3.0 # 得到/usr/src/linux-source-5.3.0/linux-source-5.3.0.tar.bz2
(2)方法2
方法1下载的内核通常不是最新的,此时可通过各发行版官网下载内核,例如:
# Ubuntu20.04
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-focal.git # [21]
# or
git clone git://kernel.ubuntu.com/ubuntu-stable/ubuntu-stable-focal.git # [21]
2 配置
make mrproper
# 配置一
make menuconfig
# 无需修改,保存退出即可
# 配置二
make defconfig
# 配置三
make x86_64_defconfig
# 配置四(推荐)
cp /boot/config-$(uname -r) .config # [4]
注:如果前面下载的是Ubuntu修改源码,需要将CONFIG_SYSTEM_TRUSTED_KEYS设为空,否则会编译错误。[14][15]
3 编译
(1)依赖
sudo apt-get install -y bc openssl libssl-dev bison flex gcc make
(2)编译
make -j`nproc`
make modules -j`nproc`
4 安装
# 安装内核
sudo make install
# 安装模块
sudo make modules_install
# or
sudo make INSTALL_MOD_STRIP=1 modules_install # [17]
# 安装头文件(可选)
sudo make headers_install
注:
- Ubuntu18.04编译安装linux-5.3.18,启动卡在”Loading initial ramdisk“位置,根据参考资料[7]的说明,安装模块时需要加”INSTALL_MOD_STRIP=1“参数顺利规避了该问题。
- Uos profressional 20编译安装linux-4.19.67,使用”INSTALL_MOD_STRIP=1“反而会导致无法进入桌面,而是进入了initramfs。
5 启动
安装好内核之后,需要重启电脑,在grub选择菜单中选择刚才所安装的内核即可(grub默认选择最新版本的内核)。关于grub菜单,见《Ubuntu14.04开机进入grub》。
6 卸载
如果发现安装的内核有问题(如不能正常启动等),可以重启电脑,然后选择旧内核启动电脑,之后再将无法正常运行的内核卸载即可,详见《Linux内核卸载》。
Ubuntu上还有一种更好的方法用于编译和安装内核,通过该方法编译安装的内核,也可以非常方便的卸载,详见《Ubuntu制作内核安装包》。
参考资料
[1]Linux 内核的安装
[2]编译安装linux内核步骤
[3]编译linux内核并安装
[4]Ubuntu更换内核方法
[5]ubuntu更新内核切换内核启动
[6]Ubuntu14.10更换内核(3.16.0-23换成3.17.6 )
[7]如何卸载自己编译的内核?【已解决,方法见6L】
[8] Ubuntu下进行内核编译与卸载
[9]Ubuntu 14.04.1 LTS上编译安装新的kernel
[10]安全删除linux旧内核的方法
[11]如何删除 Ubuntu 上不再使用的旧内核
[12]如何在Ubuntu上安装完整内核源码
[13]如何在Ubuntu上下载,编译,安装,卸载完整内核源码
[14]内核错误: No rule to make target ‘debian/canonical-certs.pem‘, needed by ‘certs/x509_certificate_list‘
[15]【kernel学习】内核下载与编译
[16]ubuntu 18.04.6 使用内核源码安装内核
[17]自行编译内核,启动内核卡在“loading initial ramdisk”
[18]Uos内核编译,升级,驱动模块安装
[19]uos如何编译安装5.6.12内核-uos桌面版v20操作手册
[20]ubuntu > BuildYourOwnKernel
[21]Ubuntu Kernel Team
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)