Code Monkey home page Code Monkey logo

pc-engines-apu's Introduction

PC Engines APU

Repository for the PC Engines APU embedded system board (SBC)

Index

Renamed repository from "voyage-linux" to "pc-engines-apu" as a more appropriate description. It still contains the same Voyage Linux Kernel and the LED driver for plain vanilla Debian.

Debian

Info about WLAN and LED driver kernel modules on vanilla Debian.

If you're using Debian on mSATA you may want to look at this repository:

Debian 11 bullseye

All systems still go :)

Debian 10 buster

The WLAN and LED kernel modules still work

Debian 9 stretch update

"Plain" Debian 9 (dist upgrade) seems to run just fine on the PC Engines APU. WLAN works (WLE200NX/Qualcomm Atheros AR5008 using included ath9k driver). The Vanilla kernel 4.9.0 is ofcourse missing stuff like LED driver module (/sys/class/leds). I've managed to built the LED kernel module using DKMS. Unless there are huge ABI changes between kernel versions these should keep working for now.

Debian 8 jessie

The easiest is "borrowing" matching kernel modules from Voyage Linux.

PC Engines APU LEDs

Module:       leds_apu, leds-apu.ko  
Description:  PCEngines apu LED driver  
Author:       Christian Herzog  

Installs leds-apu module and adds it to /etc/modules so it gets loaded at boot time. It also sets these triggers for disk and cpu activity in /etc/rc.local.

echo disk-activity > /sys/class/leds/apu\:2/trigger
echo cpu0 > /sys/class/leds/apu\:3/trigger

You can change them to whatever you like by editing /etc/rc.local

DKMS will try to recompile the module if the kernel version changes. If you don't know what to download you probably want this package.

Quick install:

$ wget https://github.com/mkorthof/voyage-linux/raw/master/leds-apu-dkms_0.1_amd64.deb && sha512sum leds-apu-dkms_0.1_amd64.deb | \
grep aec8d1cd0b7967ac9146fe11811c6ca0a67692e94a61f395901504e88c311b2cec0cd8f3d52432a01c6da35207944d0df1dca35a0e8c1eb26bc65b223739cd14 && \
sudo dpkg -i leds-apu-dkms_0.1_amd64.deb

(copy/paste as one line)

Installs just the binary module into /lib/modules on 4.9.0-5 kernels, nothing else. This package has no dependencies. After installing it (using dpkg -i) you have to manually load the module (modprobe leds-apu) and set trigger(s).

Tarball leds-apu-dkms_0.1.tar.gz contains module src, dkms.conf and the post install/remove scripts that modify /etc/modules and /etc/rc.local.

Triggers

After the module is loaded /sys/class/leds/apu:[1-3] will be available (apu1 is the powerled). Examples:

echo 1 > /sys/class/leds/apu\:2/brightness
echo disk-activity > /sys/class/leds/apu\:2/trigger`

List all options: cat /sys/class/leds/apu\:1/trigger

Voyage Linux

Voyage Linux is/was a Debian derived distribution that is best run on a x86 embedded platforms such as PC Engines ALIX/WRAP, Soekris 45xx/48xx/65xx and Atom-based boards. Link: http://linux.voyage.hk

Mirror

It looks like the main website is gone, which is confirmed by https://wiki.debian.org/Derivatives/Census/VoyageLinux

Webpage snapshots from archive.org:

http://linux.voyage.hk | linux.voyage.hk/mirror

There was only working mirror left, added another:

Also here's the files I had downloaded locally, on Git LFS:

voyage-0.10.0_amd64.iso | voyage-0.11.0.iso | voyage-sdk-0.11.0.iso | voyage-MD5SUM | voyage-sdk-MD5SUM

Updated kernel for v0.10.0

(voyage-0.10.0 is based on debian 8 jessie)

The main reason to do this was to get a patched kernel for CVE-2016-5195 (aka Dirty COW: https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs).

I do not run full Voyage Linux myself but use standard Debian instead (on a PC Engines APU.1D4). Howver, I did use the Voyage kernel and modules since that was the easiest and quickest way to get the WLAN ath9 driver working.

Downloads

Get updated deb kernel packages:

Installation

In case the DIY steps below are too much trouble for you (and you trust me... ;)

...just execute the oneliner below to install the updated kernel:

$ wget https://github.com/mkorthof/voyage-linux/raw/master/linux-image-3.16.7-ckt9-voyage_16.0-2_amd64.deb && sha512sum linux-image-3.16.7-ckt9-voyage_16.0-2_amd64.deb | \
grep 48dc119f47814ad53245b9d76fac8f38d8c7e26142d72f533a1773e0b019a507131230519af9873b06090100a92443ec44a4114b0d6578333ec9daa9f19d9b52 && \
sudo bash -c "mv /lib/modules/3.16.7-ckt9-voyage /lib/modules/3.16.7-ckt9-voyage.bak && dpkg -i linux-image-3.16.7-ckt9-voyage_16.0-2_amd64.deb"

(copy/paste as one line)

Changelog

CHANGELOG-3.16.7-ckt9-voyage.md

Tests

cowroot.c says "not vulnerable" which is the same result as 3.16.36-1+deb8u2 and WLAN still works;)

Rolling it yourself

DIY-voyage-linux-kernel.md

Tiny Core Linux

TinyCore-9.0-sc.img.gz

Ready made raw dd image with latest TinyCore version and changes for PCE APU applied (serial console). Write to USB using dd if=TinyCore-9.0-sc.img of=YOUR-USB-DEV where YOUR-USB-DEV is of course the correct device for your USB drive, e.g. /dev/sdd.

Oneliner to install:

$ wget https://github.com/mkorthof/pc-engines-apu/raw/master/TinyCore-9.0_sc.img.gz && sha512sum TinyCore-9.0-sc.img | \
grep 0e37edc6d2c5df52db893ce7c787e9fde926769f340472fd7f399f51c311fb530a71ec4f758b03f1112ae561a14eae3a662c9b2076ce34d09acd1afb225e9443 && \
echo OK, now run: sudo dd if=TinyBoot-9.0-sc.img of=YOUR-USB-DEV

(copy/paste as one line)

Windows USB installer:

Vanilla Windows USB installer (newer tinycore versions):

Enable Serial Console

Might be a good idea set this up first, before messing with kernel.

Get serial console working in Debian

menu entries in grub.cfg need: linux ... console=tty0 console=ttyS0,115200

In /etc/default/grub change:

GRUB_CMDLINE_LINUX="video=off elevator=deadline console=tty0 console=ttyS0,115200"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --stop=1"

Run: update-grub

In /etc/inittab add at the bottom:

0:2345:respawn:/sbin/agetty -8 ttyS0 115200 vt100

Get serial console working in TinyCore

syslinux.cfg

At beginning of file add:

SERIAL 0 115200
CONSOLE 0

add to APPEND entries: console=ttyS0,115200n8

core.gz

Extract: zcat core.gz | sudo cpio -i -H newc -d

In etc/inittab add: ttyS0::respawn:/sbin/getty -nl /sbin/autologin 115200 ttyS0

Compress: find | cpio -o -H newc | gzip -2 > core.gz

More info:

pc-engines-apu's People

Contributors

mkorthof avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

pc-engines-apu's Issues

APU 1d4

Hello,

Installing debian 9 on APU 1d4 failed when he tries to look for network interfaces..

Any ideas ?

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.