小麦克 发表于 2024-6-27 17:00

i.MX93 yocto编译体验

本帖最后由 小麦克 于 2024-6-28 08:42 编辑

# i.MX93 yocto编译体验

> 公司打算在新项目中使用i.MX93,我负责评估,借此机会好好的学习一下i.MX93平台。
> NXP的imx系列通过yocto构建系统,yocto这个构建系统比较复杂,首次操作可能会遇到很多问题。
> 这个帖子记录编译过程,并且解决编译过程中出现的问题

## 官方imx linux文档

https://www.nxp.com/design/design-center/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX

## 编译环境

我刚开始在Windows环境下安装Ubuntu虚拟机来编译,测试下来发现性能比较差,编译时间太长。后面在物理机上面单独安装了一台`Ubuntu 24.04 LTS`,速度有极大提高。

电脑配置:6核12线程,16GB内存

```
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model         : 167
model name      : 11th Gen Intel(R) Core(TM) i5-11400 @ 2.60GHz
stepping      : 1
microcode       : 0x5e
cpu MHz         : 4400.000
cache size      : 12288 KB
physical id   : 0
siblings      : 12
core id         : 0
cpu cores       : 6
apicid          : 0
initial apicid: 0
fpu             : yes
fpu_exception   : yes
cpuid level   : 27
wp            : yes
```

**注意**:这台机器最好放到能够连接外网的路由器下面,这一点非常重要,否则编译过程中很多包的下载会非常慢,或者下载不下来。

官方提供了两种yocto构建方法:docker编译和手动方式

## docker编译

官方提供了docker编译环境,这个环境不需要设置太多,下载下来直接进行编译。
GitHub地址:https://github.com/nxp-imx/imx-docker

按照网页上面的说明安装好`Docker`,设置好默认的文件夹`/opt`属性

```bash
# user改成你自己用户名
sudo chown -R user:user /opt
```

```bash
# 设置环境
./docker-build.sh Dockerfile-Ubuntu-22.04

# 开始编译imx-6.6.3-1.0.0
./docker-run.sh imx-6.6.3-1.0.0/yocto-build.sh
```

遇到编译失败,可以尝试删除tmp目录,重新再来一次

```bash
rm -rf /opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-xwayland/tmp
```

## 手动方式

Github地址:https://github.com/nxp-imx/imx-manifest

设置权限
> Ubuntu 24.04 有这个权限问题,官方测试过的其他Ubuntu版本可能没这个问题。

```bash
sudo apparmor_parser -R /etc/apparmor.d/unprivileged_userns
```

配置git

由于需要通过git下载,需要提前配置好git环境

```bash
git config --global user.name "user"
git config --global user.email "user@gmail.com"
git config --list
```

按照上面GitHub的链接先配置好`repo`工具,并且同步好。

```bash
repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-nanbield -m imx-6.6.3-1.0.0.xml
```

执行编译

```bash
MACHINE=imx93-14x14-lpddr4x-evk DISTRO=fslc-xwayland source setup-environment build

# Go Go Go
bitbake core-image-minimal
```

编译过程可能会出现imx-linux下载失败的问题,可以手动先下载

```bash
# 在另外的目录clone内核代码
git clone https://github.com/nxp-imx/linux-imx.git
# 拷贝到编译目录 imx-yocto-bsp/downloads
cp -R linux-imx/ /path/to/imx-yocto-bsp/downloads/git2/github.com.nxp-imx.linux-imx.git
```

顺利的话几个小时后...

5354个任务终于执行完了


页: [1]
查看完整版本: i.MX93 yocto编译体验