制作aarch64/arm64 Debian rootfs系统

安装debootstrap和qemu-user-static

apt install apt-transport-https qemu qemu-user-static binfmt-support debootstrap

构建Debian 10(buster)系统,基础包为minbase,使用清大的源:

如果想用其他的源,建议将你本机系统的源也换成相应的,然后update下以更新相应的key以及文件

variant 说明

  • minbase: 只包含必要的包和apt;
  • buildd: 包含编译工具包
  • fakechroot: 包含不用root权限的包
  • scratchbox: 包含scratchbox(交叉编译工具链)相关包
qemu-debootstrap --arch arm64 --variant=minbase --include=whiptail,ca-certificates,tzdata buster rootfs http://mirrors.ustc.edu.cn/debian/

Ps:如果想制作Ubuntu系统同理。看下http://mirrors.ustc.edu.cn里面的支持的镜像
Eg:

qemu-debootstrap --arch arm64 --variant=minbase --include=whiptail,ca-certificates,tzdata bionic rootfs http://mirrors.ustc.edu.cn/ubuntu-ports/

执行完成后应该会在当前目录下有rootfs文件夹

拷贝qemu

cp  /usr/bin/qemu-aarch64-static  rootfs/usr/bin

换源

sed -i 's#http://deb.debian.org#http://mirrors.ustc.edu.cn#g' rootfs/etc/apt/sources.list
# 原始源
sed -i 's#http://ports.ubuntu.com#http://mirrors.ustc.edu.cn#g' rootfs/etc/apt/sources.list

配置网络信息:

$ echo 'nameserver 192.168.2.1' > rootfs/etc/resolv.conf
$ mkdir rootfs/etc/netplan
$ cat > rootfs/etc/netplan/50-cloud-init.yaml <<EOF
network:
    ethernets:
        eth0:
        	dhcp4: no
            addresses: [192.168.168.6/24]
            gateway4: 192.168.168.1
            nameservers:
                addresses: [192.168.168.1]
    version: 2
EOF

配置系统信息

echo 'Debian10' > rootfs/etc/hostname
echo "127.0.0.1 localhost" > rootfs/etc/hosts
echo "127.0.0.1 Debian10" >> rootfs/etc/hosts

挂载本地设备文件到rootfs:

mount -t proc /proc  rootfs/proc
mount -t sysfs /sys  rootfs/sys
mount -o bind /dev  rootfs/dev
mount -o bind /dev/pts  rootfs/dev/pts

chroot rootfs内配置:

LANG=zh_CN.UTF-8 chroot rootfs/ /bin/bash

在rootfs内执行

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
apt update
apt upgrade
apt install systemd -y
apt install wireless-regdb crda -y
apt install rsyslog udev dbus kmod openssh-server openssh-client netplan.io man vim wget net-tools sysstat tmux less wireless-regdb crda dosfstools parted sudo git iputils-ping -y
#你还可以安装其他的工具

需要工具链的可以执行以下命令

apt install gcc g++ -y (或者选择buildd的包)
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config

最后的准备

passwd root
umount /dev/pts/ /dev/ /proc/ /sys
exit

如果需要添加用户,使用

useradd -m debian -g sudo -s /bin/bash -d /home/debian

到这里就可以烧写到板子上了
退出后,打包
可选设置网络DHCP

cat > /etc/netplan/50-cloud-init.yaml <<EOF
network:
    ethernets:
        eth0:
        		dhcp4: yes
    version: 2
EOF

打包

cd rootfs
tar jcvf ../rootfs.tar.bz2 *

上级目录得到rootfs.tar.bz2,可以烧写到板子上。
如何生成img文件等我另一个帖子!!!

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值