![DisplayPort 검은색 화면을 통한 GRUB](https://linux55.com/image/162609/DisplayPort%20%EA%B2%80%EC%9D%80%EC%83%89%20%ED%99%94%EB%A9%B4%EC%9D%84%20%ED%86%B5%ED%95%9C%20GRUB.png)
내 컴퓨터 사양:
- 마더보드: ASUS Maximus V Gene
- CPU: 인텔 코어 i7 3770
- GPU: 엔비디아 지포스 GTX 780 Ti
- 모니터: 삼성 C27JG50QQI 27인치 144Hz
운영 체제:
- 아치 리눅스 5.3.7-arch1-1-ARCH
내 GPU는 이 연결을 통해 144Hz만 전달할 수 있기 때문에 DisplayPort 연결을 사용해야 합니다.
내 문제는 OS가 부팅될 때까지 모니터에 아무것도 볼 수 없다는 것입니다. 하지만 GRUB가 로드되면 백라이트가 있는 검은색 화면이 표시됩니다. 모니터가 작동하지만(전원 표시등이 깜박이지 않음) 아무것도 표시되지 않습니다.
OS가 로드되면 모든 것이 완벽하게 실행됩니다. HDMI를 통해 두 번째 모니터를 연결하려고 하면 OS가 두 번째(HDMI) 모니터에서 부팅될 때까지 DP 모니터가 절전 모드(전원 LED 깜박임)로 유지됩니다. BIOS, GRUB 등이 모두 표시됩니다.
이 문제는 DisplayPort를 통해 연결할 때만 발생합니다. 다른 GPU 인터페이스는 모두 잘 작동합니다.
BIOS 모드에서는 UEFI와 레거시를 모두 활성화합니다. 마더보드와 GPU BIOS는 기본값이며 업데이트하고 싶지 않습니다. 정기적으로 BIOS 설정을 변경할 필요는 없지만 GRUB 메뉴를 보고 싶습니다.
이 문제를 해결하기 위해 드라이버나 특수 모드를 로드하도록 GRUB를 구성하려면 어떻게 해야 합니까?
이것은 현재 GRUB 구성입니다.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos5' --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
else
search --no-floppy --fs-uuid --set=root 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos5' --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
else
search --no-floppy --fs-uuid --set=root 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
fi
insmod gfxmenu
loadfont ($root)/boot/grub/themes/Vimix/unifont-regular-16.pf2
insmod jpeg
insmod png
set theme=($root)/boot/grub/themes/Vimix/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-64927bd4-fea7-4e9c-9a30-18bd16b6f52a' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos5' --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
else
search --no-floppy --fs-uuid --set=root 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
fi
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=64927bd4-fea7-4e9c-9a30-18bd16b6f52a rw quiet video=DP-1:e
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-64927bd4-fea7-4e9c-9a30-18bd16b6f52a' {
menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-64927bd4-fea7-4e9c-9a30-18bd16b6f52a' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos5' --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
else
search --no-floppy --fs-uuid --set=root 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
fi
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=64927bd4-fea7-4e9c-9a30-18bd16b6f52a rw quiet video=DP-1:e
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-64927bd4-fea7-4e9c-9a30-18bd16b6f52a' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos5' --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
else
search --no-floppy --fs-uuid --set=root 64927bd4-fea7-4e9c-9a30-18bd16b6f52a
fi
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=64927bd4-fea7-4e9c-9a30-18bd16b6f52a rw quiet video=DP-1:e
echo 'Loading initial ramdisk ...'
initrd /boot/initramfs-linux-fallback.img
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 10" --class windows --class os {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set E2D01551D0152CF3
chainloader +1
}
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
답변1
불행하게도 GPU BIOS에는 부팅 시 "메인" 모니터를 찾기 위해 출력 커넥터를 조사하는 우선순위가 내장되어 있습니다. 첫 번째로 연결된 모니터는 부팅 메시지를 수신하지만, 다른 모니터는 운영 체제가 로드되고 해당 GPU 드라이버가 다른 커넥터를 활성화할 때까지 이미지를 수신하지 않습니다.
우선순위를 변경하려면 GPU BIOS를 변경해야 합니다. 분명히 일부 GPU 공급업체는 과거에 요청에 따라 BIOS 버전을 사용자 정의한 경우가 있었는데, 필요한 변경 사항이 그다지 복잡해 보이지 않았기 때문입니다.
하지만 DisplayPort에 연결된 모니터가 깨어난다는 사실은 적어도 그 존재를 나타내는 것 같습니다.예감지가 정확합니다. 144Hz 기능은 BIOS를 혼란스럽게 하고 올바른 신호를 얻도록 DisplayPort 출력을 구성하는 것을 불가능하게 만들 수 있습니다.
최초의 144Hz 태블릿 모니터는 2012년에 출시된 것으로 보입니다. GeForce 700 시리즈는 불과 1년 후에 출시되었으므로 당시에는 144Hz 지원 모니터가 매우 드물었고 700 시리즈의 GPU BIOS가 실행되었을 가능성이 높습니다. 144Hz에서 지원에 몇 가지 버그가 있습니다.
가정적으로, GRUB에 드라이버를 추가하는 것은 드라이버 모듈(이라고 함 video_nvidia.mod
)을 GRUB에 끌어다 놓고 /boot/grub/i386-pc
이를 insmod video_nvidia
GRUB 구성에 추가한 다음 모듈이 지원할 수 있는 구성 설정을 추가하는 것만큼 간단합니다. 하지만 문제는 제가 아는 한 아직까지 그런 GRUB용 드라이버를 만든 사람이 없다는 것입니다!
답변2
저는 이 이상한 문제를 우연히 발견했고, 답변을 찾기 위해 하루 종일 인터넷 검색을 한 후에 Windows OS에서 부팅한 후 GPU 펌웨어를 업데이트하고 디스플레이 포트 1.3 및 1.4 펌웨어 업데이트 도구용 NVIDIA 그래픽을 설치하여 직접 해결 방법을 찾았습니다.
다음에서 다운로드할 수 있습니다.https://www.nvidia.com/en-us/drivers/nv-uefi-update-x64/. Windows에 설치하고 다음 재부팅 후에 grub 부트로더가 BIOS 부팅 화면과 함께 나타납니다.
답변3
나는 같은 문제를 가지고있다 VGA compatible controller: Intel Corporation IvyBridge GT2 [HD Graphics 4000]
. BIOS에 들어갈 수 없고 GRUB 단계에서 아무것도 볼 수 없습니다. grub 구성에서 표시 옵션을 변경해도 아무 것도 변경되지 않습니다.