Debian Buster images for Nitrogen8 family boards with kernel 5.4.x

Published on November 9, 2020

We’re proud to release our new Debian Buster images for Nitrogen8 boards!  These boards support only the Wayland graphical backend. We use Weston, the reference Wayland compositor, in this system. This image boots up the Weston compositor at start. This can be changed by disabling the service autostart, as described later in this post. This system contains NXP/Freescale licensed content, so you will need to register on our website and log in before you can accept the license agreement and download the Debian Buster images for Nitrogen8 from here: For i.MX 8MQ based Nitrogen8M, Nitrogen8M SOM:

For i.MX 8M Mini-based Nitrogen8M Mini, Nitrogen8M Mini SOM and for i.MX 8M Nano-based Nitrogen8M NanoNitrogen8M Nano SOM:

Important! Before installing this image please check your U-Boot version, as it requires U-Boot version 2018.07  to be used. Make sure to visit our wiki if you need to upgrade:

You can find the bootscript in the /boot subdirectory now, its named boot.scr. The partition labels are set if you use the fastboot method. If you use your own method please check the boot partition labels because the fstab boots by label (LABEL=sys-14h for example) now.  You can use e2label to modify partition label.

Programming the image

Since the Nitrogen8M board has no SD card slot, you need to program this image in the same way as an Android system, by using fastboot. Please install the following packages on your desktop PC, Debian or Ubuntu :

$ sudo apt update
$ sudo apt install fastboot android-tools-fastboot

To avoid using sudo for each command, please download the following file and move it to the /lib/udev/rules.d directory, then reboot your PC:

Now connect your Nitrogen8M board's J67 USB OTG port to your PC's USB port. Use regular USB2.0 OTG cable do not use USB3.0 cable (as it seems to be problematic with U-Boot). Connect the Nitrogen board's RS232 console to your PC so you can communicate with the board. You can then power up the Nitrogen8M board, and stop the u-boot execution by pressing any key. Then type:

Hit any key to stop autoboot: 0
=> fastboot 0

Now test the USB connection on the PC, please type on the PC:

$ fastboot devices -l
 fastboot usb-x:y

If you get the above response, a MAC address, the word fastboot, then the USB device:id numbers, the communication is OK. Now type on PC:

$ fastboot flash gpt gpt_8G.img
$ fastboot flash rootfs rootfs_8G.simg

, then wait till its completed, until the PC side prints:

$ finished, total time: 584.109sec

When its done you can disconnect USB cable, and restart your Nitrogen8 board. Note that you can also use fastboot from a Windows Host PC.  Please see the following blog post to learn how: https://boundarydevices.com/android-tools-windows-support-nitrogen-platforms/

Usernames and passwords

Two users are defined for use on the system: debian and root. The password for each is Boundary (capital B). The user debian has administrator rights, but doesn't need to enter password at sudo command. We wanted to make life easier at the cost of some security. If you want to change this please type:

debian@buster-dev64:~$ sudo visudo

, and comment out or delete the last line with "debian" and "NOPASSWD:" An ssh server is running on the system, though it does not allow password-based authentication for user root. User debian has sudo privileges, so you can place your ssh public key (normally $HOME/.ssh/id_rsa.pub) to the system like so :

debian@buster-dev64:~$ sudo mkdir /root/.ssh
debian@buster-dev64:~$ sudo nano /root/.ssh/authorized_keys
... paste content of $HOME/.ssh/id_rsa.pub here
debian@buster-dev64:~$ sudo chmod 600 /root/.ssh/auth*
debian@buster-dev64:~$ sudo chmod 600 /root/.ssh/

What's supported

Since the images above include our stable 4.9.x kernel, essentially everything is supported, including:

  • Vivante GPU accelerations for Wayland
  • The Hantro Video Processing Unit supports the following decoders:
    • video/x-h265
    • video/x-vp9
    • video/x-h264
    • video/x-vp8
    • video/x-vp6-flash
    • video/mpeg
    • video/x-h263
    • video/x-flash-video
    • video/x-divx
    • video/x-xvid
    • video/x-cavs
    • video/x-wmv
    • video/x-pn-realvideo
    • video/x-raw
  • BD-SDMAC WiFi/BT modules support
  • All kind of storage devices , eMMC, SATA hdd (via USB3-SATA adapter), USB3.0/2.0 pen drives, mini PCIe devices, cell modems
  • All of our supported touch panels

The packaging (including kernel) is done in the normal debian way, so apt-get update/dist-upgrade will keep your image up and running as the latest as patches come out.

What's new in this release?

The Linux kernel was upgraded to 5.4.72 ( meta-package name: linux-boundary-18b ). GPU driver was upgraded to Vivante 6.4.3p0.0 ( meta-package name: imx-gpu-viv-b18-... ). The built-in galcore module has been removed (CONFIG_MXC_GPU_VIV) and we use an external galcore kernel module. This change makes the graphics system modular and more upgradeable, at the price of longer kernel upgrading time. Upgrading kernel takes about 3-4 minutes now, instead of 30 seconds, because every kernel upgrade rebuilds the galcore driver from sources, as it's a DKMS module. The NXP/Vivante GPU SDK was added : imx-gpu-sdk 4.0.2 . You can get the source with the usual apt-get source command. The SDK has many new demos, for example OpenCL, OpenVG, and for OpenVX and Vulkan. The distribution is Buster 10.6 . Here are some main component versions of these Debian Buster images for Nitrogen8:

  • Xorg server 1.20.4-1.1
  • gstreamer1.0 1.16.2
  • bluez 5.50-1.2
  • Qt5.11.3
  • apt 1.8.2.1
  • dpkg 1.19.7-3
  • gcc/g++ 8.3.0-6
  • libwayland 1.18.0-1
  • weston 6.0.1-2debian4
  • the image supports the Silex WiFi / Bluetooth module

The system boots to Weston compositor as mentioned before.

If you don't want to start Weston at boot automatically, you have to disnable the service, you have to type the following:
debian@buster-dev64:~$ sudo systemctl disable weston.service
debian@buster-dev64:~$ sudo systemctl mask weston.service

If you want to enable the autostart again you need to type:

debian@buster-dev64:~$ sudo systemctl unmask weston.service
debian@buster-dev64:~$ sudo systemctl enable weston.service

You can find the weston.ini file in the /etc/xdg/weston directory. Please type:

debian@buster-dev64:~$ man weston.ini

Check the options and feel free to modify it to suit your needs.

As always, please share your feedback and let us know how things work for you.