1 准备工作
1.1 ubuntu系统或者ubuntu虚拟机
我尝试过ubuntu22.04系统和windows11下vmare+ubuntu22.04虚拟机,都可以进行搭建,旧版本的ubuntu,比如20.04/18.04等,问题应该也不大,可以先尝试
1.2 下载risc-v的根文件系统
下载地址如下:
链接:https://pan.baidu.com/s/1OFVV0APYcVvLBQoT6dpsuA
提取码:1234
解压缩得到4个文件,3个sh脚本+1个根文件系统压缩包:
fuqiang@fuqiang-virtual:~/workspace$ tar -zxvf qemu_ubuntu.tar.gz
qemu_ubuntu/
qemu_ubuntu/mount.sh
qemu_ubuntu/tar_rootfs.sh
qemu_ubuntu/umount.sh
qemu_ubuntu/ubuntu-22.04-rootfs.tar.gz
fuqiang@fuqiang-virtual:~/workspace$ cd qemu_ubuntu/
fuqiang@fuqiang-virtual:~/workspace/qemu_ubuntu$ tree
.
├── mount.sh
├── tar_rootfs.sh
├── ubuntu-22.04-rootfs.tar.gz
└── umount.sh
0 directories, 4 files
2 安装
2.1 安装qemu
sudo apt-get install -y qemu-user-static
2.2 解压ubuntu-22.04-rootfs.tar.gz
fuqiang@fuqiang-virtual:~/workspace/qemu_ubuntu$ tar -zxvf ubuntu-22.04-rootfs.tar.gz
...
这时候,mount.sh,umount.sh,tar_rootfs.sh和解压后的ubuntu-22.04-rootfs文件夹处于同级目录
fuqiang@fuqiang-virtual:~/workspace/qemu_ubuntu$ tree -L 2
.
├── mount.sh
├── tar_rootfs.sh
├── ubuntu-22.04-rootfs
│ ├── bin -> usr/bin
│ ├── boot
│ ├── dev
│ ├── etc
│ ├── home
│ ├── lib -> usr/lib
│ ├── media
│ ├── mnt
│ ├── opt
│ ├── proc
│ ├── root
│ ├── run
│ ├── sbin -> usr/sbin
│ ├── srv
│ ├── sys
│ ├── tmp
│ ├── usr
│ └── var
├── ubuntu-22.04-rootfs.tar.gz
└── umount.sh
19 directories, 4 files
2.3 进入虚拟机
执行mount.sh进入chroot
fuqiang@fuqiang-virtual:~/workspace/qemu_ubuntu$ ./mount.sh
Mounting file system
[sudo] password for fuqiang:
Change root
root@fuqiang-virtual:/#
注意:mount.sh目前只能运行1次,如果要再次重新运行,需要先exit,然后执行umount.sh
2.4 使用虚拟机
现在,可以正常使用该虚拟机进行编译。
2.4.1 拷贝文件
将文件copy到解压后的ubuntu-22.04-rootfs文件夹中的某个目录即可,示例如下,copy一个视频文件到test文件夹,mount后,可以看到该视频文件
--->mount前将文件copy到如下目录
fuqiang@fuqiang-virtual:~/workspace/qemu_ubuntu/ubuntu-22.04-rootfs/home/test$ ls
1080P.mov
--->mount后,可以正常使用该文件
root@fuqiang-virtual:/home/test# ls
1080P.mov
2.5 退出虚拟机
root@fuqiang-virtual:/# exit
exit
fuqiang@fuqiang-virtual:~/workspace/qemu_ubuntu$ ./umount.sh
Umounting file system