之前跑一块低端的ARM板子时,由于没上操作系统,所以自己写了个bootloader,通过usb更新应用程序。新的这块要跑Linux,Ethernet,USB,SD卡一应俱全,虽然改了一下能够启动Linux,但是要支持Ethernet,USB和SD卡更新要做的东西太多,于是打算移植一个bootloader来用。

在网上找流行的U-boot资料,不经意间翻到barebox,号称是U-boot的升级版本,稍微看了下,支持Ethernet,USB和SD,已经满足我的要求了。而且同U-boot相比,它基于kbuild编译,有一个可视化的menuconfig,类似于Linux的编译,比较方便直观,于是决定就用它了。

barebox的主页(www.barebox.org)提供的最新的release版本是v2010.11.0,还不支持mci即SD卡,但是已经看到有新的补丁支持mci了,于是通过git来下载最新的代码。

kubuntu 10.10好像默认已经安装git了,在/home/xxx/Downloads下输入

git clone git://git.pengutronix.de/git/barebox.git   barebox       :该命令是在当前目录复制一个barebox的镜像,命名为barebox

cd barebox

git branch barebox20101129                                                 :创建一个名叫barebox20101129的分支

git checkout barebox20101129                                              :跳到这个分支,即目录下的文件被改成barebox20101129指定版本的文件,目前的分支跟master同步,所以文件是一样的

另可以用git checkout -b barebox20101129来代替上面最后两条指令,附加几条常用git指令:

git

1 git branch,显示当前分支,激活的打*号,git branch -r 可以显示远端分支,-a显示本地和远端所有分支,-d删除分支
2
3 git branch mybranch version会在本地建立以version为基础的分支
4
5 git describe <branch-name>查看指定分支版本。
6
7 git pull git://xxx master,更新文件到master分支
8
9 git merger <branch-name>合并<branch-name>到当前checkout分支
10
11 git diff master..mybranch 显示两个分支的差别

更详细的命令参考http://www.kernel.org/pub/software/scm/git/docs/user-manual.html ,Linux的每个工具都这么能折腾,汗...

在/home/xxx/下新建一个Workspaces的目录,把barebox目录拷过去,其实直接改也行,反正是改的barebox20101129这个分支,不过还不太习惯...

