Olimex Driver

Translation(s): none

DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owners would know how get the best out of that hardware.

The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware.

If you need help to get Debian running on your hardware, please have a look at our user support channels where you may find specific channels (mailing list, IRC channel) dedicated to certain types of hardware.

OLIMEX Open Source Hardware Development Boards. STMP1-OLinuXino-LIME2 Industrial grade Linux Computer project took us almost an year of work to build proper software support for our hardware with mainline uboot and kernel.

Contents

Olimex ARM-USB-OCD-H¶. High-speed 3-IN-1 fast USB ARM/ESP32 JTAG, USB-to-RS232 virtual port and power supply 5VDC device. Official reference can be found here. Posts about driver written by OLIMEX Ltd. UPDATE: Now the A20 HDMI Audio driver patches are submitted and KODI images with working HDMI Audio are on our ftp. We blogged few weeks ago about the KODI image done for A20 and A64 by our friends Dimitar Gamishev and Stefan Saraev.

  1. Installation
    1. Manual install
  2. Configuration
  3. System Summary
  4. Resources

The Teres-I is a DIY open hardware laptop sold by Olimex. Olimex has stated that they intend the Teres-I to be very modular, allowing main boards built around different SoCs to be used interchangeably. However, the only main board available at the moment is based on the Allwinner A64 SoC with 2GB RAM and 16GB eMMC internal storage. The CPU is supported by the arm64 architecture in debian. armhf should work too, but is untested.

The laptop is sold with linux (ubuntu + vendor supplied kernel) preinstalled. Source code is only partially available for the vendor kernel, which means that users of the preinstalled system are permanently stuck with an old version of linux. On the other hand since a linux system is available, no external computer and no cross-compilation is required to bootstrap a debian system.

While debian runs fine from eMMC internal storage, it is common to install debian to an external microSD card (there is one slot available) to have both systems available. That's also what is described in this guide.

To get an overview of mainline kernel support, see the status matrix of the linux sunxi community.

Driver

Core Components

Boot Standard Kernel:

Detect mmc:

Extra Features

CPU Frequency Scaling

Hibernation

[?]

Sleep / Suspend

Xorg

- OpenGL

[?]

- Resize-and-Rotate(randr)

[?]

Switch to External Screen

- only with non-Mainline patches e.g. included in Olimex images

Mouse

- Built-in (Touchpad)

Wireless/Wifi

Keyboard's Hotkeys (a.k.a. media keys)

- since udev 245

Legend :
= OK ; Unsupported(No Driver) ; = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
= Configuration Required; = Only works with a non-free driver and or firmware

The laptop is sold as a kit for self-assembly. Here we assume that the kit is completely assembled and correctly functioning with the preinstalled system.

Image install

Several images exist for directly writing to your microSD card:

  • Debian Installer

  • Redpill

    • Source: Debian
    • Build: Boxer + qemu + multistrap + custom scripts

    • Quirks: in addition to main purely Free Debian image, a separate nonfree image is provided with support for internal wifi
  • Armbian

    • Source: Debian (or Ubuntu) + Armbian + Armbian-maintained forks of kernel and bootloader
    • Build: debootstrap + custom scripts

  • Olimex (torrent link)

    • Source: Ubuntu + Olimex + Olimex-maintained forks of kernel and bootloader
    • Build: qemu-debootstrap + custom scripts

  • Olimex (Armbian)

    • Source: Ubuntu + Armbian + Olimex + Olimex-maintained forks of kernel and bootloader
    • Build: qemu-debootstrap + custom scripts

For links, further information and discussion see the dedicated thread at the olimex forum.

Manual install

Olimex-ftdi-drivers-2-12-04

Buster and newer include boot-loader, kernel and arm64 userspace tools working out of the box.

partitioning

There are no real requirements for disk layout other than that the bootloader is stored in an area close to the start of the disk but outside any partition. Most microSD cards already come with a compatible partition layout, so you only have to change the type of the existing partition from Windows to Linux and format it with your favorite filesystem.

device tree

Buster and newer ships with working device-tree (DT) file for the teres.

arm trusted firmware

Stage 2 of bootstrapping the hardware is ARM Trusted Firmware.

The debian package arm-trusted-firmware has support for Teres I using this binary:

u-boot

Stage 1 and 3 of bootstrapping the hardware is U-boot.

mainline u-boot supports Teres-I since 2019.05, and the debian package u-boot-sunxi since release 2019.01+dfsg-5.

U-boot currently fails to enable the built-in keyboard. A patch has been adopted into mainline u-boot and should be included from v2020.01 onwards, and the issue is tracked in Debian at 935035.

rootfs

Follow the debootstrap chapter in the installation manual.

Olimex Driver Windows 7

The default bootscript built into u-boot probably won't find all the files necessary to boot the system. The simplest way to fix this is to install u-boot-menu which should work out of the box.

Driver

Alternatively you can try write a custom bootscript and reformat it with mkimage from the package u-boot-tools:

Here is a minimal example bootscriptwhich assumes that /dtb, /vmlinuz and /initrd.gz are symlinks to the real files.

Using debian installer

Olimex drivers ed

Olimex Drivers Ed

Vanilla Debian may be installed onto the TERES-I using Debian-installer using the following procedure:

