那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用TFTP加載內(nèi)核設(shè)備樹(shù)

迅為電子 ? 來(lái)源:迅為電子 ? 2025-01-17 15:52 ? 次閱讀

需求分析

嵌入式項(xiàng)目開(kāi)發(fā)中,為了適配新外設(shè)、調(diào)整硬件資源分配或修復(fù)驅(qū)動(dòng)問(wèn)題,需要頻繁修改設(shè)備樹(shù)和內(nèi)核。修改完成后,通常需要重新編譯生成鏡像,并將其燒錄到開(kāi)發(fā)板上進(jìn)行測(cè)試。然而,傳統(tǒng)的燒錄方式不僅需要連接物理接口,還可能因?yàn)殓R像體積較大而耗費(fèi)較長(zhǎng)時(shí)間,這在開(kāi)發(fā)周期緊張的情況下顯得尤為低效。

為了解決這一問(wèn)題,可以采用基于TFTP(Trivial File Transfer Protocol)的內(nèi)核和設(shè)備樹(shù)加載方法。這種方式無(wú)需將鏡像完整燒錄到開(kāi)發(fā)板的存儲(chǔ)介質(zhì),而是通過(guò)網(wǎng)絡(luò)直接加載和運(yùn)行新內(nèi)核與設(shè)備樹(shù)。相比傳統(tǒng)燒錄方式,TFTP 加載顯著減少了鏡像更新的等待時(shí)間,同時(shí)允許更靈活地對(duì)不同版本的內(nèi)核或設(shè)備樹(shù)進(jìn)行快速切換和驗(yàn)證。

TFTP加載內(nèi)核設(shè)備樹(shù)

實(shí)驗(yàn)平臺(tái):iTOP-RK3568開(kāi)發(fā)板

01-安裝TFTP服務(wù)端

首先進(jìn)行TFTP 服務(wù)端的搭建,首先在ubuntu終端中執(zhí)行以下命令安裝TFTP服務(wù):

sudo apt-get install tftp-hpa tftpd-hpa

c8cf6c70-d49c-11ef-9310-92fbcf53809c.png

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

輸入以下命令在家目錄創(chuàng)建tftpboot文件夾,如下圖所示:

mkdir -p tftpboot

c8cf6c70-d49c-11ef-9310-92fbcf53809c.png

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

輸入以下命令在家目錄創(chuàng)建tftpboot文件夾,如下圖所示:

chmod 777 tftpboot

c9324412-d49c-11ef-9310-92fbcf53809c.png

最后使用以下命令修改TFTP配置文件,打開(kāi)配置文件以后如下圖所示:

sudo vim /etc/default/tftpd-hpa

c94eb782-d49c-11ef-9310-92fbcf53809c.png

修改為如下內(nèi)容,修改完成如下圖所示:

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/home/topeet/tftpboot/"

TFTP_ADDRESS=":69"

TFTP_OPTIONS="-l-c-s"

c9697252-d49c-11ef-9310-92fbcf53809c.png

修改完成保存退出,在終端輸入以下命令重啟tftpd-hpa服務(wù)。

sudo service tftpd-hpa restart

如下圖所示:

c97a07d4-d49c-11ef-9310-92fbcf53809c.png

02-配置開(kāi)發(fā)板網(wǎng)絡(luò)

TFTP服務(wù)端搭建完成之后,進(jìn)行第二步,配置開(kāi)發(fā)板的網(wǎng)絡(luò)。

連接好開(kāi)發(fā)板的網(wǎng)線后,上電啟動(dòng)開(kāi)發(fā)板,在加載階段點(diǎn)擊“ctrl+c”進(jìn)入uboot命令行,如下圖所示:

c98fe0ea-d49c-11ef-9310-92fbcf53809c.png

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

c9b024e0-d49c-11ef-9310-92fbcf53809c.png

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

setenv ipaddr 192.168.1.94

setenv serverip 192.168.1.79

setenv gateway 192.168.1.1

c9d2caf4-d49c-11ef-9310-92fbcf53809c.png

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

ping 192.168.1.79

c9dcb974-d49c-11ef-9310-92fbcf53809c.png

如果環(huán)境變量不知道哪里設(shè)置錯(cuò)了,或者想要恢復(fù)成emmc啟動(dòng),可以使用以下命令重置環(huán)境變量

env default -a

Saveenv

03-tftp加載內(nèi)核和設(shè)備樹(shù)

在前面兩個(gè)小節(jié)中分別搭建了TFTP服務(wù)器以及配置好了開(kāi)發(fā)板的網(wǎng)絡(luò),現(xiàn)在進(jìn)行最后一步,使用tftp加載內(nèi)核和設(shè)備樹(shù)。

