20. Debian根文件系统的构建¶
20.1. 前言¶
我们这里使用目前Debian社区较为推荐的Multistrap构建Debian根文件系统,与传统的debootstrap不同,multistrap在包的选择上更具灵活性
Multistrap的详细信息可以看 https://manpages.debian.org/bullseye/multistrap/multistrap.1.en.html
20.2. 安装依赖¶
1 | sudo apt-get install tar qemu-user-static vim multistrap -y
|
20.3. 配置config_file¶
我们创建一个文件config_file存放我们需要安装的包信息
1 2 3 | touch ./config_file
mkdir ./rootfs
vim ./config_file
|
填入如下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | [General]
#directory=target-rootfs
cleanup=true
noauth=true
unpack=true
debootstrap=Debian Net Utils Ebf
aptsources=Debian
noauth=true # GPG error
[Debian]
packages=apt kmod lsof
#source=https://mirrors.sjtug.sjtu.edu.cn/debian/
source=https://mirrors.tuna.tsinghua.edu.cn/debian/
keyring=debian-archive-keyring
suite=buster
components=main contrib non-free
[Net]
# Basic packages to enable the networking
packages=netbase net-tools ethtool udev iproute2 iputils-ping ifupdown isc-dhcp-client ssh
#source=https://mirrors.sjtug.sjtu.edu.cn/debian/
source=https://mirrors.tuna.tsinghua.edu.cn/debian/
[Utils]
# General purpose utilities
packages=locales vim adduser less wget dialog usbutils
#source=https://mirrors.sjtug.sjtu.edu.cn/debian/
source=https://mirrors.tuna.tsinghua.edu.cn/debian/
[Lhf]
packages=python3 mate-desktop-environment
source=http://mirrors.bfsu.edu.cn/debian
suite=buster
components=main contrib non-free
[Ebf]
packages= ifupdown rsyslog htop iputils-ping
source=http://mirrors.bfsu.edu.cn/debian
suite=buster
components=main
|
其中之需要将需要的安装包添加到 [Ebf] 中的 packages 即可
20.4. 下载与构建¶
然后执行 multistrap -a armhf -d ./rootfs/ -f ./config_file
1 | multistrap -a armhf -d ./rootfs/ -f ./config_file
|
等待配置完成后执行如下代码配置密码
1 2 3 4 5 6 | cd ./rootfs
sudo cp /usr/bin/qemu-arm-static ./usr/bin/
sudo echo "nameserver 8.8.8.8" > ./etc/resolv.conf
sudo chroot ./
passwd root //设置root的密码
exit
|
20.5. 调试与烧写¶
现在我们可以把该目录放置到我们的NFS中试试能否启动,/home/lhf/nfs是你的nfs网络文件系统根目录,若未搭建nfs网络文件系统,请参考 Buildroot根文件系统的构建章节的第5小节 搭建NFS网络系统
如果要烧写到开发板中,参考 根文件系统的几种烧写方法