0

sudo service network-manager restart duplicates this problem, as well as trying to select another or the same network again.

Wi-Fi only works after rebooting. The wired connection works fine. I am using Ubuntu 18.04.2 LTS.

The output of sudo lshw -C network when Wi-Fi is working is:

  *-network
       description: Wireless interface
       product: Realtek Semiconductor Co., Ltd.
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlo1
       version: 00
       serial: 9c:30:5b:d2:fa:8b
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=rtl8723de ip=192.168.0.87 latency=0 multicast=yes wireless=IEEE 802.11bgn
       resources: irq:129 ioport:3000(size=256) memory:b1000000-b100ffff

And when Wi-Fi is not working:

  *-network
       description: Wireless interface
       product: Realtek Semiconductor Co., Ltd.
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlo1
       version: 00
       serial: 9c:30:5b:d2:fa:8b
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=rtl8723de latency=0 multicast=yes wireless=unassociated
       resources: irq:129 ioport:3000(size=256) memory:b1000000-b100ffff

I tried without success:

  • sudo systemctl restart network-manager.service

  • Reloading the rtl8723de driver by running:

    sudo modprobe -r rtl8723de && sudo modprobe rtl8723de
    
0

It worked for me in Debian 10, but I had to eliminate the double [[ ]] symbols in favor of [ ]. I leave it here in case someone has the same issue. I also had to add " in certain places.

#!/bin/bash

PROGNAME=$(basename "$0")
state=$1
action=$2

function log {
    logger -i -t "$PROGNAME" "$*"
}

log "Running $action $state"

if [ "${1}" == "post" ]; then
    rmmod 8723de \
    && log "Removed rtl8723de" \
    && modprobe rtl8723de \
    && log "Inserted rtl8723de"
fi
0

I found out that sudo modprobe -r rtl8723de did not really unload the driver. This can be checked by lsmod or lsmod | grep 8723de. If the driver is loaded, it is listed in the output, if not, the driver is unloaded.

To unload, I had to use the command rmmod and for some reason to unload the driver I had to call it by 8723de.

So I did:

sudo rmmod 8723de

And then reloaded the driver:

sudo modprobe rtl8723de

The Internet connection started working then.

I automated this adapting the accepted solution from this site:

Type sudo nano /lib/systemd/system-sleep/rtl8723de-refresh. Insert:

#!/bin/bash

PROGNAME=$(basename "$0")
state=$1
action=$2

function log {
    logger -i -t "$PROGNAME" "$*"
}

log "Running $action $state"

if [[ $state == post ]]; then
    rmmod 8723de \
    && log "Removed rtl8723de" \
    && modprobe rtl8723de \
    && log "Inserted rtl8723de"
fi

Save and exit with Strg+X and C.

Make executable with:

chmod +x /lib/systemd/system-sleep/rtl8723de-refresh

As a remark, I got the driver from this site: https://github.com/smlinux/rtl8723de.git

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.