![USB 플래시 드라이브가 연결될 때 uas 및 usb_storage 커널 모듈이 자동으로 로드되는 것을 방지하는 방법은 무엇입니까?](https://linux55.com/image/136053/USB%20%ED%94%8C%EB%9E%98%EC%8B%9C%20%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C%EA%B0%80%20%EC%97%B0%EA%B2%B0%EB%90%A0%20%EB%95%8C%20uas%20%EB%B0%8F%20usb_storage%20%EC%BB%A4%EB%84%90%20%EB%AA%A8%EB%93%88%EC%9D%B4%20%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EB%A1%9C%EB%93%9C%EB%90%98%EB%8A%94%20%EA%B2%83%EC%9D%84%20%EB%B0%A9%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
buildroot를 사용하여 커널 이미지를 생성하고 이를 SD 카드에 넣어 부팅했습니다. 빌드루트에서는 USB 대용량 저장장치를 모듈화했습니다. USB를 연결하지 않은 채 보드를 부팅하면 lsmos
. 하지만 USB를 연결하면 모듈이 자동으로 uas
로드되어 usb_storage
USB에 대한 액세스를 허용합니다. 이런 일이 발생하지 않도록 하고 이 두 모듈을 수동으로 로드하는 경우에만 USB 액세스를 허용하고 싶습니다.
모듈을 블랙리스트에 추가하거나 모듈과 관련된 파일을 편집하는 것에 대한 기사를 온라인에서 읽었지만 전원을 끌 때 변경한 내용이 삭제되기 때문에 작동하지 않습니다. 그래서 또 다른 영구 옵션이 필요합니다. 이미지를 생성하기 전에 빌드 루트 설정에서 수행할 수 있습니까?
답변1
나는 같은 문제에 직면했습니다. 문제는 기본적으로 busybox의 modprobe 구현(buildroot에서 사용됨)이 blacklist
.
해결 방법은 이미지를 컴파일할 때 busybox 구성에서 이 기능을 활성화하는 것입니다. 이렇게 하려면 busybox.config
다음 내용을 포함하는 구성 조각 파일(예: 이라는 이름)을 만듭니다.
CONFIG_FEATURE_MODPROBE_BLACKLIST=y
그런 다음 buildroot 옵션에 파일 경로를 추가합니다. 빌드루트 구성 파일에서는 다음과 유사해야 합니다.
BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="../busybox.config"
이제 를 실행하면 make
busybox의 구성 파일을 다시 빌드하는 buildroot make 프로세스를 볼 수 있습니다. modprobe 출력에 주의하세요. 다음과 같아야 합니다.
modprobe (28 kb) (MODPROBE) [Y/n/?] y
Blacklist support (FEATURE_MODPROBE_BLACKLIST) [Y/n/?] y
이 작업을 완료한 후에는 쓰기만 하면 blacklist <themodule>
예상 /etc/modprobe.conf
대로 작동할 것입니다.