カーネルモジュールのロードに失敗した場合に自動的に再ロードする方法

カーネルモジュールのロードに失敗した場合に自動的に再ロードする方法

カーネルモジュールが失敗した場合に自動的にリロードする方法は?

ノートパソコンにWi-Fi Qualcomカードがあり、時々ロードされないことがあります。私は私が呼び出した簡単なスクリプトを書いたfixwifi。このスクリプトはデフォルトでモジュールを削除して待ってから再ロードします。

#!/bin/bash
sudo modprobe -r ath10k_pci
sleep 1
sudo modprobe ath10k_pci

問題のモジュールは時々起動時に失敗し、時にはスリープモードで目が覚めたときに失敗し、ログに次のものを印刷します(の出力dmesg)。

[   40.336212] ath10k_pci 0000:07:00.0: wmi service ready event not received
[   40.426511] ath10k_pci 0000:07:00.0: Could not init core: -110

現在はモジュールが故障するのを見るたびにターミナルを開いて実行しますがfixwifi…これは手作業なので自動化も可能だと思います。

このプロセスを自動化する方法はありますか(それとも修正できますか?!)? systemdユニットを作成しようとしていますが、モジュールエラーに関する通知をどのように受け取りますか?システムログを頻繁にポーリングまたは確認しますか?

システム:systemdを含むUbuntu 22.04。
から抜粋lshw:

*-network
                description: Wireless interface
                product: QCA9377 802.11ac Wireless Network Adapter
                vendor: Qualcomm Atheros
                physical id: 0
                bus info: pci@0000:07:00.0
                logical name: wlp7s0
                version: 31
                serial: ...
                width: 64 bits
                clock: 33MHz
                capabilities: bus_master cap_list ethernet physical wireless
                configuration: broadcast=yes driver=ath10k_pci driverversion=5.15.0-52-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=... latency=0 link=yes multicast=yes wireless=IEEE 802.11
                resources: irq:145 memory:a4000000-a41fffff

ベストアンサー1

おすすめ記事