Debin Linux时间同步系列文章目录

第一章 Debin Linux系统刷写及编译


前言

NXP evk默认发布Yacto环境编译的嵌入式Linux,优点是稳定可靠,但是不支持apt-get install一些必须的工具,必须交叉编译后自己安装,非常之麻烦。
因此本系列文章讲解安装Debin Linux系统。


一、NXP Debin linux简介

 Debian 是一个免费作系统(OS),也称为 Debian GNU/Linux。它提供了广泛的选择 应用软件,包含超过118,000个预编译包 软件以精美的格式捆绑,方便各种机器安装, 嵌入式设备。

Debian Linux SDK 发行版由 NXP 专用的自定义组件和开源组成 由社区支持的 Debian 项目开发的软件。其目标是提供 易于使用且方便的用户快速评估开发解决方案,广泛使用 在NXP ARM64平台上提供可用的deb软件包。

Debian Linux SDK 发行版使用 Flexbuild(一个灵活且易用的构建系统) 由恩智浦开发)以生成BSP复合固件(包括ATF、U-Boot、OP-TEE, 内核、DTB、外设固件)和Debian镜像。它 编译针对各种硬件块的 NXP 专用硬件加速组件, 外设(如 GPU、NPU、VPU、ISP、SEC、Wi-Fi/蓝牙和音频)基于 Debian 运行时依赖。
用户可以使用 Flexbuild 轻松构建基于 Debian 的 RootFS、Linux 内核、BSP 组件,以及 用于各种用例(如图形、多媒体, 网络、连接性、安全性和AI/ML)以简化系统构建 灵活定制和高效的CI/CD。Flexbuild Git 仓库可在 GitHub 上使用。
用户还可以使用该工具轻松安装各种发行版 目标存储设备(SD/eMMC卡或USB/SATA/NVMe磁盘)。
NXP 提供基于 Debian 的 SDK 源代码和预构建的演示镜像,作为 Linux MPU 的服务 平台。

Debian Linux SDK 概述

二、快速使用

1. 硬件要求

需要以下硬件:

Micro-SD卡读卡器
Micro-SD卡(推荐32GB或更大)
支持UART串口的USB Micro-B或Type-C线
HDMI显示器和HDMI线用于显示(非必须)
USB鼠标和键盘(用于控制界面)
以太网线(用于网络接入)

2. 在Linux主机上创建SD卡

  1. 下载flex-installer
$ wget http://www.nxp.com/lgfiles/sdk/lsdk2512/flex-installer
$ chmod +x flex-installer; sudo mv flex-installer /usr/bin
  1. 将SD卡插入Linux主机,安装镜像
$ flex-installer -i pf -d /dev/sdb
(format SD card, 使用mount指令查看SD卡被识别为什么设备块,/dev/sdb做相应调整)

$ flex-installer -i auto -d /dev/sdb -m imx8mpevk
(automatically download and install images for the i.MX 8M Plus EVK board)
此处安装 i.MX BSP复合固件只需几分钟, 将基于Debian的RootFS镜像放到SD卡上。
  1. 把SD卡插到 i.MX 板上(网线一端接入路由器,一端接入ENET1),然后安装额外的软件包
$ dhclient -i end0 
(setup network interface by DHCP or setting it manually)
此处仅是安装包时使用,安装完毕后会出现eth0,eth1等
$ date -s "30 JUN 2025 15:00:00" 
(setting correct system time is required)
时间不用管UTC还是Local时间,PC显示什么时间即设置过去就可以了。
$ debian-post-install-pkg 
(install NXP-specific driver packages and extra deb packages for GNOME GUI Desktop version or Weston Desktop)
安装预构建的 NXP 专用硬件驱动组件和额外的 组件,安装时间会比较长,取决于网络状况(大约半小时)。

安装完成后,执行重启命令启动Debian系统,使用root登录即可。

三、编译

Flexbuild 是一个面向组件的轻量级构建系统和集成平台,具有灵活、易用、可扩展的系统构建能力及发行版部署, 由恩智浦(NXP)开发。

