購入
項目是用到TI的am437x,但是由於用的核心板是采購的,對方不提供原理圖,如果想自己升級系統就得自己去摸索了,非常不方便。
而BeableBone Black(BBB)就資料多多了,除了TI支持,還有一堆書。
有點奇怪的是國內流行度和樹莓派沒法比,某寶上搜索沒幾個結果,而且價格和7,8年前的差不多。
猜測可能BBB硬件沒升級了,現在樹莓派4的RAM都有8GB版本了。
於是去某魚搜,希望淘個二手的,發現跳出來一些很便宜的結果。
但是仔細一看,沒有HDMI,也沒USB,多看幾個就知道是螞蟻礦機上做控制用的。應該是挖礦不賺錢了拆機的。
再去搜相關資料,有了,“
螞蟻礦板BB_Black_V1.6硬件改造”
還有一篇是說可以啟動到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自帶的放不下。
最后,放個板子的圖,很久以前買的亞克力板也用上了。