QEMU两种模式
交叉编译
- gcc -o hello hello.c是编译c文件供PC机上的linux系统使用。
- 供ARM芯片运行的文件需要arm-xxx-gcc去编译
- QEMU:能够完成仿真,在PC机上仿真出一个实际芯片,那么arm-xxx-gcc编译文件在PC上运行相当于在ARM芯片上运行。
因此有如下结果:
QEMU安装及使用
- 配置git保证能够访问百问网获取QEMU镜像
- git clone https://e.coding.net/… 克隆远程版本库,获取镜像文件,在/home/book下有文件ubuntu-18.04_imx6ul_qemu_system如下层次:
- 安装SDL文件
- 运行im6ul仿真模拟器
cd ubuntu-18.04_imx6ul_qemu_system
./qemu-imx6ull-gui_test.sh
得到仿真器界面。
挂载
什么是挂载
NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。
NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利。
挂载的条件及步骤
客户机需要挂载到主机上的条件是两者在同一局域网(能够相互ping通)。
- Ubantu某一目录开权限,设置共享。
- 启动NFS服务
以上两者在安装虚拟机初始化阶段已经构建好,可以用cat /etc/exports查看。 - mount把共享文件夹挂载在本地文件夹下。
执行如下程序进行挂载(执行前ip一定要设置好)
mount -t nfs -o nolock,vers=3 10.0.2.2:/home/book/nfs_rootfs /mnt
可通过在主机终端,touch一个txt文件,在挂载机中ls查看验证。
~可从imx6ul中跳到主目录。
( 2023.03.09)
仿真实操
触摸屏仿真
触摸屏仿真的程序位于git库rootfs_test下
将上述文件夹移动,在/home/book下新建nfs_rootfs文件夹并将上述文件夹copy进来
将本地文件夹/mnt挂载到/home/book/nfs_rootfs下,使得/mnt能够访问仿真程序(能够在客户机端即仿真芯片上跑仿真程序)
mount -t nfs -o nolock,vers=3 10.0.2.2:/home/book/nfs_rootfs /mnt
(为什么有时候单条程序执行不了,需要用到相对路径,而有时候可以不同呢)
例如 ./qemu-imx6ull-gui_test.sh可以执行 qemu-imx6ull-gui_test.sh是错的?
还有打开book需要用到相对路径,不然ls不了?
cd /mnt 但是cd mnt 和 cd ./mnt均不行 emmm需要大神解答
在客户机端查看相关目录(~和/分别如何进入,/mnt在/目录下)
进入/目录,然后进入/mnt,查看/mnt下的文件,如下说明成功了。
ts_calibrate //执行校准试验
ts_test //测试试验
测试试验退出到终端:
- 在上图所示左侧客户机端ctrl+a,松开后输入x;
- 或者在另一个终端中输入 killall qemu-system-arm。
进入QEMU仿真前的目录。