分别使用 QEMU 和 Docker 配置 Deepin RISCV64 环境小问题总结
该文写于 PLCT deepin 小队实习期间,总结配置修包所需要的 deepin RISCV64 环境时遇到的一些细节问题。笔者很菜,是在参考大佬的教程下,总结一些自己遇到的问题和解决办法,希望能帮助到和笔者一样的小白。
搭建 Deepin RISCV64 QEMU环境
参考教程:
解压tar文件到临时的内核文件系统
mkdir deepin && sudo tar -zxvf deepin-beige-stage1-dde.tar -C ./deepin
报错:
gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now
解决办法:去除参数z
mkdir deepin && sudo tar -xvf deepin-beige-stage1-dde.tar -C ./deepin
$ sudo losetup -P /dev/loop019 deepin.raw
losetup: /dev/loop019:设置回环设备失败: 没有那个文件或目录
csc@csc-virtual-machine:~/桌面/deepin/deepin/etc$ sudo losetup -P /dev/loop19 deepin.raw
losetup: deepin.raw:设置回环设备失败: 设备或资源忙
解决办法:尝试其他loop编号
sudo losetup -P /dev/loop33 deepin.raw
注意,在 fdisk 交互式操作界面中,先按 g
新建 gpt 表,再按 n
新建分区,然后一直回车,最后w退出
sudo fdisk /dev/loop33 //磁盘分区,先按g,再按n,一路回车,最后w退出
Docker 运行 Deepin RISCV64
这次使用到的 docker 镜像还属于内部资料,暂时不能公开,但遇到的一些问题和解决方案应该是普遍适用的。
要注意设置一下虚拟机的网络,Vmware有三种网络连接模式:桥接、NAT、主机模式,分别对应虚拟网络编辑器中的VMNnet0、VMnet8、VMnet1。在这里要设置为 NAT 模式。
在第一次通过 docker pull 获取镜像时,可能会因为网络原因无法正常拉取 gcr.io、quay.io、ghcr.io 容器镜像,这时可以尝试通过换源解决。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["镜像加速器"]
}
EOF
sudo systemctl daemon-reload //换源后重启docker
sudo service docker restart
//镜像加速器示例
hub-mirror.c.163.com //网易云
docker.mirrors.ustc.edu.cn //科大
......
在 docker 中使用 git 时要先配置 ssh ,再此不再赘述。