커널 모듈 비디오 드라이버가 특정 그래픽 카드 장치를 검색하지 못하도록 방지하는 방법

커널 모듈 비디오 드라이버가 특정 그래픽 카드 장치를 검색하지 못하도록 방지하는 방법

내 시스템에는 2개의 Nvidia 카드가 있습니다. 내가 달성하고 싶은 것은 한 카드는 nouveau드라이버에 의해 구동되고 다른 카드는 nvidia공식 blob 드라이버에 의해 구동된다는 것입니다.

특정 nvidia 드라이버 옵션 "nvidia_340.NVreg_AssignGpus=0:02:00"을 사용하여 부팅 시 nvidia 드라이버가 자동으로 시작되면 두 드라이버가 성공적으로 공존하게 됩니다. 드라이버가 특정 장치만 감지하도록 하고, nouveau 드라이버의 수동 시작을 사용하여 modprobe기타 사용되지 않는 장치를 감지합니다.

nouveau부팅 시 두 모듈을 모두 로드하여 이를 자동화하고 싶지만 아직 두 그래픽 카드 중 하나만 검색하도록 드라이버에 지시하지 못했습니다 . 모듈의 로딩 순서는 정의되지 않은 것 같습니다. nouveau 모듈이 nvidia 모듈보다 먼저 로드되면 두 모듈을 모두 조사하여 공식 nvidia가 다른 모듈에 액세스하는 것을 방지합니다.

시작 단계(nvidia 모듈을 로드한 후에는 제대로 작동함) 중에 systemd 서비스 작업을 실행할 수 있다는 것을 알고 있지만 modprobe nouveau이를 수행하는 더 좋은 방법이 있으면 좋겠습니다. 생각은 해봤는데, udev아는 게 별로 없어서 이 길이 맞는지는 잘 모르겠습니다.

이 문제를 처리하는 올바른 방법은 무엇입니까?

답변1

그래서 해결책을 찾는 길은 쉽지 않았지만, 해결책 자체는 놀라울 정도로 간단했습니다.

install아이디어는 구성 파일에서 이 지시문을 사용하여 /etc/modprobe.d/nvidia 드라이버가 modprobe를 통해 실행되는 방식을 재정의하는 것입니다. 파일에 다음을 설정했습니다 /etc/modprobe.d/nvidia-with-nouveau.conf.

install nvidia_340 /sbin/modprobe --ignore-install nvidia_340; /sbin/modprobe nouveau

nvidia 모듈을 시작하는 방법을 커널에 지시합니다(내 모듈은 340입니다). 이 명령을 사용하면 먼저 nvidia를 시작한 다음 nouveau를 시작하라고 지시합니다. --ignore-install커널이 nvidia 모듈을 시작하기 위해 설치 명령을 재사용하는 것을 방지해야 합니다. 이로 인해 일종의 무한 루프가 발생할 수 있다고 생각합니다.

install구성 파일에서 사용 가능한 다른 지시문은 /etc/modprobe.d에 잘 설명되어 있습니다 man modprode.d.

누보 드라이버가 스스로 시작되지 않도록 블랙리스트에 유지하는 것이 중요합니다. Ubuntu에서 Nvidia 드라이버는 공식 Ubuntu 저장소의 deb 패키지를 통해 설치할 때 설치 파일을 통해 nouveau 모듈을 블랙리스트에 추가합니다 /etc/modprobe.d/nvidia-340_hybrid.conf (이 방법은 제게는 효과가 있었지만 다른 운영 체제 및 드라이버 버전에서는 다를 수 있습니다).

파일에는 다음 내용이 포함되어 있습니다.

blacklist nouveau
blacklist lbm-nouveau
alias nouveau off
alias lbm-nouveau off

다음 줄은 nouveau에 대한 별칭을 생성하며 off주석 처리해야 합니다.

#alias nouveau off
#alias lbm-nouveau off

마지막으로 이러한 변경 사항을 고려하여 initramfs를 업데이트해야 한다고 생각합니다.

sudo update-initramfs -u

이제 nouveau에 한 좌석, nvidia-driver에 다른 좌석이 있는 다중 좌석 구성을 즐길 수 있습니다.

관련 정보