1. Using a host computer, download and configure the installation image:

2. On the same computer you used to create the image above, run the following command:

3. Still using the same host computer, insert a spare microSD card. This microSD card will be used to run debian-installer in order to install Debian onto the TERES-I local eMMC.

4. Run the following command again:

Verify that the device path of the microSD card is shown by comparing the output to the previously-issued command. The device path should look something like /dev/sdX (and NOT the path to a partition e.g. /dev/sdX1).

5. Run the following command to burn the installation image to the microSD card:

NOTE: At this point, you may wish to follow this video walkthrough (OGV on archive.orgMP4 on lbry.tv) which corresponds to the next steps in the installation process.

6. Insert the imaged microSD card into the TERES-I and power on the device.

7. U-Boot will launch and the boot select menu will display Debian-installer as an option. Select your language, location, and keyboard settings. Select your desired host name and domain name. Network hardware will now be scanned and you may select your mirror and proxy settings. If you receive a 'bad mirror' error, try using an RJ45-to-USB adapter and try detecting network hardware again via the 'Go Back' menu option. Set up users and passwords, and choose a time zone. Choose a partitioning method. When you reach the 'Partitioning disks' menu, you will be prompted to 'select disk to partition.' You should see two options:

Olimex Drivers License

  • MMC/SD card #1 (mmcblk0) - XX.X GB SD XXXXX
  • MMC/SD card #3 (mmcblk2) - 14.8 GB MMC B1J56L

Select the MMC option. Choose a partioning scheme. Select 'Finish partitioning and write changes to disk' and select 'Yes.' Wait for a while. When you reach the software selection menu, toggle what software to install by pressing <Space> and 'Continue' using <Enter>.

8. At the conclusion of the installation, you will be prompted to remove the installation media and either 'Go Back' or 'Continue'. If you remove the microSD card now and select 'Continue' to reboot the laptop, you will likely experience the laptop showing a blank screen (see Troubleshooting section below). Instead, leave the microSD card inserted and select 'Continue' to reboot the device. When U-Boot appears (like it did when you were intentionally installing Debian), remove the microSD card. Depending how long you wait to remove the microSD card, several errors may be shown due to missing files, but ignore them. The TERES-I will continue to boot onto the freshly-installed Debian system residing on local eMMC storage.

Troubleshooting

If the screen remains blank or the system doesn't boot (is stuck in u-boot or initramfs) you can connect a serial console. The serial console is multiplexed with the headphone output. Instructions how to make or buy a proper connector are at the Olimex forum.

Backlight

The backlight is adjustable by echo'ing values 0-10 to /sys/class/backlight/backlight/brightnesssince Linux 5.2.

Keys to control backlight (and other media keys) need udev 245 or newer.

Older udev can be taught as well: Add file /etc/udev/hwdb.d/70-keyboard.hwdb with this content:

One way to tie backlight keys to backlight control is with package backlightctland adding the file /etc/udev/rules.d/90-brightnessctl.rules with this content:

Display

LCD works with simplefb framebuffer.

Mali-400 MP2 ('Utgard') GPU is recognized since Linux 5.2 but not yet used.

Use of Mali GPU requires the lima driver, developed as part of Mesa3d in (among others) package libgl1-mesa-dri, where the lima driver is expected enabled from release 4.19.2 onwards.

Possibly use of Mali GPU additionally requires X11 driver fbturbo, not currently packaged for Debian (see 760025).

Video decoding/encoding accelerator Video Engineis supported since Linux 5.0. Use of Video Engine however requires Cedrus(and wrappers e.g. for vdpau and ffmpeg) not currently packaged for Debian.

Audio

  • (not covered yet)

Power Management

Sleep is supported since Linux 4.19.

Battery status data is available since Linux 5.2, at non-standard path /sys/class/power_supply/axp20x-battery.

WiFi

Realtek RTL8723BS, requiring non-free package firmware-realtek

A possible race condition between wifi driver and mmc driver is avoided by adding 'rtl8723bs' to the file /etc/initramfs-tools/modules and then regenerating initramfs with 'update-initramfs -u'. This issue and workaround was found here.

Bluetooth

  • (not covered yet)

lsusb

lsusb -v grep -E '<(Bus iProduct bDeviceClass bDeviceProtocol)' 2>/dev/null

Attachments

Some configuration files and sample outputs.

Useful Links

Credits

CategoryLaptopComputer

UPDATE 20-01-2020: Now the A20 HDMI Audio driver patches are submitted and KODI images with working HDMI Audio are on our ftp

Olimex Drivers

We blogged few weeks ago about the KODI image done for A20 and A64 by our friends Dimitar Gamishev and Stefan Saraev.

A64 had everything working fine, but the A20 image had no HDMI audio, as there is no such driver in the mainline kernel. This of course made A20 not useful for media center.

Olimex Usb Driver

We decided to try to solve this problem by ourselves by writing this missing driver and today we have success!

Olimex Driver

The audio driver for HDMI is working, but is still far from complete as we have to add channel management etc, but with our driver we can hear audio via the HDMI with A20!

We will complete and send the patches to mainline after our Christmas-New Year vacation, so somewhere in January the KODI image (and of course all Olimex official images) for A20 will be updated and will have HDMI audio too!