The Overdrive 1000 is a mini-ITX 64-bit ARM dev kit with an AMD Opteron A1120, ECC RAM, USB serial console in lieu of a GPU, and a respectable mount of I/O abilities. You'd think that a system like that would at least come with a decent OS preinstalled so you could get to work, or stick it in a corner and use it as a silent home server.
You'd be wrong.
OpenSUSE Leap 42, whatever its merits might be on x86, is garbage on 64-bit ARM. It managed to be both power hungry by running the CPU at the full 1700MHz all the time, and perceptibly laggy at doing basic administrative tasks. I suspect part of this is due to the poor state of the repository infrastructure, and another part is due to using BtrFS for a root filesystem. The system fans puffed and whined like a fat guy on a treadmill. There's also a firmware bug where it throws some strange exception in hex when coming back up after a warm boot so you have to toggle it every time, but I can't blame Suse for that, and it might be a problem with my unit.
After a few weeks of wrestling with the thing I decided to install Debian 9.3 arm64 and at least get a better OS on there. The arm64 install process is refreshingly simple and generic like x86 - burn an iso to USB, boot from it, and go.
Unfortunately, there was a catch. The installation media couldn't find itself. As you can see from this Linux kernel patch, the USB 3 controller, into which I plugged the install media, is flaky and doesn't work right. The 4.9 kernel in the Debian 9.3 installer predated this patch. This led to a frustrating game of kernel module and hardware hokey pokey. The eureka moment was realizing that the kernel was sending the controller a USB_RESET that left the drive undetected.
The installation procedure follows:
-
Connect to the USB serial console of the device using your preferred serial terminal emulator.
-
Write the iso to a USB 3.0 thumb drive. No special magic needed, just dd, cp, or cat followed by sync.
-
Power the device on.
-
Press Esc. in your terminal window to get to a UEFI boot menu very similar to a PC's.
-
Select the thumb drive's name and hit enter.
-
At the GRUB menu, select Install, and wait for it to boot into the Debian Installer environment. Since this is a serial console it presents as a GNU Screen process rather than separate VGA-console sessions.
-
Hit Ctrl-A-2 to switch to a shell prompt, and run the following commands:
modprobe -r xhci_pci
modprobe xhci_pci
-
Unplug and re-plug the USB thumb drive from the same port you booted from.
-
Check
dmesg | tail
output to confirm the device is recognized and presents a node in /dev.
After that, hit Ctrl-A-1 to switch back to the installer screen and follow along.
Once reinstalled with Debian and a saner root filesystem (XFS), the Overdrive 1000 has been a delight to use. The newer 4.9 kernel handles the hardware better, with no more spurious USB_RESET
s issued, faster boot, and the CPU clocked all the way down to 500MHz at idle. Software that I'd spent days searching for, compiling, and configuring under openSUSE was merely an apt-get
away. Now to find a USB DAC and some speakers so I can turn it into an mpd jukebox...