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加载操作系统的过程.这一过程可以分为两个过程,各个阶段的功能如下. 第一阶段的功能: 硬件设备初始化. 加 ...
随机推荐
- struts2中迭代的使用方法
struts2 Html代码 <s:iterator value="resultList" id="user" status="st&qu ...
- 【京东个人中心】——Nodejs/Ajax/HTML5/Mysql爬坑之功能与数据分析
一.引言 在学习了Nodejs和HTML5之后,发现了Nodejs的使用很方便,和php是完全不同的另一种后台语言.我也明白了,在一个项目里,是不可能同时存在Apach服务器(php)和Web服务器( ...
- 【React Native开发】React Native移植原生Android项目(4)
),React Native技术交流4群(458982758),请不要反复加群!欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章 ...
- nginx apache防盗链
要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件.换句 ...
- ehcache缓存刷新问题
ehcache可以设置时间来定时刷新缓存,但是这个只是清空值,key依旧保存着. 只有你第一次利用key获取值,key才会释放.
- 14:质数因子PrimeNum
14:题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 详细描述: 函数接口说明: public String getResult( ...
- PHP计划任务:如何使用Linux的Crontab执行PHP脚本(转)
我们的PHP程序有时候需要定时执行,我们可以使用ignore_user_abort函数或是在页面放置js让用户帮我们实现.但这两种方法都不太可靠,不稳定.我们可以借助Linux的Crontab工具来稳 ...
- jQuery Validate(二)
刚刚试了所谓的新版的用法.千万别问我是多新,因为我也不知道... <!DOCTYPE html> <html> <head> <script src=&quo ...
- servletResponse 控制浏览器缓存
//当访问一些资源文件时,我们希望,访问一次后,资源文件能够在缓存在浏览器中,当我们再次访问该资源时 //直接从缓存中去取,这样可以减少服务器的压力 package response; import ...
- 800元组装一台3D打印机全教程流程
我最近正好要组装一台新的reprap的kossel delta型开源3d打印机,这台机器性价比非常高,具有速度快,静音,三臂并联结构,扩展性强,便宜的特点.图纸啥的都有,只是用到mega2560和ra ...