(转)【做好第一步】
uboot的移植完成以后,满以为很快能烧写到板子上并安装linux,结果uboot烧写了三天才终于成功,这其中碰到了不少的问题,在此做个总结。
首先,飞凌的OK6410开发板并不支持JLink烧写uboot,只能通过SD卡来烧写,这一点我事先并不知道,他们网店介绍里并未说明,而且销售人员也没有做出任何提示,结果我花了整整一天时间尝试所有通过JLink烧写uboot的可能方法,结合网上个别人反映,最终意识到通过JLink完成uboot烧写是不可能成功的了,后来在销售人员那里确认了这一点,对飞凌表示不满。
当时买板的时候没有买SD卡,因为感觉没什么用,就想给老板省点钱,现在没SD卡不行了,但在寻找JLink烧写uboot方法的过程中我发现其实只有在烧写uboot的时候SD卡才是必需的,也就是一旦烧写成功,以后再烧写系统或程序就可以通过JLink或minicom了,所以我决定借一块SD卡,谢天谢地SD卡很顺利地借到了——kingston8G。于是按文档说明收集必需的文件,由于带的光盘裂了一个角不能正常读取了(再次对飞凌表示不满),只能从网上找,在飞凌官方论坛里找到SD卡烧写uboot的115网盘连接,但无论是网页还是客户端115网盘却无法下载(除非开通VIP通过离线方式下载),再次对飞凌表示不满,最终在网店里发现他们给的一个华为网盘帐号,在网盘里找到了需要的文件,通过华为网盘客户端下载成功。
开始按照飞凌给的文档一步一步的做,但在烧写mmc.bin(256M版本),并复制u-boot.bin(256M版本)、rootfs.yaffs2(256M版本)和zImage后,SD卡启动板子时LCD白屏,DNW串口无任何信息输出,烧写失败。联系售后,他们说检测一下卡的质量是否为正品,且最好不要用笔记本自带读卡器,因为已经有人反映自带读卡器烧写失败。同学的SD卡是用在相机里,我想质量应该没问题,于是又借来他的读卡器,再来一遍,结果依旧白屏无任何信息输出。继续在网上查找原因,有人说win7兼容性不好,于是我在笔记本上linux下虚拟出的xp中再来一边,仍旧白屏!无奈了,有人说白屏还有可能是SD卡接触不好,噢奶奶的,刚买的板子就接触不好?于是启动前按着SD卡,并对着白屏的开发板上的按键,一顿乱按,咦?红色led亮了,然后LCD有输出了!奶奶的,它工作了!Fuck,Fuck,Fuck!
最终,uboot烧写完成,断点改用nandflash启动,成功进入触摸版linux。总结以下要点:
1.OK6410板必须通过SD卡启动的方式烧写uboot。
2.SD_writer在win7下需以管理员身份运行,并点format进行格式化(windows下自行格式化无效),否则会出现”……sd error”。
3.SD卡烧写uboot完启动时需要确保SD卡接触良好,飞凌的SD卡槽接触不好,需要往里按,并且要按reset。进入linux后经测试发现,s1为reset键(板子上也有标注),s2、s3、s4、s5、s6、s7分别为上、下、左、右、确定、返回。
4.不要使用笔记本自带SD卡读卡器,虽然能够成功烧入mmc.bin,但之后启动白屏的概率在90%以上。使用单独的读卡器来烧写,如果不行就换读卡器,换SD卡,这是飞凌官方给的说法,总会换到一个OK6410感到合适的SD卡和读卡器。
5.飞凌提供的《OK6410-A开发板LINUX3.0.1-2012-09用户手册》中有一项表述前后矛盾:
第11页表格显示:
rootfs.yaffs2-nand256m(用于触摸屏输入的 yaffs2 文件系统,适用于 256M、1G 字节 nandflash 的开发板)
rootfs.yaffs2-nand2g(用于触摸屏输入的 yaffs2 文件系统,适用于 2G 字节或者 4G 字节的 nandflash 的开发板)
而第21页一键烧写步骤中却显示:
rootfs.yaffs2-nand256m专门用于 128M 内存,256M NandFlash开发板。
rootfs.yaffs2-nand2g专门用于 256M 内存,2G 或者 4G Nandflash 的开发板。
让人无所适从,我在1G-nandflash的开发板上使用了rootfs.yaffs2-nand2g,能够启动。后来烧nand256m,无法正常启动。后来跟他们技术人员联系,他们说是技术手册有误,但rootfs.yaffs2-nand2g也有问题,论坛更新资料下载后无问题了。
总之,感觉飞凌的OK6410板子问题很多,健壮性太差,很容易出问题,而可能就是很小的原因就导致板子白屏、无响应,比如SD卡兼容问题,读卡器问题,而且,uboot烧写失败没有任何信息输出,查找原因只能凭经验和运气。不过,还好最终烧写成功了,可以开始ARM-Linux嵌入式体验了。