Skip to content

Commit

Permalink
NXP Debian Linux SDK 24.12 Release for i.MX and Layerscape MPU platforms
Browse files Browse the repository at this point in the history
- Upgrade Debian to 12.8 Bookworm (Base, Server and Desktop) custom RootFS for NXP MPU platforms
- Upgrade GPU/NPU/VPU/ISP driver based on Debian runtime dependencies for imx8/imx9 SoC
- Upgrade NXP-specific components based on lf-6.6.36-2.1.0 for BSP, kernel and graphics/multimedia/
  networking/connectivity/security/eIQ/GoPoint based on Debian 12.8 runtime dependencies
- Add support of eIQ AI/ML and GoPoint components (nnstreamer, nnstreamer_edge, ssat, tvm, nnshark,
  imx_demo_experience, imx_nnstreamer_examples, imx_smart_kitchen, imx_smart_fitness, etc)
- Add support of imx91frdm and imx93frdm boards

Signed-off-by: Shengzhou Liu <[email protected]>
  • Loading branch information
shengzhou committed Dec 19, 2024
1 parent c332e35 commit c8b29a0
Show file tree
Hide file tree
Showing 226 changed files with 63,412 additions and 3,219 deletions.
8 changes: 7 additions & 1 deletion LICENSE_SDK.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
LA_OPT_NXP_Software_License v56 April 2024
LA_OPT_NXP_Software_License v57 July 2024
IMPORTANT. Read the following NXP Software License Agreement ("Agreement")
completely. By selecting the "I Accept" button at the end of this page, or by
downloading, installing, or using the Licensed Software, you indicate that you
Expand Down Expand Up @@ -767,3 +767,9 @@ upon notice.

Vivante: Distribution of Vivante software must be a part of, or embedded
within, Authorized Systems that include a Vivante Graphics Processing Unit.

Wittenstein: Your use of the SafeRTOS v9.x and Networking Stack, in object
form, is limited to your internal testing, evaluation, feedback and development
specifically for use with an NXP Product. Licensee’s license to use and
supply the software to you expires on June 25, 2026. Further rights must be
obtained directly from Wittenstein.
64 changes: 36 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
## FlexBuild Overview
---------------------
FlexBuild is a component-oriented lightweight build system with capabilities
of flexible, ease-to-use, scalable system build and distro deployment.
FlexBuild is a component-oriented lightweight build system and integration platform with
capabilities of flexible, ease-to-use, scalable system build and distro deployment.

Users can use flexbuild to easily build Debian-based RootFS, linux kernel, BSP
components and miscellaneous userspace applications (e.g. graphics, multimedia,
networking, connectivity, security, AI/ML, etc) against Debian-based library
networking, connectivity, security, AI/ML, robotics, etc) against Debian-based library
dependencies to streamline the system build with efficient CI/CD.

With flex-installer, users also can easily install various distro to target storage
Expand All @@ -14,16 +14,16 @@ device (SD/eMMC card or USB/SATA disk) on target board or on host machine.

## Build Environment
--------------------
- Cross-build in Debian Docker container hosted on Ubuntu or any other distro host machine for arm64 target
- Cross-build in Debian Docker container hosted on x86 Ubuntu or any other distro for arm64 target
- Cross-build on x86 host machine running Debian 12 for arm64 target
- Native-build on ARM board running Debian for arm64 target

## Host system requirement
- Docker hosted on Ubuntu LTS host (e.g. 22.04, 20.04) or other any distro
Refer to [docker-setup](docs/FAQ-docker-setup.md)
User can run 'bld docker' to create a Debian docker and build it in docker.
- Debian 12 host
Refer to [host_requirement](docs/host_requirement.md)
- Ubuntu LTS host (e.g. 22.04, 20.04) on which Docker Engine is running
Refer to [docker-setup](docs/FAQ-docker-setup.md)
- If other distro version is installed on your host machine, you can run 'bld docker' to create a Debian 12 docker and build it in docker.


## Supported distro for target arm64
Expand All @@ -37,60 +37,68 @@ device (SD/eMMC card or USB/SATA disk) on target board or on host machine.
----------------------
- __iMX platform__:
imx6qpsabresd, imx6qsabresd, imx6sllevk, imx7ulpevk, imx8mmevk, imx8mnevk, imx8mpevk,
imx8mqevk, imx8qmmek, imx8qxpmek, imx8ulpevk, imx93evk, etc
imx8mqevk, imx8qmmek, imx8qxpmek, imx8ulpevk, imx93evk, imx91frdm, imx93frdm, etc

- __Layerscape platform__:
ls1012ardb, ls1012afrwy, ls1021atwr, ls1028ardb, ls1043ardb, ls1046ardb, ls1046afrwy,
ls1012ardb, ls1012afrwy, ls1028ardb, ls1043ardb, ls1046ardb, ls1046afrwy,
ls1088ardb, ls2088ardb, ls2160ardb, lx2162aqds, etc


## FlexBuild Usage
## Flexbuild Usage
------------------

```
$ cd flexbuild
$ . setup.env
$ bld docker (create or attach a docker container)
$ . setup.env
$ bld -h
$ . setup.env (in host environment)
$ bld docker (create or attach to docker)
$ . setup.env (in docker environment)
$ bld host-dep (install host dependent packages)
Usage: bld -m <machine>
or bld <target> [ <option> ]
```

