linux内核安装:
安装内核步骤
-
下载相应内核版本【我这里用的是linux-4.19.90.tar.gz】
-
解压缩到自定位置【我这里是/root/桌面/send/】
-
安装内核图像界面依赖【已安装则跳过】
yum install ncurses-devel
注意事项:如果不安装这个,会引发内核make menuconfig错误
-
使用图形化界面对内核配置的更改
make menuconfig
成功后如图所示:
可能遇到的问题
4-1 以前编译过内核【清理过去内核编译产生的文件】
-
解决方案
make mrproper
4-2 出现如下错误:
/bin/sh: flex:未找到命令
make[1]: *** [scripts/Makefile.lib:188:scripts/kconfig/zconf.lex.c] 错误 127
make: *** [Makefile:534:x86_64_defconfig] 错误 2
-
解决方案:
安装
bison
和flex
软件依赖yum install flex bison
-
内核配置细节参考:
-
general setup // 基础设置
processor type and features //处理器类型和特征设置
power management and ACPI options //电源管理和APCI选项
bus options //总线(bus)设置
binary emulations //二进制仿真
firmware drivers //固件驱动设置
virtualization //虚拟化设置
General architecture-dependent options //一般架构的依赖选项
enable loadable module support //启用可加载模块支持
enable the block layer //启用 块 层级
executable file formats //可执行文件(exe)文件格式
memory management options //内存管理选项
networking support //网络支持选项
device drivers //设备驱动程序
file systems //文件系统
security options //安全选项
Cryptographic API //加密API
library routines //库习惯【默认设置?】扩充选项阅读 linux 内核配置选项
-
-
自定义选择完成后
save
退出-
内核选项中:
y
为选中此内核配置n
为不选中此内核配置 -
esc
为退出 -
方向键
为选取下方选项 -
/
为搜索
-
-
退出后安装所需依赖:
yum install elfutils-libelf-devel openssl-devel bc
-
make 编译
编译完如图所示:
-
安装内核模块
make modules_install
-
安装内核
make install
报错的话可能是make编译的过程中提前中断了,重来吧TAT
-
安装成功后在boot里面能看到对应的内核
cd boot
ll
-
更新引导:
下面的命令会根据 /boot/ 目录下的内核文件自动更新启动引导文件。
grub2-mkconfig -o /boot/grub2/grub.cfg
-
点亮了之后就大致成功了,后续的是优化体验:
备注:我自己内核头文件存放位置为:
/usr/src/kernels/4.19.90-2204.4.0.0146.oe1.x86_64/include/linux/
-
修改默认启动内核:
查看当前系统所有可用内核
cat /boot/grub2/grub.cfg |grep "menuentry "
-
查看当前默认启动内核
grub2-editenv list
-
修改默认启动内核,
grub2-set-default
后的参数即要默认启动的版本,就是之前查看当前系统所有可用内核结果里面系统名称后的括号里的内容。grub2-set-default 4.19.90-2106.3.0.0095.oe1.x86_64
-
再次查看默认启动内核(15)
-
删除旧内核:
cd /boot ll
删除旧内核相关文件
rm -rf System.map-4.19.90.old vmlinuz-4.19.90.old
更新引导文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
-
参考资料,引用:
内核相关指令
验证内核模块是否成功成功加载
-
当你运行了某个
.ko
文件设:
insmod kernel_name
-
可使用如下指令来验证是否成功加载
lsmod | grep kernel_name
-
kernel_name
为加载的模块
载入内核模块(install module)
-
示例:加载
kernel_name
模块insmod kernel_name
卸载内核模块
-
示例:删除
kernel_name
模块rmmod kernel_name
进阶参数可用
-
-a 删除所有目前不需要的模块。
-
-s 把信息输出至syslog常驻服务,而非终端机界面。
-
检查内核日志:
dmesg标签:kernel,name,centos,4.19,make,grub2,内核,linux From: https://www.cnblogs.com/io-T-T/p/17658572.html