qemu仿真执行uboot和barebox
先安装qemu:
apt-get install qemu-system
交叉编译器可以选择友善之臂:http://arm9download.cncncn.com/mini2440/linux/arm-linux-gcc-4.4.3-20100728.tar.gz
下载下来后解压缩,并将bin文件夹路径添加到.bashrc中或者/etc/profile中。
嵌入式系统下通常需要有bootloader来引导linux内核,常见的bootloader有:Redboot,uboot,Barebox
维基百科有一篇对bootloader进行比较的文章,地址:http://en.wikipedia.org/wiki/Comparison_of_boot_loaders
uboot是当前最流行的bootloader,支持硬件最丰富,功能最强大。
Barebox原名uboot-v2,是在uboot源代码基础上改造成类似于linux内核源代码的形式,对习惯linux内核源码的人来说可能会感觉用起来得心应手。
本文中选择versatilepb来进行仿真,该开发板用户手册地址:http://infocenter.arm.com/help/topic/com.arm.doc.dui0224i/index.html
先用qemu仿真来执行uboot:
下载uboot:ftp://ftp.denx.de/pub/u-boot/u-boot-2010.06.tar.bz2
然后执行下面命令进行配置和编译:
make versatilepb_config
make
再用qemu来进行仿真:
qemu-system-arm -M versatilepb -nographic -kernel u-boot.bin
接下来用qemu方针来执行barebox,下载地址:http://barebox.org/download/barebox-2014.04.0.tar.bz2
下载下来后进行解压缩,进入到解压后的文件夹。
执行配置和编译:
make ARCH=arm versatilepb_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-
再用qemu来进行方针:
qemu-system-arm -M versatilepb -nographic -kernel barebox.bin
类似地,linux内核也可以用qemu仿真,执行方式和barebox类似,但是因为编译需要的时间比较长,我就不再详细说明了。
qemu仿真执行uboot和barebox的更多相关文章
- 用QEMU模拟运行uboot从SD卡启动Linux
平台:Qemu + vexpress-a9 u-boot:u-boot-2019.10 Linux:linux-4.14.13 之前介绍过用Qemu模拟运行uboot,然后从网络启动lin ...
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统
qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和linux kernel,达到与开发板上一样的学习效果! 虽然已经买了2440开发板,但是在实际学习 ...
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统【转】
转自:http://www.cnblogs.com/riskyer/p/3366001.html qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和l ...
- 基于 QEMU进行 arm 仿真开发 (以 vexpress-a9 为例)
背景 基于 QEMU 的仿真可以节省 硬件成本. 参考:<qemu-system-arm仿真vexpress-a9踩坑记>.<在Ubuntu下使用QEMU搭建arm开发环境(一)搭建 ...
- QEMU 运行uboot,动态加载内核与文件系统
背景 上一讲我们完成了 编译 QEMU 以及简单地做了仿真.这一讲在 启动uboot 的基础上进行,以加强对于 运行地址,加载地址等理解. 有关资料: uboot 与 代码重定位 有这样的约定,ubo ...
- 用Qemu模拟vexpress-a9 (二) --- 搭建u-boot调试环境
参考: http://blog.csdn.net/caspiansea/article/details/12986565 环境介绍 Win7 64 + Vmware 11 + ubuntu14.04 ...
- 从零使用qemu模拟器搭建arm执行环境
为什么会有这篇文章 早在2011年的时候,跟当时同事一起讨论,做Linux系统开发正处于整个Linux开发中间层,没有上层的C/C++业务和数据库的开发经验.也没有底层的内核和驱动开发经验,究竟路该怎 ...
- Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核
Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核 标签(空格分隔): Qemu ARM Linux 在上文<Qemu搭建ARM vexpress开发环 ...
- 嵌入式Linux驱动学习之路(五)u-boot启动流程分析
这里说的u-boot启动流程,值得是从上电开机执行u-boot,到u-boot,到u-boot加载操作系统的过程.这一过程可以分为两个过程,各个阶段的功能如下. 第一阶段的功能: 硬件设备初始化. 加 ...
随机推荐
- 将Solr的数据存到Hdfs上
具体官方文档 https://cwiki.apache.org/confluence/display/solr/Running+Solr+on+HDFS 修改solrconfig.xml文件 < ...
- 2016年蓝桥杯C/C++B组
第一次參加蓝桥杯.也是有非常多感触的,时间全然不够写最后一题... 最后一题没做...还有全排序非常重要... 1. 煤球数目 有一堆煤球,堆成三角棱锥形.详细: 第一层放1个, 第二层3个(排列成三 ...
- vs 已经加入了引用,编译还是提示没有加入引用
已经加入了引用,可是.编译还是通只是. 原因:项目总体框架是.Net FramWork4.5,nep中的框架也是4.5.而编译只是的project是4.0. 解决的方法:将编译只是的项目框架改为4.5
- Exception from HRESULT: 0x80070057 (E_INVALIDARG)
Exception from HRESULT: 0x80070057 (E_INVALIDARG)异常. 解决方案:清除ASP.NET缓存目录中对应的应用程序目录. ASP.NET缓存目录如下: C: ...
- MongoDB入门学习(二):MongoDB的基本概念和数据类型
上一篇讲了MongoDB的安装和管理,当中涉及到了一些概念,数据结构另一些API的调用,不知道的没关系,事实上非常easy,这篇会简介一下. 1.文档 文档是MongoDB的核心概念.多个键值对有序的 ...
- HDU 3416
Marriage Match IV Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 数据结构(Java语言)——Stack简单实现
栈是限制插入和删除仅仅能在一个位置上进行的表.该位置是表的末端,叫做栈的顶top.对栈的基本操作有进栈push和出栈pop,前者相当于插入.后者这是删除最后插入的元素. 栈有时又叫先进先出FIFO表. ...
- spring源码解析之IOC容器(一)
学习优秀框架的源码,是提升个人技术水平必不可少的一个环节.如果只是停留在知道怎么用,但是不懂其中的来龙去脉,在技术的道路上注定走不长远.最近,学习了一段时间的spring源码,现在整理出来,以便日后温 ...
- java利用爬虫技术抓取(省、市(区号\邮编)、县)数据
近期项目须要用到 城市的地址信息,但从网上下载的xml数据没有几个是最新的地址信息.....数据太老,导致有些地区不全.所以才想到天气预报官网特定有最新最全的数据.贴出代码,希望能给有相同困惑的朋友. ...
- python 安装protobuf
安装准备:python和protoc(编译proto到各个语言) 下载protobuf源代码(各种语言实现):https://github.com/google/protobuf 1.到Python ...