OrangePi3B本地编译镜像报错记录
一、编译环境搭建
访问官网,按照官方说明搭建对应的编译环境,Ubuntu 22.04,安装git ,从github下载orangepi_build
1 | git clone https://github.com/orangepi-xunlong/orangepi-build.git -b next |
进入orangepi_build目录后,执行
1 | sudo ./build.sh |
然后会下载相关的编译相关的软件包及源码,过程中可能会遇到网络问题,可以多尝试几次。
二、我遇到的问题
1、当编译img时候报错
1 | Release signed by unknown key (key id xxxxxxxxx) |
需要Ubuntu 更新 debian-archive-keyring,
2、安装/更新密钥包
1 | sudo apt install --reinstall debian-archive-keyring |
作用:覆盖安装或升级密钥包,确保 /usr/share/keyrings/debian-archive-keyring.gpg 和 /etc/apt/trusted.gpg.d/ 下的密钥文件更新至最新版本12。
3、同步 APT 缓存
1 | sudo apt update |
验证更新:检查输出中是否仍存在 NO_PUBKEY 或 EXPKEYSIG 错误。若密钥更新成功,错误应消失。
4、检查软件源配置
确认版本标识:
确保 /etc/apt/sources.list 或 /etc/apt/sources.list.d/* 中的发行版标识(如 bookworm、bullseye)与当前系统版本一致。
示例(Ubuntu 22.04 的 Debian 源配置):
1 | deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://mirrors.aliyun.com debian bookworm main |
5、处理残留旧密钥(可选)
1 | sudo rm /etc/apt/trusted.gpg.d/debian-archive-*.gpg |
适用场景:当旧密钥残留导致冲突时,强制删除全局信任目录中的旧密钥文件,迫使 APT 依赖 /usr/share/keyrings/ 中的集中密钥环.
6、手动下载安装(特殊场景)
从镜像站下载:
若 APT 因网络问题无法连接,可手动下载 .deb 包:
1 | wget https://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2023.4_all.deb |
需替换 URL 中的版本号为最新包名。
7、总结
更新 debian-archive-keyring 的核心步骤为安装/重装密钥包并刷新缓存。若问题持续,需排查软件源版本标识的正确性,或手动清理旧密钥。此流程适用于解决因密钥过期或缺失导致的 apt update 签名错误。
三、我最终解决
执行以上步骤中的第5步,先删除所有密钥;然后执行第6步。最后再进入orangepi_build 执行
1 | sudo ./build KERNEL_CONFIGURE=no |
等一段时间后成功编译出img文件。