![커널에 내장된 드라이버, 즉 모듈이 아닌 드라이버를 차단하는 방법](https://linux55.com/image/87645/%EC%BB%A4%EB%84%90%EC%97%90%20%EB%82%B4%EC%9E%A5%EB%90%9C%20%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84%2C%20%EC%A6%89%20%EB%AA%A8%EB%93%88%EC%9D%B4%20%EC%95%84%EB%8B%8C%20%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84%EB%A5%BC%20%EC%B0%A8%EB%8B%A8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
nouveau
즉, Linux 커널 소스 디렉터리에서 작업을 수행하는 것이 아니라 커널에 내장된 드라이버를 사용하여 Linux 커널을 구성하고 컴파일했습니다 <*>
.<M>
make menuconfig
이제 대신 다른 드라이버를 사용할 예정입니다 nouveau
. nouveau
모듈인 경우 blacklist nouveau
inside 와 같은 줄을 추가하겠습니다./etc/modprobe.d/blacklist.conf
이제 어떻게 해야 할까요?
답변1
이것을 아는 사람은 많지 않지만 커널에 내장된 드라이버를 블랙리스트에 추가하는 방법이 분명히 있습니다.
먼저 를 실행해야 합니다 lsmod | grep <driver_name>
. 결과가 표시되지 않으면 축하합니다. 드라이버가 커널에 직접 내장되어 있으므로 일반적인 블랙리스트 방법은 작동하지 않습니다. 대신 드라이버의 초기화 기능을 블랙리스트에 추가해야 합니다. 이렇게 하려면 initcall_blacklist=<driver_init>
커널 부팅 옵션을 추가해야 합니다.드라이버 초기화드라이버 초기화 기능입니다. 어떤 이름을 사용해야 하는지 알아내려면 커널의 소스 코드를 살펴봐야 합니다. 구체적인 예로, initcall_blacklist=vmd_drv_init
부팅 옵션을 사용하면 Intel의 볼륨 관리 장치 드라이버가 활성 볼륨 관리 장치 컨트롤러를 로드하고 바인딩하는 것을 방지할 수 있습니다.
답변2
다음 구문을 사용하여 부팅할 때 grub 명령줄(Linux 줄)에서 일시적으로 블랙리스트에 추가할 수도 있습니다.
module_to_blacklist.blacklist=yes
또는
modprobe.blacklist=module_to_blacklist
변경 사항을 영구적으로 적용하려면 grub,cfg를 수정해야 합니다.
이 솔루션은 일부 모듈에서는 작동하지 않습니다.