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. 启动效果图:

虚拟机中模拟uboot启动相关推荐

  1. skyeye模拟uboot启动linux(initrd方式)

    bootelf命令:启动vmlinux bootm命令:启动uImage go命令:启动zImage Linux几种内核镜像及其关系 前言:链接脚本 用户态程序不用关心section的具体位置:在用户 ...

  2. 在VMware虚拟机中安装CentOS 7

    背景: 阅读新闻 [日期:2015-09-22] 来源:Linux社区 作者:Linux [字体:大 中 小] [正文] 一. VMware简介: VMware是一个虚拟PC的软件,可以在现有的操纵系 ...

  3. 途牛windows转linux,在 Windows 中通过 VirtualBox 启动物理硬盘上的 Linux 操作系统...

    满意答案 yyj58568a 2016.09.30 采纳率:45%    等级:9 已帮助:664人 要做这样的虚拟机,首先得是安装了双系统(当然多个系统也没问题).可以是多重引导的,也可以不是.我的 ...

  4. U-boot启动流程

    目录 uboot启动流程如下: 1.首先查看arch/arm/cpu/u-boot.lds链接脚本 2. _start位于arch/arm/cpu/arm920t/start.S 3. 从上面看到, ...

  5. 命令行启动ssh_如何在虚拟机中正确的第一次启动Linux系统

    在小编的上一篇文中,有介绍过如何在Virtualbox虚拟机中安装Linux CentOS系统,今天我们尝试第一次启动Linux系统,为保证虚拟机的流畅运行,建议将分辨率设置为 800x600. 1. ...

  6. uboot启动过程中关闭Caches

    原文地址:<uboot启动代码分析之系统引导时为什么要关闭Caches?> 目录 一.在哪关闭cache 二.系统引导时为什么要关闭Caches 三.关键字Volatile 一.在哪关闭c ...

  7. 启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑

    前言 最近项目中使用阿里的RocketMQ来做消息队列,具体怎么使用RocketMQ不在本文讨论范围之内,其相关帮助文档可以参考如下链接 本文主要记录在使用rocketmq client时,遇到的一些 ...

  8. 虚拟机中CentOS 7 网络服务启动失败

    故障描述 虚拟机中的eth33网卡没有启动,执行systemctl status network.service启动报错 报错信息 [root@zeppelin network-scripts]# s ...

  9. 如何让原本的密码只执行一次_如何在虚拟机中正确的第一次启动Linux系统

    在小编的上一篇文中,有介绍过如何在Virtualbox虚拟机中安装Linux CentOS系统,今天我们尝试第一次启动Linux系统,为保证虚拟机的流畅运行,建议将分辨率设置为 800x600. 1. ...

  10. 导出无法正常启动的VMware虚拟机中的文件

    如果虚拟机无法启动,需要将虚拟机中的一些文件导出来. 怎么办呢?VMware提供了解决方案.操作方法如下: 安装一台新的虚拟机(如果已有另外的虚拟机,但不需要安装) 将这台新装的虚拟机关机(Shut ...

最新文章

  1. 语音标注自动音段对齐工具SPPAS使用笔记
  2. 策略模式——Strategy
  3. Linux基础(9)文本处理三剑客之grep
  4. ubuntu重启+sublime快捷键
  5. u-boot分析之编译体验(零)
  6. 说实话,你的API接口在高并发面前不堪一击!
  7. 防火墙(12)——查看协议被连接的次数、通过连接状态来写规则
  8. 浏览器滚动条样式更改
  9. 何时才使用https访问项目
  10. javascript(面向对象,作用域,闭包,设计模式等)
  11. python 新式类和旧式类_python新式类和旧式类区别
  12. input文本框的readonly和disabled属性区别
  13. c语言编程入门教程for,C语言编程入门教程精 简版.ppt
  14. 【NOIP提高组五校联考】挖金矿
  15. 爬取笔趣阁《斗破苍穹》小说,只需改一下网址,笔趣阁所有小说任意下载
  16. unity -- 存档与读档
  17. verbose=False(TensorFlow)
  18. Rust:error[E0468]: an `extern crate` loading macros must be at the crate root 处理方法
  19. LINQ:使用join进行联接
  20. Linux之yum 命令详解

热门文章

  1. 第四步_安装gcc交叉编译工具
  2. Beautiful选择器/遍历文档树Day3-7
  3. 模型参数选择方法——GridSearch网格搜索
  4. Scala中class、object、case class、case object区别
  5. mysql字符集插入中文数据乱码问题
  6. forEach,for in,for of循环的用法
  7. spring boot发送其他邮件
  8. vector.resize 与 vector.reserve的区别(转载)
  9. HPU--1392 分隔A+B
  10. java文件下载和导出文件名乱码浏览器兼容性问题