Adding a shorter and more specific answer for my own convenience :)
To find out the kernel module, issue lspci -vvnn | grep -A 9 Network
(from ubuntu WifiDocs):
~$ lspci -vvnn | grep -A 9 Network
03:00.0 Network controller [0280]: Broadcom Corporation BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Subsystem: Apple Inc. AirPort Extreme [106b:010f]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 256 bytes
Interrupt: pin A routed to IRQ 17
Region 0: Memory at a0500000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: wl
Kernel modules: bcma, wl
From this you can see that wl
is in use.
To reload on demand, do
sudo rmmod wl && sudo modprobe wl
To reload on sleep/hibernate, install pm-utils and add a file with any name in /etc/pm/config.d/
, for instance /etc/pm/config.d/suspend
with the following contents:
SUSPEND_MODULES="wl"
This is explained at Arch pm-utils wiki and pm-action man page
dmesg
to get some debugging info about any errors that may arise. – Nathan McCoy Feb 07 '14 at 11:30readlink
and resolve the target of /sys/class/net/readlink /sys/class/net/eth0/device/driver
resolves to../../../bus/pci/drivers/e1000e
. Thus, the driver is e1000e.ko. You would load viamodprobe e1000e
. You would need to know the interface name for your WiFi device. – Andrew Falanga Nov 27 '17 at 15:27