为什么要编译内核呢?
我们有多种需求需要这样做,比如对内核的大小有所限制,去掉内核中某些用不到的部分,或者想让终端直接支持中文显示。
编译内核困难吗?
一点也不困难,因为它和编译其它软件相比,没有什么不同,唯一不同的是,它很费时间。
我们开始
CJKTTY的地址
这是一个Linux kernel source tree with CJKTTY patch的github分支。
克隆项目
1。先查看下你当前的分支,或者你知道你想编译的分支号。
uname -r
2。克隆项目,切记只克隆你需要的分支的branch(因为它真的很大!)
git clone branch 4.2-utf8 https://github.com/Gentoo-zh/linux-cjktty.git
3。等待,然后当前目录会出现一个cjktty的目录,这就是内核的源码。
配置内核
进入这个目录,你有多种方法配置内核的参数,我推荐最简单的方法
make menuconfig
这个命令后,会出现一个傻瓜式的字符界面,我们就可以在这个界面上对内核进行配置。如果你完全不懂这些项目的意义,那就直接保存就好。
编译内核
这步只需要输入一个
make
命令就好,然后是漫长的编译过程
……
安装内核
安装模块
make modules_install
对于内核来说,每一个内核版本有自己的模块目录,默认在/lib/modules/内核版本号这个目录下,make modules_install会创建对应的目录,并把对应的模块文件拷贝过去。
安装内核
make install
这会自动把生成的vmlinuz-4.2.0+和**initrd.img-4.2.0+ **拷贝到/boot下。
引导内核
这个要看你的引导程序,比如是grub,或者是syslinux之类。这都不困难,只要把linux 变量指向 /boot/vmlinuz-4.2.0+;把initrd变量指向 /boot/initrd.img-4.2.0+就好
:)祝你成功!