1
  *-network               
       description: Wireless interface
       product: Intel Corporation
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlp2s0
       version: 99
       serial: e0:94:67:f7:76:73
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=iwlwifi driverversion=4.4.0-93-generic firmware=17.352738.0 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn
       resources: irq:330 memory:d2200000-d2201fff

Ubuntu 16.04 was showing all wifi networks available. Suddenly, none of the networks are showing up. I did sudo network-manager service restart and occasionally it works.

Can someone help me with a permanent fix? Thanks

9
  • What does "occasionally it works" mean?
    – Pilot6
    Aug 30, 2017 at 12:17
  • Can you give us details of your machine? Aug 30, 2017 at 12:17
  • @Pilot6 By occasionally works, The wifi networks show up after using the service restart command like about 10 times, 20 times, etc Aug 30, 2017 at 12:58
  • @WinEunuuchs2Unix Can you let me know the kind of details expected. I am kind of new here. Any command's output? Aug 30, 2017 at 12:59
  • @WinEunuuchs2Unix When I use lshw -C network I get the above as mentioned now in the question Aug 30, 2017 at 13:03

1 Answer 1

1

Reset WiFi after long suspend period

A few months ago some of us discovered the network card (Ethernet) and wifi card would not reconnect if the laptop was suspended for a long period (+2 hours IIRC). For the 8 months prior to that, suspending and resuming worked perfectly.

This script is written for iwlwifi` which is the common Intel driver name. If your's is different change that name below:

#!/bin/sh

# NAME: /lib/systemd/system-sleep/iwlwifi-reset
# DESC: Resets Intel WiFi which can be flakey after a long suspend.
# DATE: Apr 1, 2017. Modified August 30, 2017.

MYNAME=$0

exit

restart_wifi() {
    /usr/bin/logger $MYNAME 'restart_wifi BEGIN'
    /sbin/modprobe -v -r iwldvm # This removes iwlwifi too
    /sbin/modprobe -v iwlwifi   # This starts iwldvm too
#    systemctl restart NetworkManager.service
    /usr/bin/logger 'systemctl restart NetworkManager.service (SUPPRESSED)'
    /usr/bin/logger $MYNAME 'restart_wifi END'
}

/usr/bin/logger $MYNAME 'case=[' ${1}' ]'
case "${1}/${2}" in
    hibernate|suspend|pre*)
      ;;
    resume|thaw|post*)
      restart_wifi;;
esac

NOTE: Sometimes simply resetting network manager is all that is needed. In that case un-comment the line above by removing #. Then comment out the two lines above it by putting # at the beginning of those two lines.

You'll need to create this script, called iwlwifi-reset, with sudo powers and save it into the directory /lib/systemd/system-sleep. Then mark it executable using:

chmod a+x /lib/systemd/system-sleep/iwlwifi-reset

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .