Timesys has issued an updated release for our Nitrogen6X and BD-SL-i.MX6 (formerly SABRE Lite) boards. This release is primarily to update the kernel, but the folks at Timesys have also added some new features to the demo for a better out-of-the box experience that we'll describe below.
First, the demo
Download
We'll begin shipping this image with new boards in the next couple of days. If you just want to try it yourself, you can download the image from Timesys here. If you haven't already, they'll ask you to register, but I promise, they'll be nice to deal with.
Now the details
New kernel release
This release is the first publicly-announced image containing our latest kernel, on the boundary-imx_3.0.35_1.1.1 branch of our Github repository. There are lots of bug fixes and enhancements from Freescale and us in that package, and we'll cover them in a separate post, but the highlights are:
- Support for single-core and dual core processors as discussed here.
- Better PCIe support. We'll discuss this in an upcoming post.
- Added support for our new OV5640 MIPI Camera module.
Triple display support
This Timesys release contains our new boot script to initialize each of our panels as described in this blog post. The script uses the HDMI hot-plug-detect pin and the I2C interface to the touch controllers on other panels to automatically configure the command-line arguments for the kernel. This Timesys demo adds to that some scripts to walk the kernel command line and start up to three processes, with environment variables telling each instance which frame buffer and which input device to use. If you want to follow this logic, you can start by looking at this fragment of /etc/init.d/S99-fluidlauncher
:
for param in `cat /proc/cmdline` ; do
case $param in
video=*)
echo "-------- parse video $param here" ;
...
The script file /root/rundemo
contains the details of how you can read the display resolution from /sys/class/graphics
to determine the screen resolution and from that, determine which touch device (or mouse) to use. New additions
Based on customer request, this image contains a number of additional tools:
- iperf - an Internet Protocol performance testing tool. This is what we used in testing the Gigabit ethernet performance we discussed a while back.
- Wi-fi support - This release contains support for
wpa_supplicant
and firmware for the WL1271 Wi-Fi adapter on Nitrogen6x and Nitrogen6X-SOM. - Bluetooth support - This release contains the Bluez package to allow testing of the Bluetooth interface on the Nitrogen6x and Nitrogen6X-SOM.
- imx_usb - This tool allows you to download a bootable image over the USB On-the-go (OTG) port, so you can unbrick your board if something bad happens.
- alsa-utils - This set of utilities allow you to control the settings of the audio channels on the i.MX6 boards and also provide support for audio recording.
- Audio is now fully supported. Both the SGTL5000 analog channel and the HDMI digital channel are operational and selectable as described in this post.
- Timesys has integrated Phonon into the Qt build, so your Qt applications can access play and video directly without binding to
gstreamer
directly.
Things you need to know
There are some restrictions to particular screens for some of the demo applications. In particular:
- Because of some hard-coded references to
/dev/fb0
, the Vivante demos will only run on the first display. - The Timesys Theatre demo only works on the first two displays. This stems from a limitation on the number of overlays supported by the IPU.
- Only two displays are supported on Solo and Dual-Lite because there's only a single IPU on these processors.
- Likewise, Timesys Theatre will only function on the first display on Solo and Dual-Lite.
For these purposes, the displays are ordered in the boot script as follows:
- HDMI
- LVDS
- RGB
Wi-Fi Quick-start
To verify that the wireless LAN device is running and that wpa_supplicant
has configured it, you can use the wpa_cli
command as follows:
~/$ wpa_cli scan
~/$ wpa_cli scan_res
If you haven't used it before, the wpa_cli
program is a command-line tool to connect to and configure a running wpa_supplicant
. The wpa_cli --help
command will give you a complete list of options, but here are some simple use cases: Add an unsecure network
This example adds a network for SSID "myssid" with no encryption or authentication. Note that the last line in this example (save_conf
) tells wpa_supplicant
to save the settings into its configuration file (in /etc/wpa_supplicant.conf
).
~/$ wpa_cli add_net
~/$ wpa_cli set_net 0 ssid '"myssid"'
~/$ wpa_cli set_net 0 key_mgmt NONE
~/$ wpa_cli enable_net 0
~/$ wpa_cli save_conf
Also note that the zeros produced by the add_net
command above is used in the following three lines to distinguish it from other network configurations. The /etc/wpa_supplicant.conf/tt> file can contain more than one network configuration and wpa_supplicant
can choose between them based on availability and priority.
Add a WEP-secured network
This example uses a WEP passphrase. To use a 40-bit or 128-bit hex string, the quotes on the wep_key0
line should be omitted:
~/$ wpa_cli add_net
1
~/$ wpa_cli set_net 1 ssid '"myssid"'
~/$ wpa_cli set_net 1 key_mgmt NONE
~/$ wpa_cli set_net 1 wep_key0 '"passphrase"'
~/$ wpa_cli set_net 1 wep_tx_keyidx 0
~/$ wpa_cli enable_net 1
~/$ wpa_cli save_conf
Add a WPA-PSK-secured network
~/$ wpa_cli add_net
2
~/$ wpa_cli set_net 2 ssid '"myssid"'
~/$ wpa_cli set_net 2 psk '"passphrase"'
~/$ wpa_cli set_net 2 key_mgmt WPA-PSK
~/$ wpa_cli enable_net 2
~/$ wpa_cli save_conf
The strange single-plus-double quoted strings are needed to prevent the shell from stripping the quotes from the SSID and passphrase strings. Note that there are a lot more options for setup of wpa_supplicant
. Refer to the WPA Supplicant web-site for definitive details.
Bluetooth Quick-start
The Bluetooth support is essentially what we described in a previous post.
# bluetoothd
# echo 176 >/sys/class/gpio/export
# echo low >/sys/class/gpio/gpio176/direction
# echo high >/sys/class/gpio/gpio176/direction
# hciattach -t 30 -s 115200 /dev/ttymxc2 texas 3000000 flow
...debug spew omitted
Found a Texas Instruments' chip!
Firmware file : /lib/firmware/TIInit_7.2.31.bts
Loaded BTS script version 1
texas: changing baud rate to 3000000, flow control to 1
Device setup complete
#
# hcitool scan
Scanning ...
00:21:4F:B8:A3:C9 ericsony-0
B0:79:94:CA:D9:47 DROID RAZR HD
#