在上一篇博文介绍了 《基于 NXP i.MX8QM Xen 双系统 环境搭建》 , 在这篇博文中将向大家介绍双系统的启动流程 :首先启动的是 SD 卡 ,Linux 启动后 Dom0 会加载完成 ,然后通过 xl 应用创建 DomU,启动 eMMC 里面的 Android 系统
一、i.MX8QM 双系统烧录
1.1 SD 卡烧录
1.1.1 烧录 SD 卡镜像文件
在 Yocto build-wayland_8qm_mipi/tmp/deploy/images/imx8qmmek 目录下 ,通过 dd 命令进行烧录 :
$ bunzip2 -dk -f fsl-image-validation-imx-imx8qmmek.sdcard.bz2
$ sudo dd if=fsl-image-validation-imx-imx8qmmek.sdcard of=/dev/sdb bs=1M conv=fsync
PS :可以通过 df 查看 SD 卡挂载的名称 /dev/sdb
1.1.2 从 Android 生成的文件夹中拷贝 spl-imx8qm-xen.bin 到 SD 卡的 FAT Partition
1.1.3 把 Android 中的 u-boot-imx8qm-xen-dom0.imx 烧录到 SD 卡
$ sudo dd if=u-boot-imx8qm-xen-dom0.imx of=/dev/sdb seek=32 bs=1k && sync
1.2 eMMC 烧录
进入到 Android 目录下的 out/target/product/mek_8q 文件夹 ,我使用的是 i.MX8QM EVM 板 ,
首先把板设置为 fuse eMMC 烧录模式 ,接着使用 uuu_imx_android_flash.sh 进行烧录 ,烧录前请确认系统安装了 fastboot 工具
$ sudo ./uuu_imx_android_flash.sh -f imx8qm -d xen
二. i.MX8QM 双系统运行
插入 SD 卡 ,选择从 SD 卡启动 ,启动后按 Enter 键让程序停在 u-boot Console ,输入
以下命令 :
=> setenv domu-android-auto yes
=> saveenv
=> run xenmmcboot
进入到系统之后 ,使用 xl 命令通过 DomU 启动 Android 系统 :
$ xl create /etc/xen/domu-imx8qm-mek-androidauto.cfg
使用 xl console DomU 进入 Android console
$ xl console DomU
下面的图片左边运行的是 Android Car 的系统 ,右边是 Linux 系统 :
左边是 Android App 界面 ,右边是运行 GPU Demo 的界面
以上便是在 i.MX8QM 上使用 Xen 的方式运行双系统的过程。如果需进一步的技术交流讨论,请关注我“飞车侠”,并给我留言,我看到后会尽快回复~
三、参考文档
【1】 i.MX Virtualization User's Guide , NXP Semiconductor ,Rev. 1 ,05/2019,Document Number: IMXVIRTUG
评论
mat_lues
2 个月前