本指南将向您展示如何使用 i.MX FRDM 板作为基础构建 Yocto Linux。
本文以 FRDM-IMX93 为例,但同样的步骤也可用于在其他 i.MX FRDM 板上进行构建。
本文以“Linux 6.12.49_2.2.0 ( Yocto 5.2 “Walnascar” )”为例,描述了 Yocto Linux BSP。
问:i.MX FRDM 板是什么?
答:i.MX FRDM 开发板是一款价格更实惠、体积更小的开发板,相比恩智浦功能齐全的 EVK 开发板,它的功能有所减少。其目的是方便用户进行基本的评估和原型设计。
1. 环境与准备
1.1.环境
| 大项目 | 小项目 | 内容 | 备注 |
| 文档 | - |
IMX_YOCTO_PROJECT_USERS_GUIDE.pdf i.MX Linux ®发行说明 i.MX 移植指南 |
点击此处下载Yocto Linux 通用文档。 |
| 硬件 | FRDM板 | 本章将以 FRDM-IMX93 为基础进行解释。 | |
| 主机 PC Ubuntu 环境 |
・VMware/Virtual Box 等(在 Windows 上)
・Native Linux
以下选项之一
|
推荐版本:Ubuntu 22.04 或更高版本 | |
| SD卡+读卡器/写入器 | 建议使用 16GB 或更多内存 | ||
|
硬件 (选项) |
MIPI 摄像头 (选项) |
兼容BSP的MIPI相机 (参见 i.MX Linux ®发行说明) |
USB摄像头也可以替代(可能会出现延迟) |
|
显示 (选项) |
展示 | ||
|
USB 设备 (选项) |
USB鼠标、USB存储器 | ||
|
耳机 (选项) |
3.5mm 耳机 |
带麦克风的耳机(例如老款 iPhone 附带的耳机)更好。 | |
| 软件 | Yocto 环境 | Linux BSP (这次我们使用了 Linux 6.12.49_2.2.0( Yocto 5.2 “Walnascar” )) |
本文将介绍安装过程,包括安装方法。 |
1.2.图例
命令提示符图例
=> u-bootプロンプト
$ BSPがインストールされているLinux PCのプロンプト
2. 主机
推荐使用 Ubuntu 22.04 桌面版。为了获得较为流畅的使用体验,建议使用至少配备 8 个线程和 16GB 内存的主机。所需的存储空间会根据具体项目而有所不同,小型项目大约需要 50GB,大型项目则需要 500GB。
2.1。Yocto 所需的软件包
请按照以下步骤安装所需的软件包。
$ sudo apt-get install build-essential chrpath cpio debianutils diffstat file gawk
gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3-
jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xzutils zstd efitools curl
注意:除了 IMX_YOCTO_PROJECT_USERS_GUIDE.pdf 中的信息外,还添加了curl 。
2.2. 设置交换文件
以下是设置 32GB 交换文件的示例。
$ sudo fallocate -l 32G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
注意:如果/swapfile 目录已存在,则第一行命令将失败。如果要更改其大小,请执行以下命令,然后再运行上面的命令。
$ sudo swapoff /swapfile
$ sudo rm /swapfile
要在主机启动时自动挂载交换文件,请将以下行添加到/etc/fstab文件中:
/swapfile none swap sw 0 0
3. Yocto Linux BSP
从 nxp.jp 网站的“i.MX 应用处理器的嵌入式 Linux”部分,选择所需的 Linux BSP 版本,并获取 i.MX Yocto 项目用户指南。
Yocto User Guide.jpg
按照 i.MX Yocto 项目用户指南 (IMXLXYOCTOUG) 中的“4 Yocto 项目设置”部分的步骤创建映像。
本文档假设使用以下设置生成图像。
发行版 = fsl-imx-xwayland
机器 = imx93-11x11-lpddr4x-frdm
3.1. 设置和构建 Yocto BSP
有关主机设置,请参阅 2. 主机。
3.1.1.安装仓库实用程序
$ mkdir ~/bin
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
3.1.2. 将存储库添加到您的 PATH 环境变量中
将以下行添加到$HOME/.bashrc文件中:
export PATH=~/bin:$PATH
3.1.3.Git 设置
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --list
3.1.4.Yocto BSP 设置
$ mkdir imx-yocto-bsp
$ cd imx-yocto-bsp
$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-walnascar -m imx-6.12.49-2.2.0.xml
$ repo sync
3.1.5.设置构建目标,构建
$ MACHINE=imx93-11x11-lpddr4x-frdm DISTRO=fsl-imx-xwayland source ./imx-setup-release.sh -b build
$ bitbake imx-image-full
*构建完成后,将生成一个 Linux 镜像。
* 有关如何写入生成的映像的说明,请参阅您的特定 FRDM 板的入门指南中的步骤 1 和 2。
注意:如果您想为其他 FRDM 板构建 Linux BSP,请将上述命令中的“ MACHINE= ”部分替换为以下名称。
注意:对于图形功能,您还可以使用上述命令中的“ DISTRO = ”部分选择发行版。
注意:每个项目只能使用imx-setup-release.sh脚本进行一次设置。如果对现有项目执行此操作,将会生成诸如conf/local.conf之类的新文件,并且您之前的设置将会丢失。如果您希望重用现有项目……3.3.1.请参阅“从现有构建目录恢复工作”。
注意:根据主机配置的不同,构建过程可能需要数十小时。此外,预计会占用 400-500GB 的存储空间。
注意:在多核多线程主机上构建时,如果内存不足以支持所有线程,则会发生内存交换。限制线程数的方法将在 3.4.2 节中介绍。请参阅“限制构建过程中运行的线程数”。
注意:Ubuntu 22.04 初始状态下可能未配置交换分区,这会导致系统运行极其缓慢甚至崩溃。交换分区文件配置如下:2.2.请参阅有关配置交换文件的章节。
以下信息仅供参考。
3.2 构建和安装工具链
您可以构建和安装交叉编译器等工具链。通过使用此处生成的脚本,您可以避免交叉编译过程中经常出现的问题,例如找不到要链接的包含文件或库。
3.2.1.工具链的构建
$ bitbake imx-image-full -c populate_sdk
3.2.2.安装
$ tmp/deploy/sdk/fsl-imx-xwayland-glibc-x86_64-imx-image-full-armv8a-imx93-11x11-lpddr4x-pf0900-evk-toolchain-6.12-walnascar.sh
这里我们就不解释如何使用该工具链了。
3.3.常用的 Yocto bitbake 命令和设置
3.3.1.从现有构建目录继续工作。
$ cd /path/to/imx-yocto-bsp
$ source ./setup-environment build
注意:这里提到的路径和目录来自 3.1.4 节。Yocto BSP 设置,3.1.5。构建目标设置在构建过程中已配置。
下面我们将以 linux-imx 为例,给出一些命令示例。您可以将“ linux-imx ”替换为其他软件包名称,对每个软件包执行相同的操作。
3.3.2. 软件包的重新构建
$ bitbake -c compile linux-imx -f
$ bitbake -c install linux-imx
$ bitbake -c deploy linux-imx
如果不添加注释-f ,则可以跳过这些步骤。
注意 - 某些软件包在使用 `-c deploy` 进行部署时可能会显示错误,但在大多数情况下,这仅仅是因为 `do_deploy` 命令不可用,因此您可以忽略该错误。
3.3.3 删除软件包
如果某个软件包出现不应发生的错误,请尝试使用以下命令删除该软件包,然后重试。这或许可以解决错误。(这是因为软件包可能在下载过程中损坏,或者如果构建过程过早终止,则可能残留一些垃圾数据。)
$ bitbake -c cleansstate linux-imx
注意:提取出的所有源代码都将被删除,因此如果您正在编辑任何文件,请务必小心。
3.3.4. 软件包提取
如果您只想提取软件包而不想编译它
$ bitbake -c patch linux-imx
3.3.5. 将更改应用到配置文件
如果您想更改配置文件(例如arch/arm64/configs/imx_v8_defconfig )并希望这些更改生效:
$ bitbake -c configure linux-imx
$ bitbake -c compile linux-imx -f
3.3.6. 运行 linux-imx menuconfig
更改 Linux 内核的构建选项时
$ bitbake -c menuconfig linux-imx
此时会弹出一个类似这样的窗口,请进行必要的更改并保存(使用十字光标键选择所需项目,然后按空格键确认)。
有关建造方面的技巧,请参考以下文章。
=========================
即使您在本文的“评论”栏留言,我们目前也无法回复。
给您带来不便,我们深感抱歉。请在询问时参阅“NXP技术问题-联系方式(日本博客)”。
(如果您已经是NXP的代理商或与其有合作关系,可以直接向负责人咨询。)
本指南将向您展示如何使用 FRDM(Freedom)板构建 Linux BSP,使您能够以紧凑且经济实惠的方式开始使用嵌入式 Linux。
本文以 FRDM-IMX93 为例,但同样的步骤也可用于在其他 i.MX FRDM 板上进行构建。
本文以“Linux 6.12.49_2.2.0 (Yocto 5.0.4)”为例,对 Yocto Linux BSP 进行了描述。