QEMU imx6ul开发板环境搭建

QEMU imx6ul开发板环境搭建

0. 前言

最近在基于韦东山老师的imx6ul开发板学习嵌入式linux内容,在此记录一下自己的操作步骤,更多详细内容请访问百问网QEMU

在不方便使用开发板直接调试的时候,可以使用韦东山老师提供的QEMU虚拟开发板硬件进行简单调试,非常便捷。

1. 基本环境

  • Host:Win10 64bit
  • 虚拟机软件:VMware Workstation Pro 15
  • 虚拟机系统:ubuntu 18.04 64bit

可以直接下载百问网提供的虚拟机镜像:

虚拟机登陆密码:123456

2. 安装KVM

安装KVM可以加速qemu的运行,在ubuntu终端执行以下指令:

sudo apt-get update
sudo apt-get install qemu qemu-kvm libvirt-bin bridge-utils virt-manager

3. 下载开发板的QEMU镜像文件

git clone https://e.coding.net/weidongshan/ubuntu-18.04_imx6ul_qemu_system.git

命令执行完成后,会得到ubuntu-18.04_imx6ul_qemu_system目录,其结构如下:

在这里插入图片描述

4. 运行QEMU系统

进入ubuntu-18.04_imx6ul_qemu_system目录,执行以下操作。

4.1 安装SDL环境

如果是第一次运行QEMU系统,那么需要安装SDL环境,命令如下:

./install_sdl.sh

安装过程中可能会遇到如下错误提示信息:

dpkg: dependency problems prevent configuration of libxcb-xfixes0-dev:amd64:
 libxcb-xfixes0-dev:amd64 depends on libxcb-shape0-dev; however:
  Package libxcb-shape0-dev is not installed.

dpkg: error processing package libxcb-xfixes0-dev:amd64 (--install):
 dependency problems - leaving unconfigured
 
dpkg: dependency problems prevent configuration of libxcb-present-dev:amd64:
 libxcb-present-dev:amd64 depends on libxcb-xfixes0-dev; however:
  Package libxcb-xfixes0-dev:amd64 is not configured yet.

dpkg: error processing package libxcb-present-dev:amd64 (--install):
 dependency problems - leaving unconfigured

dpkg: dependency problems prevent configuration of libegl1-mesa-dev:amd64:
 libegl1-mesa-dev:amd64 depends on libxcb-present-dev; however:
  Package libxcb-present-dev:amd64 is not configured yet.

dpkg: error processing package libegl1-mesa-dev:amd64 (--install):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libgl1-mesa-dev:amd64:
 libgl1-mesa-dev:amd64 depends on libxcb-present-dev; however:
  Package libxcb-present-dev:amd64 is not configured yet.

dpkg: error processing package libgl1-mesa-dev:amd64 (--install):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libgles2-mesa-dev:amd64:
 libgles2-mesa-dev:amd64 depends on libegl1-mesa-dev; however:
  Package libegl1-mesa-dev:amd64 is not configured yet.

dpkg: error processing package libgles2-mesa-dev:amd64 (--install):
 dependency problems - leaving unconfigured
Setting up libglib2.0-dev-bin (2.56.4-0ubuntu0.18.04.4) ...
dpkg: dependency problems prevent configuration of libglu1-mesa-dev:amd64:
 libglu1-mesa-dev:amd64 depends on libgl1-mesa-dev | libgl-dev; however:
  Package libgl1-mesa-dev:amd64 is not configured yet.
  Package libgl-dev is not installed.
  Package libgl1-mesa-dev:amd64 which provides libgl-dev is not configured yet.

dpkg: error processing package libglu1-mesa-dev:amd64 (--install):
 dependency problems - leaving unconfigured

Errors were encountered while processing:
 libxcb-xfixes0-dev:amd64
 libxcb-present-dev:amd64
 libegl1-mesa-dev:amd64
 libgl1-mesa-dev:amd64
 libgles2-mesa-dev:amd64
 libglu1-mesa-dev:amd64
 libsdl2-dev:amd64

可以通过如下指令进行修复:

sudo apt --fix-broken install

4.2 运行带GUI的imx6ul模拟器

./qemu-imx6ull-gui.sh //启动后,登录名是root,不需要密码。

在这里插入图片描述

4.3 运行不带GUI的imx6ul模拟器

./qemu-imx6ull-nogui.sh //启动后,登录名是root,不需要密码。

5. 编译修改Linux内核

5.1 下载内核源码

git clone https://e.coding.net/codebug8/repo.git
mkdir -p 100ask_imx6ull-qemu && cd 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
../repo/repo sync -j4

上述命令执行完成后,会得到100ask_imx6ull-qemurepo两个目录,100ask_imx6ull-qemu包含了linux-4.9.88(linux内核源码目录)和ToolChain(交叉编译工具链目录)。

5.2 编译源码

5.2.1 配置编译环境(非永久性配置)

