Getting Started
Welcome to the Quick Start Guide (QSG) for Ezurio's Nitrogen95 SMARC Development Board: https://www.ezurio.com/n95-dvk๐. This guide will walk you through the initial setup process and introduce you to the key hardware and software components of the kit. It's designed to help you quickly get up and running, understand what's included, and start exploring the platform. If you encounter any issues or have questions, please visit https://www.ezurio.com/support๐ or contact us at support@ezurio.com. As always, let us know about your experience with the DVK — both the good and bad.
Please refer to http://ezurio.com/n93-dvk๐ if you purchased a Nitrogen93 Evaluation Kit instead.

- EZSMI-959-0816-00158-2-K2๐ (Nitrogen95 SMARC Beta Evaluation Kit without Camera),
- EZSMI-959-0816-00158-2-KC๐ (Nitrogen95 SMARC Beta Evaluation Kit with Camera).
.png)
Heads up! Please note that #P/N EZSMI-959-0816-00158-2-KC is planned to launch in Q4 2025. This Quick Start Guide will be updated and extended once the product becomes available. We are also preparing OSM versions of the evaluation kit, starting with CarbonAM62 and 67, which are expected to follow in Q1 2026. Stay tuned for updates.
Unboxing
The following table provides a breakdown of the hardware components included in the Nitrogen95 SMARC Evaluation Kit:
| Item | Additional Description & Details | |
|---|---|---|
| 1 | 1× Nitrogen95 SMARC Module REV30 | #EZSMI-959-0816-00158-2. Equipped with 8 GB RAM and 16 GB eMMC storage. Sona NX611M variant (#453-00118), M.2 1216 form factor, featuring integrated Wi-Fi 6 and Bluetooth 5.4 connectivity. |
| 2 | 1× Heatsink | Dedicated cooling solution for the Nitrogen95 SMARC Family (#450-00218). |
| 3 | 1× Universal SMARC Carrier Board REV20 | #SMARC_CAR, development board for all SMARC modules and solutions by Ezurio. |
| 4 | 1× 5V/4A 100–240 VAC Switching Power Supply | #FY0504000, includes region-specific AC power cord. |
| 5 | 1× Dual DB9 Serial Cable | Provides terminal and debug access for both Cortex-A and Cortex-M cores. |
| 6 | 1× 7" Touchscreen Display | #BD070LIC3 (MIPI version) with 33-pin FPC (0.5 mm pitch, 203 mm length) flex cable. |
| 7 | 1× 2.4/5/6 GHz FlexPIFA Antenna | #EFB2471A3S-10MH4L with 10 cm cable. |
| 8 | 1× Enclosure with Desktop Stand | Black enclosure with integrated stand. |
| 9 | 1× Arducam xISP – IMX678 Camera (Optional) | #B0582, Arducam xISP – Darksee, Pre-tuned 8.3 MP Low-Light MIPI Camera Module. |
Note: All accessories listed above are included unless otherwise stated.
Datasheets, Product Pages & DOCs
The following table provides an overview of available datasheets, product pages, and documentation (DOCs).
| Product | Datasheet | Product Page (+Buy) | Documentation | |
|---|---|---|---|---|
| 1 | Enclosure with Desktop Stand | N/A | N/A | N/A |
| 2 | Nitrogen95 SMARC Module | Link๐ | Link๐ | Link๐ |
| 3 | Universal SMARC Carrier Board | Link๐ | Link๐ | Link๐ |
| 4 | Sona NX611 Wi-Fi 6 + BLE 5.4 Module | Link๐ | Link๐ | Link๐ |
| 5 | BD070LIC3 – 7″ Touchscreen Display | See documentation. | Link๐ | Link๐ |
| 6 | 2.4/5/6 GHz FlexPIFA Antenna | Link๐ | Link๐ | Link๐ |
| 7 | Heatsink for the Nitrogen95 SMARC Family | See documentation. | Link๐ | Link๐ |
| 8 | 1× Arducam xISP – IMX678 Camera (Optional) | See documentation. | Link (Ezurio)๐ Link (Arducam)๐ | Link๐ |
The latest product brief for the Nitrogen95 SMARC Evaluation Kit can be found here๐.
Board Assembly
The Nitrogen95 SMARC module, featuring on-board Wi-Fi 6 and Bluetooth 5.4, comes fully assembled with the Universal SMARC Carrier Board, heatsink, 7" touchscreen display, enclosure, desktop stand, and all necessary mounting hardware / screws / accessories — ready to use straight out of the box. The complete setup weighs 1.69 kg in total. The display connects to the motherboard via the MIPI-DSI interface (DSI0) using a 33-pin FPC/FFC ribbon cable, with the heatsink pre-attached to the module. By default, the antenna is glued to the stand for convenience and stability.U9 and the MHF4L connector on the PCB of the Sona NX611 module. We do not recommend removing the heatsink, but if necessary, it can be done using a 3 mm hex socket bit. Stock Bootloader & OS
The system ships with U-Boot v2024.04 and the Yocto Scarthgap Boot2Qt release pre-installed on the eMMC (as of the time of writing). The example below shows the output from U-Boot SPL, Proper, Environment Variables, and the Linux / Kernel startup log. You can use this as a reference to verify or compare the output from your own board.
To reprogram the eMMC, please follow the steps in https://www.ezurio.com/resources/software-announcements/programming-emmc-on-i-mx-platforms๐. Alternatively, use balenaEtcher๐ (available for both Windows and Linux) to make the SOM boot from an SD card or a USB stick.
U-Boot SPL
U-Boot SPL 2024.04-00072-g67fd254f486 (Aug 20 2025 - 09:13:50 +0200)
SOC: 0xb0009500
LC: 0x40010
SYS Boot reason: por, origin: -1, errid: -1
SYS shutdown reason: por, origin: -1, errid: -1
DDRMIX is powered UP
Normal Boot
Trying to boot from MMC1
Primary set selected
Load image from MMC/SD 0xe0800
NOTICE: BL31: v2.12.0(release):lf-6.12.20-2.0.0-5-geb84dde3e-dirty
NOTICE: BL31: Built : 21:16:58, Aug 19 2025U-Boot Proper
U-Boot 2024.04-00072-g67fd254f486 (Aug 20 2025 - 09:13:50 +0200)
CPU: i.MX95 rev2.0 at 1800MHz
CPU: Extended Industrial temperature grade (-40C to 125C) at 56C
LM Boot reason: por, origin: -1, errid: -1
LM shutdown reason: por, origin: -1, errid: -1
Model: Ezurio Nitrogen95 SMARC board
DRAM: 7.8 GiB
Core: 281 devices, 31 uclasses, devicetree: separate
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
Fail to setup video link
In: serial
Out: serial
Err: serial
BuildInfo:
- SM firmware Build 648, Commit db9043a8, Aug 19 2025 17:01:35
- ELE firmware version 2.0.2-2a118457
Normal Boot
Hit any key to stop autoboot: 0U-Boot Environment Variables
=> printenv
arch=arm
baudrate=115200
board=nitrogen-smarc
board_name=imx95_nitrogen_smarc
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr -q ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_efi_bootmgr=if fdt addr -q ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr;fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_fit=no
boot_net_usb_start=usb start
boot_pci_enum=pci enum
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=mmc0 mmc1 usb0
bootcmd=run distro_bootcmd;run bsp_bootcmd
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot
bootcmd_usb0=devnum=0; run usb_boot
bootdelay=2
bootm_size=0x10000000
cntr_addr=0xA8000000
cntr_file=os_cntr_signed.bin
console=ttyLP0
cpu=armv8
cpuidle=
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
dtbos=imx95-nitrogen-smarc-dsi.dtbo imx95-nitrogen-smarc-nx611.dtbo
efi_dtb_prefixes=/ /dtb/ /dtb/current/
env_dev=0
env_part=1
eth1addr=00:19:b8:11:a7:78
ethact=enetc-0
ethaddr=00:19:b8:11:a7:77
ethprime=eth0
fastboot_raw_partition_bootloader=0x0 0x1ff0 mmcpart 1
fastboot_raw_partition_bootloader-env=0x1ff0 0x10 mmcpart 1
fdt_addr=0x93000000
fdt_addr_r=0x93000000
fdt_file=imx95-nitrogen-smarc.dtb
fdt_high=0xffffffffffffffff
fdtcontroladdr=fdec8260
fdtfile=imx95-nitrogen-smarc.dtb
fdtoverlay_addr_r=0x94000000
kernel_addr_r=0x90400000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x90400000
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
mmcdev=0
netargs=setenv bootargs ${cpuidle} ${mcore_args} console=${console},115200 root=/dev/nfs ip=dhcp nfsroot=${tftpserverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${loadaddr} ${tftpserverip}:Image; if ${get_cmd} ${fdt_addr_r} ${tftpserverip}:${fdt_file}; then fdt addr ${fdt_addr_r}; fdt resize 0x10000; for dtbofile in ${dtbos}; do dhcp ${fdtoverlay_addr_r} ${tftpserverip}:${dtbofile}; fdt apply ${fdtoverlay_addr_r}; done; booti ${loadaddr} - ${fdt_addr_r}; else echo WARN: Cannot load the DT; fi;
prepare_mcore=setenv mcore_args pd_ignore_unused;
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then part uuid ${devtype} ${devnum}:${distro_bootpart} distro_bootpart_uuid ; run scan_dev_for_boot; fi; done; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;run boot_efi_bootmgr;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo EXTLINUX FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x93500000
sec_boot=no
soc=imx9
soc_type=imx95
splashimage=0xA0000000
uboot_defconfig=imx95_nitrogen_smarc
upgradeu=setenv boot_scripts upgrade.scr; boot;echo Upgrade failed!; setenv boot_scripts boot.scr;
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
vendor=boundary
Environment size: 4366/8188 bytesLinux / Kernel
Please see nitrogen95-smarc-dvk-ful… for the full boot log.
Login Credentials:
Username: root
Password: —
Hostname: b2qt-nitrogen95
“Hello World”
Once the Universal SMARC Carrier Board is powered throughJ17using the DC barrel jack and the included power supply, the touchscreen display will initialize automatically. A green power indicator LED (D9) will illuminate; however, it may not be visible if the screen is folded down.Within a few seconds, the screen will display six Linux Tux (Penguins), followed by our Ezurio "IO" boot / loading animation. The system typically completes the boot process in under 30 seconds, after which the Boot2Qt Demo Launcher (see below) will appear.Here you can select between a bunch of different demos, including: Startup Screen, Thermostat, Robot Arm, Coffee Maschine, Same Game, To Do List, and Calqlatr. In this case, please visit https://doc.qt.io/Boot2Qt๐ and https://code.qt.io/cgit/qt-apps/boot2qt-demos.git๐ for more information.
Tip: You can use Qt Creator to run, debug, and test your own applications on the Nitrogen95 SMARC Evaluation Kit. To do this, connect the kit to your computer using USB, Ethernet, or Wi-Fi. With a USB OTG cable, the board appears automatically in Qt Creator. For Ethernet, plug in a network cable and wait for the board to obtain an IP address. To connect over Wi-Fi, use the Boot to Qt Demo Launcher and ensure both the board and your computer are on the same network. Once connected, you’re ready to start building and deploying your applications directly from Qt Creator.

Terminal and Debug Access
Cortex-M (MCU)
See section “FreeRTOS / NXP MCUXpresso SDK (2.16.0)” for more information
Cortex-A (CPU)
To set up and establish a serial connection, use the console cable provided in the kit. Connect the DB9 connector to the 6-pin Molex 53398-0671 header on the Universal SMARC Carrier Board (J18, SERIAL) — you may need to gently lift the screen for better access — and attach other end labeled CONSOLE to your host PC through an 5V USB-to-Serial adapter (not included by default); in our example, we used the Tripp Lite USA-19HS (Keyspan): https://tripplite.eaton.com/keyspan-high-speed-usb-to-serial-adapter~USA19HS๐.Windows users can choose from terminal applications such as TeraTerm๐, RealTerm๐, or PuTTY๐, while Linux users should use tools like screen, minicom or picocom. The default serial settings are 115200 baud, 8 data bits, no parity, and 1 stop bit — commonly referred to as 8N1@115200. Once everything is in place, press the RESET button (SW1), and you should see the system boot logs appear in your terminal window.fastboot instead, then you may also want to connect a USB-C cable to J25 and your PC. In this context, please note that powering the entire board and setup through the USB-C connection is not sufficient, as it exceeds the current limits of a standard USB port.Remote Network Login via SSH and Ethernet 1 /2
To connect the Nitrogen95 SMARC DVK to your local or public network, plug an RJ45 Ethernet cable into eitherJ31 or J32 on the Universal SMARC Carrier Board. 100/1000 Mbps connections are supported on these two ports; 10 Gbps not. An SSH server (OpenSSH, sshd) is enabled by default and listens on port 22 for incoming connections in the background. It becomes active once the system has fully booted.Ensure that a DHCP Server is running on your network. By default, the DVK operates as a DHCP Client, automatically requesting and receiving IPv4 + IPv6 addresses through systemd-networkd once available, as shown in the ipconfig and ip examples below:root@b2qt-nitrogen95:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:19:B8:11:A7:77
inet addr:192.168.2.179 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::e09f:7bff:fe97:5078/64 Scope:Link
inet6 addr: 2003:c9:cf3d:5818:e09f:7bff:fe97:5078/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1497 errors:0 dropped:96 overruns:0 frame:0
TX packets:277 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:109685 (107.1 KiB) TX bytes:29518 (28.8 KiB)
eth1 Link encap:Ethernet HWaddr 00:19:B8:11:A7:78
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:94 errors:0 dropped:0 overruns:0 frame:0
TX packets:94 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8076 (7.8 KiB) TX bytes:8076 (7.8 KiB)
uap0 Link encap:Ethernet HWaddr EA:CB:F5:20:8A:F0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
usb0 Link encap:Ethernet HWaddr 3A:5C:4E:18:45:9F
inet6 addr: fe80::385c:4eff:fe18:459f/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wfd0 Link encap:Ethernet HWaddr EA:CB:F5:20:89:F0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr E8:CB:F5:20:89:F0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@b2qt-nitrogen95:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:19:b8:11:a7:77 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.179/24 brd 192.168.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2003:c9:cf3d:5818:e09f:7bff:fe97:5078/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 172752sec preferred_lft 86352sec
inet6 fe80::e09f:7bff:fe97:5078/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:19:b8:11:a7:78 brd ff:ff:ff:ff:ff:ff
4: can1: <NOARP,ECHO> mtu 16 qdisc noop state DOWN group default qlen 10
link/can
5: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN group default qlen 10
link/can
6: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether e8:cb:f5:20:89:f0 brd ff:ff:ff:ff:ff:ff
7: uap0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether ea:cb:f5:20:8a:f0 brd ff:ff:ff:ff:ff:ff
8: wfd0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether ea:cb:f5:20:89:f0 brd ff:ff:ff:ff:ff:ff
9: usb0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 3a:5c:4e:18:45:9f brd ff:ff:ff:ff:ff:ff
inet6 fe80::385c:4eff:fe18:459f/64 scope link proto kernel_ll
valid_lft forever preferred_lft foreverSystem Processes and Services
The following processes and services were captured and are automatically launched on the system at startup after a fresh boot:
root@b2qt-nitrogen95:~# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 1.0 0.1 19588 11232 ? Ss 14:45 0:02 /sbin/init fixrtc
root 2 0.0 0.0 0 0 ? S 14:45 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 14:45 0:00 [pool_workqueue_release]
root 4 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-rcu_g]
root 5 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-rcu_p]
root 6 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-slub_]
root 7 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-netns]
root 8 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/0:0-device_link_wq]
root 9 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/0:0H-events_highpri]
root 10 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/0:1-device_link_wq]
root 11 0.3 0.0 0 0 ? D 14:45 0:00 [kworker/u12:0+events_unbound]
root 12 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-mm_pe]
root 13 0.0 0.0 0 0 ? I 14:45 0:00 [rcu_tasks_kthread]
root 14 0.0 0.0 0 0 ? S 14:45 0:00 [ksoftirqd/0]
root 15 0.0 0.0 0 0 ? I 14:45 0:00 [rcu_preempt]
root 16 0.0 0.0 0 0 ? S 14:45 0:00 [migration/0]
root 17 0.0 0.0 0 0 ? S 14:45 0:00 [cpuhp/0]
root 18 0.0 0.0 0 0 ? S 14:45 0:00 [cpuhp/1]
root 19 0.0 0.0 0 0 ? S 14:45 0:00 [migration/1]
root 20 0.0 0.0 0 0 ? S 14:45 0:00 [ksoftirqd/1]
root 21 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:0-device_link_wq]
root 22 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/1:0H-events_highpri]
root 23 0.0 0.0 0 0 ? S 14:45 0:00 [cpuhp/2]
root 24 0.0 0.0 0 0 ? S 14:45 0:00 [migration/2]
root 25 0.0 0.0 0 0 ? S 14:45 0:00 [ksoftirqd/2]
root 26 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/2:0-events]
root 27 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/2:0H-kblockd]
root 28 0.0 0.0 0 0 ? S 14:45 0:00 [cpuhp/3]
root 29 0.0 0.0 0 0 ? S 14:45 0:00 [migration/3]
root 30 0.0 0.0 0 0 ? S 14:45 0:00 [ksoftirqd/3]
root 31 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/3:0-pm]
root 32 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/3:0H-kblockd]
root 33 0.0 0.0 0 0 ? S 14:45 0:00 [cpuhp/4]
root 34 0.0 0.0 0 0 ? S 14:45 0:00 [migration/4]
root 35 0.0 0.0 0 0 ? S 14:45 0:00 [ksoftirqd/4]
root 36 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/4:0-events]
root 37 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/4:0H-kblockd]
root 38 0.0 0.0 0 0 ? S 14:45 0:00 [cpuhp/5]
root 39 0.0 0.0 0 0 ? S 14:45 0:00 [migration/5]
root 40 0.0 0.0 0 0 ? S 14:45 0:00 [ksoftirqd/5]
root 41 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/5:0-events]
root 42 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/5:0H-kblockd]
root 43 0.0 0.0 0 0 ? S 14:45 0:00 [kdevtmpfs]
root 44 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-inet_]
root 45 0.1 0.0 0 0 ? I 14:45 0:00 [kworker/u12:1-events_freezable_power_]
root 46 0.0 0.0 0 0 ? S 14:45 0:00 [kauditd]
root 47 0.0 0.0 0 0 ? S 14:45 0:00 [oom_reaper]
root 48 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-write]
root 49 0.0 0.0 0 0 ? S 14:45 0:00 [kcompactd0]
root 50 0.0 0.0 0 0 ? SN 14:45 0:00 [ksmd]
root 51 0.0 0.0 0 0 ? SN 14:45 0:00 [khugepaged]
root 52 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-kinte]
root 53 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-kbloc]
root 54 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-blkcg]
root 55 0.2 0.0 0 0 ? I 14:45 0:00 [kworker/u12:2-events_freezable_power_]
root 56 0.1 0.0 0 0 ? I 14:45 0:00 [kworker/u12:3-devfreq_wq]
root 57 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/u12:4-events_unbound]
root 58 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-ata_s]
root 59 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-devfr]
root 60 0.0 0.0 0 0 ? S 14:45 0:00 [watchdogd]
root 61 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:1-pm]
root 62 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/0:1H-mmc_complete]
root 63 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-rpcio]
root 64 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-xprti]
root 65 0.0 0.0 0 0 ? S 14:45 0:00 [kswapd0]
root 66 0.0 0.0 0 0 ? S 14:45 0:00 [ecryptfs-kthread]
root 67 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-nfsio]
root 68 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-kthro]
root 70 0.0 0.0 0 0 ? S 14:45 0:00 [irq/22-arm-smmu-v3-evtq]
root 71 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-uas]
root 72 1.3 0.0 0 0 ? I 14:45 0:03 [kworker/u12:5-events_freezable_power_]
root 73 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/2:1-pm]
root 74 0.0 0.0 0 0 ? S 14:45 0:00 [hwrng]
root 75 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-neutr]
root 76 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-tls-s]
root 77 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-mld]
root 78 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-ipv6_]
root 79 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-kstrp]
root 80 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/3:1-mm_percpu_wq]
root 81 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/3:2-device_link_wq]
root 82 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/3:3-rcu_gp]
root 83 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/3:4]
root 84 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/0:2-events]
root 85 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/0:3-device_link_wq]
root 86 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/0:4-events]
root 87 0.1 0.0 0 0 ? I 14:45 0:00 [kworker/0:5-events]
root 88 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/4:1-rcu_gp]
root 89 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/u12:6-events_unbound]
root 90 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/5:1-events]
root 92 0.0 0.0 0 0 ? S 14:45 0:00 [spi0]
root 93 0.0 0.0 0 0 ? S 14:45 0:00 [irq/200-4c010010.usb]
root 94 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-imx95]
root 95 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/5:2-device_link_wq]
root 96 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/u13:0-MOAL_WORK_QUEUE]
root 97 0.0 0.0 0 0 ? S 14:45 0:00 [mali-simple-power-model-temp-poll]
root 98 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-rpmsg]
root 99 0.0 0.0 0 0 ? S 14:45 0:00 [irq/202-vpu_irq]
root 100 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/0:6]
root 101 0.4 0.0 0 0 ? I< 14:45 0:01 [kworker/u13:1-ipa_ctrl_wq]
root 102 0.0 0.0 0 0 ? S 14:45 0:00 [irq/203-6-0022]
root 103 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/4:2-mm_percpu_wq]
root 104 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/4:3-events]
root 105 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:2-device_link_wq]
root 106 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:3-pm]
root 107 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:4-events]
root 108 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:5-pm]
root 109 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:6-device_link_wq]
root 110 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:7-device_link_wq]
root 111 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:8-device_link_wq]
root 112 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:9-pm]
root 113 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:10-events]
root 114 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:11-pm]
root 115 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:12-rcu_gp]
root 116 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/1:13]
root 117 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-enetc]
root 118 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-enetc]
root 121 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/2:2-events]
root 122 0.0 0.0 0 0 ? S 14:45 0:00 [irq/198-4b0d0000.bridge]
root 123 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/2:3-events]
root 124 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/u12:7-events_unbound]
root 125 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/u12:8]
root 126 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-sdhci]
root 127 0.0 0.0 0 0 ? S 14:45 0:00 [irq/221-mmc0]
root 128 0.0 0.0 0 0 ? S 14:45 0:00 [irq/222-rv3028]
root 129 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/5:3-events]
root 130 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/5:4-rcu_gp]
root 131 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/5:5]
root 132 0.0 0.0 0 0 ? S 14:45 0:00 [card0-crtc0]
root 133 0.0 0.0 0 0 ? S 14:45 0:00 [card0-crtc1]
root 134 0.0 0.0 0 0 ? I 14:45 0:00 [kworker/2:4]
root 135 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-sdhci]
root 136 0.0 0.0 0 0 ? S 14:45 0:00 [irq/201-mmc2]
root 137 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-sdhci]
root 138 0.0 0.0 0 0 ? S 14:45 0:00 [irq/224-mmc1]
root 139 0.0 0.0 0 0 ? S 14:45 0:00 [irq/239-42860000.mmc cd]
root 140 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-mmc_c]
root 141 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/5:1H]
root 142 0.0 0.0 0 0 ? S 14:45 0:00 [irq/241-ci_imx_wakeup]
root 143 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-ci_ot]
root 144 0.0 0.0 0 0 ? S 14:45 0:00 [irq/223-hd3ss3220]
root 145 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/2:1H]
root 146 0.0 0.0 0 0 ? S 14:45 0:00 [jbd2/mmcblk0p2-8]
root 147 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/R-ext4-]
root 149 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/3:1H-kblockd]
root 160 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/4:1H-kblockd]
root 161 0.0 0.0 0 0 ? I< 14:45 0:00 [kworker/0:2H-mmc_complete]
root 172 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/1:1H-kblockd]
rpc 173 0.0 0.0 4644 2304 ? Ss 14:46 0:00 /usr/sbin/rpcbind -w -f
root 176 0.2 0.0 40084 7808 ? Ss 14:46 0:00 /usr/lib/systemd/systemd-journald
root 182 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/1:2H]
root 228 0.3 0.1 29352 9608 ? Ss 14:46 0:00 /usr/lib/systemd/systemd-udevd
systemd+ 322 0.0 0.0 89252 6400 ? Ssl 14:46 0:00 /usr/lib/systemd/systemd-timesyncd
root 463 0.0 0.0 14972 5376 ? Ss 14:46 0:00 /usr/lib/systemd/systemd-userdbd
root 507 0.0 0.0 15632 5504 ? S 14:46 0:00 systemd-userwork: waiting...
root 508 0.0 0.0 15928 5760 ? S 14:46 0:00 systemd-userwork: waiting...
root 509 0.0 0.0 15932 5632 ? S 14:46 0:00 systemd-userwork: waiting...
root 525 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-cfg80]
root 526 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/4:2H-kblockd]
root 534 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/2:2H-kblockd]
root 537 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-MOAL_]
root 572 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-MOAL_]
root 573 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-MOAL_]
root 574 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-MOAL_]
root 575 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-MOAL_]
root 576 0.0 0.0 0 0 ? S 14:46 0:00 [woal_reassoc_service]
root 603 0.0 0.0 0 0 ? S 14:46 0:00 [irq/248-gt9271]
root 607 0.1 0.1 395776 10240 ? Ssl 14:46 0:00 /usr/sbin/ModemManager
root 615 0.0 0.0 3512 1536 ? Ss 14:46 0:00 /usr/sbin/klogd -n
root 623 0.0 0.0 3512 1536 ? Ss 14:46 0:00 /usr/sbin/syslogd -n
message+ 627 0.2 0.0 7140 3584 ? Ss 14:46 0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
root 628 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/3:2H]
root 629 0.0 0.0 2724 1408 ? Ss 14:46 0:00 /usr/bin/firmwared -d /lib/firmware
root 647 0.0 0.0 16036 6784 ? Ss 14:46 0:00 /usr/lib/systemd/systemd-logind
root 664 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/u13:2-hci0]
root 665 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-CSAwl]
root 666 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-MCLIS]
root 667 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-CSAua]
root 668 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-MCLIS]
root 669 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-CSAwf]
root 670 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/R-MCLIS]
root 692 0.1 0.0 16012 6400 ? Ss 14:46 0:00 /usr/sbin/connmand -n
systemd+ 693 0.1 0.0 16920 7680 ? Ss 14:46 0:00 /usr/lib/systemd/systemd-networkd
root 705 0.0 0.0 0 0 ? S 14:46 0:00 [irq/219-0003:01:00.0:07]
avahi 706 0.0 0.0 7524 3072 ? Ss 14:46 0:00 avahi-daemon: running [b2qt-nitrogen95.local]
root 707 0.0 0.0 8140 4224 ? Ss 14:46 0:00 /usr/libexec/bluetooth/bluetoothd
root 710 0.0 0.0 0 0 ? S 14:46 0:00 [irq/220-0003:01:00.0:03]
root 711 0.1 0.1 15416 9472 ? Ss 14:46 0:00 /usr/sbin/sdcsupp -u
root 713 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/u13:3-MOAL_WORK_QUEUE]
root 714 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/u13:4]
avahi 718 0.0 0.0 7228 1304 ? S 14:46 0:00 avahi-daemon: chroot helper
root 723 0.2 0.5 2085968 45828 ? Ssl 14:46 0:00 /usr/bin/containerd
root 729 0.0 0.1 56916 10240 ? Ss 14:46 0:00 /usr/bin/appcontroller /usr/bin/qtlauncher
root 730 0.0 0.0 5260 1664 tty1 Ss+ 14:46 0:00 /sbin/agetty -o -p -- \u --noclear - linux
root 736 0.0 0.0 5392 2048 ttyLP0 Ss+ 14:46 0:00 /sbin/agetty -8 -L ttyLP0 115200 linux
root 737 0.0 0.0 0 0 ? I< 14:46 0:00 [kworker/5:2H]
root 739 0.2 0.1 17676 9600 ? Ss 14:46 0:00 /usr/lib/systemd/systemd --user
root 740 13.4 2.1 1571568 170348 ? Sl 14:46 0:29 /usr/bin/qtlauncher
root 741 0.0 0.0 19332 2908 ? S 14:46 0:00 (sd-pam)
root 775 1.5 0.0 0 0 ? S 14:46 0:03 [mali-gpuq-kthread]
root 785 0.0 0.1 278312 12780 ? Sl 14:46 0:00 /usr/bin/qdbd --usb-ethernet-function-name ncm.usb0
root 824 0.2 0.1 12892 8192 ? Ss 14:47 0:00 sshd: root@pts/0
root 826 0.0 0.0 7176 3584 pts/0 Ss 14:47 0:00 -sh
root 839 200 0.0 9372 3584 pts/0 R+ 14:49 0:00 ps aux
root@b2qt-nitrogen95:~# systemctl list-units --type=service --state=running
UNIT LOAD ACTIVE SUB DESCRIPTION
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
bluetooth.service loaded active running Bluetooth service
busybox-klogd.service loaded active running Kernel Logging Service
busybox-syslog.service loaded active running System Logging Service
connman.service loaded active running Connection service
containerd.service loaded active running containerd container runtime
dbus.service loaded active running D-Bus System Message Bus
demolauncher.service loaded active running Boot to Qt Demo Launcher
firmwared.service loaded active running Linux Firmware Loader Daemon
getty@tty1.service loaded active running Getty on tty1
ModemManager.service loaded active running Modem Manager
qdbd.service loaded active running Qt Debug Bridge Daemon
rpcbind.service loaded active running RPC Bind
serial-getty@ttyLP0.service loaded active running Serial Getty on ttyLP0
sshd@0-192.168.2.179:22-192.168.2.121:52034.service loaded active running OpenSSH Per-Connection Daemon (192.168.2.121:52034)
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running User Login Management
systemd-networkd.service loaded active running Network Configuration
systemd-timesyncd.service loaded active running Network Time Synchronization
systemd-udevd.service loaded active running Rule-based Manager for Device Events and Files
systemd-userdbd.service loaded active running User Database Manager
user@0.service loaded active running User Manager for UID 0
wpa_supplicant.service loaded active running WPA supplicant
Legend:
LOAD → Reflects whether the unit definition was properly loaded.
ACTIVE → The high-level unit activation state, i.e. generalization of SUB.
SUB → The low-level unit activation state, values depend on unit type.
23 loaded units listed.System Information & Overview
You can check basic system information on the Nitrogen95 SMARC Evaluation Kit, including details such as the CPU type, usage, load, available memory, storage space, uptime, and software version. The example below shows the output from commands likelscpu, free -h, df -h, uptime, and cat /etc/os-release run on the device.root@b2qt-nitrogen95:~# lscpu
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 6
On-line CPU(s) list: 0-5
Vendor ID: ARM
Model name: Cortex-A55
Model: 0
Thread(s) per core: 1
Core(s) per cluster: 6
Socket(s): -
Cluster(s): 1
Stepping: r2p0
CPU(s) scaling MHz: 64%
CPU max MHz: 1800.0000
CPU min MHz: 500.0000
BogoMIPS: 48.00
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Caches (sum of all):
L1d: 192 KiB (6 instances)
L1i: 192 KiB (6 instances)
L2: 384 KiB (6 instances)
L3: 512 KiB (1 instance)
Vulnerabilities:
Gather data sampling: Not affected
Itlb multihit: Not affected
L1tf: Not affected
Mds: Not affected
Meltdown: Not affected
Mmio stale data: Not affected
Reg file data sampling: Not affected
Retbleed: Not affected
Spec rstack overflow: Not affected
Spec store bypass: Not affected
Spectre v1: Mitigation; __user pointer sanitization
Spectre v2: Not affected
Srbds: Not affected
Tsx async abort: Not
root@b2qt-nitrogen95:~# free -h
total used free shared buff/cache available
Mem: 7.5Gi 542Mi 6.9Gi 11Mi 258Mi 7.0Gi
Swap: 0B 0B 0B
root@b2qt-nitrogen95:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 4.2G 2.2G 1.7G 56% /
devtmpfs 3.3G 4.0K 3.3G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 1.5G 10.0M 1.5G 1% /run
tmpfs 3.8G 4.0K 3.8G 0% /tmp
tmpfs 3.8G 32.0K 3.8G 0% /var/volatile
/dev/mmcblk0p1 59.0M 35.5M 23.5M 60% /run/media/boot-mmcblk0p1
tmpfs 768.9M 68.0K 768.8M 0% /run/user/0
root@b2qt-nitrogen95:~# uptime
14:56:54 up 11 min, 1 user, load average: 0.81, 1.08, 0.71
root@b2qt-nitrogen95:~# cat /etc/os-release
ID=ezurio-b2qt
NAME="Ezurio b2qt"
VERSION="5.0.4 (scarthgap)"
VERSION_ID=5.0.4
VERSION_CODENAME="scarthgap"
PRETTY_NAME="Ezurio b2qt 5.0.4 (scarthgap)"
CPE_NAME="cpe:/o:openembedded:ezurio-b2qt:5.0.4"Important Git Repository and Sources
- Boundary Devices →
boundary-bsp-platform: https://github.com/boundarydevices/boundary-bsp-platform/tree/ezurio-imx-6.6.52-2.2.1๐, - Boundary Devices →
meta-boundary: https://github.com/boundarydevices/meta-boundary/tree/scarthgap๐, - Boundary Devices →
linux: https://github.com/boundarydevices/linux/tree/ezurio-lf-6.6.y๐, - Boundary Devices →
u-boot: https://github.com/boundarydevices/u-boot/tree/ezurio-lf_v2024.04๐, - Ezurio →
meta-summit-radio: https://github.com/Ezurio/meta-summit-radio/tree/lrd-13.24.0.x๐.
BSP Support, Drivers & Configs
- U-Boot Defconfig: https://github.com/boundarydevices/u-boot/blob/ezurio-lf_v2024.04/configs/imx95_nitrogen_smarc_defconfig๐.
- Linux Device Tree(s): https://github.com/boundarydevices/linux/tree/ezurio-lf-6.6.y/arch/arm64/boot/dts/freescale๐. Search for
imx95-nitrogen-smarc, in this case. - Linux Device Tree Overlay(s): imx95-nitrogen-smarc-dsi.dtbo๐ + imx95-nitrogen-smarc-nx611.dtbo๐.
- Sona NX611 is fully supported through our Yocto/OpenEmbedded Layers: https://github.com/Ezurio/meta-summit-radio/tree/lrd-13.24.0.x๐.
Updating & Customizing your Bootloader & OS
U-Boot
For more information, please refer to https://www.ezurio.com/resources/software-announcements/u-boot-v2022-04-for-i-mx-platforms๐. The latest binaries can be found at u-boot-images-2022.04๐ and u-boot-images-2024.04๐, while the source code is available on GitHub under github.com/boundarydevices/u-boot๐.
printenv uboot_defconfig. For the Nitrogen95 SMARC module it should always imx95_nitrogen_smarc.Yocto
To ensure reproducible Yocto builds, we recommend using our (Ubuntu-based) Docker Containers whenever possible: https://www.ezurio.com/resources/software-announcements/using-docker-containers-for-reproducible-yocto-builds๐.
Boot to Qt | Qt 6.8.1
Please refer to https://lairdcp.github.io/guides/Boot2Qt-Scarthgap-Release-for-iMX-Platforms/1.0/Boot2Qt-Scarthgap-Release-for-i.MX-Platforms.html๐ for more information.
Scarthgap
Please refer to https://lairdcp.github.io/guides/yocto-scarthgap-release-for-imx-platforms/1.0/Yocto-Scarthgap-Release-for-i.MX-Platforms.html๐ for more information.
Debian & Ubuntu
Not supported. For additional information, please contact your local sales representative or FAE.
Android (15 / 16)
We plan to introduce support for Android in an upcoming version and feature release. If you have an urgent need for your current project and product, please get in touch with us — our team will be happy to discuss your specific case. Visit https://www.ezurio.com/contact.
QNX (SDP 7.1 / 8.0)
We plan to introduce support for QNX in an upcoming version and feature release. If you have an urgent need for your current project and product, please get in touch with us — our team will be happy to discuss your specific case. Visit https://www.ezurio.com/contact.
FreeRTOS / NXP MCUXpresso SDK (2.16.0)
We plan to introduce support for FreeRTOS / the NXP MCUXpresso SDK in an upcoming version and feature release. If you have an urgent need for your current project and product, please get in touch with us — our team will be happy to discuss your specific case. Visit https://www.ezurio.com/contact.
J1 is the reserved JTAG connector, marked as DND (not fitted by default) on the Nitrogen95 SMARC module. You can populate it manually, if needed. For detailed pinout information and a list of compatible parts, refer to the SMARC 2.1 Hardware Specification, section 3.24, page 65: https://sget.org/wp-content/uploads/2020/03/SMARC_V21-specification.pdf๐. The JTAG I/O voltage and interface operate at 1.8 V.
Buildroot
2025.02
TBD.
2024.02
TBD.
Additional Features & Information
Wi-Fi and Bluetooth / BLE Usage
To explore additional features and learn how to set up, bring up and use the internal Wi-Fi and BLE radio of the Sona NX611 module, for example, see https://lairdcp.github.io/guides/yocto-scarthgap-release-for-imx-platforms/1.0/Yocto-Scarthgap-Release-for-i.MX-Platforms.html๐.
Arducam xISP – IMX678 Camera Usage
Coming soon (in the next few weeks) …
Recovery Instructions
If your Nitrogen95 SMARC development board isn't powering on or showing any signs of life, you may want to try recovering *both* the bootloader and operating system using NXP's Universal Update Utility (UUU). A step-by-step guide is available here: https://www.ezurio.com/resources/software-announcements/recovering-i-mx-platforms-using-uuu๐.J1) of the Universal SMARC Carrier Board; (c) cables and connections are securely in place — nothing should be loose or jammed; (d) all boot switches on the Universal SMARC Carrier Board (S1) are in OFF position; and (e) SW1 on the Nitrogen95 SMARC module itself is also set to OFF.Troubleshooting
Known Issues
- Bluetooth not working: If you encounter an error message such as
[279.259014] Bluetooth: hci0: Frame reassembly failed (-84)repeatedly appearing in the debug terminal, try restarting or resetting the device. Then, at the U-Boot prompt, entersetenv dtbos "imx95-nitrogen-smarc-dsi.dtbo imx95-nitrogen-smarc-nx611.dtbo"followed bysaveenv. This manually applies and saves the correct device tree. You only have to do it once.
References
- (Boundary Devices) Wiki → https://bdwiki.ezurio.com/index.php/Nitrogen95_SMARC,
- (Ezurio) GitHub SOM Documentation → https://lairdcp.github.io/soms,
- (Ezurio) Software Releases → https://www.ezurio.com/resources/software-announcements,
- (Arducam) Documentation → https://docs.arducam.com,
- (NXP) i.MX 95 Applications Processor Family → https://www.nxp.com/products/i.MX95,
- (NXP) IW611 Chipset → https://www.nxp.com/products/IW611,
- (Buildroot Project) Documentation → https://buildroot.org/docs.html,
- (Yocto Project) Documentation → https://docs.yoctoproject.org,
- (SGeT Consortium) SMARC Standard → https://sget.org/standards/smarc,
- (Docker) Documentation → https://docs.docker.com,
- (Qt & Boot2Qt) Documentation → https://doc.qt.io/Boot2Qt + https://doc.qt.io.
Changelog
- Public Version
1.0− 24/10/2025 (Florian Baumgartl): Initial release based on #P/N EZSMI-959-0816-00158-2-K2 REV 1.0.
/filters:background_color(white)/2025-09/EZSMI-959-0816-00158-2-KC1.png)
/filters:background_color(white)/2025-09/EZSMI-959-0816-00158-2.png)