虛擬機中模擬uboot啓動

8.虛擬機中調試uboot

嵌入式系統要正常運行,應該包含:u-boot、kernel、rootfs、appfs。這幾部分在ARM開發板Flash上的位置關係應該類似於下圖所示:

1. make環境

alpha@ubuntu:~/share/u-boot-2018.09$ sudo apt-get install bison

alpha@ubuntu:~/share/u-boot-2018.09$ sudo apt-get install flex

2. 生成配置文件

root@ubuntu:/home/alpha/share/u-boot-2019.10-rc2#  make vexpress_ca9x4_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

#

# configuration written to .config

#

這種方式編譯比較直接,但是在調試時,需要多次編譯u-boot,參數太多會帶來不便,於是可以通過以下方法,修改Makefile和config.mk文件中的ARCH和CROSS_COMPILE選項,在編譯的時候就可以省去了在編譯命令中添加編譯配置的設置。

3. 編譯uboot

make -j6 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

4. uboot啓動腳本

5. 啓動後效果

9.uboot 與kernel結合在一起

1. 編譯內核文件

root@ubuntu:/home/alpha/share/linux-4.4.157# cp mkimage /usr/bin/

root@ubuntu:/home/alpha/share/linux-4.4.157# make LOADADDR=0x60003000 uImage -j4

2. uboot啓動過程中從主機獲取內核版本

Qemu虛擬機在u-boot啓動時,需要將uImage加載到內存,而uImage從哪裏來?可以通過TFTP服務器下載uImage到內存指定地址。而在這之前需要通過橋接方式將網絡鏈接到Xubuntu系統。

1. 配置Qemu與主機的網絡連接

採用橋接網絡連接Host主機通信
主機內核需要支持tun/tap模塊

配置Xubuntu主機

2. 安裝橋接網絡依賴的兩個工具:

root@ubuntu:/home/alpha/share/qemu#  apt install uml-utilities bridge-utils

Reading package lists... Done

Building dependency tree      

Reading state information... Done

Suggested packages:

3.手動創建下面目錄

修改/etc/network/interfaces文件配置網絡

3. 重啓系統,使配置生效

添加qemu有關係統腳本

在/etc/qemu-ifdown文件中添加以下內容

給上面的腳本添加執行權限

重啓網絡使生效

4.查看Qemu的網絡環境

經過上面配置後,ssh客戶端以及虛擬機內部都可以上網

虛擬網口br0即Qemu虛擬機與Linux主機通訊的網口

3. 安裝TFTP服務器

創建TFTP服務器,用來給Qemu模擬開發板啓動uImage時,下載uImage到內存中。

1) 安裝Linux主機Host的TFTP服務器工具:

root@ubuntu:/home/alpha# sudo apt install tftp-hpa tftpd-hpa xinetd

2) 修改配置文件,設置TFTP服務器目錄:

3) Linux主機上創建tftp目錄:

4) 重啓tftp服務:

4. 設置u-boot中的內核啓動參數

此處文件系統爲

注意修改ftfp的路徑

5. 啓動效果圖:

 

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