既然要使用網絡啟動開發板,那么雙方(開發板、ubuntu)就要確保網絡是聯通的,假設 ubuntu 的 IP 為 192.168.1.16,開發板的 IP 為 192.168.1.30。 開發板 uboot 使用光盤資料中最新源碼,Net: eth1: ethernet@fe010000, eth0: ethernet@fe2a0000,iTOP-3568 開發板有倆個網口,都支持 uboot 網絡,作者選擇使用 eth1,如下圖所示: ![]() 首先,在 U-boot 中設置開發板 IP 為 192.168.1.16,ubuntu 服務器 IP 地址為 192.168.1.30,設置網關的 地址為 192.168.1.1,這里的地址要根據自己的實際情況進行設置,如下所示: setenv ipaddr 192.168.1.16 setenv serverip 192.168.1.30 setenv gateway 192.168.1.1 然后,在 U-boot 中使用 ping 命令測試開發板與 NFS 服務器是否連通(出現“alive”就表示聯通): => ping 192.168.1.30 ![]() 最后,在 U-Boot 模式下輸入以下命令 我們輸入以下命令燒寫 boot.img 和設備樹文件,注意!!!設備樹的文件名字要根據實際的屏幕來設 置成對應的設備樹文件。 setenv bootcmd "tftpboot 0x0027f800 boot.img ; tftpboot 0x08300000 rk3568-evb1-ddr4-v10-linux.dtb;bootm 0x0027f800 - 0x08300000" 我們再輸入以下命令掛載文件系統,注意 nfs 掛載目錄要根據實際情況進行修改。 setenv bootargs "root=/dev/nfs root=/dev/nfs nfsroot=${serverip}:/home/topeet/ubuntu20desktop,v3 rw ip=${ipaddr} ![]() ![]() ![]() 然后我們輸入 saveenv 保存環境變量。 ![]() 最后輸入以下命令,等待網絡下載內核和設備樹,然后掛載文件系統。 env run bootcmd ![]() 在開機內核日志出現如下日志,說明已經掛載上了網絡根文件系統。 ![]() 文件系統起來以后,在 ubuntu 的/home/topeet/ubuntu20desktop 目錄下新建一個文件,你會發現在開 發板也會有相同的文件,這樣可以方便調試。 更多內容關注:北京迅為 |