在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【OTA升級】無需數據線,一條命令即可完成固件升級!

Firefly開源團隊 ? 2024-12-11 01:00 ? 次閱讀

OTA介紹

OTA(Over-The-Air,空中升級)是一種通過無線通信技術實現遠程更新設備固件或軟件的方法。設備批量投入使用后,由于部署范圍太廣、設備數量太多、部署的位置特殊、沒有預留硬件有線升級接口等原因,用戶往往無法人為的通過有線方式更新設備固件,這時候就可以通過 OTA 進行網絡升級。

UpdateEngine介紹

Firefly 在 Linux 平臺上提供了 UpdateEngine 開源 OTA 升級工具,工具支持遠程下載固件、固件校驗、固件解包、完整固件/分區升級。

4721104e-b718-11ef-8084-92fbcf53809c.png

UpdateEngine工作原理

UpdateEngine 會解析 Rockchip 格式的固件,并且計算到每個分區鏡像在固件中的偏移。提取每個分區鏡像的末尾 crc 校驗信息,對固件和分區鏡像進行校驗,確保完整性。

UpdateEngine 會把固件存放的路徑(如:/userdata/update.img)和需要升級的分區信息寫入 misc 分區,并且打上 ”update“標志,讓設備在重啟后自動進入 recovery 模式。

在 recovery 模式中 userdata 分區會自動掛載到 /userdata 下,系統如果檢查到 “update”標志,recovery 就會調用 rkupdate 對固件進行解析并且升級到存儲設備中。

設備在 recovery 模式時,根文件系統會運行在 ramdisk 內存上,而不是原系統存儲上(如:emmc)。所以程序可以正常的向存儲設備分區進行寫操作。

OTA升級流程圖

47406ed0-b718-11ef-8084-92fbcf53809c.png

OTA固件制作

“OTA 升級固件“”實際上就是 SDK 打包出來的 Rockchip 格式的固件。如果用戶只需要對某些分區進行升級而不是完整固件升級,可以通過修改 package-file 來裁剪固件大小。

位置在 Firefly_SDK/tools/linux/Linux_Pack_Firmware/rockdev/package-file

475de802-b718-11ef-8084-92fbcf53809c.png

“RESERVED”代表預留不打包的意思。例如:用戶如果只需要更新 kernel 、uboot、bootloader,可以把 rootfs 分區設置成“RESERVED”,這樣可以大大的減少固件大小。

OTA固件升級步驟

本文實例的實際操作軟硬件環境:

設備:AIO-3588Q

固件:AIO-3588Q-RTLINUX_Ubuntu20.04-Gnome-r240_v1.1.1d_231018


1. 安裝 UpdateEngine

在 Firefly官方的 ubuntu20.04 和 ubuntu22.04 apt源中已經添加了 updateEngine 包,可以直接使用 apt 安裝。

apt updateapt install updateengine

如果是其他 Linux 發行版,也可以直接編譯運行。

apt install libdrm-dev libssl-dev libbz2-dev libcurl4-openssl-dev gitgit clone https://gitlab.com/firefly-linux/external/recovery.gitcd recoverymake -j8

2.升級遠程固件

updateEngine --misc=update --image_url=http://172.16.0.123:8000/update.img --savepath=/userdata/update.img --partition=0xFFFC00 --reboot

--misc=update:misc 中寫入“update”標志,通知 recovery 需要進行 OTA 升級

--image_url:指定固件路徑

--savepath:指定固件存放路徑

--partition:指定需要升級的分區,不指定則默認是 0X3FFC00

--reboot:執行完成后是否自動 reboot

476dc4b6-b718-11ef-8084-92fbcf53809c.png

簡單的搭建存放固件的 http 服務器。

python3 -m http.server 80

3. 升級本地固件

updateEngine --misc=update --image_url=/userdata/update.img --partition=0xFFFC00 --reboot

參數同上

4. 升級完成

執行命令后會自動重啟進入 recovery 升級,user LED 燈閃爍,升級完成后設備會自動重啟進入正常的操作系統。

