内核编译前准备工作:
准备好开发环境
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]
转载于:https://blog.51cto.com/jiayimeng/1845426