• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 博客專欄

    EEPW首頁 > 博客 > Yocto meta-toradex-security layer 創(chuàng)建獨(dú)立數(shù)據(jù)分區(qū)

    Yocto meta-toradex-security layer 創(chuàng)建獨(dú)立數(shù)據(jù)分區(qū)

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

    By Toradex 胡珊逢

    簡介

     

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

     

     

    Yocot Project 環(huán)境搭建和配置

     

    參考 Build a Reference Image with Yocto Project/OpenEmbedded頁面的說明,我們使用最新的 Linux BSP 7 版本。除了使用默認(rèn)的 repo 外,我們還可以使用國內(nèi)站點(diǎn)的 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

     

     

    執(zhí)行完 `repo sync` 命令后,可以在 layers 目錄下發(fā)現(xiàn) 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 的末尾添加下面內(nèi)容。

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

     

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

     

     

    變量

    描述

    默認(rèn)值

    TDX_TEZI_DATA_PARTITION_TYPE

    數(shù)據(jù)分區(qū)文件系統(tǒng)類型。可用的值為 ext2、ext3ext4fat ubifs。
    支持的值僅限于 Toradex Easy Installer 所支持的范圍

    ext4

    TDX_TEZI_DATA_PARTITION_LABEL

    用于格式化和掛載數(shù)據(jù)分區(qū)的標(biāo)簽

    DATA

    TDX_TEZI_DATA_PARTITION_AUTOMOUNT

    設(shè)置為 1 以在啟動時自動掛載數(shù)據(jù)分區(qū),或設(shè)為0禁用自動掛載;
    當(dāng)設(shè)置為-1時,該分區(qū)甚至不會出現(xiàn)在fstab中(需通過其他方式掛載)

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

    TDX_TEZI_DATA_PARTITION_MOUNTPOINT

    數(shù)據(jù)分區(qū)應(yīng)掛載的目錄

    /data

    TDX_TEZI_DATA_PARTITION_MOUNT_FLAGS

    用于掛載數(shù)據(jù)分區(qū)的標(biāo)志。有關(guān)可用掛載標(biāo)志的更多信息,
    請參閱 mount 手冊頁。

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

     

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

     

     

    編譯鏡像

     

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

     

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

     

     

    安裝鏡像

     

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

     

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

     

     

    檢查分區(qū)情況

     

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

     

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

     

     

    /etc/fstab 中,將 LABEL 為 DATA 的分區(qū)在啟動時自動掛載。LABEL 名字是前面表格中 TDX_TEZI_DATA_PARTITION_LABEL 參數(shù)的默認(rèn)值。

    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 分區(qū)都設(shè)置了 "want_maximised": true,所以這兩個分區(qū)會平分 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

     

     

    總結(jié)

     

    通過 meta-toradex-security,用戶可以在編譯鏡像時輕松規(guī)劃分區(qū),并在運(yùn)行時將其自動掛載。更多來自 meta-toradex-security 實(shí)用功能,我們將在后續(xù)文章介紹。


    *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



    關(guān)鍵詞: ARM Linux TI AM62 Toradex Verdin

    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 昌吉市| 凤台县| 太仓市| 珠海市| 商河县| 城市| 贵德县| 诸城市| 岚皋县| 嘉鱼县| 大石桥市| 玛纳斯县| 石城县| 炉霍县| 临夏市| 皮山县| 会理县| 台山市| 怀集县| 临朐县| 饶河县| 万荣县| 屏东县| 罗山县| 海晏县| 平湖市| 江津市| 奇台县| 东山县| 康定县| 乌拉特后旗| 江津市| 阆中市| 泽州县| 扶沟县| 龙川县| 乳山市| 武陟县| 辽阳市| 哈尔滨市| 阿瓦提县|