Debian Squeeze: TTY Auflösung Schriftgröße

Damit man auf einem Laptop mit einem WideScreen bei dem booten nicht von einer übergroßen Schrift erschlagen wird sollte man sich GRUB2 annehmen.
Als erstes sollte man herausfinden, welche Auflösung der Monitor unterstützt ( sollte eigentlich bekannt sein  und welche Auflösung die Grafikkarte (Framebuffer) bietet:

root@takeshi:/home/seraphyn# hwinfo --framebuffer
 02: None 00.0: 11001 VESA Framebuffer
 [Created at bios.464]
 Unique ID: rdCR.VSBbdW2x3qC
 Hardware Class: framebuffer
 Model: "NVIDIA G86 Board - NV_NB8M "
 Vendor: "NVIDIA Corporation"
 Device: "G86 Board - NV_NB8M "
 SubVendor: "NVIDIA"
 SubDevice:
 Revision: "Chip Rev"
 Memory Size: 14 MB
 Memory Range: 0xd5000000-0xd5dfffff (rw)
 --------------- gekürzt ----------------
 Mode 0x0348: 1400x1050 (+2800), 16 bits
 Mode 0x0349: 1400x1050 (+5600), 24 bits
 Mode 0x034a: 1600x1200 (+6400), 24 bits
 Mode 0x0352: 2048x1536 (+8192), 24 bits
 Mode 0x0360: 1280x800 (+1280), 8 bits
 Mode 0x0361: 1280x800 (+5120), 24 bits
 Mode 0x0362: 768x480 (+768), 8 bits
 Mode 0x0364: 1440x900 (+1440), 8 bits
 Mode 0x0365: 1440x900 (+5760), 24 bits
 Mode 0x0368: 1680x1050 (+1680), 8 bits
 Mode 0x0369: 1680x1050 (+6720), 24 bits
 Mode 0x037c: 1920x1200 (+1920), 8 bits
 Mode 0x037d: 1920x1200 (+7680), 24 bits
 Config Status: cfg=new, avail=yes, need=no, active=unknown

Ich kann mich nun Entscheiden, ob ich den Dezimalen Wert (1280×800) oder den Hexadezimalen Wert später eintragen möchte, die Wäre 0x0360 und ist in Zeile 19 zu finden.
Nun bearbeitet man die Datei /etc/default/grub und setzt GRUB_GFXMODE= auf seinen Wert:

# If you change this file, run 'update-grub' afterwards to update
 # /boot/grub/grub.cfg.

GRUB_DEFAULT=0
 GRUB_TIMEOUT=5
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
 GRUB_CMDLINE_LINUX_DEFAULT="quiet"
 GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
 # This works with Linux (no patch required) and with any kernel that obtains
 # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
 #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
 #GRUB_TERMINAL=console

# The resolution used on graphical terminal
 # note that you can use only modes which your graphic card supports via VBE
 # you can see them in real GRUB with the command `vbeinfo'
 GRUB_GFXMODE=1280x800

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
 #GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
 #GRUB_DISABLE_LINUX_RECOVERY="true"

# Uncomment to get a beep at grub start
 #GRUB_INIT_TUNE="480 440 1"

Jetzt kommt das knifflige an der Sache, damit die Auflösung auch erhalten bleibt muss man eine Datei von Debian Squeeze umschreiben /etc/grub.d/00_header, keinen Fehler machen, sonst wird es mit der Generierung der /boot/grub/grub.cfg sehr schwer und ein booten kann unmöglich gemacht werden:

if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
 set gfxmode=${GRUB_GFXMODE}
 load_video
 insmod gfxterm
 fi

Ändert man in :

if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
 set gfxmode=${GRUB_GFXMODE}
 set gfxpayload=keep
 load_video
 insmod gfxterm
 fi

Und kann danach mit einem update-grub2 die /boot/grub/grub.cfg neu schreiben lassen.
Wer noch Lust hat kann ja in der Datei /etc/default/grub sein bootloader Mario spielen lassen :
GRUB_INIT_TUNE=“1000 334 1 334 1 0 1 334 1 0 1 261 1 334 1 0 1 392 2 0 4 196 2″

3 Gedanken zu „Debian Squeeze: TTY Auflösung Schriftgröße“

  1. Bist du bei deinen Recherchen zufällig mal darüber gestolpert, wie man auf *einfache* Weise wieder einen richtigen Textmodus bekommt? Ein paar Minuten googeln haben bei mir nur relativ aufwendige Methoden zu Tage gefördert (schon wieder ein paar Wochen her). Einige sind sogar lieber zu syslinux bzw. lilo zurück, weil das einfacher war …

  2. Mit einfachem Textmodus meine ich einen, wo die Grafikkarte die Darstellung der Schrift übernimmt und man der nur sagt, nimm bitte 80×50 Zeichen. Also quasi so ein Modus, wie sich das Bios nach dem Einschalten meldet (ja, ich weiß, es gibt auch schon grafisch aufgehübschte Bios-Versionen).

    Ich habe bei meinem Server eine uralte ATI Rage128 drin, und aus mir unerfindlichen Gründen ist die vom Debian-Grub2 verwendete Auflösung (weiß nicht genau, welche das ist, würde auf 800×600 raten) bei der Textausgabe extrem langsam, man kann beim Scrollen zuschauen. Im Textmodus, den ich vor dem Update auf Lenny mit Grub1 verwendet habe, war das definitiv besser, und ich wollte mit wenig Aufwand diesen Zustand wieder haben.

    Die Konfigurationsdatei von grub1 fand ich fast selbsterklärend, die von grub2 – naja. Ich glaube, ich habe die Lösung gerade gefunden: GRUB_GFXPAYLOAD_LINUX auf „text“ setzen soll helfen. Muss ich mal probieren.

  3. Hi Usul,
    was meinst Du mit einfachem Textmodus?
    Wenn es dir darum geht ohne Splash zu booten, kannst Du ihn auch direkt wieder ausschalten.
    Und mit GRUB2 sehe ich keine Herausforderungen, man sollte sich halt mal die Anleitungen zu GRUB2 durchlesen, da GRUB2 ziemlich simpel gehalten wurde und mir durch die einzelnen Konfigurationsdateien das Leben wirklich sehr einfach macht. Ich war auch mal ein LiLo-Fan, aber bin es lange schon nicht mehr.

Kommentare sind geschlossen.