移植openwrt到beaglebone black遇到的问题

2 篇文章 0 订阅
1 篇文章 0 订阅

本来以为不难,结果还是跟以往一样,有点麻烦。

记录遇到的问题,现在我尝试的是将bbb从TF卡启动,是成功的。参考:

http://www.eeboard.com/evaluation/%E4%B8%AD%E5%9B%BD%E6%9D%BFbeaglebone-black%E4%B9%8Bmicrosd%E5%8D%A1%E5%90%AF%E5%8A%A8%E7%B3%BB%E7%BB%9F/

这之后,TF卡会有两个分区,一个是FAT16的引导分区,存放MLO文件,uboot等。另一个是EXT4,存放根文件系统。

这一步比较简单,之后是希望把openwrt放到TF卡上,然后让bbb从板子上启动。

记录一下官方更新的镜像路径:

http://downloads.angstrom-distribution.org/demo/beaglebone/testing/


第一次尝试:

这次的做法是失败的,我没有重新分区,直接从openwrt的snapshots中下载已经编好的给bbb用的所有镜像文件和根文件系统,替换掉TF卡中原来的。参考的是:http://wiki.openwrt.org/toh/beaglebone/black#installation

暂时也不清楚openwrt提供的MLO和uboot和出厂提供的版本有什么区别,基本我想也是失败的,但是没想到失败到连一点log都没打印出来,估计是uboot都没有跑起来吧。

估计是不应该替换MLO文件也不需要。

第二次尝试:

不替换MLO文件,只改一样,就是uEvn.txt。 

起码这次uboot起来了,估计是openwrt社区提供的MLO还是有问题,用原厂提供就好。再另外加入了am335x-boneblack.dtb   zImage这两个文件。现在问题是无法load dtb文件。

串口打出log:

gpio: pin 53 (gpio 53) value is 1                                               
mmc0 is current device                                                          
micro SD card found                                                             
mmc0 is current device                                                          
gpio: pin 54 (gpio 54) value is 1                                               
SD/MMC found on device 0                                                        
reading uEnv.txt                                                                
438 bytes read in 3 ms (142.6 KiB/s)                                            
Loaded environment from uEnv.txt                                                
Importing environment from mmc ...                                              
Running uenvcmd ...                                                             
reading zImage                                                                  
2051400 bytes read in 238 ms (8.2 MiB/s)                                        
reading am335x-boneblack.dtb                                                    
** Unable to read file am335x-boneblack.dtb **                                  
ERROR: Did not find a cmdline Flattened Device Tree                             
Could not find a valid device tree                                              
gpio: pin 55 (gpio 55) value is 1                                               
** File not found /boot/uImage **

文件是放进去了,对比了路径应该也是没问题,所以还要再查查别的原因。

现在看来还是因为dtb文件对不上板子的原因,具体为什么我也不清楚,尝试用原厂的吧。

用原厂的,就是在文件系统下boot分区中的am335x-boneblack.dtb拷贝出来,放到fat32的分区里,就可以boot到kernel了,但是kernel目前启动不成功,因为我暂时没有替换rootfs成openwrt的。

第三次尝试:

替换rootfs。还是用snapshots上的版本。

结果是系统kernel无法start。怀疑是snapshots上的zImage有问题。决定开始自己编译一个版本出来试用。最好不要用root用户去编。

最重要是config。我用snapshot上的config之后再去改。

从svn上抓code:

svn co svn://svn.openwrt.org/openwrt/trunk --revision=45238

把feeds.conf.default拷贝成feeds.conf

之后获取最新feeds:

./scripts/feeds update -a

./scripts/feeds install -a

从snapshots上下载config,改成.config放在trunk目录下,

make menuconfig 做一下小改动即可。

之后make V=99

等待漫长的编译。。。

我的是失败的,我改了几个地方,首先usb.mk,修改了,看上去是svn自动merge失败的产物。zy1201驱动模块去掉,因为编不过,暂时也用不上,要用以后再移植。

然后改了nettle库的makefile,用最新的3.1.1否则会引起别的编不过。

之后就遇到安装privoxy时,提醒需要非根用户执行。

还有如果在国内网络的话shflags包下载不了,因为在google code上的,google code早已被禁。。。

本来想找一个git版的连接替换掉,或者自己下载一个版本放进去,才发现最新更新已经干掉这个库了,所以我也干掉了。。。奇怪的是41170就已经干掉这个版本,我用45238为什么还会获取到呢。。。

仍然还有编不过的问题,有点后悔了,虽然文档上指定了版本,我觉得应该用最新的版本去编才对。

不过已经弄了那么久,只能继续将就下去,又在继续编译了,希望能编过,实在太麻烦了。

还是不过,去掉libnetconf,只要放在googlecode我都下不了,所以建议最好弄一个已经翻墙的linux环境去编译。

神奇的地球,最后因为虚拟机空间不足编不下去了,要了12g多,后悔一开始只分配了20g给虚拟机啊。。。

暂时总结一次,虚拟机的话硬盘空间要够大,最少留20g给编译用,用完删掉源码包应该不会太大。抓最新的代码编译,linux环境要先翻墙,不要用根用户编译。其他的只能听天由命了。

----------------------------------------------------------------------------------------------------------

装了一个新的虚拟机,给了40g空间,64bit,用最新的代码编译,重新设置了编译选项,不编译那么多包进去了,本来想用bbb提供的gcc,后来发现自己多余地用了64bit而无法使用。不过用了最新的trunk的代码编译还是遇到了问题,反正现在遇到问题就修的能力已经大大提高了,只要不是空间不足这样的问题我都还是能解决的。目前也就只能等待编译了。

只要编译过了,放到板子能跑,一定提供一个config文件出来。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值