【技術(shù)分享】迅為RK3568開發(fā)板使用TFTP加載內(nèi)核設(shè)備樹
需求分析
在嵌入式項(xiàng)目開發(fā)中,為了適配新外設(shè)、調(diào)整硬件資源分配或修復(fù)驅(qū)動(dòng)問(wèn)題,需要頻繁修改設(shè)備樹和內(nèi)核。修改完成后,通常需要重新編譯生成鏡像,并將其燒錄到開發(fā)板上進(jìn)行測(cè)試。然而,傳統(tǒng)的燒錄方式不僅需要連接物理接口,還可能因?yàn)殓R像體積較大而耗費(fèi)較長(zhǎng)時(shí)間,這在開發(fā)周期緊張的情況下顯得尤為低效。
為了解決這一問(wèn)題,可以采用基于TFTP(Trivial File Transfer Protocol)的內(nèi)核和設(shè)備樹加載方法。這種方式無(wú)需將鏡像完整燒錄到開發(fā)板的存儲(chǔ)介質(zhì),而是通過(guò)網(wǎng)絡(luò)直接加載和運(yùn)行新內(nèi)核與設(shè)備樹。相比傳統(tǒng)燒錄方式,TFTP加載顯著減少了鏡像更新的等待時(shí)間,同時(shí)允許更靈活地對(duì)不同版本的內(nèi)核或設(shè)備樹進(jìn)行快速切換和驗(yàn)證。
TFTP加載內(nèi)核設(shè)備樹
實(shí)驗(yàn)平臺(tái):iTOP-RK3568開發(fā)板
01-安裝TFTP服務(wù)端
首先進(jìn)行TFTP 服務(wù)端的搭建,首先在ubuntu終端中執(zhí)行以下命令安裝TFTP服務(wù):
sudo apt-get install tftp-hpa tftpd-hpa

安裝完成以后創(chuàng)建 TFTP 服務(wù)器工作目錄,并對(duì)TFTP的服務(wù)配置文件進(jìn)行修改,具體步驟如下:
輸入以下命令在家目錄創(chuàng)建tftpboot文件夾,如下圖所示:

安裝完成以后創(chuàng)建 TFTP 服務(wù)器工作目錄,并對(duì)TFTP的服務(wù)配置文件進(jìn)行修改,具體步驟如下:
輸入以下命令在家目錄創(chuàng)建tftpboot文件夾,如下圖所示:
chmod 777 tftpboot

最后使用以下命令修改TFTP配置文件,打開配置文件以后如下圖所示:
sudo vim /etc/default/tftpd-hpa

修改為如下內(nèi)容,修改完成如下圖所示:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/topeet/tftpboot/"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l-c-s"

修改完成保存退出,在終端輸入以下命令重啟tftpd-hpa服務(wù)。
sudo service tftpd-hpa restart
如下圖所示:

02-配置開發(fā)板網(wǎng)絡(luò)
TFTP服務(wù)端搭建完成之后,進(jìn)行第二步,配置開發(fā)板的網(wǎng)絡(luò)。
連接好開發(fā)板的網(wǎng)線后,上電啟動(dòng)開發(fā)板,在加載階段點(diǎn)擊“ctrl+c”進(jìn)入uboot命令行,如下圖所示:

然后來(lái)到搭建好TFTP環(huán)境的ubuntu終端,輸入“ifconfig”命令來(lái)查看虛擬機(jī)ubuntu的ip,如下圖所示:

可以看到ubuntu虛擬機(jī)的ip地址為192.168.1.79,然后輸入以下命令設(shè)置開發(fā)板的網(wǎng)絡(luò),設(shè)置完成如下圖所示:
setenv ipaddr 192.168.1.94
setenv serverip 192.168.1.79
setenv gateway 192.168.1.1

然后輸入以下命令測(cè)試開發(fā)板與ubuntu虛擬機(jī)之間的網(wǎng)絡(luò)是否暢通,測(cè)試成功如下圖所示:
ping 192.168.1.79

如果環(huán)境變量不知道哪里設(shè)置錯(cuò)了,或者想要恢復(fù)成emmc啟動(dòng),可以使用以下命令重置環(huán)境變量
env default -a
Saveenv
03-tftp加載內(nèi)核和設(shè)備樹
在前面兩個(gè)小節(jié)中分別搭建了TFTP服務(wù)器以及配置好了開發(fā)板的網(wǎng)絡(luò),現(xiàn)在進(jìn)行最后一步,使用tftp加載內(nèi)核和設(shè)備樹。
首先將內(nèi)核鏡像boot.img和設(shè)備樹文件rk3568-evb1-ddr4-v10-linux.dtb拷貝到第一小節(jié)創(chuàng)建的“/home/topeet/tftpboot”目錄下,拷貝完成如下圖所示:

然后根據(jù)上一小節(jié)內(nèi)容配置自身ip和server ip,設(shè)置完成之后,使用以下命令將內(nèi)核和設(shè)備樹通過(guò)網(wǎng)絡(luò)加載進(jìn)內(nèi)存之中,如下圖所示:
setenv bootcmd "tftpboot 0x08300000 rk3568-evb1-ddr4-v10-linux.dtb;tftpboot 0x0027f800 boot.img ; bootm 0x0027f800 - 0x08300000"

通過(guò)以上命令將boot.img鏡像下載到首地址為0x0027f800的內(nèi)存空間;將rk3568-evb1-ddr4-v10-linux.dtb設(shè)備樹鏡像將下載到首地址為0x08300000的內(nèi)存空間;隨后輸入以下命令,等待網(wǎng)絡(luò)下載內(nèi)核和設(shè)備樹,如下圖所示:
env run bootcmd

可以看到在這里加載的就是tftp服務(wù)端存放內(nèi)核以及設(shè)備樹,等待開發(fā)板進(jìn)入系統(tǒng)之后進(jìn)行調(diào)試即可。
iTOP-RK3568介紹
-
TFTP
+關(guān)注
關(guān)注
0文章
24瀏覽量
14772 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6208瀏覽量
115817 -
RK3568
+關(guān)注
關(guān)注
5文章
631瀏覽量
7730 -
迅為電子
+關(guān)注
關(guān)注
0文章
87瀏覽量
320
發(fā)布評(píng)論請(qǐng)先 登錄
迅為RK3568開發(fā)板驅(qū)動(dòng)指南Linux中通用SPI設(shè)備驅(qū)動(dòng)
北京迅為RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)內(nèi)核HDF驅(qū)動(dòng)框架架構(gòu)
迅為基于RK3568開發(fā)板的嵌入式學(xué)習(xí)之Linux驅(qū)動(dòng)視頻
迅為RK3568開發(fā)板Debian系統(tǒng)使用python 進(jìn)行攝像頭開發(fā)
基于迅為RK3568開發(fā)板全國(guó)產(chǎn)平臺(tái),快速實(shí)現(xiàn)APP開機(jī)自啟動(dòng)技術(shù)分享
迅為RK3568開發(fā)板模型推理測(cè)試實(shí)戰(zhàn)LPRNet?車牌識(shí)別
【迅為工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板Linux驅(qū)動(dòng)開發(fā)實(shí)戰(zhàn):RK3568內(nèi)核模塊符號(hào)導(dǎo)出詳解
【技術(shù)分享】迅為RK3568開發(fā)板使用TFTP加載內(nèi)核設(shè)備樹
評(píng)論