首先將內(nèi)核鏡像boot.img和設(shè)備樹(shù)文件rk3568-evb1-ddr4-v10-linux.dtb拷貝到第一小節(jié)創(chuàng)建的“/home/topeet/tftpboot”目錄下,拷貝完成如下圖所示:

c9ee883e-d49c-11ef-9310-92fbcf53809c.png

然后根據(jù)上一小節(jié)內(nèi)容配置自身ip和server ip,設(shè)置完成之后,使用以下命令將內(nèi)核和設(shè)備樹(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"

c9fe4b84-d49c-11ef-9310-92fbcf53809c.png

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

env run bootcmd

ca1dc810-d49c-11ef-9310-92fbcf53809c.png

可以看到在這里加載的就是tftp服務(wù)端存放內(nèi)核以及設(shè)備樹(shù),等待開(kāi)發(fā)板進(jìn)入系統(tǒng)之后進(jìn)行調(diào)試即可。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5092

    文章

    19177

    瀏覽量

    307632
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1382

    瀏覽量

    40421
  • TFTP
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    14358
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5121

    瀏覽量

    98183
  • 設(shè)備樹(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    3157

原文標(biāo)題:【技術(shù)分享】使用TFTP加載內(nèi)核設(shè)備樹(shù)

文章出處:【微信號(hào):迅為電子,微信公眾號(hào):迅為電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    通過(guò)Uboot?TFTP啟動(dòng)rt-smart內(nèi)核

    介紹Windows下通過(guò) Uboot??TFTP 方式下載和啟動(dòng)rt-smart 內(nèi)核
    的頭像 發(fā)表于 06-30 12:34 ?3806次閱讀
    通過(guò)Uboot?<b class='flag-5'>TFTP</b>啟動(dòng)rt-smart<b class='flag-5'>內(nèi)核</b>

    tftp加載和執(zhí)行eewiki u-boot映像失敗

    時(shí),u-boot使用tftp檢索新內(nèi)核設(shè)備樹(shù)blob(?)和根文件系統(tǒng)(我的理解是它必須將這些圖像加載到ram中,然后將ram的內(nèi)容復(fù)制到
    發(fā)表于 10-24 14:27

    iMX6Q開(kāi)發(fā)板設(shè)備樹(shù)內(nèi)核-注冊(cè)驅(qū)動(dòng)例程介紹

    `文檔主要講解在 iMX6Q/D/PLUS 開(kāi)發(fā)板的設(shè)備樹(shù)內(nèi)核(4.1.15)源碼中,設(shè)備樹(shù)注冊(cè)驅(qū)動(dòng)和非
    發(fā)表于 07-18 15:42

    iTOP-iMX6開(kāi)發(fā)板-設(shè)備樹(shù)內(nèi)核-注冊(cè)驅(qū)動(dòng)例程

    本文檔主要講解在迅為iTOP-iMX6Q/D/PLUS 開(kāi)發(fā)板的設(shè)備樹(shù)內(nèi)核(4.1.15)源碼中,設(shè)備樹(shù)注冊(cè)驅(qū)動(dòng)和非
    發(fā)表于 08-09 10:01

    如何編譯設(shè)備樹(shù)和Linux內(nèi)核鏡像文件

    實(shí)驗(yàn)任務(wù):編譯設(shè)備樹(shù)和Linux內(nèi)核鏡像文件,拷貝到sd卡中,再?gòu)膕d卡中拷貝到nand閃存對(duì)應(yīng)的分區(qū)中,最后nand啟動(dòng),進(jìn)入linux系統(tǒng)本篇博客內(nèi)容:1.實(shí)驗(yàn)流程2.注意事項(xiàng)1.實(shí)驗(yàn)流程1.
    發(fā)表于 12-20 07:11

    內(nèi)核設(shè)備樹(shù)的相關(guān)資料分享

    1 硬件基礎(chǔ)在我們的開(kāi)發(fā)板上集成了一顆RGB燈組,引腳連接著主控的三路PWM輸出,因此我們可以通過(guò)三路PWM輸出進(jìn)行調(diào)色的功能,硬件原理圖如下:2 內(nèi)核設(shè)備樹(shù)我們把設(shè)備
    發(fā)表于 12-24 07:00

    請(qǐng)問(wèn)LS1043A板子能否通過(guò)nfs方式掛載文件系統(tǒng)?

    -a 0x80080000 -e 0x80080000 -n Linux -d arch/arm64/boot/Image.gz uImage命令可以生成uImage文件。然后tftp加載內(nèi)核
    發(fā)表于 01-06 07:03

    如何將uboot-2020和Linux5.4.1移植到OK210?

    tftp加載內(nèi)核設(shè)備樹(shù)。linux內(nèi)核移植了dm9000網(wǎng)卡驅(qū)動(dòng),所以可以掛載nfs文件系統(tǒng)。
    發(fā)表于 01-13 07:31

    Linux內(nèi)核設(shè)備樹(shù)DTS使用方法詳解

    會(huì)得到dtb文件,dtb通過(guò)Bootloader引導(dǎo)程序加載內(nèi)核。所以Bootloader需要支持設(shè)備樹(shù)才行;Kernel也需要加入設(shè)備
    發(fā)表于 05-06 16:14

    rk3308b使用tftp啟動(dòng)內(nèi)核設(shè)備樹(shù)的具體流程

    1、rk3308b使用tftp啟動(dòng)內(nèi)核設(shè)備樹(shù)的具體流程我使用的是firefly的rk3308b的板子,RK官方提供的sdk里面默認(rèn)不支持使用tft
    發(fā)表于 05-17 11:12

    如何修改內(nèi)核設(shè)備樹(shù)

    本文檔介紹了內(nèi)核設(shè)備樹(shù)的位置和包含關(guān)系 1.內(nèi)核設(shè)備樹(shù)位置 文件 備注 dts longan/d
    發(fā)表于 12-14 13:42

    設(shè)備樹(shù)的傳遞及kernel 對(duì)設(shè)備樹(shù)的解析

    當(dāng) U-Boot 將設(shè)備樹(shù)加載到內(nèi)存指定位置后,ARM 內(nèi)核的 SoC 以通用寄存器 r2 來(lái)傳遞 dtb 在內(nèi)存中的地址。kernel 獲取到該地址后對(duì) dtb 文件做進(jìn)一步的處理。
    的頭像 發(fā)表于 07-29 11:19 ?2485次閱讀
    <b class='flag-5'>設(shè)備</b><b class='flag-5'>樹(shù)</b>的傳遞及kernel 對(duì)<b class='flag-5'>設(shè)備</b><b class='flag-5'>樹(shù)</b>的解析

    Linux設(shè)備樹(shù)詳解(二) DTB文件格式

    一、背景 ????dtb作為二進(jìn)制文件被加載到內(nèi)存中,然后由內(nèi)核讀取并進(jìn)行解析,如果對(duì)dtb文件的格式不了解,那么在看設(shè)備樹(shù)解析相關(guān)的內(nèi)核
    的頭像 發(fā)表于 08-10 16:02 ?5234次閱讀
    Linux<b class='flag-5'>設(shè)備</b><b class='flag-5'>樹(shù)</b>詳解(二) DTB文件格式

    如何修改內(nèi)核設(shè)備樹(shù)

    如何修改內(nèi)核設(shè)備樹(shù)
    的頭像 發(fā)表于 12-14 14:06 ?871次閱讀
    如何修改<b class='flag-5'>內(nèi)核</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>樹(shù)</b>

    linux驅(qū)動(dòng)程序如何加載進(jìn)內(nèi)核

    ,需要了解Linux內(nèi)核的基本概念和API。以下是一些關(guān)鍵概念: 1.1 內(nèi)核模塊:Linux內(nèi)核模塊是一種動(dòng)態(tài)加載和卸載的代碼,可以在不重新啟動(dòng)系統(tǒng)的情況下
    的頭像 發(fā)表于 08-30 15:02 ?587次閱讀
    澳门百家乐赢钱| 线上kk娱乐城| 属火的在属土的方向做生意好不好| 金银岛娱乐城开户| 百家乐送彩金平台| 呼伦贝尔市| 百家乐特殊技巧| 百家乐官网赌博规律| 大发888 没人举报吗| 网上百家乐官网内| 永德县| 百家乐常用公式| 什么是百家乐官网平注法| 娱网棋牌下载| 澳门百家乐国际| 至尊百家乐官网奇热| 永利高娱乐| 属狗与属龙做生意好吗| 百家乐官网玩法窍门| 太阳城在线娱乐城| 属马的和属猴的在一起做生意好吗| 墨江| 百家乐是娱乐场最不公平的游戏| 百家乐官网保单机作弊| 赌博机| 淘金百家乐的玩法技巧和规则| 百家乐官网打格式| 昭通市| 威尼斯人娱乐城真钱赌博| 24山向内什么山向最好| 百家乐官网之对子的技巧| 大发888游戏平台hg dafa 888 gw| 百家乐庄闲的分布| 澳门百家乐官网是怎样赌| 优博娱乐城信誉| 如何胜百家乐的玩法技巧和规则| 财神百家乐官网的玩法技巧和规则 | 六合彩公司| 新世纪百家乐的玩法技巧和规则| 新东方百家乐官网娱乐城| 百家乐官网庄闲和概率|