同步操作将从 baoke/Linux学完就忘系列 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
./configure,make,make install
前提:开发环境(开发工具,开发库),头文件:/usr/include
开源:源代码-->可执行格式
发行版:以"通用"的目标
前提:
(1) 准备好开发环境;
(2) 获取目标主机上硬件设备的相关信息;
(3) 获取到目标主机系统功能的相关信息,例如要启用的文件系统;
(4) 获取内核源代码包:www.kernel.org;
准备开发环境:
CentOS 6,7:
包组:
Development Tools
Server Platform Development
#查看包组
yum group list
#安装开发工具包组
yum groupinstall "开发工具" -y
#确保ncurses.x86_64包已安装
yum list all *ncurses
获取目标主机上硬件设备相关信息:
CPU:
#查看cpu信息
cat /proc/cpuinfo
lscpu
#安装x86info
yum -y install x86info
#查看所有cpu相关的详细信息
x86info -a
PCI设备:
#查看PCI设备信息
lspci
#查看每个PCI设备的详细信息
lspci -v
#查看每个PCI设备的更详细信息
lspci -vv
#查看usb设备信息
lsusb
#查看usb设备详细信息
lsusb -v
#查看硬盘信息
lsblk
步骤:
tar -xf linux-3.16.71.tar.xz -C /usr/src
cd /usr/src
ln -sv linux-3.16.71 linux
cd linux
make menuconfig 配置内核选项
make [-j #] 编译内核,可使用-j指定编译线程数量
make modules_install 安装内核模块
make install 安装内核
重启系统,选择使用新内核;
screen命令:
在终端模拟器上打开屏幕(在screen中执行的所有操作,不会因为你的ssh连接断开而终止)
打开screen:screen
拆除screen:Ctrl+a松开键盘,直接按d
列出screen:screen -ls
连接screen:screen -r SCREEN_ID
关闭screen:在screen内部输入exit
#安装
yum install -y screen
#打开screen,Ctrl+a松开键盘,直接按d,拆除
screen
#列出screen
screen -ls
#连接id为82650的screen
screen -r 82650
#rz上传linux-3.16.71.tar.xz内核包
tar -xf linux-3.16.71.tar.xz -C /usr/src
#切换目录
cd /usr/src
#创建符号链接
ln -sv linux-3.16.71 linux
#进入解压目录
cd linux
#安装ncurses-devel
yum install -y ncurses-devel
#参照当前系统内核的模块配置
cp /boot/config-3.10.0-957.12.1.el7.x86_64 .config
#会打开一个文本菜单界面,可以选择哪些模块编译进内核等操作
make menuconfig
#打开screen
screen
#指定4个线程,启动编译
make -j 4
#安装内核模块
make modules_install
#安装内核
make install
#重启系统,选择使用新内核;
(1) 配置内核选项
支持"更新"模式进行配置:在已有的.config文件的基础之上进行"修改"配置;
(a) make config:基于命令行以遍历的方式去配置内核中可配置的每个选项;
(b) make menuconfig:基于cureses的文本配置窗口;
(c) make gconfig:基于GTK开发环境的窗口界面;包组:"桌面平台开发"
(d) make xonfig:基于QT开发环境的窗口界面;
支持"全新配置"模式进行配置:
(a) make defconfig:基于内核为目标平台提供的"默认"配置为模板进行配置;
(b) make allnoconfig:所有选项均为"no";
(2) 编译
(a) 多线程编译:make [-j #]
(b) 编译内核中的一部分代码:
(i) 只编译某子目录中的相关代码:
cd /usr/src/linux
make path/to/dir/
(ii) 只编译一个特定的模块
cd /usr/src/linux
make path/to/dir/file.ko
(c) 如何交叉编译:
目标平台与当前编译操作所在的平台不同;
make ARCH=arch_name
要获取特定目标平台的使用帮助:
make ARCH=arch_name help
(3) 如何在执行过编译操作的内核源码树上做重新编译:
事先清理操作:
make clean:清理编译生成的绝对多数文件,但会保留config,及编译外部模块所需要的文件;
make mrproper:清理编译生成的所有文件,包括配置生成的config文件及某些备份文件;
make distclean:相当于mrproper,额外清理各种patches以及编辑器备份文件;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。