Source: broadcom-sta Version: cfg80211 functionality updates, cleanups, fixes Severity: normal Tags: patch X-Debbugs-Cc: die...@gnome.org
Hi, I've been working on a few improvements to this driver, trying (hopelessly) to fix the disconnect issues on my particular card + router combination. Although my original goal has failed miserably, I was able to figure out a couple of other fixes for common issues with this card. I have pushed a branch to salsa, which includes the following fixes: * Make power management commands actually work (the driver ignores turning PM off) * Correctly read the value of TX power (the notorious "200dBm" bug) * Correctly refuse MAC address changing (fixes network-manager disconnects because of "random / custom mac address" * Cleanup a few compiler warnings, and cfg80211 API usage The branch is here: https://salsa.debian.org/diegoe-guest/broadcom-sta/-/commits/diegoe_debian While working on the above I also figured that I might as well try to create a proof of concept "new upstream" without all the cruft from the 10 years of kernel versions conditionals: https://salsa.debian.org/diegoe-guest/broadcom-sta/-/commits/frankenwl My "frankenwl" branch is functionally the same as the above "diegoe_debian" branch, but it certainly makes it less convoluted to try and find problems in the code going forward. That said, I wasn't sure what would be the best way to proceed, or if it was a smart thing to do anyway. I guess this package is on "life support" on most distros, so I doubt there would be a objections on creating a shared new upstream (but I'm not familiar with the packaging of this driver in Debian, or other distros). I also tried, naively, to contact cypress/broadcom to inquiry about a newer firmware blob dump, or just a new code dump. Of course, no response. I think it's worth highlighting that the kernel bcmf80211 driver is very similar to the broadcom-sta code, which lead me to believe that it can work with the cards supported only by broadcom-sta, we just need the firmware blob and plug the loose ends. Anyway, this is probably never going to happen, unless someone figures out how to extract the (say, in my case) BCM4360 software-side firmware blob from the linux or mac or windows driver. Anyway, I wanted to share this work here so it's considered for inclusion for the upcoming Debian stable. At the very least this solves a few nitpicks (power settings, tx set/get) that degrade the user experience and a serious issue (mac address failures) that usually gets new users stuck and confused (random NM disconnections). I'm also aware that cards supported by this driver are "old" but most computers trapped in the broadcom-sta driver are perfectly functional today and will be for a few more years. In my particular case I'm running a macbookpro11,1 (2013) which works flawlessly except for the wifi! (Hah!) -- And I understand most other macbookpro models from around 2013 share this or similar Broadcom cards that use this driver. All those machines should be perfectly functional with Debian right now, and for a few more years. Hope to hear your feedback, I'm glad to cleanup this branch as you see fit to get it merged into the package. Diego -- System Information: Debian Release: bullseye/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 5.7.0-3-amd64 (SMP w/4 CPU threads) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled