How to configure wireless wake-on-lan for Linux WiFi card

last updated in Categories , , , , ,

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 backup 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 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 need to send ‘magic packets’ to wake-on-lan enabled ethernet adapters and motherboards, in order 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
iw [options] command

List all wireless devices and their capabilities

Type the following command:
$ iw list
$ iw list | more
$ iw dev

Sample outputs:

	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 dBm

Please 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}

  1. {phyname} – Use iw dev to get phy name.
  2. {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
$ sudo 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 packet

Test 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 command
$ ping your-laptop-ip
OR send magic packet using wakeonlan command :
$ wakeonlan laptop-mac-address-here
$ etherwake MAC-Address-Here

How do I disable WoWLAN?

The syntax is:
$ sudo phy {phyname} wowlan disable
$ 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 as follows:

/sbin/iw phy0 wowlan enable magic-packet disconnect
exit 0

Save 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 by systemd-rc-local-generator if /etc/rc.local is executable. For example, to view this file, run:
sudo systemctl edit --full rc-local
Configure wireless wake-on-lan for Linux WiFi card using systemd


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
$ iw --help


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Start the discussion at

Historical Comment Archive

2 comment

  1. There is a typo

    Open the terminal app and type the following command to *tind* out wowlan status:
    Do you mean `find`?

    Still, have a question? Get help on our forum!