安装内核的方法
1.下载内核源代码
可以从官网找到,地址:https://kernel.org,点击[tarball]获取tar.gz包。
使用tar -xzvf 解压,以下是其他一些常用压缩包的解压命令:
tar -xvf file.tar
tar -xzvf file.tar.gz
tar -xjvf file.tar.bz2
tar -xZvf file.tar.Z
unrar e file.rar
unzip file.zip
2.进入内核目录
首先配置编译文件.config,也可以从当前的系统复制.config文件到代码目录,此文件是/boot/config*等文件,在/lib/modules/内核名/build目录下也有。
以下是一些配置的编译命令:
make config #这是一个文本的配置界面,可以详细配置每一项,但是配置项非常多,不建议使用
make menuconfig #一个彩色文本界面的配置界面,很多文章都建议使用这一项,但是需要装ncurses-devel库,可以使用yum或者apt-get安装,如果装不了,可以到源找合适当前系统的rpm包,使用“rpm -ivh 包名”安装,如果有依赖,安装依赖,如果是其他问题,可以尝试强制安装“rpm -ivh --nodeps --force 包名”(--nodeps:忽略依赖关系;--force:强制安装)。
make defconfig #根据当前系统架构使用 默认的配置文件
make oldconfig #将当前内核新特性加入.config文件,如果复制了其他.config到代码目录中,建议运行此命令
make allnoconfig #所有可选配置项不使用,会生成一个非常小的可用内核
make allyesconfig #所有配置选项都包含进去,会生成一个非常大的内核
关于.config配置选项可以参考以下网页:
https://blog.csdn.net/hanglinux/article/details/16354225
https://www.cnblogs.com/zengkefu/p/6372232.html
3.编译内核
使用make就可以直接编译,不过我一直使用“make -j16 bzImage”(-j 设置线程数,我的cpu是8核的,所以设置为16,一般建议设置为cpu的核数,这样可以加快编译速度,否则内核编译很慢;baImage,为编译目标,可以使用“make help”查看所有支持的命令,如果是x86架构,bzImage会生成在/arch/x86目录下)。
4.编译模块
使用“make modules -j16”(-j 同上,用来加快编译)。
5.安装模块
使用“make modules_install”,记得要切换到root用户
6.安装内核
使用“make install”,也要切换到root用户。安装完成后,会自动创建开机启动项,重启后就可以看见安装的内核,选择进入。
内核被安装在/lib/modules目录,同时/boot目录中的也会增加相关的引导。
下面以编译安装linux-5.8.5为例
tar -xzvf linux-5.8.5.tar.gz
cd linux-5.8.5
cp /lib/modules/内核名/build/.config .config
make oldconfig
make -j16 bzImage
make -j16 modules
make modules_install
make install