Qualcomm Atheros 드라이버를 사용하는 장치가 있는데 이를 다시 설치했습니다. 장치를 올바르게 사용하려면 다음 옵션을 사용하여 모듈을 로드해야 합니다.
sudo modprobe -r ath10k_pci # remove module
sudo modprobe -r ath10k_core # remove module
sudo modprobe ath10k_core rawmode=1 cryptmode=1
sudo modprobe ath10k_pci
다음을 사용하여 모듈이 올바르게 로드되었는지 확인할 수 있습니다 systool -v -m ath10k_core
.
Module = "ath10k_core"
Attributes:
coresize = "503808"
initsize = "0"
initstate = "live"
refcnt = "1"
srcversion = "8846560394C80047DEEC13F"
taint = ""
uevent = <store method only>
Parameters:
coredump_mask = "3"
cryptmode = "1"
debug_mask = "0"
fw_diag_log = "N"
rawmode = "Y"
skip_otp = "N"
uart_print = "N"
Sections:
이제 시작할 때 자동으로 이 작업을 수행하고 싶습니다. 나는 이 게시물을 사용했습니다:systemd: 시작 시 자동으로 modprobe 명령을 실행합니다.
파일을 만들었습니다 /etc/modules-load.d/ath10k_core.conf
.
options ath10k_core rawmode=1 cryptmode=1
하지만 시작하면 결과 systool -v -m ath10k_core
는 다음과 같습니다.
Module = "ath10k_core"
Attributes:
coresize = "503808"
initsize = "0"
initstate = "live"
refcnt = "1"
srcversion = "8846560394C80047DEEC13F"
taint = ""
uevent = <store method only>
Parameters:
coredump_mask = "3"
cryptmode = "0"
debug_mask = "0"
fw_diag_log = "N"
rawmode = "N"
skip_otp = "N"
uart_print = "N"
Sections:
따라서 모듈이 올바르게 로드되지 않아 수동으로 실행해야 합니다.
이 명령의 결과는 다음 journalctl -u systemd-modules-load.service
과 같습니다.
déc. 07 17:07:18 ubuntu-machine systemd-modules-load[263]: Failed to find module 'options ath10k_core rawmode=1 cryptmode=1'
저는 우분투 20.04를 실행하고 있습니다. 내 구성에 문제가 있나요?
답변1
잘못된 구성 파일을 보고 있습니다./etc/modules-load.d/
즉시 필요하지 않은 경우에도 부팅 단계에서 커널 모듈을 로드하도록 시스템에 지시합니다.
systemd-modules-load.service(8)
부팅 중에 로드할 커널 모듈의 정적 목록이 포함된 위 디렉터리에서 파일을 읽습니다. 각 구성 파일은/etc/modules-load.d/program.conf
.이와 같은 정적 구성보다는 PCI ID, USB ID, DMI ID 또는 커널 모듈 자체에 코딩된 유사한 트리거를 사용하여 모듈을 자동으로 로드하는 것이 더 나은 아이디어인 경우가 많습니다.실제로 대부분의 최신 커널 모듈은 자동으로 로드될 준비가 되어 있습니다.
이것은 일반적으로 다음으로 복사됩니다.파일 시스템 초기화boot 파일에 저장되어 있으므로 이러한 현상은 매우 초기에 발생합니다. 구문 오류로 인해 현재 파일은 라는 커널 모듈을 로드하라고 지시하는데, options options ath10k_core rawmode=1 cryptmode=1
해당 모듈이 없기 때문에 실패합니다.
이 부분은 시스템에 모듈에 옵션을 추가하라고 지시하지 않습니다. 실제로는 거의 필요하지 않습니다.
사용자 정의 모듈 옵션을 정의하려면 다음이 있습니다./etc/modprobe.d/
(및 기타 시스템 예약 위치):
이
modprobe
명령은 여러 모듈을 추가하거나 제거할 수 있고 모듈에는 종속성이 있으므로 이러한 모듈에 사용할 옵션을 지정하는 방법이 필요합니다./etc/modprobe.d
확장자로 끝나는 디렉터리의 모든 파일에는.conf
필요에 따라 이러한 옵션이 지정됩니다. 또한 편리한 별칭(모듈의 대체 이름)을 만드는 데 사용할 수도 있고, 특별한 요구 사항(예: 여러 모듈 삽입)이 있는 경우 일반적인 modprobe 동작을 완전히 재정의할 수도 있습니다.
modprobe
도커널에 의해 방금 감지된 하드웨어 모듈을 로드하기 위한 도우미 프로그램으로 실행됩니다(앞서 언급한 PCI ID 등을 통해).
따라서 콘텐츠는 다음과 같이 이동해야 합니다 /etc/modprobe.d/ath10k_core.conf
.
options ath10k_core rawmode=1 cryptmode=1
나는 당신이 그것을 일찍 로드할 필요가 없다고 생각합니다(단순한 줄을 사용하여 in ath10k_core
뒤에 올 수 있음 ). 그러나 그렇게 하기로 선택한 경우 옵션도 복사되도록 한 번 실행하는 것이 좋습니다.ath10k_pci
/etc/modules-load.d/ath10k_core.conf
update-initramfs -u
파일 시스템 초기화그렇지 않으면 다음 커널 업그레이드까지 계속 실패할 수 있습니다.