"); //-->
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 | 数据分区文件系统类型。可用的值为 ext2、ext3、ext4、fat 和 ubifs。 | ext4 |
TDX_TEZI_DATA_PARTITION_LABEL | 用于格式化和挂载数据分区的标签 | DATA |
TDX_TEZI_DATA_PARTITION_AUTOMOUNT | 设置为 1 以在启动时自动挂载数据分区,或设为0禁用自动挂载; | 如果使用了 tdx-encrypted 类为 -1,否则为 1 |
TDX_TEZI_DATA_PARTITION_MOUNTPOINT | 数据分区应挂载的目录 | /data |
TDX_TEZI_DATA_PARTITION_MOUNT_FLAGS | 用于挂载数据分区的标志。有关可用挂载标志的更多信息, | 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 实用功能,我们将在后续文章介绍。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
WinCE+ARM开发及关键技术 上
倾情奉献:MSP430汇编指令集(中文),详解带实例!
人形机器人的触觉与语音能力正飞速提升
ARM 展示小型低功耗上网本样品
Arm财报过山车:营收创纪录,股价跌7%
最新ARM技术和嵌入式技术发展动态 中
TIP120,TIP121,TIP122,TIP125,TIP126,TIP127引脚图
WinCE+ARM开发及关键技术 下
Linux系统的DS18B20驱动程序源代码
ARM Axion 处理器加持谷歌第八代 TPU,云端全面转向智能体 AI 架构
Arm CEO:AI智能体将推动CPU核心数升至 512
基于Linux平台的温度传感器DS18B20驱动程序设计
[转帖]NeuLinux嵌入式Linux开发平台
Linux系统下USB摄像头驱动开发
Arm遭遇监管危机:FTC针对其技术授权启动反垄断调查
三步搞定隔离式放大器选择|隔离、供电、量程
Linux内核源代码的阅读和工具介绍(aqian转)
ARM嵌入式软件编程经验谈
uClinux系统分析
嵌入式LINUX开发套件常见问题解答
AI 数据中心继续扩张,电源和光互连都在升级
arm学习资料
最新ARM技术和嵌入式技术发展动态 下
Arm宣布推出Performix,为开发者带来 AI 时代必备的可扩展性能
基于ARM-Linux的MiniGUI的仿真与移植
边缘 AI 加速的 Arm Cortex‑M0+ MCU 如何为电子产品注入更强智能
ARM开发详解
uClinux系统分析
MSP430 IAR 3.42环境使用指南(中文完整版!)
安谋科技Arm China与国民技术签署Arm Total Access授权许可协议,加速AI时代MCU灵活创新与高效落地