目录
- 1.安装kvm
- 2.获取百问网imx6ull-qemu开发镜像
- 3.运行百问网imx6ull-qemu开发镜像
- 4.获取百问网imx6ull-qemu开发板内核源码和工具链
- 5.下载百问网快速入门资料
- 6.设置环境变量
- 7.为了后续编译驱动,需要先编译内核
- 8.编译驱动
- 9.上传驱动以及应用程序
- 10.更换文件系统
1.安装kvm
sudo apt-get update
sudo apt-get install qemu qemu-kvm libvirt-bin bridge-utils virt-manager
注:可以起到加速的效果
2.获取百问网imx6ull-qemu开发镜像
git clone https://e.coding.net/weidongshan/ubuntu-16.04_imx6ul_qemu_system.git
git clone https://e.coding.net/weidongshan/ubuntu-18.04_imx6ul_qemu_system.git
注:对应不同的ubuntu系统
3.运行百问网imx6ull-qemu开发镜像
./install_sdl.sh
./qemu-imx6ull-gui.sh
4.获取百问网imx6ull-qemu开发板内核源码和工具链
book\@100ask:\~\$ git clone https://e.coding.net/codebug8/repo.git
book\@100ask:\~\$ mkdir -p 100ask_imx6ull-qemu && cd 100ask_imx6ull-qemu
book\@100ask:\~/100ask_imx6ull-qemu\$ ../repo/repo init -u https://e.coding.net/weidongshan/manifests.git -b linux-sdk -m imx6ull/100ask-imx6ull_qemu_release_v1.0.xml --no-repo-verify
book\@100ask:\~/100ask_imx6ull-qemu\$ ../repo/repo sync -j4
5.下载百问网快速入门资料
git clone https://e.coding.net/weidongshan/01_all_series_quickstart.git
6.设置环境变量
永久生效
book\@100ask:\~\$ vi ~/.bashrc
在行尾添加或修改:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
使环境变量生效:
source ~/.bashrc
临时生效
如果你有很多单板,为了不冲突,你不能使用“永久生效”的办法。比如你有32位的ARM板,也有64位的ARM板,在使用前者时需要设置ARCH=arm,在使用后者时需要设置ARCH=arm64。
这种情况下,可以使用“export”命令设置环境变量,这种设置方法只对当前终端有效:
book\@100ask:\~\$ export PATH=$PATH:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
book\@100ask:\~\$ export ARCH=arm
book\@100ask:\~\$ export CROSS_COMPILE=arm-linux-gnueabihf-
手动指定
执行make命令时,可以手工指定ARCH架构、CROSS_COMPILE等变量:
book\@100ask:\~\$ export PATH=$PATH:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
book\@100ask:\~\$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
7.为了后续编译驱动,需要先编译内核
book\@100ask:\~/100ask_imx6ull-qemu\$ cd linux-4.9.88
book\@100ask:\~/100ask_imx6ull-qemu/linux-4.9.88\$ make mrproper
book\@100ask:\~/100ask_imx6ull-qemu/linux-4.9.88\$ make 100ask_imx6ull_qemu_defconfig
book\@100ask:\~/100ask_imx6ull-qemu/linux-4.9.88\$ make zImage -jN //编译zImage内核镜像,其中N参数可以根据CPU个数,来加速编译系统。
book\@100ask:\~/100ask_imx6ull-qemu/linux-4.9.88\$ make dtbs //编译设备树文件
注:为了后续编译驱动,需要先编译内核
8.编译驱动
测试驱动为此目录下的led驱动,可以稍作修改,然后编译
01_all_series_quickstart/05_嵌入式Linux驱动开发基础知识/source/02_led_drv/02_led_drv_for_boards/100ask_imx6ull-qemu_src_bin
9.上传驱动以及应用程序
ubuntu主机启动nfs
sudo apt-get install nfs-kernel-server
修改/etc/exports,添加类似以下的内容,
/home/book *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
/work *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
注:以上的例子里允许开发板通过NFS访问Ubuntu的/home/book、/work两个目录
ubuntu主机 重启nfs
sudo /etc/init.d/nfs-kernel-server restart
ubuntu主机 测试nfs
可以在Ubuntu上通过NFS挂载自己,验证一下NFS可用:
sudo mount -t nfs -o nolock,vers=3 127.0.0.1:/home/book /mnt
ls /mnt
开发板配置网络
QEMU运行时,Ubuntu是Host即宿主机,QEMU给它分配的IP是10.0.2.2。
QEMU模拟的imx6ull板子是Guest即客户机,它会自动获取IP,也可以自己设置。
Guest可以通过10.0.2.2访问Host,Host不能访问Guest。
Guest中可以使用ifconfig命令查看IP,如果没有IP,可以如下设置:
[root@qemu_imx6ul:~]# ifconfig eth0 10.0.2.15
开发板挂载主机nfs目录
QEMU模拟的imx6ull开发板,可以去访问10.0.2.2,比如使用NFS挂载:
[root@qemu_imx6ul:~]# mount -t nfs -o nolock,vers=3 10.0.2.2:/home/book/nfs_rootfs /mnt
如果一切正常,在开发板上就可以通过/mnt目录访问Ubuntu的/home/book/nfs_rootfs目录了。
10.更换文件系统
如果你修改过内核,或是修改过设备树文件。
那么可以用上面2个文件去替换QEMU中的zImage和100ask_imx6ull_qemu.dtb。
QEMU中的zImage和100ask_imx6ull_qemu.dtb,通过打开qemu-imx6ull-gui.sh就可以知道这2个文件的位置,一般是位于imx6ull-system-image目录
安装好百问网提供的QEMU后,你可以得到一个imx6ull-system-image目录,里面有名为rootfs.img的文件,它就是根文件系统:
你可以在Ubuntu下直接修改rootfs.img,不过要先挂载,执行以下命令:
sudo mount -o loop rootfs.img /mnt
你就可以在/mnt目录下对其中的文件进行操作了,也可以把Ubuntu中的文件复制进去。
注意:修改完毕后,要执行以下命令:
sudo umount /mnt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)