カーネルモジュールが失敗した場合に自動的にリロードする方法は?
ノートパソコンに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