OS로 전환 한 후 GRUB이 비디오 모드를 유지하도록하려면 어떻게합니까?


2

GRUB을 내 사용자 정의 OS의 부트 로더로 사용합니다. 그래픽 모드로 들어가서 시스템에서 직접 할 필요가 없습니다. 그러나 GRUB이 제어를 OS에 전달하기 전에 비디오 모드가 80x25 텍스트 모드로 다시 변경됩니다. 나는 set gfxpayload=keep 하지만 아무 것도하지 않는 것 같습니다. 내가 선택한 모드 (set gfxmode=1024x768x24 )는 GRUB이 여전히 활성화되어 있지만 OS의 진입 점에 컨트롤을 전달하기 전에 텍스트 모드로 돌아갑니다. 내가 뭔가 잘못하고 있는거야? 그리고, 여기에 내 grub.cfg 파일:

set root=(hd0,1)

set gfxmode=1024x768x24
set gfxpayload=keep

insmod vbe
insmod vga
insmod video_cirrus
insmod gfxterm

set menu_color_normal=red/blue
set menu_color_highlight=green/blue

loadfont /boot/grub/fonts/unicode.pf2

terminal_input console
terminal_output gfxterm

set timeout=1
set default=0

menuentry "Trolololo" {
    multiboot /kernel
    boot
}

"... 내 사용자 정의 OS?"라는 의미는 무엇입니까? 전체 사용자 정의 Linux 기반 (필자는 가정) OS입니까? 또는 다른 것?
JakeGould

아닙니다. Linux 기반이 아니며 Linux와 호환되지 않습니다. 그것은 나를 통해 작성된 취미 OS입니다. 그러나 그것이 어떤 차이를 가져서는 안됩니다.
pvc

GRUB은 오픈 소스이므로 자신의 OS를 작성할 수 있다면 GRUB 소스 코드를 분석하여 비디오 모드 전환이 수행되는 위치를 결정할 수 있어야합니다.
sawdust

나는 더 좋은 해결책을 찾지 못할 것이다. 그러나 그것은 아마 엉망이 될 것이다. 제 말은 ... 더 나은 / 올바른 방법이 있어야한다는 것입니다.
pvc

답변:


1

문제 해결됨. 톱밥을 제안하면서 GRUB의 소스 코드를 분석하는 것이 한 가지 방법이었습니다 ( grub_multiboot_set_console ~에 기능하다 grub-2.00/grub-core/loader/multiboot.c 파일).

문제는 내 커널이 multiboot <filename> 명령과 리눅스가로드됩니다 (대부분의 경우) by linux <filename> 명령. 멀티 부팅 사양에서는 기본 비디오 모드에 대한 정보가 멀티 부팅 헤더에 제공되어야합니다. 이 정보가 제공되지 않으면 GRUB은 커널을 시작하기 전에 텍스트 모드로 돌아가서 완전히 무시합니다 gfxpayload 변하기 쉬운.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.