博客專欄

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 時(shí)間:2025-04-24 來源:工程師 發(fā)布文章

By Toradex 胡珊逢

簡介

 

Toradex 為其產(chǎn)品使用的軟件系統(tǒng)如 Linux 提供了諸多的安全功能,例如 Secure Boot、分區(qū)加密、OP-TEE 等,幫助用戶應(yīng)對(duì)安全合規(guī)。這些功能可以通過在 Yocto Project 中添加由 Toradex 開發(fā)的 meta-toradex-securitylayer 被輕松使用。我們將在接下的幾篇文章中介紹如何使用這些功能。本次我們首先介紹如何在使用 Yocto Project 生成安裝鏡像時(shí)創(chuàng)建一個(gè)獨(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 編譯時(shí)才能夠使用這些 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ū)時(shí),local.conf 可以使用下面變量改變分區(qū)名字、掛載路徑、是否自動(dòng)掛載以及使用其他的掛載參數(shù)等,可以根據(jù)需要使用。

 

 

變量

描述

默認(rèn)值

TDX_TEZI_DATA_PARTITION_TYPE

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

ext4

TDX_TEZI_DATA_PARTITION_LABEL

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

DATA

TDX_TEZI_DATA_PARTITION_AUTOMOUNT

設(shè)置為 1 以在啟動(dòng)時(shí)自動(dòng)掛載數(shù)據(jù)分區(qū),或設(shè)為0禁用自動(dòng)掛載;
當(dāng)設(shè)置為-1時(shí),該分區(qū)甚至不會(huì)出現(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)志的更多信息,
請(qǐng)參閱 mount 手冊(cè)頁。

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

 

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

 

 

編譯鏡像

 

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

 

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

 

 

安裝鏡像

 

雖然在 Yocto Project 中規(guī)劃了一個(gè) /data 下的分區(qū),但該分區(qū)還是需要在模塊上安裝鏡像時(shí),由 Toradex Easy Installer 在模塊的 eMMC 上創(chuàng)建。在生成鏡像的安裝文件 image.json 可以看到如下內(nèi)容。在 RFS 系統(tǒng)分區(qū)后會(huì)創(chuàng)建一個(gè) 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ū)在啟動(dòng)時(shí)自動(dòng)掛載。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,所以這兩個(gè)分區(qū)會(huì)平分 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,用戶可以在編譯鏡像時(shí)輕松規(guī)劃分區(qū),并在運(yùn)行時(shí)將其自動(dòng)掛載。更多來自 meta-toradex-security 實(shí)用功能,我們將在后續(xù)文章介紹。


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



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

相關(guān)推薦

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

關(guān)閉