Archlinux编译内核

https://wiki.archlinux.org/index.php/Kernels/Compilation/Traditional

 

Linux重新编译内核

1.  下载内核文件。

内核可以直接从www.kernel.org网站下载,但是网速一般都不理想。建议从国内的开源镜像站下载。比如:清华大学开源镜像站(mirrors.tuna.tsinghua.edu.cn)。

直接下载linux-5.4.15内核:

https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/linux-5.4.15.tar.xz

2.  安装开发工具。

archlinux安装base-devel工具包即可。

3.  解压内核。

解压下载的linux内核。

4.  自定义内核。

可以在解压文件根目录下创建.config文件,添加linux需要开启的功能。Make nconfig(基于curses)是.config的图形管理界面。使用起来非常方便。还有

make config:纯命令行方式。

make gconfig:基于GTK(GNOME)环境窗口界面。

make xconfig:基于Qt(KDE)环境窗口界面。

make defconfig:根据当前运行内核进行配置。

make allyesconfig:默认添加所有配置。

make allnoconfig:默认不添加所有配置。

根据自己的需求定制内核源码。

y,表示自动启动,menu config界面显示为*。n表示禁用,menu config界面显示为空格。m表示手动启动,menu config界面显示为m。

archlinux可以使用 zcat命令获取当前运行内核的config文件。其它发行版的config文件可能直接放在/boot目录中。

$ zcat /proc/config.gz > .config

5.  编译内核。

在源码文件根目录下运行:

make -j 12 #12代表使用的线程数。根据开发平台自己决定。

make [-j #]:全编译。

make dir/:只编译 dir目录中的代码。

make dir/file.ko:只编译dir目录中特定模块。

※交叉编译内核:编译的目标平台与当前平台不相同。

make ARCH=arch_name

※获取编译目标平台的使用帮助。

make ARCH=arch_name help

比如:make ARCH=arm help

6.  编译安装模块。

实际上就是复制模块包到目录中。运行下面命令,自动将生成的ko文件放到当前运行平台的/lib/modules目录中。(※此处需要用root权限,否则会失败)。

# make modules_install

7.  安装内核

# make install:安装内核到/boot目录,并且它会修改grub.cfg文件。

archlinux可以手动安装:

cp -v arch/x86/boot/bzImage /boot/

8.  清理文件。

安装完成后清理一下编译生成的用不到到文件,节省硬盘空间。

※如果这个内核源码已经编译过(不是刚从官方网站下载的),最好事先清理一下编译生成的文件。

make clean:清理生成的多数文件,但会保留config文件,并且备份config文件。

make mrproper:清理所有生成的文件,包含config文件。

make distclean: mrproper、patches等补丁文件以及编辑器备份,都会被清理掉。

9.  卸载内核。

boot中用不到的内核。

修改grub.cfg。

lib/modules中用不到的模块。

/usr/src/linux/目录下不需要的内核源码。(CentOS)

posted @ 2020-01-28 16:38  看不见的R  阅读(3496)  评论(0编辑  收藏  举报