USB 플래시 드라이브가 연결될 때 uas 및 usb_storage 커널 모듈이 자동으로 로드되는 것을 방지하는 방법은 무엇입니까?

USB 플래시 드라이브가 연결될 때 uas 및 usb_storage 커널 모듈이 자동으로 로드되는 것을 방지하는 방법은 무엇입니까?

buildroot를 사용하여 커널 이미지를 생성하고 이를 SD 카드에 넣어 부팅했습니다. 빌드루트에서는 USB 대용량 저장장치를 모듈화했습니다. USB를 연결하지 않은 채 보드를 부팅하면 lsmos. 하지만 USB를 연결하면 모듈이 자동으로 uas로드되어 usb_storageUSB에 대한 액세스를 허용합니다. 이런 일이 발생하지 않도록 하고 이 두 모듈을 수동으로 로드하는 경우에만 USB 액세스를 허용하고 싶습니다.

모듈을 블랙리스트에 추가하거나 모듈과 관련된 파일을 편집하는 것에 대한 기사를 온라인에서 읽었지만 전원을 끌 때 변경한 내용이 삭제되기 때문에 작동하지 않습니다. 그래서 또 다른 영구 옵션이 필요합니다. 이미지를 생성하기 전에 빌드 루트 설정에서 수행할 수 있습니까?

답변1

나는 같은 문제에 직면했습니다. 문제는 기본적으로 busybox의 modprobe 구현(buildroot에서 사용됨)이 blacklist.

해결 방법은 이미지를 컴파일할 때 busybox 구성에서 이 기능을 활성화하는 것입니다. 이렇게 하려면 busybox.config다음 내용을 포함하는 구성 조각 파일(예: 이라는 이름)을 만듭니다.

CONFIG_FEATURE_MODPROBE_BLACKLIST=y

그런 다음 buildroot 옵션에 파일 경로를 추가합니다. 빌드루트 구성 파일에서는 다음과 유사해야 합니다.

BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="../busybox.config"

이제 를 실행하면 makebusybox의 구성 파일을 다시 빌드하는 buildroot make 프로세스를 볼 수 있습니다. modprobe 출력에 주의하세요. 다음과 같아야 합니다.

modprobe (28 kb) (MODPROBE) [Y/n/?] y
  Blacklist support (FEATURE_MODPROBE_BLACKLIST) [Y/n/?] y

이 작업을 완료한 후에는 쓰기만 하면 blacklist <themodule>예상 /etc/modprobe.conf대로 작동할 것입니다.

관련 정보