需求分析
在嵌入式項目開發中,為了適配新外設、調整硬件資源分配或修復驅動問題,需要頻繁修改設備樹和內核。修改完成后,通常需要重新編譯生成鏡像,并將其燒錄到開發板上進行測試。然而,傳統的燒錄方式不僅需要連接物理接口,還可能因為鏡像體積較大而耗費較長時間,這在開發周期緊張的情況下顯得尤為低效。
為了解決這一問題,可以采用基于TFTP(Trivial File Transfer Protocol)的內核和設備樹加載方法。這種方式無需將鏡像完整燒錄到開發板的存儲介質,而是通過網絡直接加載和運行新內核與設備樹。相比傳統燒錄方式,TFTP 加載顯著減少了鏡像更新的等待時間,同時允許更靈活地對不同版本的內核或設備樹進行快速切換和驗證。
TFTP加載內核設備樹
實驗平臺:iTOP-RK3568開發板
01-安裝TFTP服務端
首先進行TFTP 服務端的搭建,首先在ubuntu終端中執行以下命令安裝TFTP服務:
sudo apt-get install tftp-hpa tftpd-hpa
安裝完成以后創建 TFTP 服務器工作目錄,并對TFTP的服務配置文件進行修改,具體步驟如下:
輸入以下命令在家目錄創建tftpboot文件夾,如下圖所示:
mkdir -p tftpboot
安裝完成以后創建 TFTP 服務器工作目錄,并對TFTP的服務配置文件進行修改,具體步驟如下:
輸入以下命令在家目錄創建tftpboot文件夾,如下圖所示:
chmod 777 tftpboot
最后使用以下命令修改TFTP配置文件,打開配置文件以后如下圖所示:
sudo vim /etc/default/tftpd-hpa
修改為如下內容,修改完成如下圖所示:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/topeet/tftpboot/"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l-c-s"
修改完成保存退出,在終端輸入以下命令重啟tftpd-hpa服務。
sudo service tftpd-hpa restart
如下圖所示:
02-配置開發板網絡
TFTP服務端搭建完成之后,進行第二步,配置開發板的網絡。
連接好開發板的網線后,上電啟動開發板,在加載階段點擊“ctrl+c”進入uboot命令行,如下圖所示:
然后來到搭建好TFTP環境的ubuntu終端,輸入“ifconfig”命令來查看虛擬機ubuntu的ip,如下圖所示:
可以看到ubuntu虛擬機的ip地址為192.168.1.79,然后輸入以下命令設置開發板的網絡,設置完成如下圖所示:
setenv ipaddr 192.168.1.94
setenv serverip 192.168.1.79
setenv gateway 192.168.1.1
然后輸入以下命令測試開發板與ubuntu虛擬機之間的網絡是否暢通,測試成功如下圖所示:
ping 192.168.1.79
如果環境變量不知道哪里設置錯了,或者想要恢復成emmc啟動,可以使用以下命令重置環境變量
env default -a
Saveenv
03-tftp加載內核和設備樹
在前面兩個小節中分別搭建了TFTP服務器以及配置好了開發板的網絡,現在進行最后一步,使用tftp加載內核和設備樹。
首先將內核鏡像boot.img和設備樹文件rk3568-evb1-ddr4-v10-linux.dtb拷貝到第一小節創建的“/home/topeet/tftpboot”目錄下,拷貝完成如下圖所示:
然后根據上一小節內容配置自身ip和server ip,設置完成之后,使用以下命令將內核和設備樹通過網絡加載進內存之中,如下圖所示:
setenv bootcmd "tftpboot 0x08300000 rk3568-evb1-ddr4-v10-linux.dtb;tftpboot 0x0027f800 boot.img ; bootm 0x0027f800 - 0x08300000"
通過以上命令將boot.img鏡像下載到首地址為0x0027f800的內存空間;將rk3568-evb1-ddr4-v10-linux.dtb設備樹鏡像將下載到首地址為0x08300000的內存空間;隨后輸入以下命令,等待網絡下載內核和設備樹,如下圖所示:
env run bootcmd
可以看到在這里加載的就是tftp服務端存放內核以及設備樹,等待開發板進入系統之后進行調試即可。
-
嵌入式
+關注
關注
5088文章
19160瀏覽量
306546 -
內核
+關注
關注
3文章
1379瀏覽量
40348 -
TFTP
+關注
關注
0文章
21瀏覽量
14348 -
開發板
+關注
關注
25文章
5100瀏覽量
97837 -
設備樹
+關注
關注
0文章
39瀏覽量
3141
原文標題:【技術分享】使用TFTP加載內核設備樹
文章出處:【微信號:迅為電子,微信公眾號:迅為電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論