I know this question is 10 years old, but there are still issues when trying to use this dongle.
The device is a Linksys AE1200, and USB databases list it as 13b1:0039
– as you can see here.
The problem is that, when you reboot the PC, 13b1:0039
gets recognized as 13b1:0bdc
, which prevents it from loading the brcmfmac
kernel module. Because 0bdc
is not a real product.
A tedious workaround was to physically unplug and replug it, since it gets identified as 0039
the second time (you can confirm this by running lsusb
before and after replugging).
After lots of troubleshooting, I found an automated way of doing this, without touching anything. The answer is based off of shodanex's reply to a similar issue.
It involves explicitly telling the drivers to also be used with the device's incorrect ID.
Steps to fix
Press Ctrl+Alt+T, or open your favorite terminal.
All the following commands must be run as sudo
, but I got "permission denied" when running it as-is. So, run sudo -i
before anything. (if you get a prompt that says #
instead of the regular $
, you're all set)
Because brcmfmac
might not even be loaded, you may need to load it yourself. So type:
modprobe brcmfmac
Now for the actual fix, let's tell brcmfmac
to also use this wrong ID:
echo 13b1 0bdc > /sys/bus/usb/drivers/brcmfmac/new_id
This will make sure the device uses the brcmfmac
module, even if its ID is incorrect. After a few seconds, the dongle should be recognized, allowing you to configure a WiFi network!
You can do that through the GUI as usual or run nmtui
on another terminal if you have it installed.
If everything went well, you should have a working internet connection.
Now that we know it works, we can automate this by running a cronjob every time the system boots.
Run:
crontab -e
As a superuser (which you should be, if you followed the steps), and you'll be shown an editor with an empty file. Paste the commands that fixed the issue in there (on different lines) and add @reboot
at the start of both, like so:
@reboot modprobe brcmfmac
@reboot echo 13b1 0bdc > /sys/bus/usb/drivers/brcmfmac/new_id
This tells the system to run those commands (as sudo
) every time you boot it. In case your distro doesn't support it, you can search for other methods.
More info
I tried a lot of things before coming up with this, and was about to give up on the issue. Luckily, someone else seems to have reported it as an official bug at Debian.
Of course, it's not a bug from Debian, as other distros have the same issue. It should be the kernel, but don't know if it's been reported upstream yet.
brcmfmac
driver. However, that driver is somewhat new, you may need a more recent kernel that Debian provides, especially if you are using Debian Stable.