15.04にサスペンドした後、wifiが機能しません。メニューバーのwifiアイコン(およびwifiオプションを有効にする)で成功する方法をクリックできますが、スクリプトを使用して手順を自動化したいです。これが私の試みです
1)実行可能なbashスクリプト/etc/pm/sleep.d/10_resume_wifi
を内容とともに作成します
#!/bin/sh
case "$1" in
hibernate|suspend) ;;
thaw|resume)
nmcli r wifi off && nmcli r wifi on ;;
esac
2)内容を含む実行可能ファイル/etc/system.d/system/wifi-resume.service
を作成します
[Unit]
Description=Restart wifi after waking up
After=suspend.target
[Service]
Type=simple
ExecStart=-/etc/pm/sleep.d/10_resume_wifi
[Install]
WantedBy=suspend.target
Sudo systemctl enable wifi-resume.service
を実行します
これは機能していません。サスペンドから再開した後、dmesg
から次の行を取得します
[11168.786104] cfg80211: World regulatory domain updated:
[11168.786111] cfg80211: DFS Master region: unset
[11168.786113] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[11168.786119] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
[11168.786124] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
[11168.786128] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
[11168.786133] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
[11168.786137] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
[11168.968257] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[11169.004818] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[11169.006600] ata3.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[11169.009053] ata3.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[11169.009061] ata3.00: configured for UDMA/100
[11169.200846] firewire_core 0000:04:00.0: rediscovered device fw0
[11171.088442] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[11171.089310] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[11171.090296] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[11171.090469] ata1.00: configured for UDMA/100
[11171.615861] ERROR @wl_cfg80211_scan : WLC_SCAN error (-22)
無線LANへの道をクリックした後、dmesg
からわずかに異なる出力が得られます
[11331.635796] cfg80211: Calling CRDA for country: US
[11331.639456] cfg80211: Regulatory domain changed to country: US
[11331.639465] cfg80211: DFS Master region: FCC
スクリプトベースのアプローチが機能しない理由についての提案はありますか?私はこれが初めてなので、おそらくいくつかのエラーがあります。前もって感謝します!
もう少し掘り下げた後、サスペンド後にコンピューターをwifiに接続する1つのスクリプト( here を投稿)を見つけました。つまり、次の内容の実行可能スクリプト/etc/systemd/system/wifi-resume.service
を作成しました。
[Unit]
Description=Local system resume actions
After=suspend.target
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager.service
[Install]
WantedBy=suspend.target
コマンドSudo systemctl enable wifi-resume.service
を実行しました
解決のためにショーンに感謝します。
私にとってうまくいく解決策:
Sudo touch /etc/pm/sleep.d/10_restart_network_manager
Sudo chmod +x /etc/pm/sleep.d/10_restart_network_manager
Sudo gedit /etc/pm/sleep.d/10_restart_network_manager
このコードをファイル内に貼り付けます。
#!/bin/sh
case $1 in
resume|thaw)
Sudo /bin/systemctl restart network-manager.service
;;
esac
この厄介な問題に何度も挑戦した後、私はこの解決策を思いつきました。 /etc/pm/sleep.d/
の下に実行可能ファイルを作成し、次のように10_resume_wifi
という名前を付けます。
Sudo touch /etc/pm/sleep.d/10_resume_wifi
Sudo chmod +x /etc/pm/sleep.d/10_resume_wifi
Sudo gedit /etc/pm/sleep.d/10_resume_wifi
このコードをファイル内に貼り付けます。
#!/bin/sh
case $1 in
suspend|suspend_hybrid|hibernate)
Sudo nmcli n off
;;
resume|thaw)
Sudo nmcli n on
;;
esac
ファイルを保存して閉じます、それだけです。
これは常に機能する唯一のソリューションでした。 注:私が見つけた他のソリューションは、古いバージョンのnmcliを使用していました。