购入
项目是用到TI的am437x,但是由于用的核心板是采购的,对方不提供原理图,如果想自己升级系统就得自己去摸索了,非常不方便。
而BeableBone Black(BBB)就资料多多了,除了TI支持,还有一堆书。
有点奇怪的是国内流行度和树莓派没法比,某宝上搜索没几个结果,而且价格和7,8年前的差不多。
猜测可能BBB硬件没升级了,现在树莓派4的RAM都有8GB版本了。
于是去某鱼搜,希望淘个二手的,发现跳出来一些很便宜的结果。
但是仔细一看,没有HDMI,也没USB,多看几个就知道是蚂蚁矿机上做控制用的。应该是挖矿不赚钱了拆机的。
再去搜相关资料,有了,“
还有一篇是说可以启动到Armstrong系统。这两篇挺有用。
HDMI我也不需要,USB可以自己加,我觉得不错,可以入手一个。
于是挑了一个加上邮费42元的。有更便宜的,但是太远了,还顺丰到付,不确定性太大。
第一次尝试
到手后,板子和网上的一样,没有电源,没有USB口。没事,这几个东西我还是可以焊的。先加了DC电源座和UART排针,这样就可以启动了。
连接好串口,满怀期待地上电。
UBoot SPL 输出信息...
UBoot 输出信息...
加载内核...
读取nand flash碰到坏块...心里咯登了一下,还好卡了几秒后显示跳过坏块,内核加载完就解压启动了
然后又卡了,并且是kernel panic,
重新上电,还是老样子
好伤心,这么失败。
会不会是FLASH里的系统坏了?当时是这样想的
于是去下载BBB的debian系统,服务器在国外,花了我差不多一天的时间才下载好。
烧到SD卡,启动,结果又是kernel panic。
往前看是cpsw那里崩溃了,由于搞过am437x,知道cpsw是和以太网有关,看来这板子的以太网有问题。
第二次购入
不甘心啊,于是又在某鱼上搜,发现有个更便宜的。本来想买一个玩玩的,由于3个包邮,想来想去一咬牙就买了3个。
这家不错,还送了几个小按钮,这种贴片按钮我家里公司都没有。
在等待的过程中,我按https://jumpnowtek.com/ (挺好的指南,赞美)上的做了个BBB系统。
烧到SD卡,居然可以启动进入系统了!
以太网还是不行,ifconfig后提示phy not ready,应该是物理芯片坏了,但至少挽回了点损失,以太网不能用,其它还行,加个USB网卡连WIFI也可以。
第二批板子
板子到了,也是1.6的版本,加排针和电源座,上电。
串口输出连续的C,我知道这是进入UART启动,为什么不是NAND呢?
我插上按jumpnowtek制作的sd卡,上电,还是连续的C。
又中奖了?
把第2块板子焊上,重复操作,还是一样。
把第3块板子焊上,重复操作,还是一样。
又被坑了?还是说这板了启动顺序和网上说的不一样?
只好找卖家,卖家给了个资料的网盘。
在缓慢的下载等待中,我尝试去用debian的系统。
串口提示找不到eeprom id,有救了,至少能启动UBOOT。
EEPROM ID的问题我知道是这板子精简掉了,而官方系统会去读EEPROM来判断开发板类型,从而去加载相应的dtb文件
等下载完网盘,替换里面的uboot后,可以顺利启动系统了。
分析
回过头来终于想通了:
第2批板子了的NAND FLASH应该被清空了,所以不能像第1批那样直接启动
第1批板子能启动jumpnowtek版的SD,实际是nand 里的uboot 加上 sd里的系统,所以可以
第2批板子不能启动jumpnowtek版的SD,是因为jumpnowtek的uboot改了命令或是其它什么,可惜连个串口提示也没看到。
后续
eeprom id的问题好解决,强制写入ID,UBOOT里已有现成的函数。修改如下:
电源小按钮我觉得挺有用,特别是没有网络可以远程时。我的树莓派现在关机都是用VNC连上去关的。
我没焊过贴片的东西,结果连个4脚按钮都花了我好长时间,焊的结果也不知道牢不牢靠。
在debian系统下按钮起作用,而我自己做的系统没起作用,具体是改内核DTS还是改系统服务还有待学习。
把系统烧录到NAND FLASH还算顺利,除了有个UBI文件系统偏移(修正:应该是page size)错了一次(我看的AM437X的文章,里面用的4096,而UBOOT里am335x用的2048,把这两个统一就好)。
可惜这板子只有256MB FLASH,TI自带的放不下。
最后,放个板子的图,很久以前买的亚克力板也用上了。