Consola en mode framebuffer a les targes nVidia

  • warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/gilug.org/www/site.tree/) in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 802.
  • warning: fopen(): Filename cannot be empty in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 803.
  • El fitxer no s'ha pogut crear.

Per tal que la consola arranqui amb la resolució desitjada (1024x768@75Hz, en el meu cas), amb la majoria de drivers de framebuffer es poden passar paràmetres de boot al kernel del tipus vga=0x318. Però amb el driver de framebuffer de nVidia això no va, i arranca sempre a 640x480. Es clar que es podria fer servir el driver VESA VGA, però llavors perdríem l'acceleració addicional del driver nadiu.

Fa uns dies vaig escriure un petit micro-howto a palamos.net sobre com configurar el framebuffer de manera genèrica (sense tenir en compte el driver de video). D'aquesta manera es pot especificar quina resolució es vol, però té l'inconvenient que fins que l'init no engega el script que executa la instrucció fbset, la consola segueix a 640x480. A més a més, només canvia la resolució de tty1 i deixa les altres malament.

Així ja podia anar tirant, però el tema m'anava fent rau-rau al cap. Així que ahir al vespre vaig posar-me a porquejar el codi font del kernel 2.4.20 a veure què hi podia fer.

Em vaig estar mirant si hi ha alguna manera de passar al driver la resolució desitjada, encara que fos a través d'un fitxer de configuració, però no. Al driver només hi ha el codi just per tal que tot funcioni de manera mínima. Però al fitxer fbdev.c hi ha una estructura que especifica els paràmetres de la resolució per defecte. Vaig substituir-los pels de la resolució que jo volia (copiant les dades del fitxer /etc/fb.modes), vaig recompilar el kernel i BINGO!

Properament modificaré el micro-howto amb els detalls de l'operació, però amb això els més impacients ja tenen pistes de per on anar.

resolució de les tty

home ... jo tinc vga=792 i es veu prou bé ... i respecte al que deies de que només agafa la primera tty ... a mi me les agafa totes, això si, en el /etc/lilo.conf hi he posat el vga=792, suposo que no has volgut dir això, però ho apunto com a anèx pq crec que potser interessant.

fbdev

Em sembla que l'article parla del framebuffer de nvidia, no del framebuffer genèric (fbdev)

Salut!

re: resolució de les tty

Precisament he escrit aquestes instruccions perquè, tal com explico al primer paràgraf, això que dius no funciona amb el driver framebuffer específic de nVidia. Probablement tu estàs fent servir el driver VESA VGA tot i que tens una tarja nVidia.

Per saber quin driver fas servir, executa aquesta instrucció:

# grep fb0 /var/log/dmesg

si fas servir el driver VESA VGA contestarà:

fb0: VESA VGA frame buffer device

i la instrucció:

# grep rivafb /var/log/dmesg

si fas servir el driver nVidia contestarà:

rivafb: PCI nVidia NV10 framebuffer ver 0.9.3 (bla-bla)

on bla-bla és informació sobre la tarja que tens (GPU, Memòria i adreça que ocupa)

pos uso el fb0

faig servir el fb0, ja que he executat les comandes que m'has nombrat anteriorment i el resultat és el següent:
dats(arrova)locionAntimosquitos:~$ grep fb0 /var/log/dmesg
fb0: VESA VGA frame buffer device
dats(arrova)locionAntimosquitos:~$ grep rivafb /var/log/dmesg
dats(arrova)locionAntimosquitos:~$
Ho tinc així pq si uses el driver de nvidia amb el framebuffer, em trobava que em penjava la màquina, en canvi si ho tinc així, encara no m'ha donat cap tipus d'error, però a les X uso el driver de nvidia, ja que vull tenir l'acceleració 3d de la tarjeta per poguer jugar al quake 3 i altres jocs sense haver de mortificar la cpu del ordinador
potser morirem en l'intent ... però com a mínim morirem essent lliures!!!


Warning: Table './gilugbitac/accesslog' is marked as crashed and last (automatic?) repair failed query: INSERT INTO accesslog (title, path, url, hostname, uid, sid, timer, timestamp) values('', 'node/38', 'http://www.gilug.org/node/38', '172.16.8.20', 0, 'tujg7o4n0hvg5uuenbhr2tprj6', 4, 1711704269) in /srv/www/gilug.org/www/site.tree/public/includes/database.mysql.inc on line 136