香橙派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 ms
    
    Starting 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/
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值