Debian 8.3 Jessie for i.MX6 boards - February 2016 (kernel 3.14.28)
Published on February 10, 2016
Debian Jessie 8.3 - with XFCE4 desktop
It's been a while since our last Debian Jessie release, so it's time for an updated image for our i.MX6 boards with some nice new features.
So, without further ado, here are a couple of images of Debian Jessie:
- 20160210-nitrogen-3.14.28_1.0.0_ga-jessie-en_US-console_armhf.img.gz
- 20160210-nitrogen-3.14.28_1.0.0_ga-jessie-en_US-xfce_armhf.img.gz
Programming the image
The images are slightly-less-than-4GiB image files containing the partition table, so you can copy it to an SD card or SATA drive on /dev/sdc using zcat and dd like so:
~/Downloads$ sudo umount /dev/sdc*
~/Downloads$ zcat 201602*jessie*.img.gz | sudo dd of=/dev/sdc bs=1M
~/Downloads$ sync
Or you can use Alex Page's USB Image Tool under Windows.
Important !
Before installing this image please check your U-Boot version. The 3.14.28 kernel requires U-Boot version 2015.07 or higher. With this U-Boot you can use the new USB Mass Storage Gadget to program the eMMC.
Note that the links above require acceptance of a EULA because they do include support for acceleration of the GPU and VPU (the Freescale proprietary content).
What's supported
Since the images above include our stable 3.14.28 kernel, essentially everything is supported including GPU and VPU accelerations, Wi-Fi and Bluetooth, all of our storage devices (SD card, eMMC, SATA, USB sticks) and all of our supported touch panels.
The kernel packaging is also 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 (compared to our previous Jessie release)
- The Linux kernel was upgraded to 3.14.28 ( meta-package name: linux-boundary-9j6 )
- Jessie is not "testing" anymore but "stable"
- GPU driver was added , Vivante 5.0.11p4.5 ( meta-package name: imx-gpu-viv-9j6- )
- OpenGL ES v3.0 support was added
- Khronos GLES 3.0 API
- The 5.x driver is compatible with the 4.x driver. Applications developed using 4.x drivers can run on the 5.x driver without any changes.
- Application's performance on the 5.x driver will be better than or equal to that with the 4.x driver
- Apitrace X11 tools added to trace OpenGL, OpenGL ES, Direct3D and DirectDraw API's
- VPU driver was added, 3.14.28 and multimedia libraries to 4.0.3 ( meta-package name: imx-vpu-cnm-9j )
- Added Real Networks parser and codec
- Qt5 support added for X11, Wayland, and Framebuffer backends
- Added gstreamer 1.0 support with gst1.0-fsl-plugins (VPU accelerated)
- Added gstreamer-imx_0.12.0 package for gstreamer 1.0
- Added support for Toshiba TC358743XBG HDMI to MIPI converter
- Added support for TS quadrant-calibration
- Many-many bugfixes, and refinements... no place here to list all of them.
The gstreamer-imx package (0.12.0)
This new package gives you many new options to create your gstreamer1.0 pipeline, with bunch of new plugins :
- elements of imxaudio : imxuniaudiodec, imxmp3audioenc
- element of imxv4l2video : imxv4l2videosrc
- elements of imxvpu : imxvpudec, imxvpuenc_mjpeg; imxvpuenc_mpeg4; imxvpuenc_h264; imxvpuenc_h263
- elements of imxg2d : imxg2dvideosink, imxg2dvideotransform, imxg2dcompositor
- elements of imxpxp : imxpxpvideosink, imxpxpvideotransform
- element of imxeglvivsink : imxeglvivsink
- elements of imxipu : imxipuvideosink, imxipuvideotransform, imxipucompositor
Please check these links for further information about gstreamer-imx plugins package :
https://community.freescale.com/thread/376271
https://github.com/Freescale/gstreamer-imx/blob/master/README.md
An example of using imxeglvivsink :
Debian Jessie 8.3 - eglvivsink windowUsernames and passwords
Two users are defined for use on the system: debian and root. The password for each is Boundary (with a Capital B).
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@nitrogen:~$ sudo mkdir /root/.ssh
[sudo] password for debian:
debian@nitrogen:~$ sudo nano /root/.ssh/authorized_keys
... paste content of $HOME/.ssh/id_rsa.pub here
debian@nitrogen:~$ sudo chmod 600 /root/.ssh/auth*
debian@nitrogen:~$ sudo chmod 600 /root/.ssh/
Bluetooth settings on XFCE (only Nitrogen6_Max and Nitrogen6x boards)
In the notification area (top-right corner) you can see the Bluetooth applet icon :
Debian Jessie - Bluetooth appletPush it, then select [Devices...] button.
Debian Jessie - Bluetooth ManagerThe Bluetooth Manager's Devices window pops up. Push the [Search] button, and you'll see the available devices.
If you select a device from the list, you can connect and pair with them.
Bluetooth settings on console (only Nitrogen6_Max and Nitrogen6x boards)
Handling bluetooth is easier on a headless Debian system than on Ubuntu, since Debian uses the newest 5.23 bluez package, while Ubuntu uses 4.101 .
Debian has a great cmd-line utility for bluetooth, named bluetoothctl with many more options than hci-tools. For example pairing a device from the shell. You have to run it as root :
debian@jessie-dev:~$ sudo bluetoothctl
[NEW] Controller 84:DD:20:DA:B1:8F jessie-dev [default]
[bluetooth]# help
Available commands:
list List available controllers
show [ctrl] Controller information
select Select default controller
devices List available devices
paired-devices List paired devices
power Set controller power
pairable Set controller pairable mode
discoverable Set controller discoverable mode
agent Enable/disable agent with given capability
default-agent Set agent as the default one
scan Scan for devices
info Device information
pair Pair with device
trust Trust device
untrust Untrust device
block Block device
unblock Unblock device
remove Remove device
connect Connect device
disconnect Disconnect device
version Display version
quit Quit program
[bluetooth]# scan on
Discovery started
[CHG] Controller 84:DD:20:DA:B1:8F Discovering: yes
[NEW] Device 0C:1D:AF:A2:E3:78 Redmi
[bluetooth]# info 0C:1D:AF:A2:E3:78
Device 0C:1D:AF:A2:E3:78
Name: Redmi
Alias: Redmi
Class: 0x5a020c
Icon: phone
Paired: no
Trusted: no
Blocked: no
Connected: no
LegacyPairing: no
UUID: OBEX Object Push (00001105-0000-1000-8000-00805f9b34fb)
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Headset AG (00001112-0000-1000-8000-00805f9b34fb)
UUID: PANU (00001115-0000-1000-8000-00805f9b34fb)
UUID: NAP (00001116-0000-1000-8000-00805f9b34fb)
UUID: Handsfree Audio Gateway (0000111f-0000-1000-8000-00805f9b34fb)
UUID: Phonebook Access Server (0000112f-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
[bluetooth]# quit
[DEL] Controller 84:DD:20:DA:B1:8F jessie-dev [default]
debian@jessie-dev:~$
Connecting to Wi-Fi Network (only Nitrogen6_Max and Nitrogen6x boards)
In the notification area (top-right corner) you can see the Network Manager applet icon (rightmost icon, it looks like a white Magnum icecream), please push it :
Debian Jessie - Network Manager appletSelect your network from the list of available Wi-Fi networks. An authentication window will pop up, asking for the password :
Debian Jessie - Wi-Fi authenticationType your password, and Wi-Fi is configured, that was all ! Simple, isn't it ?
Other notes
We added the same indicator applets to the XFCE desktop's bottom panel, as before : a network applet is showing download and upload speeds of the eth0 interface, and a CPU graph indicator showing the utilization of cores in percent , and the running CPU governor type, and current frequency:
Debian Jessie - Network and CPU indicatorsYou can't set the CPU governor here, this is only an information about the available and current settings.
We added a vertical launch-bar to the right side of the desktop , you can start some demos here to check your system's VPU and GPU acceleration. The upper camera preview works with /dev/video0 OmniVision OV564x device, if connected. For more information please check these directories for the running demo scripts :
/home/debian
and /home/debian/movie-tests
GPU development libraries
The package imx-gpu-viv-9j6-dev ( development headers and libraries for OpenGL / ESv2 / ESv3 / Khronos ) is installed by default now. You have to set the headers path, before any other headers, or you might include the mesa headers first, and you don't want to do that. For example :
export CFLAGS="-I/usr/include/vivante ${CFLAGS}"
If you would like to develop with the original mesa libraries, you have to uninstall the imx-gpu-viv-9j6-dev package, at least temporarily
ubuntu@nitrogen:~$ sudo apt-get purge imx-gpu-viv-9j6-dev
As always, let us know how it goes when you try these images out.