Installing Debian on the Softiron Overdrive 1000

Posted on Thu 18 January 2018 in misc

derp

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:

  1. Connect to the USB serial console of the device using your preferred serial terminal emulator.

  2. Write the iso to a USB 3.0 thumb drive. No special magic needed, just dd, cp, or cat followed by sync.

  3. Power the device on.

  4. Press Esc. in your terminal window to get to a UEFI boot menu very similar to a PC's.

  5. Select the thumb drive's name and hit enter.

  6. 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.

  7. Hit Ctrl-A-2 to switch to a shell prompt, and run the following commands:

modprobe -r xhci_pci
modprobe xhci_pci
  1. Unplug and re-plug the USB thumb drive from the same port you booted from.

  2. 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_RESETs 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...