要动手改了,突然发现还没有装交叉编译器,上www.codesourcery.com下载一个lite版本(也就是不要钱)的gcc,最新的是arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2,版本是4.5.1,事后发现有点问题(会产生undefined reference to `__bswapsi2'错误),于是改装之前的一个版本arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2,版本是是4.4.1。

运行命令(如果在窗口下移动有个权限的问题,需要换成root登录或者装个nautilus啥的):

tar -jxvf arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

sudo mv arm-2010q1 /opt

切换到/home/xxx/Workspaces/barebox目录,修改Makefile:

ARCH            = arm
CROSS_COMPILE   = /opt/arm-2010q1/bin/arm-none-linux-gnueabi- 

 

粗粗看了一下arch/arm/boards下的目录,pcm038跟我的板子比较接近,于是

make pcm038_defconfig

make menuconfig  (这里出错:"Unable to find the ncurses libraries or the required header files." ,sudo apt-get install ncurses-devgit 搞定)

浏览一下后保存退出后

make

当当当当,barebox.bin产生了。预知后事,且听下回分解...

转载于:https://www.cnblogs.com/kubtu/archive/2010/12/04/1896609.html

Bootloader之BareBox 之路(1)--安装相关推荐

  1. Java学习之路1——安装JDK1.8||安装idea2022||Java项目创建【重拾Java】

    Java学习之路1--安装JDK1.8||安装idea2022[重拾Java] 前言 安装 安装JDK1.8 安装idea2022(JetBrains Toolbox) Java项目创建 创建 项目结 ...

  2. 小白的学习之路--IDEA安装及使用

    小白的学习之路--IDEA安装及使用 IDEA概述和安装 IDEA中的HelloWorld IDEA启动的基本配置 IDEA中创建HelloWorld ①创建一个空项目 ②创建一个新模块(idea_t ...

  3. mysql sga_MySQL王者晋级之路(一)安装、体系结构和存储引擎

    <MySQL王者晋级之路>张甦,电子工业出版社,2018.3 基于MySQL5.6和MySQL5.7 MySQL简介与主流分支版本 MySQL简介 MySQL AB -> Sun - ...

  4. electron 的混合桌面之路 入门安装

    最近有计划去写桌面程序,所以呢,我打算写一篇博客来记录使用21世纪逼格最高的技术的入门文档. electron 的混合桌面之路 首先假装很厉害的样子介绍一下Github 官方制作的Atom代码编辑器, ...

  5. 虚拟机在安装svn时 认证密码一直报错_研路同行|安装虚拟机到安装GAMIT教程步骤汇总...

    (一路遇见,一路再见) 全文共计2258字,图片共计1张 用心阅读控制在10分钟 --今日图文-- Gamit/gLOBK软件是一款高精度GNSS数据处理软件,目前支持GPS/BDS/GLONASS/ ...

  6. PHP从入门到跑路(一), 安装PHP环境

    安装PHP环境 前言 一, 环境安装 二, 软件选择 三, phpstorm环境配置 四, 启动第一个php程序 前言 博主不会php, 是从JAVA转过来的, PHP教程总结实际开发使用, 更加偏向 ...

  7. Qt学习之路_1(安装及首次体验)

    一.安装qt软件:   ( 如果使用的是Qt源码,则用该方法编译,步骤参考http://www.cnblogs.com/elect-fans/archive/2012/03/25/2416997.ht ...

  8. [JavaWeb修行之路 Day1] 安装、配置、部署Tomcat

    一.相关软件下载 Tomcat下载地址:http://tomcat.apache.org .选择Tomcat 6或者Tomcat 7. Eclipse下载地址:http://www.eclipse.o ...

  9. jsp学习之路之安装Apache Tomcat7.0服务器

    1.首先,jsp就是Java Server Pages,是基于Java语言的一种web应用开发技术,可以建立安全.跨平台的先进动态网页,利用jsp技术创建的web应用程序可以实现动态页面和静态页面的分 ...

最新文章

  1. 入门单片机选择51还是stm32?入门单片机有哪些好的教学视频?
  2. php设计模式--单例模式
  3. webstorm下debug调试react js程序
  4. VTK:重采样折线用法实战
  5. shell变量/环境变量和set/env/export用法_转
  6. Java Jar包的压缩、解压使用指南
  7. 如何走出物联网死亡之井?
  8. SolidWorks Simulation热仿真优化设计 提高企业生产效率
  9. Cuteftp9.0安装说明书
  10. 戴尔计算机没有硬盘驱动,戴尔做系统读取不到驱动器-戴尔笔记本出现硬盘驱动器无安装该如何操作?...
  11. 删除可恶的7654.com,7654导航篡改首页恢复,如何解决浏览器被7654劫持
  12. 曝光三要素:光圈、快门、ISO
  13. 上海始终未出现真正“富人区”
  14. n维立方体角、面、边的个数
  15. Vue elementui 实现表格selection的默认勾选
  16. 身份证图像识别api
  17. python curl 获取返回值_python-将curl查询转换为请求
  18. 非常详尽,多图慎入:Wayland与Weston简介
  19. String比较字符串方法
  20. Matlab Shannon编码

热门文章

  1. nagios的实时监控
  2. 微软:推开窗户,我看到了云
  3. java中使用switch case报错case expressions must be constant expressions
  4. linq to sql中的自动缓存(对象跟踪)
  5. 奚江华的几篇Silverlight文章
  6. 离线安装老版本android sdk,亲测,linux、windows、mac通用
  7. spring配置线程池
  8. 阿里开源 iOS 协程开发框架 coobjc源码分析
  9. 用Nginx分流绕开Github反爬机制
  10. 关于“Fluent UI”或Ribbon Design报道的补充说明