Software Engineering Stories: The Missing Driver

Once upon a time I updated the Armbian OS on my computer using apt update && apt upgrade as I regularly do. The next time I booted the computer, Wi-Fi that worked fine for months stopped working.

The Wi-Fi adapter was visible via lsusb with full identification:

Bus 005 Device 002: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter

However, ifconfig listed no wireless cards available, and so did ip a and iw list.

I wondered what the cause of the problem could be.

After days of research I found that the driver failed to build under the updated system and thus has been disabled in the new release of Armbian.

Igor Pecovnik, the author of the commit that fixed Armbian build by disabling the driver, said on the forum [1]:

Driver doesn't build on 5.10.y so it was disabled.

It turned out it is not easy to deal with a problem like this one. The commit that Igor submitted to with Wi-Fi related updates had 1 addition and 2058 deletions [2]. As Igor explained:

Someone has to enable it back, build kernel(s), fix possible problems and submit a patch. We are full for months ahead.

Igor asked the would-be contributors to make sure to test their changes in accordance with the contributing guidelines at https://docs.armbian.com/Process_Contribute/.

I do not know why the driver build failed. I can only imagine this is one of the possible highly unpleasant surprises of updating your system.

Cases like this one help me understand administrators who have not updated their machines for years in fear from breaking something.

As a coder, I found in this issue a lesson about the importance of minimizing the dependencies between our software and the operating system. Had there been no dependency, the driver would have compiled just fine under the new OS release. A dependency that is easy to manage (update) would have probably made it through the update as well.

For users of RTL8188EUS on Armbian, it looks like the only quick path is to connect via Ethernet instead, for example via an external Wi-Fi-to-Ethernet adapter.


  1. https://forum.armbian.com/topic/16671-orange-pi-pc-new-kernel-current-buster-20116-wifi-dongle-problems/ ↩︎

  2. https://github.com/armbian/build/commit/c7cc1825cd9f69bebfdbe230543374da75cef566 ↩︎