Coffee Space


Listen:

Pinetab WiFi

Preview Image

This is just a short article to document how I got my Pinetab working with Danct12’s Pine64-Arch bare bones kernel.

Background

The Pinetab is a really low-end device, sporting an ARM 64 quad core CPU with just 2GB of RAM. As such, it doesn’t have many resources to spare at all, hence running on on an Arch Linux kernel and a lightweight X window manager.

It has WiFi onboard, but for some reason this got burnt out and there are zero replacement motherboards available. As a result, I am leveraging the single USB 1.0 port to plug-in WiFi.

I previously used a cheap knock-off rtl8192 adapter, but this has been buggy as hell. It was using 100% of a single core before, and recently it stopped working altogether.

The Pinetab has spent some time in cold storage, but recently I decided I would need it for some in-person work. It’s lightweight and more than capable of displaying a PDF file, maybe editing some light files. It would be nice to also be able to do a video call, but I suspect I really ask too much from it.

Ethernet

I do have a USB ethernet connector which works quite well, but as I recently moved, I don’t have an ethernet cable to hand. My laptop has also not been very good at sharing its ethernet connection for quite some time, as part of a long line of very serious deterioration.

Mediatek mt7610u

I happened to have a USB WiFi dongle laying around, which is a mt7610u. The driver is not in the Arch Linux kernel I have, but what can you do?

I initially copied the WiFi driver from Mediatek onto a USB drive, copied it to the Pinetab and run sudo make (yes sudo is apparently required for this build). This did not work. It was build for Linux kernel 2, and I’m running 5. A lot changed between 2 and 3 apparently.

Next I found a Debian bug report that seems to indicate that you can just straight up copy the device firmware from the Linux kernel firmware repository and put it in the correct directory.

It tried to clone the repo but lost patience pretty quickly, it is big. Instead I found you could just copy the binary file straight from the repository itself.

I then copied this onto a USB drive as I did before, mounted it on the Pinetab and ran:

0001 sudo mount /dev/sda /mnt/usb
0002 mkdir /lib/firmware/mediatek/
0003 cp /mnt/usb/mt7610u.bin /lib/firmware/mediatek/

Then I simply unmounted the USB drive, plugged in the Wifi adapter and… Wullah!

I now have a sneaking suspicion that almost all Linux firmware drivers could potentially also be loaded in this way. Note that you wouldn’t get updates, but you could easily write a script to do such a thing.

Corruption

There is still some bug in the Arch Linux kernel, so occasionally it completely freezes. If you are really unlucky, this happens whilst doing an update, and you end up with no kernel.

This happened to me, and I got rid of my SD card backup a year ago… Fuck. Time to do a reinstall and follow these steps again… At least it will be good to get a clean install…