虚拟机中模拟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. 启动效果图:

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值