openeuler linux内核4.19安装(centos 同理)
安装内核步骤
-
下载相应内核版本【我这里用的是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 //库习惯【默认设置?】扩充选项阅读
-
-
自定义选择完成后
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
原文地址:https://www.cnblogs.com/io-T-T/p/17658572.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Swift 动态创建ViewController
- Office 文档解析 文档格式和协议
- 查看centos 7里敏感信息的常用命令(未完)
- C# dotnet 使用 FileStream 随机文件读写
- datables之加载数据时显示进度条
- 这几种常见的“分布式锁”写法,搞懂再也不怕面试官,安排
- C# 8.0 文件长度 Bytes 字节转 KB 等单位字符串
- LeetCode---两数之和
- 通过 cmd 批处理文件将 16 进制转 10 进制数字
- HTML5-JS操作页面滚动条(禁止、隐藏、显示、不显示)
- 追根溯源MySQL,“你的表情”插入对了吗?
- 推荐官方开源 PInvoke 库 包含大量 win32 封装
- 这是什么重大发现!一个导致JVM物理内存消耗大的Bug
- 无语,我差点被面试官怼坏了,又给我问到MySQL索引
- 面试官虚晃一枪:项目中有用过锁吗?能解释一下什么是AQS?