Differences between revisions 18 and 19
Revision 18 as of 2018-07-11 15:47:44
Size: 10731
Comment: Fix typo
Revision 19 as of 2018-09-09 11:02:58
Size: 10781
Comment: Use semantic linefeeds (to ease reading emailed diffs and ease editing on constrained screen).
Deletions are marked like this. Additions are marked like this.
Line 18: Line 18:
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 should run fine from the eMMC internal storage, most people 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.
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 should run fine from the eMMC internal storage,
most people 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.
Line 25: Line 38:
To get an overview of mainline kernel support, see the [[http://linux-sunxi.org/Linux_mainlining_effort#Status_Matrix|status matrix of the linux sunxi community]]. To get an overview of mainline kernel support,
see the [[http://linux-sunxi.org/Linux_mainlining_effort#Status_Matrix|status matrix of the linux sunxi community]].
Line 45: Line 59:
~-Legend :<<BR>> {OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable <<BR>> {i} = Configuration Required;  X-( = Only works with a non-free driver and or firmware-~ ~-Legend :<<BR>>
{OK} = OK ;
{X} Unsupported(No Driver) ;
/!\ = Error (Couldn't get it working);
[?] Unknown, Not Test ;
[-] Not-applicable <<BR>>
{i} = Configuration Required;
X-( = Only works with a non-free driver and or firmware-~
Line 48: Line 69:
The laptop is sold as a kit for self-assembly. Here we assume that it is completely assembled and confirmed working correctly with the preinstalled system. The laptop is sold as a kit for self-assembly.
Here we assume that it is completely assembledand confirmed working correctly with the preinstalled system.
Line 51: Line 73:
There is a ready image available for directly writing to your microSD card. For links, further information and discussion see the [[https://www.olimex.com/forum/index.php?topic=6092.0|dedicated thread at the olimex forum]]. There is a ready image available for directly writing to your microSD card.
For links, further information and discussion
see the [[https://www.olimex.com/forum/index.php?topic=6092.0|dedicated thread at the olimex forum]].
Line 54: Line 78:
The debian kernel package (starting with 4.16) and arm64 userspace packages work out of the box, but you will need to get or compile yourself a custom device tree file and bootloader. The debian kernel package (starting with 4.16) and arm64 userspace packages work out of the box,
but you will need to get or compile yourself a custom device tree file and bootloader.
Line 57: Line 82:
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. 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.
Line 60: Line 89:
Starting with 4.17 linux contains a DT file for the teres. Unfortunately pwm support (necessary for the backlight and thus the display) didn't make it in, so you will probably want to either edit the official DT or get one from somewhere else until linux 4.18 is available. Starting with 4.17 linux contains a DT file for the teres.
Unfortunately pwm support (necessary for the backlight and thus the display) didn't make it in,
so you will probably want to either edit the official DT
or get one from somewhere else until linux 4.18 is available.
Line 66: Line 98:
The debian package [[https://packages.debian.org/sid/atf-allwinner|atf-allwinner]] has support for the teres since version 1.0.aw-6-1. Thus locally compiling ATF is not necessary anymore. Just use The debian package [[https://packages.debian.org/sid/atf-allwinner|atf-allwinner]] has support for the teres since version 1.0.aw-6-1.
Thus locally compiling ATF is not necessary anymore. Just use
Line 72: Line 105:
mainline u-boot still misses a few bits like a pwm driver (to get display backlight up early), so you need to get this [[https://github.com/anarsoul/u-boot-pine64/commits/pinebook-wip-20180206|fork]] and then cherry-pick one more [[https://github.com/Icenowy/u-boot/commit/960ae79950a2b0a8d2e62bb3dfb5727764512a8b|commit]]: mainline u-boot still misses a few bits
like a pwm driver (to get display backlight up early),
so you need to get this [[https://github.com/anarsoul/u-boot-pine64/commits/pinebook-wip-20180206|fork]]
and then cherry-pick one more [[https://github.com/Icenowy/u-boot/commit/960ae79950a2b0a8d2e62bb3dfb5727764512a8b|commit]]:
Line 83: Line 119:
You find information about compiling u-boot and writing the binaries to media in board/sunxi/README.sunxi64 - the basic steps are: You find information about compiling u-boot
and writing the binaries to media in board/sunxi/README.sunxi64 -
the basic steps are:
Line 97: Line 135:
Since there is already an ubuntu system preinstalled on the teres, you can simple download [[https://packages.debian.org/sid/all/debootstrap/download|debootstrap from unstable]] and install it on ubuntu - it's only a shell script, so no dependency problems.

Then just follow the debootstrap chapter in the [[https://www.debian.org/releases/stable/arm64/apds03.html.en|installation manual]].

The default bootscript built into u-boot probably won't find all the files necessary to boot the system. To fix this we need to write a custom bootscript and reformat it with mkimage from the package u-boot-tools:
Since there is already an ubuntu system preinstalled on the teres,
you can simple download [[https://packages.debian.org/sid/all/debootstrap/download|debootstrap from unstable]]
and install it on ubuntu -
it's only a shell script, so no dependency problems.

Then just follow the debootstrap chapter
in the [[https://www.debian.org/releases/stable/arm64/apds03.html.en|installation manual]].

The default bootscript built into u-boot probably won't find all the files necessary to boot the system.
To fix this we need to write a custom bootscript
and reformat it with mkimage from the package u-boot-tools:
Line 106: Line 150:
Here is a minimal [[attachment:boot.txt|example bootscript]] which assumes that /dtb, /vmlinuz and /initrd.gz are symlinks to the real files. Here is a minimal [[attachment:boot.txt|example bootscript]]
which assumes that /dtb, /vmlinuz and /initrd.gz are symlinks to the real files.
Line 109: Line 154:
There is no support in the official installer yet. However it might be possible to copy the arm64 installer files and a suitable device tree file onto a microSD card with a bootloader from external sources. If you try that approach, please share your experience. There is no support in the official installer yet.
However it might be possible to copy the arm64 installer files and a suitable device tree file onto a microSD card
with a bootloader from external sources.
If you try that approach, please share your experience.
Line 112: Line 160:
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. 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.

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.

Introduction

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 should run fine from the eMMC internal storage, most people 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.

Overall Status

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

Core Components

[ATTACH]

Boot Standard Kernel:

{OK}

Detect mmc:

{OK}

Extra Features

CPU Frequency Scaling

{X}

Hibernation

[?]

Sleep / Suspend

/!\ - maybe wakeup source is missing?

Xorg

{OK}

- OpenGL

[?]

- Resize-and-Rotate(randr)

[?]

Switch to External Screen

{X}

Mouse

- Built-in (Touchpad)

{OK}

Wireless/Wifi

X-(

Keyboard's Hotkeys

[?]

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

Installation

The laptop is sold as a kit for self-assembly. Here we assume that it is completely assembledand confirmed working correctly with the preinstalled system.

The easy way: Using an image

There is a ready image available for directly writing to your microSD card. For links, further information and discussion see the dedicated thread at the olimex forum.

The manual way: Bootstrapping

The debian kernel package (starting with 4.16) and arm64 userspace packages work out of the box, but you will need to get or compile yourself a custom device tree file and bootloader.

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

Starting with 4.17 linux contains a DT file for the teres. Unfortunately pwm support (necessary for the backlight and thus the display) didn't make it in, so you will probably want to either edit the official DT or get one from somewhere else until linux 4.18 is available.

Here is the DT that was used for testing the code submitted to linux including PWM: http://friends.ccbib.org/harald/files/sun50i-a64-teres-i.dtb

arm trusted firmware (bootloader stage 2)

The debian package atf-allwinner has support for the teres since version 1.0.aw-6-1. Thus locally compiling ATF is not necessary anymore. Just use

/usr/lib/atf/sun50iw1p1/bl31.bin

u-boot (bootloader stage 1 & 3)

mainline u-boot still misses a few bits like a pwm driver (to get display backlight up early), so you need to get this fork and then cherry-pick one more commit:

git clone https://github.com/anarsoul/u-boot-pine64.git
cd u-boot-pine64
git remote add icenowy https://github.com/Icenowy/u-boot/
git fetch icenowy
git checkout -b teres origin/pinebook-wip-20180206
git cherry-pick icenowy/teres-i-mainline

You find information about compiling u-boot and writing the binaries to media in board/sunxi/README.sunxi64 - the basic steps are:

BL31=/usr/lib/atf/sun50iw1p1/bl31.bin make teres_i_defconfig
BL31=/usr/lib/atf/sun50iw1p1/bl31.bin make
dd if=spl/sunxi-spl.bin of=/dev/sdx bs=8k seek=1
dd if=u-boot.itb of=/dev/sdx bs=8k seek=5

The final files can also be downloaded:

rootfs

Since there is already an ubuntu system preinstalled on the teres, you can simple download debootstrap from unstable and install it on ubuntu -

  • it's only a shell script, so no dependency problems.

Then just follow the debootstrap chapter in the installation manual.

The default bootscript built into u-boot probably won't find all the files necessary to boot the system. To fix this we need to write a custom bootscript and reformat it with mkimage from the package u-boot-tools:

mkimage -T script -d boot.txt /boot.scr

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

Using debian installer

There is no support in the official installer yet. However it might be possible to copy the arm64 installer files and a suitable device tree file onto a microSD card with a bootloader from external sources. If you try that approach, please share your experience.

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.

Configuration

Display

  • (not covered yet)

Audio

  • (not covered yet)

Power Management

  • (not covered yet)

WiFi

  • (not covered yet)


System Summary

lsusb

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

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         0 Full speed (or root) hub
  iProduct                2 Generic Platform OHCI controller
Bus 001 Device 005: ID 15ba:003c Olimex Ltd. 
  bDeviceClass            0 (Defined at Interface level)
  bDeviceProtocol         0 
  iProduct                2 TERES Keyboard+Touchpad
  (Bus Powered)
Bus 001 Device 003: ID 1908:2311 GEMBIRD 
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  iProduct                2 USB2.0 PC CAMERA
      (Bus Powered)
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  (Bus Powered)
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
  bDeviceClass            9 Hub
  bDeviceProtocol         1 Single TT
  iProduct                1 USB2.0 Hub
  bDeviceClass            9 Hub
  bDeviceProtocol         0 Full speed (or root) hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         0 Full speed (or root) hub
  iProduct                2 EHCI Host Controller

USB Host controllers entries (without OHCI, UHCI, EHCI) are removed too.

Resources

Attachments

Some configuration files and sample outputs.

  • [get | view] (2018-04-07 09:22:19, 0.2 KB) [[attachment:boot.txt]]
 All files | Selected Files: delete move to page copy to page

Credits



CategoryLaptopComputer