본문 바로가기
OS-OE Knowledge/Linux-Unix KB

RHEL/GPU 환경에서 OS inbox driver(nouveau) 비활성화 필요

by 스쳐가는인연 2022. 4. 13.

GPU 환경에서, OS inbox GPU driver(nouveau)로 인해 장애(부팅실패/화면출력오류/응답없음 등)을 경험할 수 있음

 

Inbox GPU driver (nouveau) causes hang during OS boot
A. During install, set Linux kernel parameter “nomodeset”.
Note. 부팅 장애를 경험하지 않는 상황에서, 생략 가능 예상
1) 설치 화면에서 ‘E’ Key를 통해 부트 메뉴 편집
 
2) 방향키를 통해 “linux /boot/vmlinuz …” 형태의 항목 검색 후, “nomodeset” 를 추가
e.g.) 
submenu 'Submenu title' {
  menuentry 'Submenu option 1' {
    linuxefi /images/vmlinuz inst.stage2=hd:LABEL=RHEL-8-2-0-BaseOS-x86_64 xdriver=vesa nomodeset quiet
    initrdefi /images/pxeboot/initrd.img
  }
  menuentry 'Submenu option 2' {
    linuxefi /images/vmlinuz inst.stage2=hd:LABEL=RHEL-8-2-0-BaseOS-x86_64 rescue quiet
    initrdefi /images/initrd.img
  }
}

3) <Ctrl+X>늘 눌러 부팅 및 설치 진행


B. Set nouveau driver on blacklist to not use it.
1) unload nouveau
# modprobe -r nouveau

2) nouveau를 사용하지 않도록 등록
# echo "blacklist nouveau" > /etc/modprobe.d/blacklist-nouveau.conf
# echo "options nouveau modeset=0" >> /etc/modprobe.d/blacklist-nouveau.conf
# echo "install nouveau /bin/false" >> /etc/modprobe.d/blacklist-nouveau.conf

3) initramfs 재구성
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(date +%m-%d-%H%M%S).bak
# dracut --omit-drivers nouveau -f

4) “module_name.blacklist=1 rd.driver.blacklist=module_name”를 grub에 추가
# grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) nouveau.blacklist=1 rd.driver.blacklist=nouveau"
For example: 
# grub2-editenv - set kernelopts="root=/dev/mapper/rhel_example-root ro crashkernel=auto resume=/dev/mapper/rhel_example-swap rd.lvm.lv=rhel_example/root rd.lvm.lv=rhel_example/swap nouveau.blacklist=1 rd.driver.blacklist= nouveau"

Note. 일부 자료에 “modprobe.blacklist=nouveau”로 가이드 되고 있음 (비교참조내용)
-----------------------------------------------------------------------------------------------
a) 에디터를 이용하여, /etc/default/grub 파일 편집
# vim /etc/default/grub

b) "GRUB_CMDLINE_LINUX_DEFAULT=" 항목에, 다음 "modprobe.blacklist=nouveau" 를 추가 (대체가 아님)
e.g.)
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet modprobe.blacklist=nouveau"

Note. “rd.driver.blacklist=nouveau nouveau.modeset=0”로 대체 가능
-----------------------------------------------------------------------------------------------

5) kdump initramfs 재구성
# cp /boot/initramfs-$(uname -r)kdump.img /boot/initramfs-$(uname -r)kdump.img.$(date +%m-%d-%H%M%S).bak
# sed -i '/^KDUMP_COMMANDLINE_APPEND=/s/"$/ rd.driver.blacklist=nouveau"/' /etc/sysconfig/kdump
# kdumpctl restart
# mkdumprd -f /boot/initramfs-$(uname -r)kdump.img

6) Reboot


관련참고자료:
Advisory: Red Hat Enterprise Linux Server 8.3 - Failed to INIT Message or Blank Screen Occurs Installing or Booting Red Hat Enterprise Linux Server 8.3 on an HPE Apollo 6500 Gen10 Plus System Configured with NVIDIA HGX A100 4-GPU or NVIDIA HGX A100 8-GPU
https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-a00111993en_us

What is "nomodeset" kernel parameter and is it safe to use?
https://access.redhat.com/solutions/81623
Booting with "nomodeset" kernel parameter disables Kernel Mode Setting and display falls back to legacy mode
Red Hat Engineering does not recommend using this option. This option could be used as a workaround till real bug causing problem is fixed.

CUSTOMIZING THE BOOT MENU
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/customizing_anaconda/customizing-the-boot-menu_customizing-anaconda
https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/8/html/performing_an_advanced_rhel_installation/editing-boot-options_kickstart-and-advanced-boot-options

Disabling Nouveau
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#runfile-nouveau

How to blacklist nouveau module on Red Hat Enterprise Linux 7?
https://access.redhat.com/solutions/2867671

How do I prevent a kernel module from loading automatically?
https://access.redhat.com/solutions/41278

 

 

 

 

 

 

반응형