工控網首頁
>

應用設計

>

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

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

簡介

 

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

數據分區文件系統類型??捎玫闹禐?nbsp;ext2、ext3、ext4、fat 和 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 實用功能,我們將在后續文章介紹。

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

NXP iMX8MP ARM 平臺 EMQX 部署測試

NXP iMX8QM 通過 SCFW 隔離 AP_M4 核資源

上手測試 Hailo:在 Toradex 模塊上加速邊緣 AI

Yocto Linux 量產 BSP 鏡像定制

ARM 處理器平臺 eMMC Flash 存儲磨損測試示例