<ul id="gu0q4"></ul>
  • <strike id="gu0q4"><abbr id="gu0q4"></abbr></strike>
    <strike id="gu0q4"><menu id="gu0q4"></menu></strike>
    <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
    <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
    • <samp id="gu0q4"></samp>

      技術貼|如何在【RK3588】ELF 2開發(fā)板上進行根系統的定制原創(chuàng)

      發(fā)布時間:2025-07-01 09:24:08
      RK3588 RK3588開發(fā)板 根系統

      ELF 2開發(fā)板基于瑞芯微RK3588高性能處理器設計,擁有四核ARM Cortex-A76與四核ARM Cortex-A55的CPU架構,主頻最高可達2.4GHz,內置6TOPS算力的NPU,這一設計讓它能夠輕松駕馭多種深度學習框架,高效處理各類復雜的AI任務。

      ?

      ELF 2開發(fā)板已經適配了Linux 5.10Elf2 Desktop 22.04操作系統,其中Elf2 Desktop 22.04系統是專為嵌入式設計的Ubuntu base。雖然其apt-get 等命令支持在線安裝軟件,但存在明顯缺陷:重新燒寫鏡像后軟件會丟失,需再次安裝。 這在批量部署多塊開發(fā)板時,工作量巨大。因此,將軟件預先集成到鏡像中,實現燒錄后無需重新安裝,成為亟待解決的問題。

      ?

      本文將圍繞如何在 【RK3588】ELF 2開發(fā)板上基于 Ubuntu 22.04 操作系統進行根文件系統的定制展開詳細闡述。

      ?

      1、 開發(fā)環(huán)境安裝QEMU

      QEMU 是一款輕量級硬件模擬器,支持多種架構,如 ARM、x86 和 x86-64。 它應用廣泛,是 Xen 虛擬化平臺和 Android 模擬器等項目的底層基礎。在嵌入式領域,開發(fā)者常利用 QEMU 深入研究 Linux 系統,進行文件系統優(yōu)化等工作。

      ?

      下面我們開始在開發(fā)環(huán)境(需要開發(fā)環(huán)境能上網)中安裝QEMU,如下:

      (1)更新下載源

      elf@ubuntu:~?sudo apt-get?update

      ?

      (2)執(zhí)行命令安裝

      elf@ubuntu:~?sudo apt-get?install qemu-user-static

      ?

      2、文件系統掛載

      將SDK中ELF 2 Desktop 文件系統鏡像jammy-rootfs.img進行掛載,掛載后可以被訪問操作。

      ?

      (1)文件系統備份

      操作前先對文件系統鏡像備份,如若操作出現異常,可回退使用最初鏡像。

      elf@ubuntu:~$?cd work/ELF2-linux-source/ubuntu/ ??#SDK源碼路徑需修改為個人路徑elf@ubuntu:~/work/ELF2-linux-source/ubuntu$?mkdir bakelf@ubuntu:~/work/ELF2-linux-source/ubuntu$?cp jammy-rootfs.img bak/

      ?

      (2)文件系統擴容

      文件系統擴容的大小不超過根分區(qū)大?。J根分區(qū)為14G)

      elf@ubuntu:~/work/ELF2-linux-source/ubuntu$?e2fsck -f jammy-rootfs.imgelf@ubuntu:~/work/ELF2-linux-source/ubuntu$?resize2fs jammy-rootfs.img?3145728

      ?

      resize2fs IMAGE SIZE

      • IMAGE為要修改的鏡像名稱;

      • SIZE為塊的數量,一個塊的大小為4K。

      (例如擴容到12G,12G=12x1024x1024=12582912K=3145728x4K,SIZE參數為3145728)

      ?

      (3)創(chuàng)建掛載目錄,并將文件系統掛載到該目錄

      elf@ubuntu:~/work/ELF2-linux-source/ubuntu$?mkdir rootfself@ubuntu:~/work/ELF2-linux-source/ubuntu$?sudo mount jammy-rootfs.img rootfs/

      ?

      3、修改配置

      (1)將開發(fā)環(huán)境中的qemu-arm-static拷貝到desktop文件系統中

      elf@ubuntu:~/work/ELF2-linux-source/ubuntu$?sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/

      ?

      (2)將開發(fā)環(huán)境中的DNS配置拷貝到desktop文件系統中,因為安裝程序時要用絡

      elf@ubuntu:~/work/ELF2-linux-source/ubuntu$?sudo cp -b /etc/resolv.conf ?rootfs/etc/resolv.conf

      ?

      (3)修改下載源

      $?sudo vim rootfs/etc/apt/sources.list

      ?

      添加:

      deb?http://ports.ubuntu.com/ubuntu-ports/ jammy main universedeb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main universe

      ?

      4、文件系統隔離

      通過chroot進行虛擬化隔離,將隔離步驟寫入到ch-mount.sh腳本中。

      #!/bin/bashfunction?mnt() {echo?"MOUNTING"sudo mount -t proc /proc?${2}procsudo mount -t sysfs /sys?${2}syssudo mount -o?bind?/dev?${2}devsudo?chroot?${2}}function?umnt() {echo?"UNMOUNTING"sudo umount?${2}procsudo umount?${2}syssudo umount?${2}dev}if?[?"$1"?==?"-m"?] && [ -n?"$2"?] ;thenmnt?$1?$2elif?[?"$1"?==?"-u"?] && [ -n?"$2"?];thenumnt?$1?$2elseecho?""echo?"Either 1'st, 2'nd or both parameters were missing"echo?""echo?"1'st parameter can be one of these: -m(mount) OR -u(umount)"echo?"2'nd parameter is the full path of rootfs directory(with trailing '/')"echo?""echo?"For example: ch-mount -m /media/sdcard/"echo?""echo?1st parameter :?${1}echo?2nd parameter :?${2}fi

      ?

      ch-mount.sh腳本放到ELF2-linux-source/ubuntu目錄下,賦予權限后,通過參數-m指定掛載路徑:

      elf@ubuntu:~/work/ELF2-linux-source/ubuntu$?sudo chmod a+x ch-mount.shelf@ubuntu:~/work/ELF2-linux-source/ubuntu$?sudo ./ch-mount.sh -m rootfs/root@ubuntu:/#

      ?

      5、文件系統修改

      前面我們掛載了文件系統,已將文件系統掛載到了QEMU模擬器,下面就可以安裝我們所需要的軟件了。

      (1)更新下載源

      root@ubuntu:/# apt update

      ?

      (2)軟件安裝與卸載

      至此,便可以安裝所需軟件了,在這里用apt-get安裝自己所需軟件,根據所需安裝。我們這里來安裝一個minicom串口測試工具。如下:

      root@ubuntu:/# apt-get install minicom

      此外通過dpkg --list命令查看所有安裝的軟件,如果想裁剪文件系統,可以使用【apt-get remove 軟件包名稱】進行卸載相關軟件。

      ?

      (3)安裝完成后,exit退出QEMU

      root@ubuntu:/# exitelf@ubuntu:~/work/ELF2-linux-source/ubuntu$

      ?

      (4)執(zhí)行ch-mount.sh腳本卸載文件系統,指定參數-u,后打印如下:

      elf@ubuntu:~/work/ELF2-linux-source/ubuntu$?sudo ./ch-mount.sh -u rootfs/elf@ubuntu:~/work/ELF2-linux-source/ubuntu$?sudo umount rootfs

      ?

      6、打包鏡像

      elf@ubuntu:~/work/ELF2-linux-source/ubuntu$?cd ..elf@ubuntu:~/work/ELF2-linux-source$?./build.sh updateimg

      在ELF2-linux-source/rockdev路徑下會生成新的update.img。

      ?

      通過以上步驟,我們成功完成了 【RK3588】ELF 2開發(fā)板上進行根文件系統的定制工作,這一過程不僅簡化了批量生產中的軟件安裝流程,還顯著提升了開發(fā)效率。各位小伙伴如果在實踐過程遇見各種問題,歡迎隨時留言探討。

      其它推薦:

      推薦閱讀:

      /* 53客服*/ /* 百度統計*/ /* 百度站長*/
      <ul id="gu0q4"></ul>
    • <strike id="gu0q4"><abbr id="gu0q4"></abbr></strike>
      <strike id="gu0q4"><menu id="gu0q4"></menu></strike>
      <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
      <samp id="gu0q4"><tfoot id="gu0q4"></tfoot></samp>
      • <samp id="gu0q4"></samp>