This is mostly to remind me if I put this board in a drawer and forget about it for 6 months.
- Username on the newest Ubuntu image is libre, password computer.
- Some other image files are at http://share.loverpi.com/board/libre-computer-project/libre-computer-board-aml-s905x-cc/image/
- “Mirror” at https://drive.google.com/drive/folders/1Vz5p53ibfJbK7pe5nvpEW41jAnT3UXa8?usp=sharing
- Kernel and u-boot source at https://github.com/libre-computer-project
- Fragmented information across forum posts at http://forum.loverpi.com/categories/libre-computer-board-aml-s905x-cc
- Use Linaro toolchains, ignore openlinux.amlogic.com
- https://baylibre.com/kernel-recipes-mainline-aml-s905x-cc-le-potato/ says “mainline” Linux can be built, but I disagree – if it’s not building and booting from source that came from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ it’s not mainline.
- Image building scripts (!) at https://github.com/BayLibre/libretech-image-builder
- defconfig is the default arm64 one in https://github.com/libre-computer-project/libretech-linux/blob/linux-4.14/libretech-cc-master-stable/arch/arm64/configs/defconfig which should really be called s905x_defconfig
- dts is at https://github.com/libre-computer-project/libretech-linux/blob/linux-4.14/libretech-cc-master-stable/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
- u-boot is upstreamed (https://github.com/u-boot/u-boot/tree/master/board/amlogic/libretech-cc), but there’s some dark arts involving aml_encrypt_gxl
- Building a bootable u-boot can only be done on x86_64 machines (see previous GitHub repo, the readme shows how to do it). The binaries needed are at https://github.com/BayLibre/u-boot/tree/libretech-cc/fip
Failure looks like this:
Googling for GXL BL1 will get you a lot of forum posts from TV box owners – the S905X is used a lot in not-so-cheap Android TV devices. What it won’t tell you is that if you see text like the above, you’re in an Amlogic first-stage bootloader and this probably means the SD card isn’t being read correctly. So much for being able to netboot or boot off EMMC. This device seems to be fairly picky about what kinds of SD cards it will boot from.
For some reason I started with http://openlinux.amlogic.com:8000/deploy/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar which is outdated and seems to be missing libz.so.1
The one you probably should start with is http://openlinux.amlogic.com:8000/deploy/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar.jz. If, like me, you’re wondering WTF a .jz file is, it’s Amlogic-ish for bzip2.
This seems to be an upstream Linaro 2017.02 toolchain.
bin/aarch64-linux-gnu-gcc -Q --help=target
will tell you what options are set (importantly, what march and mtune are specified as by default). The answer for this toolchain is armv8-a and nothing, respectively. Newer toolchains can be found at https://releases.linaro.org/components/toolchain/binaries