[unix] 텍스트 콘솔에서 해상도를 설정하는 방법 (`vga =…`가 실패 할 때 문제 해결)

vga=...커널 매개 변수 를 사용하여 텍스트 콘솔 (일반적으로 Ctrl-Alt-F1을 통해 Ctrl-Alt-F6을 통해 사용 가능)의 해상도를 설정하는 일반적인 방법 입니다. Ubuntu 10.04 Lucid를 사용하고 있습니다 uname -a.

Linux  2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:13:52 UTC 2011 x86_64 GNU/Linux

사용 가능한 모드를 식별하려면 sudo hwinfo --framebuffer다음 보고서를 사용하십시오 .

02: None 00.0: 11001 VESA Framebuffer
  [Created at bios.464]
  Unique ID: rdCR.R1b4duaxSqA
  Hardware Class: framebuffer
  Model: "NVIDIA G73 Board - p456h1  "
  Vendor: "NVIDIA Corporation"
  Device: "G73 Board - p456h1  "
  SubVendor: "NVIDIA"
  SubDevice:
  Revision: "Chip Rev"
  Memory Size: 256 MB
  Memory Range: 0xc0000000-0xcfffffff (rw)
  Mode 0x0300: 640x400 (+640), 8 bits
  Mode 0x0301: 640x480 (+640), 8 bits
  Mode 0x0303: 800x600 (+800), 8 bits
  Mode 0x0305: 1024x768 (+1024), 8 bits
  Mode 0x0307: 1280x1024 (+1280), 8 bits
  Mode 0x030e: 320x200 (+640), 16 bits
  Mode 0x030f: 320x200 (+1280), 24 bits
  Mode 0x0311: 640x480 (+1280), 16 bits
  Mode 0x0312: 640x480 (+2560), 24 bits
  Mode 0x0314: 800x600 (+1600), 16 bits
  Mode 0x0315: 800x600 (+3200), 24 bits
  Mode 0x0317: 1024x768 (+2048), 16 bits
  Mode 0x0318: 1024x768 (+4096), 24 bits
  Mode 0x031a: 1280x1024 (+2560), 16 bits
  Mode 0x031b: 1280x1024 (+5120), 24 bits
  Mode 0x0330: 320x200 (+320), 8 bits
  Mode 0x0331: 320x400 (+320), 8 bits
  Mode 0x0332: 320x400 (+640), 16 bits
  Mode 0x0333: 320x400 (+1280), 24 bits
  Mode 0x0334: 320x240 (+320), 8 bits
  Mode 0x0335: 320x240 (+640), 16 bits
  Mode 0x0336: 320x240 (+1280), 24 bits
  Mode 0x033d: 640x400 (+1280), 16 bits
  Mode 0x033e: 640x400 (+2560), 24 bits
  Config Status: cfg=new, avail=yes, need=no, active=unknown

0x305, 0x307, 0x317, 0x318, 0x31a, 0x31b와 같은 많은 고해상도 모드를 사용할 수있는 것처럼 보입니다 (그런데 더하기 숫자는 모드 목록에서 무엇을 의미합니까?). 그러나 커널 옵션 문자열, line에서 이러한 모드를 설정 vga=0x305하면 피치 검정 텍스트 콘솔 또는 깜박이는 색상 / bw 도트로 화면이 채워집니다.

텍스트 콘솔에서 고해상도를 설정하는 ‘현대적인’, ‘견고한’방법은 무엇입니까?



답변

최신 커널 은 기본적으로 KMS 를 사용 하므로 vga=Krub의 기본 해상도와 충돌하므로 grub 행에 추가하지 않아야합니다 . 그러나 사용중인 비디오 드라이버에 따라 다릅니다. 독점 Nvidia 드라이버는 KMS를 지원하지 않지만이 문제를 해결할 수 있습니다.

를 편집 /etc/default/grub하고 GFXMODE설정이 올바른지 확인한 후 다음 GFXPAYLOAD과 같이 항목 을 추가 하여 프레임 버퍼에서 전체 해상도를 얻을 수 있어야합니다 .

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

sudo update-grub나중에 실행해야합니다 .


답변

엔비디아를 사용하는 최신 데비안 및 우분투 배포판의 경우 다음을 수행해야했습니다.

먼저 / etc / default / grub을 편집하십시오. 다음 줄을 변경하십시오.

#GRUB_GFXMODE=640x480

이에:

GRUB_GFXMODE=1280x800
GRUB_GFXPAYLOAD_LINUX=keep

1280×800을 원하는 해상도로 바꿉니다.

그때:

echo "echo FRAMEBUFFER=y" | sudo tee /etc/initramfs-tools/conf.d/splash
sudo update-initramfs -u
sudo update-grub

글꼴 크기를 간단히 변경하려면 다음 명령을 사용하면됩니다.

sudo dpkg-reconfigure console-setup


답변

최선의 선택은 다음과 같습니다.

sudo hwinfo --framebuffer설명 된대로 사용 하고 콘솔에서 부팅하는 동안 표시 할 비디오 모드를 선택한 다음 vga=nnn커널 부팅 매개 변수에 옵션 을 추가하십시오 .

유일한 트릭은 즉 nnn당신이에 의해 생성 된 목록에서 선택한 비디오 모드 hwinfoCONVERTED 진수 !

시도 vga=0xwhatever하면 작동하지 않습니다.

예를 들어 비디오 모드 0x307 (1280×1024 (+1280), 8 비트)을 선택하고 0x307을 775 인 10 진수로 변환 한 다음 vga=775isolinux / extlinux의 부팅 매개 변수에 사용 했습니다.

printf를 사용하여 16 진수를 10 진수로 변환 할 수 있습니다.

$ printf "%d\n" 0x307
775

그리고 처음부터 모든 콘솔에 좋은 글씨가 있습니다.

성공!


답변