web-dev-qa-db-ja.com

(まだ別の)Ubuntu 16.04で一時停止した後のWifiの問題

サスペンド後、wifiに問題があるとここに投稿しています。

最近、新しいpcie wifiカード(TP-LINK TL-WN881N)を購入しました。残念ながら、コンピューターをスリープ状態にすると、Wi-Fiが目覚めた後に適切に機能しなくなるため、事態は悪化するようです。

直面して、問題は奇妙です。 Wi-Fiネットワークに接続し、nm-appletで接続が表示され、ifconfigで接続は大丈夫だと思われますが、ルートは問題ありませんが、ドライバーはバグがあるモードになり、ゲートウェイまたはその他の場所。

ここ 16.04アップグレード後のサスペンド後にWifiが機能しない またはここ buntu 14.04で再開後にワイヤレスネットワークが機能しない など、さまざまな修正を試しましたが、いずれも機能しませんでした。最も奇妙なことは、ネットワークマネージャーサービスを手動で再起動しようとしても、問題は解決せず、Wi-Fiネットワークのリストに問題が発生することです。これまでのところ、再起動が問題を解決する唯一の方法のようです。

ここに私のカードとドライバーに関する詳細があります:

$Sudo lshw -class network
  *-network               
       description: Wireless interface
       product: RTL8192EE PCIe Wireless Network Adapter
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlp2s0
       version: 00
       serial: 30:b4:9e:72:08:78
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=rtl8192ee driverversion=4.10.0-32-generic firmware=N/A ip=192.168.2.2 latency=0 link=yes multicast=yes wireless=IEEE 802.11
       resources: irq:127 ioport:d000(size=256) memory:f7100000-f7103fff

ありがとう!

編集:

解決しました! @ WinEunuuchs2Unixに感謝します。ここで説明した方法と同様の方法を適用することで、 WiFi信号アイコンがサスペンド後にイーサネットアイコンに変わります(上向き矢印)? 、問題を解決できたようです。

条件はまったく同じではなく、ソリューションを適応させる必要がありました。基本的に、ネットワークマネージャーを再起動しても問題は解決しませんが、カーネルモジュールの再読み込みをアンロードできました!スクリプトをどのように適合させたかは次のとおりです。

#!/bin/sh                                                                                     

# NAME: /lib/systemd/system-sleep/wifi-reset                                                  
# DESC: Resets Realtek WiFi after a long suspend.                                             
# DATE: Aug 25, 2017. Modified Aug 25, 2017.                                                  

MYNAME=$0                                                                                     

DRIVER=rtl8192ee                                                                              

restart_wifi() {                                                                              
    /usr/bin/logger $MYNAME 'restart_wifi BEGIN'                                              
    /sbin/modprobe -v -r $DRIVER # This removes the driver                                    
    /sbin/modprobe -v $DRIVER   # This starts the driver                                      
    #systemctl restart NetworkManager.service # network manager restart disabled as not needed
    /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                                                                                          

今では完全に動作します:)

みんなありがとう!

2
termux

解決しました! @ WinEunuuchs2Unixのおかげで、ここで説明した方法と同様の方法を適用することで WiFi信号アイコンがサスペンド後にイーサネットアイコン(上向き矢印)に切り替わります で、問題を解決できたようです。

条件はまったく同じではなく、ソリューションを適応させる必要がありました。基本的に、network-managerを再起動しても問題は解決しませんが、カーネルモジュールのリロードをアンロードすることはできました!スクリプトをどのように適合させたかは次のとおりです。

#!/bin/sh                                                                                     

# NAME: /lib/systemd/system-sleep/wifi-reset                                                  
# DESC: Resets Realtek WiFi after a long suspend.                                             
# DATE: Aug 25, 2017. Modified Aug 25, 2017.                                                  

MYNAME=$0                                                                                     

DRIVER=rtl8192ee                                                                              

