RK3566 Debian 编译
泰安派开发板的 Debian 编译,使用了 live_build 这个工具. 但编译的的系统是 buster 版本的. 这个版本在泰山派编写文档时还在维护期,但是在2024年4月28日,buster版本将不再维护. 所以在编译时,涉及到的URL地址,都不再有效,所以需要修改一下各处的URL地址.
一.编译环境
1. 用到的重要程序
在编译之前,除了 泰山派的wiki 文档提到的安装程序外,还需要安装以下几个程序:
以下是目录或是文件是位于 编译Host系统(即docker容器的ubuntu 18.04)上的.是通过 安装 apt install live_build 安装的.
2. 修改对应的URL地址
(1)修改 <sdk>/debian/ubuntu-build-service/buster-desktop-arm64/configure 文件
(重点)
--mirror-bootstrap "http://mirrors.163.com/debian-archive/debian" \
--mirror-chroot "http://mirrors.163.com/debian-archive/debian" \
--mirror-chroot-security "http://mirrors.163.com/debian-archive/debian-security" \
--mirror-binary "http://mirrors.163.com/debian-archive/debian" \
--mirror-binary-security "http://mirrors.163.com/debian-archive/debian-security" \为什么要这样修改,因为默认的URL地址已经不能使用了.现在修改的地址是 archive的镜像地址.对于不维护的地址这个地址仍然有效.
(2)修改 /usr/sbin/debootstrap 文件
在运行时,会报以下错误:
[2025-10-09 03:00:31] lb bootstrap_archive-keys
Unknown host IFA type: 11
Unknown host IFA type: 11
Ign:1 http://deb.debian.org/debian buster InRelease
Err:2 http://deb.debian.org/debian buster Release
404 Not Found [IP: 146.75.46.132 80]
Reading package lists...
E: The repository 'http://deb.debian.org/debian buster Release' no longer has a Release file.
P: Begin unmounting filesystems...
P: Saving caches...这个错误提示,是因为 debootstrap 找不到 http://deb.debian.org/debian 这个地址. 这个地址已经失效了. 所以需要修改这个地址.
(重点)
** 解决的方法就是修改 /usr/sbin/debootstrap 文件中的下面的语句修改为: **
DEF_MIRROR="http://archive.debian.org/debian-archive/debian"
DEF_HTTPS_MIRROR="https://archive.debian.org/debian-archive/debian"这个新地址是 archive 的镜像地址. 这个地址仍然有效.
3.如果出现错误下面的错误:
chroot: failed to run command '/usr/bin/env': Exec format error
最终提示 ERROR: Running build_debian failed! 并返回错误码 255解决方法:
(重点)
sudo apt-get install qemu-user-static binfmt-support
sudo update-binfmts --enable qemu-arm
sudo update-binfmts --enable qemu-aarch64验证:
# 检查binfmt配置
cat /proc/sys/fs/binfmt_misc/qemu-aarch64如果有返回的信息,就说明配置成功了.
二.显示调试信息
这是在调度程序时,显示一些调试信息.方便了解程序的工作流程. 对于一些错误的调试. 使用 apt install -y live_build 安装的.主要安装在了 /usr/sbin/* /usr/share/* /usr/lib/live/* 目录下. 这些程序看似是程序,实际上是 shell脚本 . 所以可以直接使用 vim 等编辑器打开这些脚本,并进行修改. 主要程序:
- /usr/sbin/debootstrap
- /usr/sbin/qemu-debootstrap
- /usr/share/debootstrap
- /usr/lib/live/build/build
- /usr/lib/live/build/build.sh
1.显示脚本运行信息
对于脚本,可以使用 -x 参数来显示脚本的运行信息.用于方法调试.
#!/bin/bash -x
PS4='+[${BASH_SOURCE}:${LINENO}] ' # 显示脚本名和行号2.显示一些错误信息
- 红底白字
echo -e "\e[41;1;37m ${BASH_SOURCE} 显示参数 \e[0m"- 绿底白字
echo -e "\e[42;1;37m ${BASH_SOURCE} 显示参数 \e[0m"- 黄底白字
echo -e "\e[43;1;37m ${BASH_SOURCE} 显示参数 \e[0m"- 蓝底白字
echo -e "\e[44;1;37m ${BASH_SOURCE} 显示参数 \e[0m"- 红字
echo -e "\e[1;31m ${BASH_SOURCE} 显示参数 \e[0m"- 绿字
echo -e "\e[1;32m ${BASH_SOURCE} 显示参数 \e[0m"- 黄字
echo -e "\e[1;33m ${BASH_SOURCE} 显示参数 \e[0m"- 蓝字
echo -e "\e[1;34m ${BASH_SOURCE} 显示参数 \e[0m"- 白字
echo -e "\e[1;37m ${BASH_SOURCE} 显示参数 \e[0m"- 灰字
echo -e "\e[1;30m ${BASH_SOURCE} 显示参数 \e[0m"