由于我的ubuntu虚拟机需要用来编译不同的开发板,所以采用如下方式配置编译环境。该方式只对当前终端有效,不会影响其他终端中的开发板源码编译。

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin

PATH变量的配置需要根据你的ToolChain所在目录进行修改。

5.2.2 编译内核

编译过程需要lzop工具,因此需要先执行sudo apt-get install lzop进行安装,以免编译失败。

cd linux-4.9.88 //进入内核源码目录
make mrproper //完全清除以前的配置
make 100ask_imx6ull_qemu_defconfig //基于开发板信息配置linux内核编译选项
 make zImage -jN //编译zImage内核镜像,其中N参数可以根据CPU个数,来加速编译系统。
make dtbs //编译设备树文件

编译完成后,会得到如下文件:

linux-4.9.88/arch/arm/boot/zImage //内核文件
linux-4.9.88/arch/arm/boot/dts/100ask_imx6ull_qemu.dtb //设备树文件

将编译生成的zImage100ask_imx6ull_qemu.dtb替换ubuntu-18.04_imx6ul_qemu_system/imx6ull-system-image/目录下的zImage100ask_imx6ull_qemu.dtb文件后,执行4.2章节qemu-imx6ull-gui.sh命令即可在QEMU环境下启动新编译的内核和设备树。

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
也可去华为网盘下载! http://dl.dbank.com/c0f2x98c6n# 第1课 环境搭建及工具、概念介绍 第2课 GPIO实验 第3课 存储管理器实验 第4课 MMU实验 第5课 NAND FLASH控制器 第6课 中断控制器 第7课 系统时钟和UART实验 第8课 LCD实验 第9课第1节 u-boot分析之编译体验 第9课第2节 u-boot分析之Makefile结构分析 第9课第3节 u-boot分析之源码第1阶段 第9课第3节 u-boot分析之源码第2阶段 第9课第4节 u-boot分析之u-boot命令实现 第9课第5节 u-boot分析_uboot启动内核 第10课第1节 内核启动流程分析之编译体验 第10课第2节 内核启动流程分析之配置 第10课第3节 内核启动流程分析之Makefile 第10课第4节 内核启动流程分析之内核启动 第11课第1节 构建根文件系统之启动第1个程序 第11课第2节 构建根文件系统之init进程分析 第11课第3节 构建根文件系统之busybox 第11课第4节 构建根文件系统之构建根文件系统 第12课第1节 字符设备驱动程序之概念介绍 第12课第2.1节 字符设备驱动程序之LED驱动程序_编写编译 第12课第2.2节 字符设备驱动程序之LED驱动程序_测试改进 第12课第2.3节 字符设备驱动程序之LED驱动程序_操作LED 第12课第3节 字符设备驱动程序之查询方式的按键驱动程序 第12课第4.1节 字符设备驱动程序之中断方式的按键驱动_Linux异常处理结构 第12课第4.2节 字符设备驱动程序之中断方式的按键驱动_Linux中断处理结构 第12课第4.3节 字符设备驱动程序之中断方式的按键驱动_编写代码 第12课第5节 字符设备驱动程序之poll机制 第12课第6节 字符设备驱动程序之异步通知 第12课第7节 字符设备驱动程序之同步互斥阻塞
QEMU是一款开源的虚拟化软件,可以模拟多种硬件架构的电脑系统。i.MX 6ULL是一款由恩智浦(NXP)公司推出的基于ARM Cortex-A7架构的低功耗嵌入式处理器。在QEMU中,有关i.MX 6ULL的文档主要包括以下内容: 1. 架构支持:QEMU通过提供支持i.MX 6ULL处理器的虚拟机镜像,实现了在桌面计算机上模拟运行i.MX 6ULL嵌入式系统的功能。这些虚拟机镜像可以在Windows、Linux等操作系统上运行。 2. 硬件模拟:QEMU通过模拟i.MX 6ULL处理器的各种外设,如GPIO、UART、SPI、I2C等,使得开发者可以在模拟环境中进行嵌入式软件的开发和测试。同时,QEMU还支持网络模拟和文件系统模拟等功能,让开发者可以更全面地测试嵌入式系统的各种功能。 3. 开发工具链支持:QEMU提供了与i.MX 6ULL处理器兼容的开发工具链,例如GCC编译器和GDB调试器,方便开发者进行源代码的编译和调试工作。开发者可以在模拟环境中进行嵌入式软件的单步调试、变量查看等操作,加速开发效率。 4. 文档资源:针对i.MX 6ULL在QEMU中的应用,QEMU官方提供了丰富的文档资源。这些文档包括用户手册、API文档、示例代码等,帮助开发者更好地理解和使用QEMU中的i.MX 6ULL功能。 总之,QEMU提供了开发者在桌面计算机上模拟运行i.MX 6ULL嵌入式系统的强大功能和丰富资源,方便开发者进行嵌入式软件的开发、调试和测试工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值