restart_wifi() {                                                                              
    /usr/bin/logger $MYNAME 'restart_wifi BEGIN'                                              
    /sbin/modprobe -v -r $DRIVER # This removes the driver                                    
    /sbin/modprobe -v $DRIVER   # This starts the driver                                      
    #systemctl restart NetworkManager.service # network manager restart disabled as not needed
    /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                                                                                          

今では完全に動作します:)

みんなありがとう!

3
termux

私は同様の問題を抱えていましたが、いくつかの違いがありました。

私のラップトップはUbuntu 16.04.4 LTS(xenial)を実行しているLenovo ThinkPad T470sです。

中断して再開した後、次の動作が発生しました。

  • ネットワークマネージャーが再起動し、wifiネットワークのリストは問題ありません。
  • pCが短時間または長時間中断された場合でも、違いはありません。
  • 再開後に実際にWi-Fiに再接続し、
  • LAN上のPCを正常にpingできましたが、
  • LANの外ではpingを実行できず、インターネットに接続できませんでした。
  • (非常に奇妙です)手動でドライブを1回再起動した後(以下の修正を参照)、この問題はなくなりました。一時停止して再開することができ、wifiはドライバーを2回再起動することなく機能します。問題を再現するために、再起動し、再度中断する必要がありました。

ネットワークマネージャー(Sudo systemctl restart network-manager.service)を再起動しても問題は解決しません。それを停止し、しばらく待ってから再起動しても、修正されません。

手動修正

手動で修正するには、次の作業が必要でした。

  • 私のwifiドライバーを決定します:

    $ Sudo lshw -C network
      *-network
           description: Wireless interface
           product: Intel Corporation
           vendor: Intel Corporation
           physical id: 0
           bus info: pci@0000:3a:00.0
           logical name: wlp58s0
           version: 78
           serial: 00:e1:8c:dc:8c:7d
           width: 64 bits
           clock: 33MHz
           capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
           configuration: broadcast=yes driver=iwlwifi driverversion=4.13.0-43-generic firmware=31.560484.0 ip=192.168.0.9 latency=0 link=yes multicast=yes wireless=IEEE 802.11
           resources: irq:128 memory:ec100000-ec101fff
    
  • ドライバーを再起動します。

    $ Sudo /sbin/modprobe -r iwlwifi
    $ Sudo /sbin/modprobe iwlwifi
    

自動修正

システムの再開後にドライバーを自動的に再起動するには、次のようなことをしました

サスペンド後にWiFi信号アイコンがイーサネットアイコンに変わります(上向き矢印)

つまり、次のスクリプトiwlwifi-reset/lib/systemd/system-sleep/に作成し、実行可能にしました。

#!/bin/sh

# NAME: /lib/systemd/system-sleep/iwlwifi-reset
# DESC: Resets Intel WiFi after suspend.
# DATE: Jun 3, 2018.

MYNAME=$0

restart_wifi() {
    /usr/bin/logger $MYNAME 'restart_wifi BEGIN'
    /sbin/modprobe -r iwlwifi
    /sbin/modprobe iwlwifi
    /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
0
jfs

Ubuntu 18.04では、システムの再開時にスクリプトを呼び出すために、次の追加手順を実行する必要がありました(古いEdimax USB WiFiアダプターを使用しているため、/lib/systemd/system-sleep/という名前を付けました- edimax_wifi_wakeup):

  • 「サービス」ファイルを作成します。Sudo vi /etc/systemd/system/sleep-resume.service
  • その内容:

    [Unit]
    Description=Edimax USB WiFi system suspend/resume handling
    Before=sleep.target
    StopWhenUnneeded=yes
    
    [Service]
    Type=simple
    RemainAfterExit=yes
    ExecStart=-/lib/systemd/system-sleep/edimax_wifi_wakeup suspend
    ExecStop=-/lib/systemd/system-sleep/edimax_wifi_wakeup resume
    
    [Install]
    WantedBy=sleep.target
    
  • Sudo systemctl enable sleep-resumeでサービスを有効にします

0
RJP