Shuttle PN15 Wireless not installed/detected on Ubuntu

I have an old Shuttle PC (SB75G2… I think) which I seldom use, and decided to recycle it to drive a small CNC mill that I’m building. The first step was to wipe off Windows XP and install LinuxCNC (which is built on Ubuntu). The PC runs great but, unfortunately, neither the built in Ethernet or Wireless card worked out of the box.

This really surprised me, as  network and driver support in Ubuntu seems to have improved a lot since the early days, but there are clearly still some gaps in the range of supported devices.

The wireless module is a PN15, and a quick search didn’t turn up many hits, but eventually I found a solution, so thought I’d write it up here in case it helps someone else in the same position.

The wireless module is connected internally via USB, so first I tried lsusb and got the following back:

$ lsusb
$ Bus 001 Device 002: ID 124a:4023 AirVast

This led me to a forum post which said it was supported by the p54usb module built into the kernel, but it needed proprietary firmware downloading. If you have a network connection of some kind, you can do this apparently (haven’t tried yet):

$ sudo -i
# apt-get install linux-firmware-nonfree
# modprobe -r p54usb
# modprobe p54usb

In my case, I didn’t have any network at all, but instead found these instructions pointing to a download link to a firmware file:  https://wiki.debian.org/prism54

Mine turned out to be a first generation device with the ISL3886, so I downloaded the firmware as follows:

$ wget https://daemonizer.de/prism54/prism54-fw/fw-usb/2.13.1.0.lm86.arm --no-check-certificate

Then I copied that file over to the Shuttle with a USB stick, and moved it into the firmware folder, and reinserted the module to load the firmware:

$ sudo -i
# mv 2.13.1.0.lm86.arm /lib/firmware/isl3886usb
# modprobe -r p54usb
# modprobe p54usb

Having done this, the wireless came up and I was finally able to connect. As I write this, the PC is busily updating itself…