답변:
참고 : 커널 이미지에 내장 된 모듈 (예 : 별도의 파일을 통해로드되지 않은 모듈)에는 블랙리스트 기능이 작동 하지 않습니다
.ko
. 이러한 모듈을 비활성화하는 유일한 방법은 커널 매개 변수 (사용 가능한 경우)를 사용하거나 커널을 다시 컴파일하는 것입니다.
/etc/modprobe.d/blacklist
파일을 열고 다음 구문을 사용하여 드라이버 이름을 추가하십시오.
blacklist driver-name
편집 : 12.10 (12.04?) 이후 버전에서는 파일이 /etc/modprobe.d/blacklist.conf
상자를 재부팅하고 lsmod 명령을 사용하여 Linux 커널에서 모듈 상태를 표시하십시오.
참고 : 다음 driver-name
은 원하는 블랙리스트 드라이버의 이름입니다. 예를 들어, NIC 카드 드라이버를 비활성화하려면 lspci -v
터미널에서 command 명령 을 사용하여 LAN 카드의 커널 드라이버 이름을 찾을 수 있습니다 .
예를 들어 내 출력은 다음과 같습니다.
........ ........ 6 : 00.0 이더넷 컨트롤러 : Broadcom Corporation NetLink BCM5906M 고속 이더넷 PCI Express (rev 02) 서브 시스템 : Lenovo Device 3861 플래그 : 버스 마스터, 빠른 개발, 대기 시간 0, IRQ 46 b8000000의 메모리 (64 비트, 프리 페치 불가능) [size = 64K] [사용 안함]에서 확장 ROM 기능 : 사용중인 커널 드라이버 : tg3 커널 모듈 : tg3 ........ ........
여기에 드라이버가 tg3
있습니다. tg3
대신에 (또는 드라이버) 를 작성해야합니다 driver-name
.
Lubuntu 12.10
) /etc/modprobe.d/blacklist
파일 이 없습니다 . 이 /etc/modprobe.d/blacklist.conf
파일
blacklist.conf
파일이 존재 할 필요가 없습니다. my-mom-is-awesome
거기에 파일을 넣을 수 있고 작동합니다. 특정 파일을 블랙리스트에 추가하여 원하는 파일을 만들려면 원하는 이름을 정하십시오 blacklist-nouveau
.
구문으로 부팅 할 때 grub 명령 줄 (linux 행)에서 일시적으로 블랙리스트에 올릴 수도 있습니다.
module_to_blacklist.blacklist=yes
i915: unknown parameter 'blacklist' ignored
.
modprobe.blacklist=module_to_blacklist
?
modprobe.blacklist=module_to_blacklist
( man modprobe
자세한 내용 참조)
최소한 Ubuntu 16.04 LTS에서 모듈을 블랙리스트에 올리는 또 다른 방법은 커널 명령 줄에 다음 줄을 추가하는 것입니다.
modprobe.blacklist=MODULE_NAME
/ etc / modprobe 시스템을 사용하는 것이 가장 좋은 방법이지만 부팅시 GRUB 명령 줄을 편집하여 핀치에 사용할 수있는 대안입니다.
/ etc / default / grub을 편집하고 GRUB_CMDLINE_LINUX_DEFAULT
변수에 추가하여 영구적으로 만들 수도 있습니다 . 예를 들어, 내 / etc / default / grub에는 다음이 있습니다.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"
그럼 실행 update-grub2
한 후, update-initramfs -u
. 재부팅 후에는 부팅 후 아무것도로드되지 않는 한 모듈에서 벗어날 수 있습니다.
이 방법은 EL 변형 (RHEL, CentOS, SciLinux)에서도 작동하지만 grub 및 initrd를 업데이트하려면 해당 배포 방법을 사용해야합니다.
(누보를 블랙리스트에 올리려는 사람들에게 참고 :을 실행하여 X를로드하지 마십시오 systemctl set-default multi-user.target
. 그렇지 않으면 X가 시작되면 다시 nouveau를로드합니다!)
최신 릴리스에서는 블랙리스트 파일에서 install 지시문을 사용해야합니다.
install modulename /bin/false
위의 "모듈 이름"을 모듈 이름으로 바꾸십시오. 로드를 강제로 방지합니다.
설치 지시문에 대한 자세한 정보는 modprobe.conf 매뉴얼에서 찾을 수 있습니다.
man modprobe.conf
/etc/modprobe/blacklist.conf
모듈을 수동으로로드 할 수 있습니다 modprobe <module_name>
. 이 install <module_name> /bin/false
방법을 사용하면 원하는대로 실패합니다.
이러한 솔루션 중 어느 것도 i915.ko의 16.04 LTS에서 작동하지 않았습니다.
내가 찾은 (더러운) 솔루션은 이름을 바꾸는 것이 었습니다
/lib/modules/4.4.0-22-generic/kernel/drivers/gpu/drm/i915/i915.ko
/usr/lib/xorg/modules/drivers/modesetting_drv.so
/usr/lib/xorg/modules/drivers/intel_drv.so
불행히도 외부 VGA 화면은 더 이상 인식되지 않습니다 : {
sudo update-initramfs -u
/etc/modeprobe.d/ 파일을 수정 한 후