
저는 커널 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 --subsystem -nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=백라이트 --subsystem-nomatch=video4linux --subsystem-nomatch=플랫폼
Wi-Fi 모듈 로딩을 피하는 방법을 제안할 수 있는 사람이 있습니까?
답변1
이것은 내 질문에 대한 완벽한 대답은 아니지만 해결 방법에 가깝습니다.
나는 내 응용 프로그램이 실행된 후 일부 모듈 블랙리스트[파일 시스템 초기화 시 자동 로드가 중지됨]와 modprobe를 만들었습니다.
고양이 /etc/modprobe.d/blacklist.conf
#자동 로딩을 중지해야 하는 모듈을 블랙리스트에 추가
블랙리스트 wl18xx
더 나은 답변이 있는 사람이 있으면 공유해 주세요.
감사합니다, GBiradar