How to configure wireless wake-on-lan for Linux WiFi card – nixCraft
I have Network Attached Storage (NAS) server that backups all my devices. However, I am having a hard time with my Linux-powered laptop. I cannot back up my laptop/computer when it is in suspended or sleep mode. How do I configure my wifi on a laptop to accept a wireless wol when using an Intel-based wifi card? How can I configure wireless wake-on-lan on Linux?
Wake-on-LAN (WOL) is an Ethernet networking standard that allows a server to be turned on by a network message. You must send ‘magic packets to wake-on-lan enabled ethernet adapters and motherboards to switch on the called systems.
Wake on Wireless (WoWLAN or WoW) is a feature to allow the Linux system to go into a low-power state while the wireless NIC remains active and stay connected to an AP. This quick tutorial shows how to enable WoWLAN or WoW (wireless wake-on-lan) mode with a wifi card installed in a Linux based laptop or desktop computer.Please note that not all WiFi cards or Linux drivers support the WoWLAN feature.
Syntax to configure wireless wake-on-lan under Linux
You need to use the iw command to see or manipulate wireless devices and their configuration on a Linux based system. The syntax is:
iw command<br /> iw [options] command
List all wireless devices and their capabilities
Type the following command:
iw list<br />
iw list | more<br />
iw dev
Sample outputs:phy#0 Interface wlp3s0 ifindex 3 wdev 0x1 addr 6c:88:14:ff:36:d0 type managed channel 149 (5745 MHz), width: 40 MHz, center1: 5755 MHz txpower 15.00 dBmPlease note down phy0.
Find out the current status of your wowlan
Open the terminal app and type the following command to find out wowlan status:
iw phy0 wowlan show
Sample outputs:WoWLAN is disabled
How to enable wowlan
The syntax is:
sudo iw phy {phyname} wowlan enable {option}
Where,
- {phyname} – Use iw dev to get phy name.
- {option} – Can be any, disconnect, magic-packet and so on.
For example, I am going to enable wowlan for phy0:
sudo iw phy0 wowlan enable any
ORsudo iw phy0 wowlan enable magic-packet disconnect
Verify it:
iw phy0 wowlan show
Sample outputs:WoWLAN is enabled: * wake up on disconnect * wake up on magic packetTest it
Put your laptop in suspend or sleep mode and send ping request or magic packet from your nas server:
sudo sh -c 'echo mem > /sys/power/state'
Send ping request from your nas server using the ping commandping your-laptop-ip
OR send magic packet using wakeonlan command :wakeonlan laptop-mac-address-here<br />
etherwake MAC-Address-Here
How do I disable WoWLAN?
The syntax is:
sudo phy {phyname} wowlan disable<br />
sudo phy0 wowlan disable
How to enable iw settings after reboot?
Edit or update or create a file named /etc/rc.local as follows:
sudo vim /etc/rc.local
Update it as follows:#!/bin/bash /sbin/iw phy0 wowlan enable magic-packet disconnect exit 0Save and close the file in vim. Run the chmod command to set correct permissions:
sudo chmod +x /etc/rc.local
Under systemd rc-local will gets pulled automatically into multi-user.target by systemd-rc-local-generator if /etc/rc.local is executable. For example, to view this file, run:
sudo systemctl edit --full rc-local
See how to enable rc.local shell script on systemd while booting Linux system for more info.Conclusion
You learned how to configure wireless (Wi-Fi) for wake-on-lan under Linux operaring system using the iw command. For more info read the iw command man page:
man iw<br />
iw --help