上传linux内核至主机,linux内核文件格式为tar.xz。
[root@centos home]# xz -d linux-2.6.32.67.tar.xz
[root@centos home]# ls
linux-2.6.32.67.tar
xz -d解压后,会删除tar.xz文件,仅留下tar包
[root@centos home]# tar xvf linux-2.6.32.67.tar -C /usr/src
展开归档文件至/usr/src目录。
[root@centos home]# cd /usr/src/
[root@centos src]# ls
debug kernels linux-2.6.32.67
[root@centos src]# ls -a
. .. debug kernels linux-2.6.32.67
[root@centos src]# ln -sv linux-2.6.32.67/ linux
`linux' -> `linux-2.6.32.67/'
[root@centos src]# ll
total 12
drwxr-xr-x. 2 root root 4096 Sep 23 2011 debug
drwxr-xr-x. 2 root root 4096 Sep 23 2011 kernels
lrwxrwxrwx. 1 root root 16 Jul 29 05:30 linux -> linux-2.6.32.67/
drwxrwxr-x. 23 root root 4096 Jun 3 23:25 linux-2.6.32.67
给linux-2.6.32.67目录创建软链接指向linux
[root@centos src]# cd linux
[root@centos linux]# ls
arch CREDITS drivers include Kbuild MAINTAINERS net samples sound virt
block crypto firmware init kernel Makefile README scripts tools
COPYING Documentation fs ipc lib mm REPORTING-BUGS security usr
[root@centos linux]# pwd
/usr/src/linux
[root@centos linux]# make menuconfig #需要安装Development tools组包
出现如下选择界面,
当选择完毕后,
[root@centos linux]# ls -a
. .config Documentation .gitignore Kbuild MAINTAINERS README security virt
.. COPYING drivers include kernel Makefile REPORTING-BUGS sound
arch CREDITS firmware init lib mm samples tools
block crypto fs ipc .mailmap net scripts usr
当前目录会出现一个.config的隐藏文件。如果不想让之前选择生效,直接删除此文件即可。
我们也可以在当前内核的基础上编译内核。
[root@centos linux]# ls /boot
config-2.6.32-504.el6.x86_64 initramfs-2.6.32-504.el6.x86_64.img System.map-2.6.32-504.el6.x86_64
efi lost+found vmlinuz-2.6.32-504.el6.x86_64
grub symvers-2.6.32-504.el6.x86_64.gz
[root@centos linux]# cp /boot/config-2.6.32-504.el6.x86_64 /usr/src/linux/.config
cp: overwrite `/usr/src/linux/.config'? yes
将当前内核的config文件复制为.config文件,然后在.config文件的基础上进行编译。
[root@centos linux]# make menuconfig
可以将内核版本号中加入自己的元素
其他自定义的选择完成后, 保存退出。
之后make
[root@centos linux]# make
[root@centos linux]# make modules_install
[root@centos linux]# make install
出现了如下报错,查找了相关错误,有博主说可以忽略。先暂时忽略。
查看grub中是否有该内核启动项。
init 6重启系统
会发现多了个选项。选择新编译内核启动。
编译内核成功。