First, you'll need to accurately identify the WiFi chip used.
Most built-in adapters on motherboards generally connect to the PCIe bus on the WiFi side, and to the USB bus on the Bluetooth side. So, you should run lspci -nn
and find the line referring to your WiFi adapter: the hex numbers in square brackets like [xxxx:yyyy]
can be very useful in identifying the WiFi chip, if the name displayed by the lspci
command is not descriptive enough.
The first part if the [xxxx:yyyy]
is a vendor ID, and the second is a product ID assigned by that particular vendor. You can use the numbers to look up the device in the PCI ID Repository: this might be helpful if the distribution's list of PCI IDs and corresponding human-readable names is not up to date enough to fully identify the WiFI adapter chip.
Once you know the name of the WiFi chip vendor, you can go to https://wireless.wiki.kernel.org/en/users/drivers and find out about any relevant drivers. By looking at vendor and bus type, you can usually limit it to just a few possible drivers, then it's time to read the information pages of those drivers and see if your WiFi chip is supported by the driver.
If you find a driver that supports your WiFi chip, the next question is "is that driver module already present on your system?" You can use the lsmod
command to list all the currently-loaded kernel modules, and sudo modinfo <name-of-module>
to see if a module exists but is not getting automatically loaded for some reason. You can also run sudo dmesg -H
to view the kernel message buffer: if something has gone wrong in hardware detection, you might see more information about the problem in there.
The problem might be that your WiFi chip needs firmware, which is not allowed to be redistributed by anyone other than the chip vendor. In that case, the driver information page at wireless.wiki.kernel.org will have information on how to download and extract the necessary firmware from a package downloadable from the vendor's website, and how to place the extracted firmware file to proper location so that the driver will find it (normally somewhere under /lib/firmware
).
I can’t figure out what is causing it or how to fix it. Booting into windows and back to pop sorted it out but that was just during usage not a dedicated effort to reset it.
Any ideas?
– vampiire Jul 16 '21 at 00:32lspci -nn
and/orlsusb
listing line(s) at least. The original poster of this question seems to have abandoned it. – telcoM Aug 04 '21 at 10:05