วิธีการตั้งค่าความละเอียดในคอนโซลข้อความ (แก้ไขปัญหาเมื่อใด `` vga = … 'ล้มเหลว)


29

เป็นวิธีทั่วไปในการตั้งค่าความละเอียดของคอนโซลข้อความ (ซึ่งโดยทั่วไปจะมีให้โดย Ctrl-Alt-F1 ถึง Ctrl-Alt-F6) โดยใช้vga=...พารามิเตอร์เคอร์เนล ฉันใช้ 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 (โดยวิธีการที่หมายเลขบวกหมายถึงอะไรในรายการของโหมด?) อย่างไรก็ตามการตั้งค่าโหมดใด ๆ เหล่านี้ในสตริงตัวเลือกเคอร์เนลบรรทัดvga=0x305ผลลัพธ์ในคอนโซลข้อความสีดำสนิทหรือหน้าจอเต็มไปด้วยการกะพริบจุดสี / bw

วิธี 'ทันสมัย', 'แข็งแกร่ง' ในการตั้งค่าความละเอียดสูงในคอนโซลข้อความคืออะไร?

คำตอบ:


25

เมล็ดที่ใหม่กว่านั้นใช้KMS เป็นค่าเริ่มต้นดังนั้นคุณควรย้ายออกจากการต่อท้ายvga=บรรทัดด้วงของคุณเนื่องจากมันจะขัดแย้งกับการแก้ปัญหาดั้งเดิมของ KMS อย่างไรก็ตามขึ้นอยู่กับไดรเวอร์วิดีโอที่คุณใช้: ไดรเวอร์ Nvidia ที่เป็นกรรมสิทธิ์ไม่รองรับKMSแต่คุณสามารถแก้ไขได้

คุณควรจะได้ความละเอียดสูงสุดใน framebuffer โดยแก้ไขของคุณ/etc/default/grubและตรวจสอบให้แน่ใจว่าGFXMODEตั้งค่าไว้ถูกต้องแล้วเพิ่มGFXPAYLOADรายการดังนี้:

GRUB_GFXMODE=1680x1050x24

# Hack to force higher framebuffer resolution
GRUB_GFXPAYLOAD_LINUX=1680x1050

อย่าลืมเรียกใช้ในsudo update-grubภายหลัง


ฉันได้รับDriver "nvidia"ในของฉันxorg.confดังนั้นมันอาจเป็นไดรเวอร์ที่เป็นกรรมสิทธิ์ ฉันจะทดสอบด้วยgrubล่ะค่ะ โดยวิธีการวิธีการแก้ไขไดรเวอร์?
mbaitoff

ฉันใช้ไดรเวอร์ที่เป็นกรรมสิทธิ์และวิธีการด้านบน (ในกล่อง 10.10) และมันก็ใช้ได้ คุณก็สามารถลองขับรถนูโวหากคุณต้องการ: nouveau.freedesktop.org/wiki/UbuntuPackages
jasonwryan

1
ดูเหมือนว่าวิธีการของ GFXPAYLOAD จะทำงานได้ แต่เฉพาะset gfxpayload=keepในgrub2ไฟล์การกำหนดค่าเท่านั้น
mbaitoff

2
แต่ฉันยังคงสงสัยว่าโหมดวิดีโอของฉันไม่ใช่แบบดั้งเดิม ฉันมีให้GRUB_GFXPAYLOAD=1920x1080กับGRUB_GFXMODE=1920x1080x24แต่ฉันยังคงเห็นตัวอักษรเบลอในคอนโซลเช่นถ้าฉันอยู่ในความละเอียดที่ไม่ใช่เจ้าของภาษา
mbaitoff

1
สะดุดกับความพยายามที่จะได้รับคอนโซลที่ใหญ่ขึ้นสำหรับ VM ของฉันและต้องการเพิ่มความคิดเห็นของ @ mbaitoff เพื่อให้ได้set gfxpayload=keepเข้าสู่การตั้งค่า grub2 คุณจะต้องเพิ่มบรรทัดที่คุณGRUB_GFXPAYLOAD_LINUX=keep /etc/default/grub(นี่คือ Debian และฉันจะถือว่า Ubuntu - YMMV กับคนอื่น ๆ ) ต้องตามล่ามันลงไปในเอกสารด้วง
จะ

13

สำหรับ distros Debian & Ubuntu รุ่นใหม่ที่ใช้ nvidia ฉันต้องทำสิ่งต่อไปนี้:

ก่อนอื่นให้แก้ไข / etc / default / grub เปลี่ยนบรรทัดต่อไปนี้:

#GRUB_GFXMODE=640x480 

สำหรับสิ่งนี้:

GRUB_GFXMODE=1280x800 
GRUB_GFXPAYLOAD_LINUX=keep

แทนที่ 1280x800 ด้วยความละเอียดที่ต้องการ

แล้ว:

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

ในการเปลี่ยนขนาดตัวอักษรคุณสามารถทำได้โดยใช้คำสั่งต่อไปนี้:

sudo dpkg-reconfigure console-setup

2
+1 สำหรับการตั้งค่าคอนโซลการตั้งค่า
dpkg

สิ่งนี้ใช้ได้กับฉันใน Kubuntu 16.04 พร้อมไดรเวอร์ NVidia 390
Maxim Egorushkin

นี่ไม่ใช่ TYPO, echo "echo FRAMEBUFFER = y" ถูกต้อง ฉันได้ตรวจสอบและตรวจสอบแล้วสิ่งนี้จะไม่ทำงานหากไม่มีคำสั่ง echo ที่ตามมาเขียนลงในไฟล์ ขอบคุณ!
mchid

8

นี่คือตัวเลือกที่ดีที่สุดของคุณ:

ใช้sudo hwinfo --framebufferตามที่อธิบายไว้เลือกโหมดวิดีโอที่คุณต้องการดูระหว่างการบูตในคอนโซลจากนั้นเพิ่มตัวเลือกvga=nnnในพารามิเตอร์การบูตเคอร์เนล

เคล็ดลับเดียวก็nnnคือโหมดวิดีโอที่คุณเลือกจากรายการที่ผลิตโดยhwinfo- แปลงเป็นทศนิยม !!!

ถ้าคุณลองvga=0xwhateverมันจะไม่ทำงาน

ตัวอย่างเช่นฉันเลือกโหมดวิดีโอ 0x307 (1280x1024 (+1280), 8 บิต) ฉันแปลง 0x307 เป็นทศนิยมซึ่งเป็น 775 แล้วฉันใช้vga=775ในพารามิเตอร์การบูตของ isolinux / extlinux

คุณสามารถใช้ printf เพื่อแปลงเลขฐานสิบหกเป็นทศนิยม: $ printf "%d\n" 0x307 775

และฉันได้รับข้อความที่ดีในทุกคอนโซลตั้งแต่เริ่มต้น

ที่ประสบความสำเร็จ!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.