升級前:

479822d8-b718-11ef-8084-92fbcf53809c.png

升級后:

47ac8c00-b718-11ef-8084-92fbcf53809c.png

注意事項

1. 分區要求

如果你的設備只是單個系統啟動,不是 A/B 啟動,那么你的分區表中必須包含 misc 分區和 recovery 分區。另外如果固件存放在系統硬盤上的 userdata 分區,那么不能修改分區表中的 Userdata 起始位置。

2. 固件存放

無論遠程更新或本地更新,固件最終的存放路徑必須要放在 /userdata 下,有其他的存儲介質除外,但也需要在 recovery 上可以做到自動掛載。

3.Userdata 用戶數據

Recovery 在 updateEning OTA 升級時會保留 userdata 數據,所以 misc 不會升級,也不會擦除 userdata 分區數據。如有需要可以自定義 recovery 的代碼,Firefly_SDK/external/rkupdate/RKAndroidDevice.cpp => DownloadImage,去掉 MISC 的判斷條件,重新編譯 recovery 打包 OTA 升級固件。

47c30f70-b718-11ef-8084-92fbcf53809c.png

更加安全的 OTA 升級應該配合A/B 系統來完成,后續我們還會單獨介紹 A/B 系統的 OTA 升級。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 無線通信
    +關注

    關注

    58

    文章

    4587

    瀏覽量

    143678
  • 數據線
    +關注

    關注

    8

    文章

    283

    瀏覽量

    37773
  • OTA
    OTA
    +關注

    關注

    7

    文章

    583

    瀏覽量

    35296
