Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
官方文件R32.3指出,開機的順序是由U-Boot決定,順序從SD card-> eMMc -> USB device -> NFS device
U-Boot會按照此順序去裝置內的 /boot/extlinux 尋找 extlinux.conf,並按照裡面的設定決定要從哪裡開機並啟動kernel,說明文件內容如下:
直接查看 extlinux.conf 的樣貌:一個純文字檔,開機選單就在這裡修改。
但這是到最後才需要做的。
整理一下步驟:
首先SD card的分割狀態,Ext4格式且有個分割區叫做 mmcblk2p1 ,不然怎麼設定都會無法成功。
接下來確定/dev/mmcblk2p1掛載好之後,將 eMMc 內的資料全部copy到SD card裡面。
sudo cp -ax / '/media/user/yourSDcard' && sync
copy完後,再到SD card內的 /boot/extlinux/extlinux.conf 進行修改
例如我設定了三個開機區域,extlinux.conf 的內容就會變成這樣:
注意一下LABEL SDcard的部份多了一個FDT選項,也就是指定 DTB 檔的路徑,所以之後要替換DTB檔,就直接複製到自己設定的路徑即可。 (LINUX LABEL是kernel image 路徑)
為了觀察U-boot的console 必需接上 TTL to usb cable,接法如下圖
TX2 J21 Pin 10 (UART 1 RXD) → green cable (TXD)
TX2 J21 Pin 8 (UART 1 TXD) → write cable (RXD)
TX2 J21 Pin 9 (GND) → black cable (GND)
Baud rate為 115200 ,我使用putty來觀察:
開機後在console可以看到有開機選單出現並等待你選擇:
大致上就是這樣,之後要做什麼變化再自己修改。喔還有一招是使用flash.sh來強制修改開機碟,怎麼做目前還不知道有機會在研究一下。