Bootloader之BareBox 之路(1)--安装

之前跑一块低端的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值