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環境下啓動新編譯的內核和設備樹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章