内核编译前准备工作:
准备好开发环境
Server Platform Development
Development Tools
yum groupinstall Development Tools ; yum groupinstall Server Platform Development
2.获取目标主机硬件设备相关信息
cpu:# cat /proc/cpuinfo #查看cpu信息
# x86info
yum install x86info #需安装后使用
# lscpu
pci:# lspci #显示所有pci设备信息
-v #显示详细的信息
-vv #显示更详细的信息
# lsusb #显示usb设备信息
-v #同lspci
-vv
# lsblk #显示块设备信息
-a #显示所有
全部的硬件设备:# hal-device
3.获取内核源码# wget -r).tar.xz
4.安装图形依赖包# yum install ncurses ncurses-devel
5.安装虚拟屏幕# yum install screen
简单依据模板文件的内核编译过程# tar xf linux-3.10.67.tar.xz -C /usr/src
#将下载好的内核解压至/usr/src目录中
# cd /usr/src
#编译命令使用相对路径,所以要cd至该目录下
# ln -sv linux-3.10.67 linux
#创建内核链接文件,此处的linux为链接名
# cd linux
#编译命令使用相对路径,所以要cd至该目录下
# cp /boot/config-$(uname -r) ./.config
#复制/boot目录下config模板至当前目录下
# make menuconfig
#以文本窗口配置内核选项,在此处开启或关闭内核或模块
# screen
#开启虚拟屏幕,因编译不确定性,且时间较长,所以开启它吧
# make -j #
#编译内核,#为以几个核心进行编译
# make modules_install
#安装内核模块
# make install
#安装内核
# init6
#重启后进入grub可选择内核进入系统了哦
常见报错信息drivers/tty/serial/built-in.o: final close failed: No space left on device
make[3]: *** [drivers/tty/serial/built-in.o] Error 1
make[2]: *** [drivers/tty/serial] Error 2
make[1]: *** [drivers/tty] Error 2
make: *** [drivers] Error 2
此类报错为磁盘空间不足,解决方案为扩展磁盘容量,或将/usr挂载至独立分区ERROR: modinfo: could not find module vmware_balloon
此类报错为在虚拟机安装时产生,无须理会
编译扩展
1.只编译某子目录中的相关代码# cd /usr/src/linux #编译命令使用相对路径,所以要cd至该目录下
# make dir/ #dir为你需要编译的某目录
2.只编译一个特定的模块# cd /usr/src/linux
# make dir/file.ko #指定某目录下具体的模块,以.ko结尾
3.编译的目标平台与当前平台不相同# make ARCH=平台名字
4.要获取特定目标平台的使用帮助# make ARCH=平台名字 help
5.如何在已经执行过编译操作的内核源码树做重新编译# make clean:清理大多数编译生成的文件,但会保留config文件等
# make mrproper:清理所有编译生成的文件,config及某些备份文件
# make distclean:mrproper,patches以及编辑器备份文件
附:screen命令用法
1.打开新的screen# screen
2.退出并关闭screen# exit
3.剥离当前screen# ctrl+a,d
4.显示所有已经打开的screen# screen -ls
5.恢复screen:通过ls查看的ID号恢复screen -r [SESSION]