香橙派5plus单独编译内核安装时的报错记录

1.问题描述

  • 香橙派核编译和安装分为如下四部:

    bash 复制代码
    #  第1步:配置内核(orangepi5plus_linux_defconfig是我自己保存的配置文件)
    make orangepi5plus_linux_defconfig
    #  第2步:编译内核
    make -j10
    #  第3部:安装内核模块
    sudo make modules_install
    #  第4部:安装内核镜像
    sudo make install
  • 在执行到第4步时出现如下报错

    bash 复制代码
    orangepi@orangepi5plus:~/work/linux-orangepi$ sudo make install
    INSTALL /boot
    run-parts: executing /etc/kernel/postinst.d/dkms 6.1.99 /boot/vmlinuz-6.1.99
    * dkms: running auto installation service for kernel 6.1.99                                               	[ OK ] 
    run-parts: executing /etc/kernel/postinst.d/initramfs-tools 6.1.99 /boot/vmlinuz-6.1.99
    update-initramfs: Generating /boot/initrd.img-6.1.99
    update-initramfs: Converting to u-boot format
    run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 6.1.99 /boot/vmlinuz-6.1.99
    run-parts: executing /etc/kernel/postinst.d/xx-initramfs-cleanup 6.1.99 /boot/vmlinuz-6.1.99
    run-parts: executing /etc/kernel/postinst.d/xx-update-initrd-links 6.1.99 /boot/vmlinuz-6.1.99
    run-parts: /etc/kernel/postinst.d/xx-update-initrd-links exited with return code 1
    make: *** [arch/arm64/Makefile:169: install] Error 1
  • 从报错信息可以看出 是在执行脚本 /etc/kernel/postinst.d/xx-update-initrd-links 时返回1并退出

2.问题分析和解决

  • 通过在脚本中加打印的方式发现是在执行 tmp=$(lsblk -f | grep "boot" | grep "vfat")时退出

  • tmp=$(lsblk -f | grep "boot" | grep "vfat") 是查看/boot是否为 vfat 文件系统,如果是则保存分区信息到 tmp变量,否则 tmp变量为空,单独运行一下 lsblk -f,会发现 /boot并没有挂在独立的分区上,也没有 vfat文件系统,这会导致 grep 命令找不带匹配项,从而返回1;又因为脚本中存在 set -e 导致任何命令在返回非零状态都会终止运行。

    bash 复制代码
    orangepi@orangepi5plus:~/work/linux-orangepi$ lsblk -f
    NAME         FSTYPE FSVER LABEL          UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
    mtdblock0                                                                                    
    mmcblk1                                                                                      
    └─mmcblk1p1  ext4   1.0   opi_root       246cb637-ef48-45eb-b006-7e1a612b1b33   51.3G    10% /var/log.hdd
                                                                                             /
    mmcblk0                                                                                      
    └─mmcblk0p1  ext4   1.0   desktop-rootfs 1883fc13-4793-4474-ac53-5209e822531b                
    mmcblk0boot0                                                                                 
    mmcblk0boot1                                                                                 
    zram0                                                                                        [SWAP]
    zram1                                                                          171.2M     1% /var/log
  • 解决办法 :依据前后文 tmp=$(lsblk -f | grep "boot" | grep "vfat")即使没有匹配到合适的内容,将tmp赋空值即可,不应该立即退出,j经验证将set -e删除即可正常安装,如下:

    bash 复制代码
    orangepi@orangepi5plus:~/work/linux-orangepi$ sudo make install
    INSTALL /boot
    run-parts: executing /etc/kernel/postinst.d/dkms 6.1.99 /boot/vmlinuz-6.1.99
    * dkms: running auto installation service for kernel 6.1.99                                               [ OK ] 
    run-parts: executing /etc/kernel/postinst.d/initramfs-tools 6.1.99 /boot/vmlinuz-6.1.99
    update-initramfs: Generating /boot/initrd.img-6.1.99
    update-initramfs: Converting to u-boot format
    run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 6.1.99 /boot/vmlinuz-6.1.99
    run-parts: executing /etc/kernel/postinst.d/xx-initramfs-cleanup 6.1.99 /boot/vmlinuz-6.1.99
    run-parts: executing /etc/kernel/postinst.d/xx-update-initrd-links 6.1.99 /boot/vmlinuz-6.1.99
相关推荐
水饺编程5 小时前
第2章:Linux 基础,切换到超级用户
linux·c语言·汇编
便利店10245 小时前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
qetfw6 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
其实防守也摸鱼7 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
toooooop87 小时前
CentOS 7 内核 3.10.0-1160.119.1 升级指南
linux·运维·centos
码少女7 小时前
Linux——UDP协议和TCP协议
linux·网络·udp·tcp
GeW8 小时前
新质生产力发展路线图Linux、数据库、AI 一个都不能少
linux
kkkkkkkkkk_Z8 小时前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla8 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
Lsetea9 小时前
curl下载HTTPS文件报23:证书验证成功与本地写入失败分层排查
linux·https·shell·ssl证书·curl