HCL:A10-OLinuXino-LIME

Jump to: navigation, search

The A10-OLinuXino-LIME is a very compact (84x60mm) Allwinner A10 based device similar to Raspberry Pi. It is manufactured and sold by Olimex.

Technical Data

  • Allwinner A10 Cortex-A8 processor typically running at 1GHz and Mali 400 GPU
  • 512MB DDR3 RAM memory
  • SATA connector with 5V SATA power jack
  • HDMI connector with FullHD support (1080p)
  • 2 x USB High-speed host with power control and current limiter
  • 100MBit native Ethernet
  • MicroSD card connector
  • 4GiB NAND Flash version available
  • LiPo backup battery support, LCD interface, 160 GPIOs with I2C, SPI, ... (and what else the A10 supports)
  • Full board documentation available

Writing a disk image to the SD card

  1. Download the image you want (Leap is stable, Tumbleweed is rolling) from here:
    Geeko-white.png
    Tumbleweed
    JeOS image E20 image XFCE image LXQT image GNOME image KDE image X11 image

    If the direct links above do not work for you, please check the general download directory for the images.


    Geeko-white.png
    Leap-15.3
    JeOS image E20 image XFCE image LXQT image GNOME image KDE image X11 image

    If the direct links above do not work for you, please check the general download directory for the images.


  2. As root extract the image onto your SD card (replace sdX with the device name of your SD card).
    WARNING: all previous data on the SD card will be lost. Check first if the device you have selected is really your SD card!
     xzcat [image].raw.xz | dd bs=4M of=/dev/sdX iflag=fullblock oflag=direct; sync
  3. Insert the SD card with the openSUSE image into your board.
  4. Connect the board to your PC via serial port (optional, but helpful for debugging; USB-TTL serial cable needed).
  5. Connect the board to your monitor (via DVI/HDMI, optional).
  6. Power on the board.
  7. Walk through the first boot steps.
  8. Ethernet is configured to request an IP via DHCP, check your DHCP server for the board IP if used.
  9. Have a lot of fun...
Default login is root:linux, works on serial console, via ssh, GUI.

LCD Display Support

The default graphics output device is HDMI. The Olimex boards have also LCD connectors and there are LCD displays available for that. To enable the LCD support the u-boot must be configured. Unfortunately the current setup needs a recompile of the u-boot to enable the LCD.

Manual Compile u-boot

All the steps can be done on the target board. It needs a working internet connection for further downloads. Do the following steps to enable the LCD:

1. Add source repository and install u-boot source and build tools

zypper ar http://download.opensuse.org/ports/armv7hl/source/tumbleweed/repo/oss/ source
zypper ref
zypper si u-boot-a10-olinuxino-lime
zypper in rpm-build ncurses-devel

2. Initial compile u-boot for sane build environment

rpmbuild -bc /usr/src/packages/SPECS/u-boot-a10-olinuxino-lime.spec

3. Configure u-boot

cd /usr/src/packages/BUILD/u-boot-<version>
make menuconfig
set "ARM architecture --> LCD panel timing details" to the display properties
set "ARM architecture --> LCD panel power enable pin" to PH8
set "ARM architecture --> LCD panel backlight enable pin" to PH7
set "ARM architecture --> LCD panel backlight pwm pin" to PB2

4. Build u-boot

make

5. Install u-boot

dd if=u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8

6. Reboot

LCD Parameters

Each LCD display needs a configuration string in "ARM architecture --> LCD panel timing details". See http://linux-sunxi.org/LCD for examples. E.g. for the Olimex 4.3" display this parameter string is working:

x:480,y:272,depth:18,pclk_khz:9000,le:40,ri:5,up:8,lo:8,hs:30,vs:5,sync:3,vmode:0

Touchscreen Support

The A10 has a touchscreen controller integrated. If the LCD display supports touchscreen the support for that can be enabled in the device tree:

1. Convert the device tree to source

dtc -I fs -O dts /proc/device-tree > sun4i-a10-olinuxino-lime.dts

2. modify the rtp node:

...
rtp@01c25000 {
  compatible = "allwinner,sun4i-a10-ts";
  reg = <0x1c25000 0x100>;
  interrupts = <0x1d>;
  allwinner,ts-attached;
  #thermal-sensor-cells = <0>;
};
...

3. Convert the device tree back to binary format

dtc -I dts -O dtb sun4i-a10-olinuxino-lime.dts > /boot/dtb/sun4i-a10-olinuxino-lime.dtb

4. Reboot

To use the touchscreen it must be calibrated. To do that the xinput_calibrator tool can be used. It is not (yet) available in the openSUSE packet pool and must be compiled manually:

zypper ref
zypper in gcc xorg-x11-devel make gcc-c++
wget http://github.com/downloads/tias/xinput_calibrator/xinput_calibrator-0.7.5.tar.gz
tar -xf xinput_calibrator-0.7.5.tar.gz
cd xinput_calibrator-0.7.5
./configure
make
make install

optional the calibration tool an also be installed from repository (might be unavailable from time to time):

zypper ar -f http://download.opensuse.org/repositories/home:/frank_kunz/openSUSE_Factory_ARM/ xinput-cal
zypper ref
zypper in xinput_calibrator

Run the xinput_calibrator tool in a X console and follow the instructions for calibration and copy-paste the console output to a config file as listed in the console output.

Usage Hints

  • The graphical output is driven by the simplefb support of the Linux kernel. One simplification is that it does not support hotplug of a display. E.g. when connecting a HDMI display a reboot is needed to activate it.
  • The LCD and HDMI configuration in this description is mutually exclusive, so either HDMI or LCD is supported. When both is connected HDMI has preference over LCD.

Battery Management Support

The board has a LiPo battery and power supply management controller. The Linux support for the battery management is disabled by default since the supported batteries (e.g. https://www.olimex.com/Products/Power/BATTERY-LIPO6600mAh/) have no parameter EEPROM and by that it cannot be autodetected. To enable the battery and power supply management change the status = "disabled" to status = "okay" for the device tree entries:

  • ac-power-supply (black power jack)
  • usb_power_supply (USB OTG connector)
  • battery-power-supply (LiPo battery connector)

The battery parameters can be specified as described in the kernel documentation: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/power/supply/battery.txt