Flexbuild 提供一套脚本、工具和文件,用于编译 NXP 专用板卡驱动组件,创建主板专用的BSP固件,启动 image,以及Debian RootFS镜像。它提供了一个简单的方法创建一个完整的 Debian 发行版,支持硬件加速用于NXP平台的组件,使用单一命令。一旦镜像已经构建好,用户可以直接部署到SD卡上。

1. Docker搭建(本人使用Ubuntu24.04中安装Docker内进行编译的)

1.1 Run the following command.

sudo apt install docker.io

1.2 Users must have the sudo permission for Docker commands or be added to the Docker group as follows. Change the current group to “docker”, and add the account to it and restart the Docker service.

$ sudo newgrp - docker
$ sudo usermod -aG docker <accountname>
$ sudo gpasswd -a <accountname> docker
$ sudo service docker restart

1.3 Verify that the Docker installation is successful by running the hello-world image.

$ docker run hello-world
$ docker ps -a

2. NXP编译工具Flexbuild

2.1 下载工具

$ git clone https://github.com/nxp/flexbuild

2.2 在flexbuild中编译Debin image
2.2.1 编译环境启动

$ cd flexbuild
$ . setup.env  (in host environment)
$ bld docker   (create or attach to docker)
$ . setup.env  (in docker environment)
$ bld host-dep (optional, install host dependent packages)
$ export LOG_LEVEL=0 (Optional, enable detailed log. The default value is 2, which means "mute all possible log".)

2.2.2 编译image

// automatically build BSP composite firmware + kernel + iMX-specific driver components + Debian RootFS
$ bld -m imx8mpevk

编译Image会在这个目录下:
在这里插入图片描述
我主要编译kernel代码,会在这个目录下:
在这里插入图片描述

其他编译选项:

$ bld uboot -m imx8mpevk      
(compile u-boot image for imx8mpevk)

$ bld atf -m imx8mpevk -b sd  
(compile ATF image for SD boot on imx8mpevk)

$ bld linux -m imx8mpevk
(compile linux kernel for all arm64 i.MX machines)

$ bld linux:menuconfig -m imx8mpevk
(customize kernel config options in menu)

$ bld -o -m <machine>
(Enable OPTEE support on <MACHINE>)

$ bld -s -m <machine>
(Enable SECURE BOOT on <MACHINE>, building secure boot image is only supported on layerscape platform. For IMX platform, need to add SECURE BOOT support manually)

$ CONFIG_FUSE_PROVISIONING=y bld -m <machine>
(Enable fuse provisioning on <MACHINE>, Warning: Ensure that enabling this feature is absolutely necessary before proceeding)

$ bld boot -m imx8mpevk
(generate boot partition tarball including kernel, dtb, modules, distro bootscript)

$ bld bsp -m imx8mpevk    
(generate BSP firmware including atf, u-boot, optee_os,kernel, dtb, peripheral-firmware, initramfs)

$ bld rfs -m imx8mpevk  
(generate Debian desktop rootfs with more graphics and multimedia packages)

$ bld apps -m imx8mpevk 
(compile iMX-specific apps against runtime dependencies of Debian RootFS)

$ bld merge-apps -m imx8mpevk             
(merge iMX-specific apps into target Debian desktop RootFS)

$ bld packrfs -m imx8mpevk
(pack and compress target rootfs as rootfs_lsdk_2512_debian_imx8mpevk.tar.zst)

$ bld packapps -m imx8mpevk
(pack and compress target app components as apps_arm64_debian_imx8mpevk.deb)

$ bld list                           
(list enabled machines and supported components) 

$ bld docker 
(create or attach docker container to build in docker)

$ bld clean 
(clean all obsolete firmware/linux/apps images except rootfs image)

$ bld clean-apps -m imx8mpevk
(clean obsolete apps images based on debian desktop)

$ bld clean-rfs -m imx8mpevk
(clean target debian RootFS)

$ bld clean-bsp -m imx8mpevk
(clean obsolete bsp image)

$ bld clean-linux -m imx8mpevk
(clean obsolete linux image)

$ bld dpdk -m imx8mpevk
(build DPDK component)

总结

详情可以参考官方网站:https://www.nxp.com/design/design-center/software/embedded-software/linux-software-and-development-tools/nxp-debian-linux-sdk-distribution-for-i-mx-and-layerscape:NXPDEBIAN

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