虚拟机中模拟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. 启动效果图:
虚拟机中模拟uboot启动相关推荐
- skyeye模拟uboot启动linux(initrd方式)
bootelf命令:启动vmlinux bootm命令:启动uImage go命令:启动zImage Linux几种内核镜像及其关系 前言:链接脚本 用户态程序不用关心section的具体位置:在用户 ...
- 在VMware虚拟机中安装CentOS 7
背景: 阅读新闻 [日期:2015-09-22] 来源:Linux社区 作者:Linux [字体:大 中 小] [正文] 一. VMware简介: VMware是一个虚拟PC的软件,可以在现有的操纵系 ...
- 途牛windows转linux,在 Windows 中通过 VirtualBox 启动物理硬盘上的 Linux 操作系统...
满意答案 yyj58568a 2016.09.30 采纳率:45% 等级:9 已帮助:664人 要做这样的虚拟机,首先得是安装了双系统(当然多个系统也没问题).可以是多重引导的,也可以不是.我的 ...
- U-boot启动流程
目录 uboot启动流程如下: 1.首先查看arch/arm/cpu/u-boot.lds链接脚本 2. _start位于arch/arm/cpu/arm920t/start.S 3. 从上面看到, ...
- 命令行启动ssh_如何在虚拟机中正确的第一次启动Linux系统
在小编的上一篇文中,有介绍过如何在Virtualbox虚拟机中安装Linux CentOS系统,今天我们尝试第一次启动Linux系统,为保证虚拟机的流畅运行,建议将分辨率设置为 800x600. 1. ...
- uboot启动过程中关闭Caches
原文地址:<uboot启动代码分析之系统引导时为什么要关闭Caches?> 目录 一.在哪关闭cache 二.系统引导时为什么要关闭Caches 三.关键字Volatile 一.在哪关闭c ...
- 启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑
前言 最近项目中使用阿里的RocketMQ来做消息队列,具体怎么使用RocketMQ不在本文讨论范围之内,其相关帮助文档可以参考如下链接 本文主要记录在使用rocketmq client时,遇到的一些 ...
- 虚拟机中CentOS 7 网络服务启动失败
故障描述 虚拟机中的eth33网卡没有启动,执行systemctl status network.service启动报错 报错信息 [root@zeppelin network-scripts]# s ...
- 如何让原本的密码只执行一次_如何在虚拟机中正确的第一次启动Linux系统
在小编的上一篇文中,有介绍过如何在Virtualbox虚拟机中安装Linux CentOS系统,今天我们尝试第一次启动Linux系统,为保证虚拟机的流畅运行,建议将分辨率设置为 800x600. 1. ...
- 导出无法正常启动的VMware虚拟机中的文件
如果虚拟机无法启动,需要将虚拟机中的一些文件导出来. 怎么办呢?VMware提供了解决方案.操作方法如下: 安装一台新的虚拟机(如果已有另外的虚拟机,但不需要安装) 将这台新装的虚拟机关机(Shut ...
最新文章
- 语音标注自动音段对齐工具SPPAS使用笔记
- 策略模式——Strategy
- Linux基础(9)文本处理三剑客之grep
- ubuntu重启+sublime快捷键
- u-boot分析之编译体验(零)
- 说实话,你的API接口在高并发面前不堪一击!
- 防火墙(12)——查看协议被连接的次数、通过连接状态来写规则
- 浏览器滚动条样式更改
- 何时才使用https访问项目
- javascript(面向对象,作用域,闭包,设计模式等)
- python 新式类和旧式类_python新式类和旧式类区别
- input文本框的readonly和disabled属性区别
- c语言编程入门教程for,C语言编程入门教程精 简版.ppt
- 【NOIP提高组五校联考】挖金矿
- 爬取笔趣阁《斗破苍穹》小说,只需改一下网址,笔趣阁所有小说任意下载
- unity -- 存档与读档
- verbose=False(TensorFlow)
- Rust:error[E0468]: an `extern crate` loading macros must be at the crate root 处理方法
- LINQ:使用join进行联接
- Linux之yum 命令详解