HPノートブックでUbuntu 18.04を使用しています。次を使用してドライバーをダウンロードしました。
git clone https://github.com/tomaspinho/rtl8821ce.git
インストールのREADMEファイルの指示に従いました。
コンピューターの再起動後、ドライバーは正常に機能しましたが、ワイヤレスネットワークを変更しようとしたり、コンピューターがサスペンド状態になると、network-managerが接続できなくなります。ネットワーク管理者はWi-Fiのssidを空中で見ますが、接続に失敗します。つまり、最初の接続でのみ機能します。
ネットワークマネージャーを再起動し、アンインストールして再インストールしようとしましたが、問題は解決しません。唯一の解決策はUbuntuを再起動することであり、それは私にとって非常に迷惑です。
この問題を解決するにはどうすればよいですか?
編集:ubuntu 18.10(uefi)の新規インストールは問題を永久に解決します。以下の手順に従う必要はありません。ubuntu18.10をインストールしてwifiモジュールをビルドするだけで問題なく動作するはずです。 、バージョン18.10で修正されたubuntu 18.04 LTSバージョンのいくつかのバグ
主な問題は、dkmsによってインストールされたwifiドライバーが、何らかの不明な理由で一時停止した後、自動的にリロードしないことです。
私のWIFIチップとしてRTL8821CEを持っていますSOマイカーネルモジュールIS名前付きAS8821ce
コマンドSudo -s
を発行してroot
として端末ログインを開き、次のコマンドを発行します(Sudo
としてログインする代わりにroot
を使用することもできます)
modprobe -r 8821ce
および
modprobe -i 8821ce
これらのコマンドは、wifiモジュールをリロードし、一時停止後にwifiが再び機能します。
一時停止から再開するたびにこれらのコマンドを発行しないように、一時的な回避策を見つけました。
注意:
この回避策は時々機能し、時々機能しない
これは中断/再開を中断する可能性がありますが、サービスを無効にしてファイルを削除することで、以前の状態に簡単に戻ることができます。
手順は次のとおりです。
Sudo nano /etc/pm/sleep.d 20_anyname.sh
(任意の名前を任意の名前に置き換えます)
スクリプトに次の行を入力します
#!/bin/sh
# This script Restarts rtl8821ce kernel modules
# Use this if your wifi not working after suspend/resume
case "${1}" in
resume|thaw)
Sudo modprobe -r 8821ce
Sudo modprobe -i 8821ce
;;
esac
次にCTRL + Xを押し、yes
と入力して変更を保存します
適切な権限が付与されていることを確認してください
Sudo chown root:root /etc/pm/sleep.d/20_anyname.sh
Sudo chmod 755 /etc/pm/sleep.d/20_anyname.sh
Sudo nano /etc/systemd/system/somename.service
次のテキストを入力してください
[Unit]
Description=Wifi Resume Service
After=sleep.target
After=hibernate.target
After=hybrid-sleep.target
[Service]
Type=oneshot
ExecStart=/path/to/your/script
[Install]
WantedBy=sleep.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target
CTRL + Xで保存し、yes
と入力してから入力します。
次に、適切な権限が付与されていることを確認してください
Sudo chown root:root /etc/systemd/system/somename.service
Sudo chmod 755 /etc/systemd/system/somename.service
Sudo systemctl enable somename
を使用してスクリプトを有効にします
再起動して楽しむ
前に言ったように、いつかは機能し、いつかは機能しません。なぜそうなのか本当に分かりません。完全に機能するWi-Fiを使用するには、rtl8821ceはまだ新しいチップであるため、開発者が今後のカーネルにバグのないモジュールを追加するのを待つ必要があります。
最初にローカルWiFiネットワークを有効にしてから、ラップトップを一時停止します。さて、スクリプトが成功したかどうかを確認するには、再開直後に右上隅が表示され、どのような種類の無線LANサインも表示されない場合は行っても構いませんし、一目で無線LANサインが表示されたらスクリプトは失敗します。
エラーを表示するにはjournctl -u somename.service
私はパビリオンでも同じ問題を抱えており、受け入れられた答えは私にはうまくいきません。
Ubuntu 18.04で、スクリプトを作成します。
Sudo vim /lib/systemd/system-sleep/wifi.sh
次をコピーして貼り付けます。
#!/bin/sh
case $1/$2 in
pre/*)
echo "Going to $2..."
# Place your pre suspend commands here, or `exit 0` if no pre suspend action required
;;
post/*)
echo "Waking up from $2..."
# Place your post suspend (resume) commands here, or `exit 0` if no post suspend action required
modprobe -r 8821ce && modprobe -i 8821ce
;;
esac
次に、ユーザーに許可を与えます。
Sudo chmod a + x /lib/systemd/system-sleep/wifi.sh
準備完了.
Lenovo Ideapad330でも同じ問題が発生しました。同じワイヤレスチップセット、およびサスペンド後に再開するときの同じ問題。
GitHubの8821ceドライバーのREADME を読むとき、tomaspinhoは考えられる問題、特に「PCIe Activate State Power Management」について話します。
私は彼の推奨事項に従い、次のパラメーターをgrubコマンドラインに追加しました
pci=noaer
これで、サスペンド後にワイヤレスの問題はなくなりました。