Timesys 2013-03 release

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
0
~/$ 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
# 

Tags:

17 Responses to “Timesys 2013-03 release”

  1. Henrik Jacobsen March 18, 2013 2:46 am #

    Hi –

    2 questions, on the Bluetooth part:
    - isn’t there a “hciconfig hci0 up” missing in the example above, before you can do the scan?
    - I have a weird problem with the TiWiR2 on our own design: Both Bluetooth and Wifi works, but the Bluetooth part dies every time I bring up the Wifi with e.g. “ifconfig wlan0 up”. Have you tried bringing up Bluetooth, then do e.g. “ifconfig wlan0 down; ifconfig wlan0 up”, and then another “hcitool scan” ? I’d be glad to know if it’s a general problem.

    Best regards,
    Henrik

  2. Dennis Han March 18, 2013 5:11 am #

    Hi Eric.

    may i ask you what configure options are used for qt 4.8.3 ?

    thanks.

  3. Angelo March 19, 2013 12:47 am #

    Have you some precompiled kernel uImages with modules to download?

    I think that you should provide those files, so anyone who wants can build his minimal rootfs with Debian or Ubuntu core.

  4. hitesh March 29, 2013 1:51 am #

    Hi
    I have just got a sabrelite imx6q board and want to have an hdmi display . also i have played with many images and sdk including timesys images (different factory builds and default builds) ,buildroot(different configs) yocto(fsl-image). i am confused on using which sdk as at first i want an hdmi display. even a console on hdmi is fine and then i want to add my own packages . i have not upgraded the uboot. is that required. can you please provide me with a link/ tutorail and advice me which sdk to use.

    • ericn March 29, 2013 8:58 am #

      Hi Hitesh,

      I suggest that you start by upgrading U-Boot. You’ll immediately get HDMI support at the boot loader level, and the auto-detection features will allow the 6x_bootscript to configure your displays.

      • hitesh April 1, 2013 6:17 am #

        Thanks a lot eric , i have upgraded uboot from here http://boundarydevices.com/i-mx-6dq-u-boot-updates/
        and my uboot version is showing
        U-Boot 2013.01-rc1-00130-g1e88922 (Feb 11 2013 – 13:46:35)
        is it fine ?

        • ericn April 1, 2013 6:43 am #

          Yep. That should do the trick.
          You should also run ‘printenv’ and make sure your environment contains a reference to 6x_bootscript in bootcmd. If it says 6q_bootscript instead, you can fix it like so:

          U-Boot > sf probe
          U-Boot > sf erase 0xc0000 0x1000
          U-Boot > reset
          
          • jans April 16, 2013 6:02 am
            #

            Hi,

            I have got sabre lite imx6q board too and I also have hdmi output issues – I’ve upgraded u-boot to
            U-Boot 2013.01-00058-g5957f6d (Feb 11 2013 – 15:10:10)
            i.e. to u-boot-nitrogen6q.imx as available here http://boundarydevices.com/i-mx-6dq-u-boot-updates/
            and erased the sf as suggested by ericn.
            I can see hdmi output working in u-boot, but not always unfortunatelly.
            When it works in u-boot, timesys demo also comes up.

            But whenever I connect anything to usb, like mouse or usb flash key, hdmi suddenly stops working until the board is completely powered off and on again, without anything connected to usb. Even reboot nor the reset button do not help (in that case u-boot does not detect hdmi either).
            The behavior is completely the same also with ltib-12.09-20121219 release.

            Any idea what can be wrong here?
            Or how to fix/workaround it?

            Thanks and best regards,
            Jan

  5. Brendan Dowling April 8, 2013 6:19 pm #

    So, I do a “git clone” with “git clone git://github.com/boundarydevices/linux-imx6.git”.

    It downloads about 580MB of stuff 2M+ objects, but all I end up with is a directory “linux-imx6″ containing a README.md and a .git folder.

    How do I get the tree out of this? Do I have to switch to a different branch or something?

    Apologies if this is documented elsewhere.

    • ericn April 8, 2013 7:04 pm #

      Hi Brendan,

      Yes. You need to check out a branch matching your userspace.
      In general, you should be using boundary-imx_3.0.35_1.1.1 for non-Android use, and the check-out usually looks like this:

      ~/linux-imx6$ git checkout origin/boundary-imx_3.0.35_1.1.1 -b boundary-imx_3.0.35_1.1.1
      

      The origin/boundary-imx_3.0.35_1.1.1 refers to the source branch and the -b boundary-imx_3.0.35_1.1.1 creates a local branch with a matching name.

      • Brendan Dowling April 8, 2013 8:04 pm #

        Thank you for the very quick reply. That worked perfectly.

  6. Sesh May 20, 2013 4:09 pm #

    Hi,

    I am interested to know if “Wi-Fi direct” support is available on the following version of linux on i.MX6.
    If not what is the best way to get this added on to TiWi BLE module on Nitrogen 6X boards.

    Linux version 3.0.35-ts-armv7l (root@localhost.localdomain) (gcc version 4.6.3 (Timesys 20130311) ) #1 SMP PREEMPT Wed Mar 13 16:32:41 EDT 2013

    • ericn May 20, 2013 4:24 pm #

      Hi Sesh,

      I don’t believe Wi-Fi Direct is supported in the Timesys image. From what I can tell, you’d at least need to include ‘hostapd’ into the image.

      This may be doable using the Timesys LinuxLink free edition, but I don’t really know. I suspect that the folks at Timesys could tell you though.

  7. odbwilson July 7, 2013 8:50 pm #

    Hi all,

    Anyone knows how to compile the source file, like the demo “timesys-theatre-1080p-1.4″ on the Linux console.
    I have setup the Linux box with toolchain, just have no idea how to compile and make it work on the board.
    Any clues?

    • ericn July 8, 2013 6:41 am #

      The Timesys installation will give you a toolchain/bin directory. If you add this to your PATH, you can use qmake to generate the Makefile, then make to build:

      ~/timesys-theatre-1080p-1.4$ which qmake
      /home/user/timesys/nitrogen6x/toolchain/bin/qmake
      /timesys-theatre-1080p-1.4$ qmake && make
      /home/user/timesys/nitrogen6x/toolchain/usr/bin/uic Theatre.ui -o ui_Theatre.h
      armv7l-timesys-linux-gnueabi-g++ -c -pipe -Os
      ...
      
  8. Bill Yang August 20, 2013 9:01 am #

    Does any one know how to enable WPA of WiFI with ltib4.0.0 image. I foud there is no the /etc/wpa_supplicant.conf file. So I cannot run wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf.

    Please help.

Leave a Reply