博客專欄

        EEPW首頁 > 博客 > Yocto meta-toradex-security layer 創建獨立數據分區

        Yocto meta-toradex-security layer 創建獨立數據分區

        發布人:toradex 時間:2025-04-24 來源:工程師 發布文章

        By Toradex 胡珊逢

        簡介

         

        Toradex 為其產品使用的軟件系統如 Linux 提供了諸多的安全功能,例如 Secure Boot、分區加密、OP-TEE 等,幫助用戶應對安全合規。這些功能可以通過在 Yocto Project 中添加由 Toradex 開發的 meta-toradex-securitylayer 被輕松使用。我們將在接下的幾篇文章中介紹如何使用這些功能。本次我們首先介紹如何在使用 Yocto Project 生成安裝鏡像時創建一個獨立的分區,這為后面的分區加密做好準備。

         

         

        Yocot Project 環境搭建和配置

         

        參考 Build a Reference Image with Yocto Project/OpenEmbedded頁面的說明,我們使用最新的 Linux BSP 7 版本。除了使用默認的 repo 外,我們還可以使用國內站點的 repo 工具,便于下載。

         

        $ curl -L https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo

        $ chmod +x repo

        $ export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

         

         

        下載編譯 BSP 7 鏡像所使用的 mainifest 文件。

         

        $ repo init -u git://git.toradex.cn/toradex-manifest.git -b scarthgap-7.x.y -m tdxref/default.xml
        $ repo sync
        $ . export

         

         

        執行完 `repo sync` 命令后,可以在 layers 目錄下發現 Yocto Project 使用的 recipes 文件。在 layers 目錄下需要添加 meta-toradex-security 以及其依賴的 meta-security layers。

         

        $ cd layers
        $ git clone -b scarthgap-7.x.y https://github.com/toradex/meta-toradex-security.git
        $ git clone -b scarthgap git://git.yoctoproject.org/meta-security

         

         

        build/conf/bblayers.conf 的末尾增加 meta-toradex-security 和 meta-security。這樣在稍后的 bitbake 編譯時才能夠使用這些 recipes。

         

        ${TOPDIR}/../layers/openembedded-core/meta \
        ${TOPDIR}/../layers/meta-toradex-security \
        ${TOPDIR}/../layers/meta-security \

         

         

        build/conf/local.conf 的末尾添加下面內容。

        INHERIT += "tdx-tezi-data-partition"

         

        在創建和掛載分區時,local.conf 可以使用下面變量改變分區名字、掛載路徑、是否自動掛載以及使用其他的掛載參數等,可以根據需要使用。

         

         

        變量

        描述

        默認值

        TDX_TEZI_DATA_PARTITION_TYPE

        數據分區文件系統類型。可用的值為 ext2ext3ext4fat ubifs
        支持的值僅限于 Toradex Easy Installer 所支持的范圍

        ext4

        TDX_TEZI_DATA_PARTITION_LABEL

        用于格式化和掛載數據分區的標簽

        DATA

        TDX_TEZI_DATA_PARTITION_AUTOMOUNT

        設置為 1 以在啟動時自動掛載數據分區,或設為0禁用自動掛載;
        當設置為-1時,該分區甚至不會出現在fstab中(需通過其他方式掛載)

        如果使用了 tdx-encrypted 類為 -1,否則為 1

        TDX_TEZI_DATA_PARTITION_MOUNTPOINT

        數據分區應掛載的目錄

        /data

        TDX_TEZI_DATA_PARTITION_MOUNT_FLAGS

        用于掛載數據分區的標志。有關可用掛載標志的更多信息,
        請參閱 mount 手冊頁。

        rw,nosuid,nodev,noatime, errors=remount-ro

         

        模塊情況下將在 /data 目錄掛載一個 EXT4 格式的分區,在該分區上可以存放用戶的數據。

         

         

        編譯鏡像

         

        完成上面的配置后,即可使用 bitbake 命令編譯鏡像。例如本次測試將編譯用于 Verdn AM62 模塊的 minimal image。

         

        $ MACHINE=verdin-am62 bitbake tdx-reference-minimal-image

         

         

        安裝鏡像

         

        雖然在 Yocto Project 中規劃了一個 /data 下的分區,但該分區還是需要在模塊上安裝鏡像時,由 Toradex Easy Installer 在模塊的 eMMC 上創建。在生成鏡像的安裝文件 image.json 可以看到如下內容。在 RFS 系統分區后會創建一個 DATA 分區。

         

        {
          "partition_size_nominal": "512",
          "partition_type": "83",
          "want_maximised": true,
          "content": {
              "label": "DATA",
              "filesystem_type": "ext4",
              "mkfs_options": "-E nodiscard",
              "filename": ""
          }
        }

         

         

        檢查分區情況

         

        安裝完畢重啟進入系統后,使用 mount 命令可以看到 /dev/mmcblk0p3 被掛載到了 /data 目錄下。

         

        /dev/mmcblk0p3 on /data type ext4 (rw,nosuid,nodev,noatime,errors=remount-ro) [DATA]

         

         

        /etc/fstab 中,將 LABEL 為 DATA 的分區在啟動時自動掛載。LABEL 名字是前面表格中 TDX_TEZI_DATA_PARTITION_LABEL 參數的默認值。

        root@verdin-am62-15415684:/data# cat /etc/fstab 
        ...
        LABEL=DATA  /data  auto  rw,nosuid,nodev,noatime,errors=remount-ro,auto  0  0

         

         

        image.json 中,RFS 和 DATA 分區都設置了 "want_maximised": true,所以這兩個分區會平分 eMMC 上剩余的空間,這里基本約為 3GB。

        root@verdin-am62-15415684:/data# df -h
        Filesystem                Size      Used Available Use% Mounted on
        /dev/root                 3.4G    207.0M      3.0G   6% /
        ...
        /dev/mmcblk0p3            3.4G     28.0K      3.2G   0% /data

         

         

        總結

         

        通過 meta-toradex-security,用戶可以在編譯鏡像時輕松規劃分區,并在運行時將其自動掛載。更多來自 meta-toradex-security 實用功能,我們將在后續文章介紹。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: ARM Linux TI AM62 Toradex Verdin

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 固阳县| 抚松县| 武义县| 安泽县| 焦作市| 如皋市| 博客| 临澧县| 江阴市| 东兰县| 吉木萨尔县| 迭部县| 图们市| 蓬安县| 五家渠市| 宣城市| 吴忠市| 辛集市| 成安县| 大兴区| 托克托县| 南陵县| 杨浦区| 化德县| 时尚| 托克逊县| 格尔木市| 安多县| 湄潭县| 铅山县| 伊宁市| 小金县| 郎溪县| 彰化县| 田林县| 包头市| 张家界市| 花莲县| 建宁县| 方城县| 嘉峪关市|