NXP Debian 12 Linux SDK v24.06 with the support of lf-6.6.3 components on i.MX & Layerscape platforms For GUI desktop multimedia use case on i.MX platforms - Debian 12 GNOME Desktop RootFS (GUI w/ GPU acceleration) - Support NXP custom/dedicated components compiled against Debian for multimedia IP blocks (GPU, NPU, VPU, ISP, Audio, etc) - Support eIQ AI/ML components (e.g. Tensorflow-lite) for NPU on imx8mpevk and imx93evk For Industrial/IoT/networking/connectivity/security use cases on Layerscape platforms - Debian 12 Server RootFS (w/o GUI Desktop) - Support NXP-specific networking/connectivity/security components compiled against Debian userland Tested Features on i.MX8MPEVK: - Debian 12 Desktop - HDMI monitor display - DSI MIPI TouchScreen display - Desktop GUI with GPU acceleration - Multimedia video playback with VPU codec - MIPI CSI Camera OS08A20 with ISP - MIPI CSI Camera OV5640 - Web browsers (chromium, firefox) - Support Qt6 application - WIFI + BT - eIQ TFlite support - Gstreamer support - DPDK for networking market Tested Features on i.MX93EVK: - HDMI monitor display - LVDS TouchScreen display - CSI MIPI Camera AP1302 with ISP - eIQ TFlite support - Gstreamer support - DPDK for networking market Tested Features on LS1043ARDB & LS1046ARDB - Debian 12 Server - DPDK, OVS for networking market - Virtualization - IEEE 1588 - OPTEE/PKCS11 - SEC engine - Multiple boot mode How to install the prebuilt NXP Debian distribution by flex-installer? 1. Download flex-installer $ wget http://www.nxp.com/lgfiles/sdk/lsdk2406/flex-installer $ chmod +x flex-installer; sudo mv flex-installer /usr/bin 2. Plugin SD card on linux host machine and install NXP BSP firmware and debian-base rootfs as below $ flex-installer -i pf -d /dev/mmcblk1 (format SD card) $ flex-installer -i auto -d /dev/mmcblk1 -m imx8mpevk (This takes 2 minutes to install NXP BSP composite firmware and debian-base rootfs onto SD card) 3. Put SD card on your board and setup network to install extra packages and the prebuilt NXP-specific drivers as below optionlay, set HTTP proxy in /etc/apt/apt.conf if needed in your network environment. $ dhclient -i end0 $ date -s "27 JUN 2024 15:36:30" (set correct system time) $ debian-post-install-pkg desktop (for desktop version on i.MX platforms) or $ debian-post-install-pkg server (for server version without GUI Desktop on Layerscape platforms) 4. Run reboot command to reboot Debian system, then login with username 'root' or 'debian' (no password) Note: As license restriction, only the prebuilt debian-base rootfs is downloadable from external nxp.com website, the prebuilt debian-desktop and debian-server are only for INTERNAL access, external users need to run 'debian-post-install-pkg desktop' command to install extra packages and NXP-specific drivers after installing the default debian-base rootfs. TIPs: - To avoid the automatic suspend of Debian system, you can click Settings->Power to disable 'Dim Screen' and change 'Screen Blank' to 'Never' and set 'Automatic Suspend' to 'Off'. - In case there is no sound with Headphone audio on the board, you can click Settings->Sound, select proper Input Device and change Output Device to 'Headphones - Built-in Audio' if needed. - Sometimes if cheese app 'video record' can't be stopped normally on imx8mpevk, you can check Settings -> Sound, select proper Input Device and change Output Device to 'Headphones - Built-in Audio' to ensure 'Current pulsesrc device is alsa_input.platform-sound-wm8960.stereo-fallback' instead of 'alsa_input.platform-sound-xcvr.iec958-stereo'. - Once the BSP composite firmare (e.g firmware_imx8mpevk_sdboot_lpddr4.img) was installed on SD card, if needed, users can re-install Debian distro on Arm board instead of the x86 host dependency as below: => setenv tinylinux 'mmc read 0xa0000000 0x4000 0x1f000 && bootm a0000000#imx8mpevk' => saveenv; run tinylinux Then users can run flex-installer in the TinyLinux environment on the board. $ udhcpc -i eth0 $ flex-installer - After installing Debian on the SD card, user can just re-flash the BSP composite firmware image for different versions of i.MX/Layerscape boards without re-installing the boot and rootfs image as below: $ sudo dd if=firmware_imx8mpevk_sdboot_ddr4.img of=/dev/mmcblk1 bs=1k seek=32 or $ sudo dd if=firmware_imx93evk_sdboot_a1.img of=/dev/mmcblk1 bs=1k seek=32 or $ sudo dd if=firmware_lx2160ardb_sdboot.img of=/dev/mmcblk1 bs=1k seek=4 The re-flashing of composite firmware (at the first 64MB space of SD card) does not damage the images on rootfs partition and boot partition. Host Prerequisite to build NXP Debian from source in Flexbuild: - The Debian 12 host machine must can access to the external Internet in your network environment. NOTE: If your Linux host machine is in a subnet that needs HTTP proxy to access external Internet, it needs to set environment variable http_proxy and https_proxy. (Refer to https://github.com/nxp/flexbuild/blob/master/docs/proxy.md) - If you don't have a Debian 12 host, you need to install Docker Engine on your Ubuntu or other Distro host machine Refer to https://github.com/nxp/flexbuild/blob/master/docs/FAQ-docker-setup.md to install Docker Engine. (It's necessary to uninstall all unofficial/conflicting packages of old docker version if your docker version is not 'Docker 26.1.4') Users must have sudo permission for Docker commands or be added to docker group as below, change current group to "docker", add account to it and restart docker service: $ sudo newgrp - docker $ sudo usermod -aG docker $ sudo gpasswd -a docker $ sudo service docker restart $ sudo docker run hello-world (test the Docker Engine installation) How to build NXP Debian Linux SDK from source in Flexbuild? $ git clone https://github.com/nxp/flexbuild.git $ cd flexbuild $ . setup.env In case you don't have a Debian 12 host, run the commands below $ bld docker (create or attach a debian docker container) $ . setup.env $ bld list $ bld -m imx8mpevk (build all images, without eIQ AI/ML components) or $ GROUPS_ML=y bld -m imx8mpevk (build all images, with eIQ AI/ML components) or $ bld -m ls1046ardb (build all images for ls1046ardb) examples: $ bld bsp -m imx8mpevk (build BSP composite firmware for imx8mpevk) $ bld bsp -m imx93evk $ bld bsp -m ls1046ardb (build BSP composite firmware for ls1046ardb) $ bld bsp -m lx2160ardb $ bld rfs (build Debian-desktop RootFS by default) $ bld rfs -r debian:server (build Debian-server RootFS without GUI desktop) $ bld multimedia (build multimedia components for i.MX platforms) $ bld networking -p LS (build networking components for LS platforms) $ bld ml (build eIQ AI/ML components) $ bld boot (build boot tarball for i.MX platforms by default) $ bld boot -p LS (build boot tarball for Layerscape platforms)