2.3 可选操作:扩展根文件系统分区尺寸 插入读卡器到 Linux 系统下,执行以下操作来扩展根文件系统分区尺寸:(sdX 的 X 表示你实际的读卡器盘符字母) sudo e2fsck -f /dev/sdX7sudo resize2fs -p /dev/sdX73 启动 Debian RISC-V TF卡制作完成后,接下来启动 Debian RISC-V TF 卡。 首先使用 USB2TTL 串口工具链接 D1 的 debug 口,插入 TF 到 D1 的 TF 卡座,然后使用 minicom 连接串口。 连接之前,请确认关闭 minicom 的硬件流控,具体操作如下: $ sudo minicom -s+------[设置]---------+| 文件名和路径 || 文件传输协定 || 串口设置 || 调制解调器和拨接 || 屏幕和键盘 || 保存设置为 dfl || 另存设置为… || 离开本画面 || 离开 Minicom |+-------------------+选择 “串口设置”,设定效果如下: +-----------------------------------------------------------------------+ || A - 串行设备 : /dev/modem | || B - 锁文件位置 : /var/run ||| C - 拨入程序 : | || D - 拨出程序 : | || E - Bps/Par/Bits : 115200 8N1 | || F - 硬件流控制 : 否 || G - 软件流控制 : 否 || H - RS485 Enable : No || I - RS485 Rts On Send : No | || J - RS485 Rts After Send : No || K - RS485 Rx During Tx : No || L - RS485 Terminate Bus : No | || M - RS485 Delay Rts Before: 0 || N - RS485 Delay Rts After : 0 | || | || 变更设置? | |+-----------------------------------------------------------------------+说明 :按 F 切换硬件流控,选择为关闭,按回车间确认,放回到主界面保存设置。 确认无误后,再次连接 D1 串口: $ minicom -c on -b **115200** -D /dev/ttyUSB0然后使用 Type-C 数据线连接 OTG 接口,minicom 会输出相应启动信息。 不出意外的话会进入 Debian RISC-V 的系统。 Debian RISC-V 系统默认用户名:root 密码:rvboards 4 备份 Debian RISC-V 的 rootfs后面需要把 Debian 替换为 ArchLinux,这里先做一下备份,方便后面使用。 将 D1 断电,拔出 TF 卡,通过读卡器挂载到自己的开发主机上,然后备份好 Debian RISC-V 的 rootfs。 此处以 sde5 为例,根据实际情况找到 rootfs 磁盘: $ mount /dev/sde5 /mnt$ cd /mnt备份当前 Debian RISC-V rootfs: $ tar -zcvf . ~/debian-riscv-`date -s`.tar.xz删除 Debian RISC-V rootfs( 注意 :请确保当前在刚挂载的 /mnt 目录下): $ pwd/mnt$ sudo rm -rf .5 替换为 ArchLinux RISC-V rootfs接下来回到主题,我们把 Debian rootfs 替换为 ArchLinux。 5.1 下载 ArchLinux risc-v rootfs 系统将 archriscv-20210601.tar.zst 下载到 ~/ 下: $ wget -c https://archriscv.felixc.at/images/archriscv-20210601.tar.zst5.2 解压 ArchLinux RISC-V rootfs将 archriscv-20210601.tar.zst 解压到上面准备好的 /mnt 下: ArchLinux 系统用户可以这么操作: $ sudo bsdtar -xvf ~/archriscv-20210601.tar.zst -C /mnt/非 ArchLinux 系统用户,依赖 zstd 库,没有此库的用户自行安装: sudo tar -I zstd -xvf ~/archriscv-20210601.tar.zst -C /mnt/6 配置 ArchLinux RISC-V rootfs6.1 通过虚拟机启动 ArchLinux RISC-V rootfs$ sudo systemd-nspawn -D /mnt/ --machine archriscv -a -UArchLinux RISC-V 的默认<span> </span>root 密码为 sifive。 说明 : systemd-nspawn 来自包 systemd-container。 6.2 配置 ArchLinux RISC-V 的静态 IP 地址此处以默认网卡为 eth0 为例,实际通过 ip addr 获取网卡信息: 首先查看网络状态: $ sudo systemctl status systemd-networkd通过 cat 配置静态 IP 文件: $ sudo cat > /etc/systemd/network/10-static-eth0.network << EOF[Match]Name=eth0[Network]Address=192.168.1.199/24Gateway=192.168.1.1DNS=192.168.1.1 223.5.5.5 114.114.114.114EOF把服务加入开机自启: sudo systemctl reenable systemd-networkd重启系统: sudo reboot查看 IP: $ ip addr # 或者 ifconfig如果静态 IP 重启后变成动态 IP,可以审查是否因为 networkmanager 引起,如果是请执行下面命令卸载:
sudo pacman -Rsn pacman -Qsq networkmanager network-manager-applet 6.3 配置 /etc/fstab这里主要是使得根目录是 rw 的(这能避免一些 SEGV): /dev/mmcblk0p5 / ext4 rw 0 16.4 修改镜像源如果存在类似下面的 SSL 连接错误: pacman -Syyus.ac.cn/archriscv_archriscv.felixc.at_g' /etc/pacman.conf cat /etc/pacman.conf:: Synchronizing package databases...error: failed retrieving file 'core.db' from archriscv.felixc.at : SSL certificate problem: certificate is not yet validerror: failed to update core (download library error)error: failed retrieving file 'extra.db' from archriscv.felixc.at : SSL certificate problem: certificate is not yet validerror: failed to update extra (download library error)error: failed retrieving file 'community.db' from archriscv.felixc.at : SSL certificate problem: certificate is not yet validerror: failed to update community (download library error)error: failed to syn请将 https 替换成 http: $ sudo sed -i 's_https_http_g' /etc/pacman.conf如果是下载速度慢可以换其他镜像站: $ sudo sed -i 's_archriscv.felixc.at_mirrors.wsyu.edu.cn/archriscv_g' /etc/pacman.conf6.5 退出 ArchLinux RISC-V 虚拟机按下 Ctrl + D 或输入: exit6.6 卸载 /mnt 分区sudo umount -R /mnt7 正式使用 ArchLinux RISC-V rootfs安全弹出 TF 卡,插入 D1 TF 卡座,OTG 接口供电,不出意外是能进入 ArchLinux risc-v 的 rootfs。 请注意,ArchLinux RISC-V 的默认<span> </span>root 密码为 sifive。
|