Most used example with automated build:
```
bld -m imx8mpevk # automatically build BSP + kernel + NXP-specific apps + Debian RootFS for imx8mpevk platform
bld -m imx8mpevk # automatically build BSP + kernel + NXP-specific components + Debian RootFS for imx8mpevk platform
bld -m lx2160ardb # same as above, for lx2160ardb platform
bld auto -p IMX (or -p LS) # same as above, for all arm64 iMX (or Layerscape) platforms
```

Most used example with separate command:
```
bld bsp -m imx8mpevk # generate BSP composite firmware (including atf, u-boot, optee_os, kernel, dtb, peripheral firmware, tiny rootfs)
bld rfs -r debian:desktop # generate Debian-based desktop rootfs (with more graphics/multimedia packages for Desktop)
bld rfs -r debian:server # generate Debian-based server rootfs (with more server related packages, no GUI Desktop)
bld bsp -m imx93frdm # generate BSP composite firmware (including atf/u-boot/kernel/dtb/peripheral-firmware/initramfs) for single machine
bld bspall [ -p IMX|LS ] # generate BSP composite firmware for all i.MX or LS machines
bld rfs [ -r debian:desktop ] # generate Debian-based Desktop rootfs (with more graphics/multimedia packages for Desktop)
bld rfs -r debian:server # generate Debian-based Server rootfs (with more server related packages, no GUI Desktop)
bld rfs -r debian:base # generate Debian-based base rootfs (small footprint with base packages)
bld rfs -r poky:tiny # generate poky-based arm64 tiny rootfs
bld rfs -r buildroot:tiny # generate Buildroot-based arm64 tiny rootfs
bld itb -r debian:base # generate sdk_debian_base_IMX_arm64.itb including kernel, dtb and rootfs_debian_base_arm64.cpio.gz
bld itb -r poky:tiny # generate poky_tiny_IMX_arm64.itb including kernel, dtb and rootfs_poky_tiny_arm64.cpio.gz
bld linux [ -p IMX|LS] # compile linux kernel for all arm64 IMX or LS machines
bld atf -m lx2160rdb -b sd # compile atf image for SD boot on lx2160ardb
bld boot [ -p IMX|LS ] # generate boot partition tarball (including kernel,dtb,modules,distro bootscript) for iMX/LS machines
bld apps -r debian:server -p LS # compile NXP-specific apps against the library dependencies of Debian server rootfs for LS machines
bld ml # compile NXP-specific eIQ AI/ML components against the library dependencies of Debian rootfs
bld merge-apps # merge NXP-specific apps into target Debian rootfs
bld packrfs # pack and compress target rootfs as rootfs_xx.tar.zst
bld packapps # pack and compress target app components as app_components_xx.tar.zst
bld apps # compile NXP-specific components against the runtime dependencies of Debian Desktop rootfs for i.MX machines
bld apps -r debian:server -p LS # compile NXP-specific components against the runtime dependencies of Debian Server rootfs for LS machines
bld ml [ -r <type> ] # compile NXP-specific eIQ AI/ML components against the library dependencies of Debian rootfs
bld merge-apps [ -r <type> ] # merge NXP-specific components into target Debian rootfs (Desktop by default,add '-r debian:server' for Server)
bld packrfs [ -r <type> ] # pack and compress target rootfs as rootfs_xx.tar.zst (or add '-r debian:server' for Server)
bld packapps [ -r <type> ] # pack and compress target app components as apps_xx.tar.zst (add '-p LS' for Layerscape platforms)
bld repo-fetch [ <component> ] # fetch git repository of all or specified component from remote repos if not exist locally
bld docker # create or attach docker container to build in docker
bld clean # clean all obsolete firmware/linux/apps image except distro rootfs
bld clean-rfs -r debian:server # clean target debian-based server arm64 rootfs
bld clean-bsp # clean obsolete bsp image
bld clean # clean all obsolete firmware/linux/apps binary images except distro rootfs
bld clean-apps [ -r <type> ] # clean the obsolete NXP-specific apps components binary images
bld clean-rfs [ -r <type> ] # clean target debian-based server arm64 rootfs
bld clean-bsp # clean obsolete BSP (u-boot/atf/firmware) images
bld clean-linux # clean obsolete linux image
bld list # list enabled machines and supported various components
bld host-dep # automatically install the depended deb packages on host
```

## More info
------------
Please refer to [flexbuild_usage](docs/flexbuild_usage.md), [build_and_deploy_distro](docs/build_and_deploy_distro.md), [nxp_linux_sdk](docs/nxp_linux_sdk.md) for detailed information.
Please refer to https://nxp.com/nxpdebian for more information about NXP Debian Linux SDK Distribution for i.MX and Layerscape.
[i.MX Debian Linux SDK User's Guide](https://nxp.com/docs/en/user-guide/UG10155.pdf).
[Layerscape Debian Linux SDK User's Guide](https://nxp.com/docs/en/user-guide/UG10143.pdf).

[flexbuild_usage](docs/flexbuild_usage.md), [build_and_deploy_distro](docs/build_and_deploy_distro.md), [nxp_linux_sdk](docs/nxp_linux_sdk.md) for detailed information.
Loading

0 comments on commit c8b29a0

Please sign in to comment.