收藏 人收藏

    評論

    相關推薦

    OTA軟件升級管理系統

    OTA(Over-the-Air Technology,空中下載技術)是通過空中下載的方式對車輛中的軟件進行遠程升級。經緯恒潤OTA軟件升級管理系統基于軟件架構、應用架構、業務架構和技
    的頭像 發表于 01-13 09:39 ?32次閱讀
    <b class='flag-5'>OTA</b>軟件<b class='flag-5'>升級</b>管理系統

    OTA無線更新技術:升級系統,隨時暢享FLIR最新技術!

    站在FLIR技術前沿,享受最新功能帶來的便捷與高效! 1先進的OTA技術 OTA(Over-the-Air)技術能讓您的FLIR熱像儀無線接收最新功能和固件更新。只需連接Wi-Fi,熱像儀就能自動查找并安裝新功能、安全補丁和
    的頭像 發表于 12-03 15:34 ?204次閱讀
    <b class='flag-5'>OTA</b>無線更新技術:<b class='flag-5'>一</b>鍵<b class='flag-5'>升級</b>系統,隨時暢享FLIR最新技術!

    請教,SIM卡PCB走,這個CKL時鐘數據線DATA要等長嘛,一條走頂層一條走底層如圖這樣可以嘛

    請教,SIM卡PCB走,這個CKL時鐘數據線DATA要等長嘛,長條頂層一條走底層如圖這樣可以嘛
    發表于 08-03 22:49

    S3N8R16工程代碼里面只要調用了wifi、藍牙、mqtt等相關接口,編譯出來的固件拿去ota升級升級不了,為什么?

    碰到個很奇怪的現象,我的工程代碼里面只要調用了wifi、藍牙、mqtt等相關接口,編譯出來的固件拿去ota升級升級不了,沒有調用就能正常升級
    發表于 07-19 07:31

    在增強模式下引導加載程序時,OTA升級失敗了,為什么?

    我注意到,當我在增強模式下重新啟動以在 0x81000 時手動啟動 user2 固件,然后運行 OTA 升級升級 user1,它看起來像開始升級
    發表于 07-18 07:12

    OTA升級完成后,跳轉到新的固件時啟動失敗是怎么回事?

    OTA升級完成后,跳轉到新的固件時啟動失敗,但是燒錄進新的固件卻可以正常啟動。 重啟代碼如下: wifi_save_bin_info();
    發表于 07-11 07:54

    esp32-s3 ota固件升級報錯怎么解決?

    a new connection E (118466) HTTP_CLIENT: Connection failed, sock < 0 連上wifi后,通過ESP HTTPS OTA進行固件升級報錯,希望能得到解決,感
    發表于 06-17 08:30

    使用ESP32C3進行藍牙OTA升級升級完成后提示沒有找到OTA數據,為什么?

    完成后提示沒有找到OTA數據, 在網上找了下說是分區表丟失問題,附件為我設置的分區表,單側都是沒問題的,請教還有哪里需要注意的???
    發表于 06-17 07:02

    請問esp32 ota升級如何獲取更新進度?

    所用的是esp32-s2 idf:4.4調用esp_https_ota API進行固件升級,想獲取更新進度,但不知道怎么實現,有人做過或者有思路指點下嗎?
    發表于 06-14 07:20

    ESP-IDF是否支持基于BLE的OTA升級?

    節點需要切換到WiFi才能完成HTTP升級,ESP-IDF是否支持基于BLE的OTA升級?
    發表于 06-12 07:49

    ESP-IDF4.4 OTA升級失敗的原因?

    ESP-IDF4.4 OTA 功能,在啟動OTA功能后下載固件過程中出現wifi無Internet訪問,然后很快網絡恢復,需要等待很久后OTA升級
    發表于 06-06 08:19

    ota固件升級成功后,重啟esp32-s3出現警告是怎么回事?

    ota固件升級成功后,重啟esp32-s3。 拋出了個警告,如下:Code: Select all Warning: checksum mismatch between flashe
    發表于 06-06 07:09

    ZDP1440系列小技巧—如何OTA差分升級顯示素材?

    ZDP1440是款基于開源GUI引擎的圖像顯示專用驅動芯片,支持U盤、SD卡本地升級UI固件,同時也支持通過UART/SPI方式進行OTA升級
    的頭像 發表于 05-06 14:01 ?934次閱讀
    ZDP1440系列小技巧—如何<b class='flag-5'>OTA</b>差分<b class='flag-5'>升級</b>顯示素材?

    通過RK3568開發板進行OTA本地程序升級

    說起OTA我們應該都不陌生,它是種可以為設備無損失升級系統的方式,能將新功能遠程部署到產品上。我們不僅可以通過網絡下載OTA升級包,也可以
    發表于 04-20 11:23

    ota升級是什么意思 ota升級有什么用

    升級的意義和用途。 首先,OTA升級大大提高了設備的可用性和用戶體驗。在過去,設備需要通過USB、藍牙或數據線等方式連接到電腦,以進行固件
    的頭像 發表于 02-02 10:25 ?5621次閱讀
    主站蜘蛛池模板: 亚洲天堂资源| 四虎成人影院网址| 久久美女精品国产精品亚洲| 日本高清色www| 国产亚洲欧美一区| 日本不卡毛片一二三四| 国产成人系列| 欧美亚洲第一区| 国产成人精品高清免费| 永久黄网站色视频免费观看| 午夜欧美成人久久久久久| 手机免费看a| 全黄性色大片| 精品美女在线| 精品毛片视频| www.亚洲综合| 东方天堂网| 好爽~~~~嗯~~~再快点明星| 国产三级在线看| 一级毛片免费不卡直观看| 奇米影视久久| 精品理论片| 久久影视免费体验区午夜啪啪 | 欧美人成网站免费大全| 久久婷婷国产一区二区三区| 国产精品va一区二区三区| 国产一区二区三区毛片| 美女国产在线观看免费观看 | 色丁香在线观看| 久久电影福利| 天天天天做夜夜夜夜| 6一10周岁毛片免费| 免费看的黄网站| 韩漫免费网站无遮挡羞羞漫画| 性生活一区| 免费观看a毛片一区二区不卡| 男人透女人超爽视频免费| 欧美爱爱网| 91一区二区三区四区五区| 亚洲aa视频| eeuss秋霞成人影院|