October 2, 2018

Debian 9.5 Stretch for Nitrogen8M board – October 2018 (kernel 4.9.x)

Debian 9.5 Weston/Wayland Compositor

We’re glad to release our first Debian Stretch image for Nitrogen8M board. Since this board supports only Wayland graphical backend, the system is simpler than earlier systems with i.MX6.

We use Weston, the reference Wayland compositor in this system, later we’ll release a native Debian desktop as well, most probably Gnome3 or KDE Plasma/Neon depending which one works better, smoother and will be more steady.

This image is a console developer image also, it boots to the command prompt. Weston compositor could be started manually or you can set autostart the service, as per your preference.

This system contains NXP/Freescale licensed content, so you will need to register on our web-site and log in before you can accept the license agreement and download the images from here:

Update#1 :

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-09h 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
<some MAC address> 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 Nitrogen8M board.

Note that you can also use fastboot from a Windows Host PC, see following blog post to learn how:


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@stretch-dev64:~$ sudo visudo

, and comment out or delete the last line with “debian” and “NOPASSWD:”

An ssh server is configured 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@stretch-dev64:~$ sudo mkdir /root/.ssh
debian@stretch-dev64:~$ sudo nano /root/.ssh/authorized_keys
... paste content of $HOME/.ssh/id_rsa.pub here
debian@stretch-dev64:~$ sudo chmod 600 /root/.ssh/auth*
debian@stretch-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
  • Wi-Fi and Bluetooth modules for the built-in Silex module
  • 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 (inluding kernel) is done in the normal debian way, so apt-get update/dist-upgrade will keep your image up and running the latest as patches come out.

What’s new in this release

The Linux kernel was upgraded to 4.9.117 ( meta-package name: linux-boundary-15s )
GPU driver was upgraded to Vivante 6.2.4p1.8 ( meta-package name: imx-gpu-viv-s15-… ).
The module galcore (CONFIG_MXC_GPU_VIV) was removed from the kernel, and it’s an externally built 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, because its 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 Stretch 9.5 . Here are some main component versions :

  • Xorg server 1.19.2-1+deb9u2
  • gstreamer1.0 1.14.0
  • bluez 5.43-2.2
  • Qt5 5.7.1+dfsg-3+b1
  • apt 1.4.8
  • dpkg 1.18.25-1
  • gcc/g++ 6.3.0-18+deb9u1
  • libwayland 1.12.0-1
  • weston 4.0.0-1debian3
  • Silex WiFi / Bluetooth is supported in Bionic also, as well as in Stretch, Xenial and Jessie.

This is a short video/GPU SDK demo, uploaded to Youtube. You’ll need UHD/4k display and min. 20Mbps internet to watch 2160p60 content on Youtube.


The system boots to the command prompt, as I mentioned before. You can start Weston compositor on any tty (not ssh, not RS232) terminal by typing:

debian@stretch-dev64:~$ wl
debian@stretch-dev64:~$ weston-launch

If you want to start Weston at boot automatically, you have to enable the service, you have to type the following:

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

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

debian@stretch-dev64:~$ sudo systemctl disable weston.service
debian@stretch-dev64:~$ sudo systemctl mask weston.service

You can find the weston.ini file in the /usr/share/weston/examples directory. Please type:

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

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

As always, please give us some feedback and let us know how things work for you.