首页 > 系统相关 >openeuler linux内核4.19安装(centos 同理)

openeuler linux内核4.19安装(centos 同理)

时间:2023-08-26 11:44:06浏览次数:50  
标签:kernel name centos 4.19 make grub2 内核 linux

linux内核安装:

安装内核步骤

  1. 下载相应内核版本【我这里用的是linux-4.19.90.tar.gz】

    下载网址:https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/

  2. 解压缩到自定位置【我这里是/root/桌面/send/】

  3. 安装内核图像界面依赖【已安装则跳过】

 yum install ncurses-devel

image-20230729101007825

注意事项:如果不安装这个,会引发内核make menuconfig错误

  1. 使用图形化界面对内核配置的更改

 make menuconfig

成功后如图所示:

image-20230729103151300

可能遇到的问题

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
  • 解决方案:

    安装 bisonflex 软件依赖

     yum install flex bison
  1. 内核配置细节参考:

    •  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 内核配置选项

  2. 自定义选择完成后save退出

    • 内核选项中: y为选中此内核配置

      n为不选中此内核配置

    • esc为退出

    • 方向键为选取下方选项

    • / 为搜索

      image-20230729111721746

      image-20230729111744108

  3. 退出后安装所需依赖:

     yum install elfutils-libelf-devel openssl-devel bc
  4. make 编译

    编译完如图所示:

    image-20230729115528883

  5. 安装内核模块

     make modules_install

    image-20230729115655083

  6. 安装内核

    make install

    报错的话可能是make编译的过程中提前中断了,重来吧TAT

  7. 安装成功后在boot里面能看到对应的内核

    cd boot

    ll

    image-20230729130404726

  8. 更新引导:

    下面的命令会根据 /boot/ 目录下的内核文件自动更新启动引导文件。

    grub2-mkconfig -o /boot/grub2/grub.cfg

    image-20230729131949286

    image-20230729131924494

  9. 点亮了之后就大致成功了,后续的是优化体验:

    备注:我自己内核头文件存放位置为:/usr/src/kernels/4.19.90-2204.4.0.0146.oe1.x86_64/include/linux/

  10. 修改默认启动内核:

    查看当前系统所有可用内核

    cat /boot/grub2/grub.cfg |grep "menuentry "

    image-20230730180452048

  11. 查看当前默认启动内核

    grub2-editenv list

    image-20230730180554789

  12. 修改默认启动内核,grub2-set-default后的参数即要默认启动的版本,就是之前查看当前系统所有可用内核结果里面系统名称后的括号里的内容。

    grub2-set-default 4.19.90-2106.3.0.0095.oe1.x86_64
  13. 再次查看默认启动内核(15)

    image-20230730180954280

  14. 删除旧内核:

    cd /boot
    ll

    image-20230730181135453

    删除旧内核相关文件

    rm -rf System.map-4.19.90.old vmlinuz-4.19.90.old

    更新引导文件:

    grub2-mkconfig -o /boot/grub2/grub.cfg
  15. 参考资料,引用:

    OpenEuler内核编译及替换

    Make Menuconfig详解 (配置内核选择)

 

内核相关指令

验证内核模块是否成功成功加载

  1. 当你运行了某个.ko文件

    设:insmod kernel_name

  2. 可使用如下指令来验证是否成功加载

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

相关文章

  • Linux 多点电容触摸屏实验
      https://blog.51cto.com/u_14943525/5435770 Linux多点电容触摸屏实验 原创wx5f6a96e093b032022-07-0200:03:41博主文章分类:Linux嵌入式——驱动开发©著作权文章标签linux#include触摸屏文章分类运维阅读数4481.电容触摸屏驱动框架1.1MT协议讲解①、电......
  • linux 查询日志
    1定位错误日志所在的行数cat-ntest.log|grep"查找的错误关键字"2得到错误关键字所在行号(假设为第500行),查询错误关键字前后100行数据    cat-ntest.log|tail-n+400|head-n2003  查看日志中出现关键字 "错误的关键信息提示"的前后10行内容 cat-n......
  • SELinux 入门 pt.2
    哈喽大家好,我是咸鱼在《SELinux入门pt.1》中,咸鱼向各位小伙伴介绍了SELinux所使用的MAC模型、以及几个重要的概念(主体、目标、策略、安全上下文)我们还讲到:对于受SELinux管制的进程,会先检查SELinux策略规则,然后再检查DAC规则对于不受SELinux管制的进程,仍然会执......
  • Linux 内核设备驱动程序的IO寄存器访问 (上)
    Linux内核提供了一套可缓存的设备IO寄存器访问机制,即regmap。regmap机制支持以统一的接口,访问多种不同类型的设备IO寄存器,如内存映射的设备IO寄存器,和需要通过I2C、I3C、SPI、AC97和SLIMBUS等总线访问的设备寄存器等。内存映射设备IO寄存器和I2C总线是嵌入式系统......
  • Linux系统:第十章:服务器环境搭建
    将防火墙关闭并设置为开机不自动启动:systemctlstopfirewalld.servicesystemctldisablefirewalld.serviceLinux系统中JDK的安装与配置进入opt目录下:cd/opt在opt目录下上传jdk文件:jdk-8u152-linux-x64.tar.gz解压:tar-zxvfjdk-8u152-linux-x64.tar.gz进入etc目录下:cd......
  • Linux系统:第四章:Linux文件系统
    Linux文件系统 概述Linux系统中只有一个文件系统,以“/”作为根目录,从根目录出发可以找到任何一个文件和目录。这样就有了一个访问目录、文件的统一规范。在根目录下的诸多目录都有特定的作用,其中有些目录对我们日常操作来说非常的重要。[bin]是binary的缩写,这个目录存放着......
  • CentOS 7 上更新系统时间和时区
    要在CentOS7上更新系统时间和时区(CST,即中国标准时间),可以按照以下步骤进行操作:更新系统时间:首先,你可以使用以下命令来手动更新系统时间为当前时间:sudodate+%T-s"hh:mm:ss"替换"hh:mm:ss"为当前的小时、分钟和秒。你也可以更新日期和时间一起,例如:sudodate+%Y%m%......
  • centos7实现开机自启动Python脚本
    在Linux系统中,你可以使用不同的方法来实现开机自启动Python脚本和确保守护进程不挂掉。以下是一些常用的方法:1.开机自启动Python脚本:使用rc.local文件(适用于一些旧的系统):编辑/etc/rc.local文件,将你希望在系统启动时运行的命令或脚本添加到文件中。确保给脚本提供正确的路径。......
  • Oracle Linux 8 yum 安装 MySQL 8
    一、安装yum仓库rpm-ivhhttps://dev.mysql.com/get/mysql80-community-release-el8-8.noarch.rpm二、先禁用本地的MySQL模块yummodule-ydisablemysqlMySQL8.0CommunityServer......
  • 15 Linux 按键深入实验
    一、Linux按键驱动原理  其实案件驱动和LED驱动很相似,只不过区别在于,一个是读取GPIO高低电平,一个是从GPIO输出高低电平。  在驱动程序中使用一个整形变量来表示按键值,应用程序通过read函数来读取按键值,判断按键有没有按下。在这里,这个保存按键值的变量就是个共享资源,驱......