i.MX8M-Mini Linux Release Y2023.10 (Yocto 4.0)

  • F&S i.MX8M-Mini Yocto Release 2023.10 (fsimx8mm-Y2023.10)

    Please see the file


    for a description of how everything is installed and used. This doc sub-directory also contains other documentation, for example about the hardware of the boards and the starter kits.

    This is a major release for all F&S boards and modules based on the i.MX8M-Mini CPU (Solo, Dual and Quad), i.e. PicoCoreMX8MM(r2)-LPDDR4, PicoCoreMX8MM-DDR3L.

    More boards may be added to this family in the future. All these boards can work with software that is created from this release package.

    Please note that Yocto releases use a 'Y' for the version number. The version counting is independent form other releases.

    The release consists of the following files and directories:

    • Readme-yocto-f+s.txt Release notes (this text)
    • setup-yocto Script to download and install the Yocto release
    • binaries/ Precompiled images (full names)
    • sdcard/ Precompiled images (names as expected by install script)
    • doc/ Hardware and software manuals, schematics


    To use this release, you will have to update to Nboot 2023.10 and U-boot Y2023.10 first. For this we have added an U-Boot update script named

    "update-uboot-nboot-sysimg.scr" to the sdcard directory. Rename it to "update.scr" and copy everything to an USB-Stick. Plug the USB-Stick to the board and start it.

    After the bootdelay the update should begin automatically. The board will reset 2 times. It will install Nboot, Uboot and Sysimg.

    When everything is complete the line

    "---- update COMPLETE! ----"

    will be printed to the console. Unplug the USB stick or the update will run again on the next reboot.

    Here are some highlights of this release.

    1. New Linux Kernel 5.15.131

    The Linux kernel is now based on 5.15.131

    - New optimizations for EXT4.

    - OverlayFS has better performance and copying up more attributes.

    - Many graphics improvements among the DRM/KMS drivers.

    - Linux 5.15 I/O can achieve up to ~3.5M IOPS per-core.

    - The PREEMPT_RT locking code was merged as a big step forward towards getting the real-time (RT) patches upstreamed in the Linux kernel.

    - Various scheduler improvements.

    - Various power management improvements.

    - Opt-in L1 data cache flushing on context switching as a security feature for the paranoid and other specialized conditions.

    - Improvements around compile-time and run-time detection of buffer overflows.

    - Additional protection around side channel attacks via clearing used registers prior to returning, making use of the compiler-side support.


    Of course, there are also many changes for other CPU types (like x86) and other graphics cores (like AMD, Nvidia, Intel) but these are not of interest here.

    2. New bootloader U-Boot 2021.04

    The U-Boot is now based on 2021.04. Additional to the security and feature updates of the mainline U-Boot, there have been many updates on the fsimage command and the general layout of the bootloaders in the flash memory. Because of this, it is necessary to update first the U-Boot, reset and the Nboot. You can use the update.scr from the sdcard directory for this.

    3. New Yocto version 4.0 Kirkstone

    Updating Yocto to Version 4.0 Kirkstone. This provides many new package versions like Qt6.3 or Chroium 101. We have also updated the poky layer to version 4.0.11

    4. Improved Image versioning

    The exact versions of Nboot, U-Boot and Linux Kernel will now be printed during the boot process.

    If the image is build with an tagged commit the tag name will be printed.

    If the commit is not tagged, the git commits hash will be printed.

    If the image is based on an uncommitted git, the flag "-dirty" will be added to the last commits name.

    We use an own Linux version string that will be printed additionally to themainline Linux version. This way modules that are built for the same Linux version with just some slight changes, can still be loaded without rebuilding the whole rootfile system.

    Linux device trees are also versioned with the current version of the linux git.

    You can check the versions of the different components at runtime at /sys/bdinfo/

    5. New Release concept over github

    We now provide our Linux gits over github at https://github.com/FSEmbedded.

    All release and pre-release states will be pushed here. For now, we will not push each single commit to github.

    Also the release sources are not added to the release tar anymore, but will be downloaded from github during the setup process.

    The versions of the different gits of a release can be looked up in the fs-release-manifest.xml file in the release tar directory.

    6. New Azurewave wlan driver

    Additional to the mainline SD-BT-8997 driver we now provide the NXP version. This driver supports additional security features, optimized. STA and AP modes and improved roaming.

    To activate the nxp mlan driver uncomment the respective lines in: recipes-kernel/kernel-modules/files/mxm-wifiex.conf Also comment out the line for the mainline mwifiex driver.

    Please note that bluetooth is currently not supported with thenxp-mlan driver. For Bluetooth please use the mainline driver.


    The following list shows the most noticeable changes in this release in

    more detail since our last release for this platform. Please note that the

    source code is also used for other platforms. This is why you will

    also find references to other CPU types and F&S boards here in the

    change log.


    Supported boards: PicoCoreMX8MM-LPDDR4 PicoCoreMX8MMr2-LPDDR4 PicoCoreMX8MM-DDR3L

    - Update to NXP u-boot-201.04

    - Add mcu_rdc settings to fsimx8mp

    - Improve Uboot versioning

    - Fix bootaux command

    - Introduce crc32 checksums for fsimage save command

    - Nboot can now be written to NAND flash with U-Boot

    (No kobs tool needed anymore)

    - Relocate U-Boot and Environment in fsimage save if needed

    - Have new NAND/MMC layouts for fsimx8mm/mn/mp

    - Uboot is now located in the boot partition of eMMC

    - Fix fat_size for files bigger than 2GB

    - Drop board revision from BOARD-CFG names

    - Add option -b to fsimage save to select boot partition

    - Add command fsimage boot to show current boot settings

    - On fsimx8mm, add old device tree names for compatibility


    Supported boards: PicoCoreMX8MM-LPDDR4 PicoCoreMX8MMr2-LPDDR4 PicoCoreMX8MM-DDR3L

    - Update to NXP Linux Version lf-5.15.71-2.2.1

    - Remove fsimx8m support

    - Switch to FSL_ASOC_CARD sound driver for sgtl5000

    - Add F&S Versioning for kernel and device tree

    - Improve uart dma support

    - Add leds-pca963x-fus driver and revert the original to

    the mainline driver

    - Enable power key support for PicoCore boards

    - Improve fsimx8m variants uart clock speed

    - Improve SDIO stability for Azurewave wlan chips

    - Add support to disable pin controls nodes in the device tree

    - Fix picocoremx8mp Bluetooth error after suspend-to-mem

    - Apply patches from mainline linux-5.15.131

    - Use new naming convention for PicoCoreMX8MM boards

    - Add DTS version for fsimx8mm

    - Fix Realtek Ethernet Phy Bug in Low Power Mode

    - Don't use nand-on-flash-bad block table for fsimx8mm

    meta-fus-fsimx8mm-Y2023.10 ()

    Supported boards: PicoCoreMX8MM-LPDDR4 PicoCoreMX8MMr2-LPDDR4 PicoCoreMX8MM-DDR3L

    - Create standalone meta-fus repository

    - Update meta-fus to Kirkstone (Yocto 4.0)

    - Add new packages to fus-image-std:

    fiwared, can-utils, libgpiod-tools, spitools

    - Fix out-of-tree kernel module building

    - Add optional nxp-wifi driver support for Azurewave wlan

    - Add calibration file for TSC2004 touch chip

    - Add layer versions to the final image

    - Set default Linux terminal to vt100

    - Remove U-Boot from sysimg

    - Add update script for updating NBoot, U-Boot and sysimg

    - Remove Kernel Image from the rootfs

    - Add F&S psplash Logo

    atf-5.15.71-fsimx8mm-2023.10 ()

    Supported boards: PicoCoreMX8MM-LPDDR4 PicoCoreMX8MMr2-LPDDR4 PicoCoreMX8MM-DDR3L

    - Update to NXP version lf-5.15.71-2.2.1

    firmware-imx-8.10.1 ddr synopsys ()

    (no changes)


    (no changes)


    - Update to version 1.8 of FSiMX8MM_FirstSteps_eng.pdf

    - Update to version 0.20 of LinuxOnFSBoards_eng.pdf

    Please download the hardware documentation directly from our website.

    Then you always have the newest version.

  • Hi,

    I have been working on the Y2023.10.

    MACHINE=fsimx8mm DISTRO=fus-imx-xwayland source ./fus-setup-release.sh -b build-fsimx8mm-fus-imx-xwayland

    bitbake fus-image-std

    I have not been able to test the new image yet, I can't build it.

    I have tried to compile it with two types of Ubuntu:

    Ubuntu 18.04

    Fails ins task: do_image_ext4 and task: do_image_wic --> Segmentation fault

    See attached logs

    Ubuntu 20.04

    Fails installing ssl library. See attached logs

    Fedora 36

    Can't install .ova image on my Ubuntu 22.04 amd64 - VirtualBox Versión 6.1.38

    Thank you.

  • Hello,

    could you try to use the version 7 of VirtualBox? In our "ReadMe.txt" for the virtual machine with Fedora, there is a note that there are problems with audio on version 6. The error message also refers to an audio entry, so the upgrade to version 7 might already fix it.

    Your F&S Support Team

  • Hi,

    I try with config local.conf.ubuntu_18_04.txt in Fedora 36 Virtual Box 7, 4 cores, 16 GB RAM, but not work. I have two problems:

    • If I put nodejs in local.conf the virtual machine shutdown (suddenly shuts down) in nodejs link stage.
    • if I remove nodejs in local.conf, the following problem occurs:

    do you know what might be happening?

  • Hello,

    this error occurs, if your last build was interrupted. The the name of the image is created from the time it was build. If you restart the aborted build it looks for the current time but there is only the time from the last build.

    It should be easily fixed by running

    1. bitbake -c cleansstate fus-image-std
    2. bitbake  fus-image-std

    Your F&S Support Team

  • Hello,

    I can't see see anything on you screenshot.

    Could you please post a higher resolution?

    We were able to build the image with your configuration.

    But we needed to ad the following line to the local.conf to be able to build the ubifs

    1. MKUBIFS_ARGS = "-m 2048 -e 126976 -c 8549"

    Your F&S Support Team

  • Hello,

    Now I have tried to update uboot 2018.03 and NBoot via SD with the instructions in this post.

    The content of SD can be downloaded from: https://drive.google.com/uc?ex…iFYTkEWoTMJmUm1gH4qGSNgD0

    See logs:

    See this error:

    1. Invalidating U-BOOT at offset 0x200000 (block 0x1000)... Done

    What can this be due to?

    Now when I boot the board the uboot does not load:

    Here it is blocked. It seems strange to me because it reports two different versions of Uboot.

    Do you know how to perform the update correctly? I just followed these simple instructions:

    1. For this we have added an U-Boot update script named
    2. "update-uboot-nboot-sysimg.scr" to the sdcard directory. Rename it to "update.scr" and copy everything to an USB-Stick. Plug the USB-Stick to the board and start it.
    3. After the bootdelay the update should begin automatically. The board will reset 2 times. It will install Nboot, Uboot and Sysimg.
    4. When everything is complete the line
  • Hello,

    it seems you did receive special NBoot+UBoot for a DRAM with 4GB. In our official release these changes are not present yet as they complicate the standard memory layout significantly. This is also the cause why the UBoot currently sees 0 Bytes for the DRAM.

    Please contact us for this case directly through our support E-Mail address.

    Your F&S Support Team

  • As a remark, the line

    1. Invalidating U-BOOT at offset 0x200000 (block 0x1000)... Done

    is not an error message. It shows "Done" which is a successful result. As you can see, the new U-Boot image is immediately written in the next step.

    We do this to reduce the risk of starting partly written images. Imagine the following case. We write the new U-Boot image, but in the middle of writing, the board power fails, the board is switched off or the Reset Button is pressed. Then only the first part of the image is written to eMMC. Unfortunately the beginning of the image holds all magic numbers that are used to detect the image type. So when the system boots again, it may detect this as a valid U-Boot image and will load and start it. But as the code is not fully written, execution will most probably fail and the system will hang.

    To prevent this, we do the replacement in a different way. We first invalidate the old U-Boot image by erasing the first sector of the image. Then we write everything of the new image but the first sector. And as a last step, we also write the first sector. If we are interrupted inbetween, then the whole image is not seen, causing the boot process to switch to the second copy of U-Boot, which should still be valid. Only if we have written the first sector, too, then the image is found by the boot process. But then we can also be sure, that the whole image is written already. So this is a rather failsafe method that should keep the board in a working state in all cases.

    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • PicoCoreMX8MMr2 nboot-fsimx8mm-2023.10 DRAM PLL Voltage issue

    There is an issue with the NBoot nboot-fsimx8mm-2023.10 on PicoCoremx8MMr2 boards, shipped with the release fsimx8mm-Y2023.10.

    With this NBoot, the DRAM_PLL Voltage is not set to the value, configured in the NBoot on PicoCoremx8MMr2 boards.

    The new value is still within the specification and some RAM tests did not show any problems.

    We still recommend to update to the new nboot-fsimx8mm-2024.01.

    You can download it from the My F&S area at


    To install it, transfer it to the boards RAM via USB, SD or TFTP in U-Boot and run

    fsimage save

    Your F&S Support Team