当前位置: 首页 > news >正文

香橙派5plus单独编译并安装linux内核无法启动的原因分析与解决记录

1 说明

  • 我依照官方手册编译单独编译linux内核,安装后重启出现内核启动失败的问题,编译和安装步骤如下:
    # 1. 克隆源码
    git clone --depth=1 -b orange-pi-6.1-rk35xx https://github.com/orangepi-xunlong/linux-orangepi# 2 配置源码
    make rockchip_linux_defconfig# 3 编译
    make -j10# 4 安装内核模块
    sudo make modules_install# 5 安装内核镜像
    sudo make install# 6 安装设备树
    sudo make dtbs_install INSTALL_DTBS_PATH=/boot/dtb/
  • 重新启动开发板,打印如下信息, 最终卡在 ** Starting kernel … ** 无法启动,
    ## Executing script at 09000000
    Fdt Ramdisk skip relocation
    No misc partition
    ## Loading init Ramdisk from Legacy Image at 0a200000 ...
    Image Name:   uInitrd
    Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
    Data Size:    14780165 Bytes = 14.1 MiB
    Load Address: 00000000
    Entry Point:  00000000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 0x08300000
    Booting using the fdt blob at 0x08300000
    reserving fdt memory region: addr=8300000 size=ab000
    Using Device Tree in place at 0000000008300000, end 00000000083adfff
    WARNING: could not set reg FDT_ERR_BADOFFSET.
    ## reserved-memory:
    cma: addr=10000000 size=10000000
    ramoops@110000: addr=110000 size=e0000
    Adding bank: 0x00200000 - 0xf0000000 (size: 0xefe00000)
    Adding bank: 0x100000000 - 0x200000000 (size: 0x100000000)
    Adding bank: 0x2f0000000 - 0x300000000 (size: 0x10000000)
    Total: 14507.300/14540.380 msStarting kernel ...   
    

2 分析思路

  • 我在使用SDK进行编译时,编译出的内核是可以正常启动的,尝试使用SDK单独编译内核看看:
    在这里插入图片描述
    可以看到使用SDK编译内核前使用 linux-rockchip-rk3588-current.config 对内核进行了配置,而之前在单独编译内核前并没有使用这个配置文件

  • 将两个配置文件(.config)进行对比,如下图所示,区别还是很大的,所以解决思路是使用 linux-rockchip-rk3588-current.config 对内核进行配置,而不使用文档中给出的配置文件。
    在这里插入图片描述

3 实验

  • 直接使用 SDK内核路径下的 .config 替换 内核目录下的.config,然后直接开始编译安装,内核正常启动。
  • # 1. 克隆源码
    git clone --depth=1 -b orange-pi-6.1-rk35xx https://github.com/orangepi-xunlong/linux-orangepi# 2 配置源码(直接使用SDK内核路径下的 .config 替换当前源码路径下的.config, .config_sdk是从SDK中复制出来的.config然后重命名,路径根据自己的位置进行修改)
    cp .config_sdk ./.config# 3 编译
    make -j10# 4 安装内核模块
    sudo make modules_install# 5 安装内核镜像
    sudo make install# 6 安装设备树
    sudo make dtbs_install INSTALL_DTBS_PATH=/boot/dtb/
http://www.lryc.cn/news/514974.html

相关文章:

  • 嵌入式应用软件开发中C语言方向面试题
  • linux 系统配置ip
  • 低代码开发:开启企业数智化转型“快捷键”
  • Tailwind CSS 实战:性能优化最佳实践
  • [redux] useDispatch的两种用法
  • Postgresql 命令还原数据库
  • 电脑找不到mfc110.dll文件要如何解决?Windows缺失mfc110.dll文件快速解决方法
  • Elasticsearch与数据库数据一致性:最佳实践与解决方案
  • vue导入导出excel、设置单元格文字颜色、背景色、合并单元格(使用xlsx-js-style库)
  • 电子电气架构 --- 中央处理器HPC及软件架构
  • 代码实战:基于InvSR对视频进行超分辨率重建
  • 一文读懂主成分分析法(PCA)
  • Redis(基础篇 + 实践篇 )
  • 高质量C++小白教程:2.10-预处理器简介
  • 一、二极管(模电理论篇)
  • JAVA学习笔记_JVM
  • SQL 中复杂 CASE WHEN 嵌套逻辑优化
  • STM32-笔记34-4G遥控灯
  • 被催更了,2025元旦源码继续免费送
  • Java(day1)
  • PDF文件提示-文档无法打印-的解决办法
  • ubuntu操作系统安装SSH服务
  • Beamer-LaTeX学习(教程批注版)【1】
  • IIS设置IP+端口号外网无法访问的解决方案
  • Markdown段落的空行缩进用法
  • [paddle] 非线性拟合问题的训练
  • 每日一学——监控工具(Grafana)
  • FreshTomato 路由器固件常见配置以及踩坑记录
  • ubuntu 使用samba与windows共享文件[注意权限配置]
  • 使用 httputils + chronicle-bytes 实现金融级 java rpc