内核编译
内核编译前准备工作:
-
准备好开发环境
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]