Close

Under construction

A project log for RPi WiFi

Fast RPi WiFi without USB

ajlittajlitt 07/09/2024 at 15:330 Comments

tl;dr: GitHub driver broken in latest Pi OS, fix coming someday

Hey. It's been a minute. Or 7 years since the last update.

In that time we've seen 2 new Pi SoC generations, an update to the Zero SoC, a mountain of ESP32 iterations, and even official device support from Espressif for ESP32 variants. Meanwhile I've been updating the driver to deal with kernel changes to the best of my ability. Usually it's a simple change to keep in sync with an updated kernel API and takes no more than an hour of my time. I even have an old Pi2 for testing and cutting releases of the Debian package at the ready for when one of these charges breaks the driver.

Usually I find out about these problems with a notification that someone submitted an issue to the edp8089 project on GitHub. Early on I might even get a PR with a fix ready to go. However that hasn't happened in a while, and for the last few years I only find out when I fail to upgrade one of the Pi Zeros with the ESP8266 I still have in use.

Last weekend I ran into one of those failures, and spent a few hours root causing the issue. However this time it turned out to be three issues. The first issue is a segfault due to an update to the function table for mac80211. This was an easy fix.

The other two are hairy. The kernel API for GPIO control the driver uses to reset the ESP to run the loaded firmware has been removed. The current API, gpiod, will require that we use a devicetree overlay to pass the platform GPIO to the driver. This is the Right Way to handle platform differences, but changes how users will deal with the driver. I'll make sure the Pi .deb installs a corresponding.dtbo, but those using different platforms will have to cook up their own. For now, I have a hack in place using the deprecated-but-not-eliminated libgpio driver that is very Pi specific and very much the Wrong Way. Sorry to all the non-Pi users, you're on your own for a while.

The third issue is that DKMS no longer supports making Debian packages. I'll have to create my own package config, which is not trivial, but certainly someone else has a good example I can start from.

Please be patient. I still plan to support this project for as long as I can. If you're starting a new project, consider using the Espressif ESP32 driver and an ESP32-C3 instead as I trust them to do a better job maintaining the driver than me, and the newer chips will have a longer product lifespan than the ESP8266.

Discussions