커널 모듈이 실패하면 자동으로 다시 로드하는 방법은 무엇입니까?
노트북에 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가 포함된 우분투 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