저는 커널 2.6.37을 개발 중이고 커널을 최적화하기 위해 정적 모듈 대신 로드 가능한 모듈을 몇 개 만들었습니다.
내 임무는 성공적으로 실행한 애플리케이션을 실행한 후 일부 모듈을 로드하는 것입니다.
모든 임베디드 시스템에서 시스템 초기화 중에 스크립트는 지정된 파일(예: etc/modules)에서 모듈을 수정합니다. 그래서 파일 시스템이 초기화될 때 로드되지 않고, 애플리케이션이 시작된 후에 로드되어야 하도록 모듈 이름을 제거했습니다. 실행 수준 우선순위가 35에서 99로 변경된 것과 비슷합니다.
이제 Wi-Fi 커널 모듈을 로드하는 데 1~2초가 걸리기 때문에 Wi-Fi 모듈 이름과 해당 종속성을 제거하려고 시도했지만 파일 시스템 초기화 시 Wi-Fi 모듈이 로드되었습니다. rcS 스크립트를 확인한 후 udev 스크립트는 modprobe가 수행해야 하는 작업 대신 모듈을 로드하는 udevadm 트리거를 실행하고 있습니다.
/sbin/udevadm 트리거 --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon -- 하위 시스템 -nomatch=pci_bus --subsystem-nomatch=그래픽 카드 --subsystem-nomatch=백라이트 --subsystem-nomatch=video4linux --subsystem-nomatch=플랫폼
Wi-Fi 모듈 로딩을 방지하는 방법을 제안할 수 있는 사람이 있습니까?
답변1
내 문제에 대한 완벽한 답변은 아니지만 더 많은 해결 방법이 있습니다.
나는 일부 모듈 블랙리스트를 만들었고[파일 시스템이 초기화되면 자동 로딩이 중지됩니다] 내 앱이 실행된 후에 이를 modprobe했습니다.
고양이/etc/modprobe.d/blacklist.conf
#자동 로딩을 중지해야 하는 모듈을 블랙리스트에 추가
블랙리스트 wl18xx
누구든지 더 나은 답변이 있으면 공유해 주세요.
감사합니다, GBiradar