Main Menu

Mesaje recente

Members
Stats
  • Total Posts: 17,786
  • Total Topics: 1,234
  • Online today: 224
  • Online ever: 340
  • (22 November 2024, 00:10)
Users Online
Users: 0
Guests: 246
Total: 246

SVGATextMode

Started by ~Empathy~, 29 December 2006, 18:53

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

~Empathy~

Isi mai aduce aminte cineva se SVGATextMode? Probabil ca nu, asa ca o sa va spun ca este cea mai buna inventie de la painea prajita incoace.

SVGATextMode a fost un program scris in 1996 pentru kernel 1.3, care permitea setarea modurilor TEXT cu rezolutie superioara in consola. Atentie ce am spus -- TEXT. Se diferentiaza de solutia de calitate indoielnica numita _framebuffer_. Framenufferul este un hack. Nu se seteaza un mod text, ci un mod grafic. Evident /dev/ttyX nu are vreo treaba cu grafica, asa ca se foloseste un wraper care emuleaza modul TEXT, in acest mod grafic. Care e problema principala? In primul rand viteza -- este extrem de incet. Daca dati man la rezolutia de 1280x1024 chiar si pe cel mai bun PC, o sa ia cel putin 1 secunda. Pentru PC-uri cu mai putin de 1GHz, nici nu se pune problema folosirii framebufferului.

Sa ne intoarcem la programul nostru. SVGATextMode. El este extrem de bun in teorie dar are 10 ani. E mort. A fost scris pentru kernel 1.3 si gcc... nu stiu... 2.ceva sau chiar mai putin. Nu se compileaza cu kernel 2.6 si gcc 4. Am scris niste patchuri mici pentru a se putea compila fara probleme, desi mai sunt unele buguri de rezolvat. Am mai patchuit codul sursa pentru a putea folosi rezolutii superioare celei de 1024x768. Am aplicat niste patchuri scrise de habar nu am cine -- imi pare rau -- nu am gasit autorul acestor patchuri -- patchuri pentru folosirea placilor NVIDIA.

Am trimis patchruile asazisului "autor" al softului de pe sourceforge dar nu a mai dat nimeni de el din 2000.

Anyway -- ideea e urmatoarea. Se downloadeaza sursa, eventual se modifica makefile-ul, se compileaza si se instaleaza. Momentan se instaleaza in /usr/local cu man-urile in /usr/local/man. Configul e in /usr/local/etc. Modificati daca nu va convine ceva (CFLAGURI, LDFLAGURI etc.).

Ar trebui sa mearga dar beware... Nici sa nu va treaca prin caz sa rulati programul daca folositi framebuffer. Dezactivati intai framebufferul. Daca il rulati in timp ce modulul de fb e pornit o sa suprascrieti aprox 16kB din memoria kernelului. Asta deoarece am modificat memoria alocata VGA-ului la 64KB. default e mult mai putin, dar o valoare mare este necesara pentru folosirea rezolutiilor superioare. In mod normal kernelul linux de la nu stiu ce valoare in plus rezerva 64kB pentru VGA. Cel putin kernelul meu asa face default, sper ca si al vostru pentru ca daca nu e de destul de grav.

Nu folositi nimic in afara de modeline-urile SVGA. Puteti incerca dar probabil ca nu va merge, cel putin nu folosind NVIDIA. Eu am scris codul respectiv si stiu ca nu are cum sa mearga.

Daca totusi vreti sa folositi alt modeline, nu are rost sa incercati sa calculati unul. Codul care se ocupa de setari e foarte buggy si nu merge. Cel mai bine este sa luati modeline-ul din Xorg. Il puteti lua din log daca setati verbosity 4.

In principiu fisierul de configurare e destul de straightforward. Trebuie sa stiti ce-i aia un modeline.

Here it is. Codul sursa + binare:
http://www.linuxsoft.ro/upload/SVGATextMode.tar.bz2

/edit

Cel mai bine este sa adaugati o intrare in inittab ca sa ruleze la boot. De exemplu eu am adaugat:
y:3:once:/usr/local/sbin/SVGATextMode -v v132x55 1>/dev/null 2>/dev/null

Dupa cum vedeti, am trimis outputul la program in /dev/null. Atat stdout cat si stderr.

Sa se inteleaga CLAR ca e ultra ALPHA software. Folositi-l doar daca nu aveti nimic de pierdut :). Si incercati sa folositi custom modelines doar daca vreti sa ma ajutati sa fac programul mai bun :). In acest caz compilati programul debug :).
We dance, and the music dies...