解決客製Linux 放到micro SD卡時,不需要按S2按鈕即可啟動該Linux
BeagleBone Black 開機簡易流程
簡單說,ROM code一開始會依照S2按鈕按下與否產生的電位差,來決定讀取哪邊的MLO檔案
但是我們沒辦法改ROM code來強迫讀取micro SD,所以網路上的方法幾乎是從MLO下手
方法1:修改eMMC內的MLO檔名,讓他讀取失敗,就會轉向micro SD卡的MLO
BBB插入電腦的時候,eMMC的partition 1 變成隨身碟,如果裡面有MLO檔案,將他改名成任意名稱即可
但是我這邊這張BBB裡面找不到MLO檔案,所以此方法對我不適用...(似乎是不同版本debian Image會有差別,我的image已經包含MLO)
ref[2] : https://hamhire.com/p/pJv4De
方法2:將eMMC內的資料全部洗掉
先用SD卡按S2按鈕boot進入BBB後,輸入指令洗掉eMMC,此方法較暴力...
所以開機時,ROM code進到eMMC找MLO和 u-boot失敗 (eMMC裡面沒有任何東西),就會轉向micro SD卡
方法3:改變SYSBOOT的電位值
因為按下S2扭時,SYSBOOT2變成低電位,所以在P8 pin43外接一個小電阻到地(如下圖SYSBOOT2是LCD_DATA2,為P8 pin43),即可等效模擬按下S2按鈕,此方法驗證是可行的
『Building a removable jumper wire for connecting pin 43 on connector P8 to ground (pin 1) with a 1k resistor』
方法4:將micro SD卡的 MLO和u-image放到eMMC的partition1內
因為我的eMMC 的partition1內沒有MLO檔案,所以我自己嘗試將我的MLO與u-boot.img放過去,結果就跳過去micro SD卡開機了..
推測流程變成下圖,u-boot在make時,有寫上位址指向micro SD卡 (以刪除micro SD卡的MLO做驗證)