от Атанас Мавров(16-12-2002)

рейтинг (-5)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Може би много от вас са си задавали въпроса защо пустия монитор когато е в конзолен режим не може да работи с някаква що го-де поносима честота, а всичко трепти... и само след 5 минути абота получаваш същото главоболие както и при работа с някоя от така "обичаните" от всички нас версии на една друга ОС. От много време се чудех как да разреша този проблем... Във листа на LUG-BG /www.linux-bulgaria.org/ ми даваха множество съвети без помощта на които тези редове нямаше да бъдат възможни. И така накрая след много усилия съчетани с най-различни експерименти, догадки и не дотам добри идеи успях да постигна /надявам се/ задоволителен резултат. А ето по какъв дълъг път минах :-). Само тук искам да уточня, че става въпрос за видеокарта на NVidia. Трябва да се има предвид, че някои от нещата се отнасят само за тези карти. И така опит първи:
-ами това предполагам всеки от вас го е пробвал но все пак... Идеята в началото бе, да намеря начин без допълнителни програми а само с наличните във всяка една дистрибуция да постигна желания резултат. И така реших да пробвам с VESA frame
buffer. Компилирах го от ядрото и пробвах с възможностите на lilo да променя картинката. За тези които не знаят какво да направят могат да пробват следното /е разбира се трябва да използвате lilo :-)/:
-във файла /etc/lilo.conf потърсете ред на който пише vga=... В нашия случаи направете реда да изглежда vga=ask. След това инсталирайте lilo с направените в него промени /като изпълните командата lilo/ и рестартирайте. При начално
зареждане ще се появи възможност за избор. Опитайте всички възможности, надявам се да успеете да решите своя проблем още тук. Повече информация може да намерите в документацията на ядрото /Documentation/fb/vesafb.txt/. Е все пак при мен
нещата не се развиха по толкова лесен начин. Въпреки опитите които правих положението можеше да се влоши, но подобрение нямаше. Затова след ново запитване във форума направих втори опит:
- Както вече споменах използвам карта на NVidia. Може би това не е най-добрия вариант за линукс каквото е мнението на някои но реших да се боря до край :-). И така за да работи този вариант се нуждаем от включена поддръжка на NVidia драйвера /или каквато карта ползвате :-)/ в ядрото. След това използваме
програмата fbset. С нейна помощ може да зададете различни рeжими на работа като разделителна способност и честота на обновяване. Тук съществува и една разновидност. Ако не искате да ползвате fbset то тогава може да приложите следния вариант. В ядрото потърсете драйверите за видеокарти на NVidia. и така
съществува един файл fbset.c. В него трябва да редактирате редовете отнасящи се до разделителната способност, цвета и т.н. Съответните стойности може да вземете от конфигурационния файл на пакета fbset. Но тук изникна един не съвсем очакван проблем. За графичната среда исках да използвам драйверите на NVidia, макар и да са доста бъгливи все пак може да използват възможностите на картата, което в някой случай е от голяма полза. Е при мен основния проблем беше как да гледам филми на цял екран без да накъсват или да се разминава картина и звук. Е
разработчиците на MPlayer не си губят времето и добавиха видео драйвер използващ sdl библиотеките. Картината наистина вече е на цял екран... но проблема се появи с разминаването на картината и звука. И така явно не бях постигнал желания
резултат затова отново опитах да намеря отговор на въпроса които търсех и с помощта на LUG мисля, че намерих сравнително приемливо решение. И така преминах към опит трети:
-Явно нещата с поддръжката на някой карти от ядрото няма да се оправи, поне докато производителите не благоволят да дадат някакво описание на работа. Е естествено поради страха от конкуренцията това може би скоро няма да стане. И така получава се един затворен кръг които за съжаление е във вреда на
потребителите. Питах за алтернативен вариант на моя въпрос. И ето отговора - една много малка програмка която реши проблема с работата на монитора в конзола а именно SVGATextMode.  И така след като я инсталирате редактирайте конфигурационният файл. Това не е трудна задача особено за онези които са се занимавали с конфигурационния файл на X сървъра. И така след направената
редакция надява се нещата да са потръгнали. Е трябваше да изключа поддръжката на видео картата от ядрото и на нейно място да оставя поддръжка на VESА frame buffer, но резултата поне за мен беше задоволителен. И за да обобщя ето предимствата и недостатъците на всеки един от трите метода според мен.
- първи метод: предимства-лесна конфигурация, стандартни пакети които ги има във всяка дистрибуция; недостатъци- специално при мен нямаше промяна или ако
имаше то не беше в посоката в която бих желал;
-втори метод: предимства-възможен избор на различна разделителна способност и различна честота, включване на frame buffer което е добро решение за някои графични пакети, евентуално използване на драйвер от ядрото което оптимизира
работата на драйвера; недостатъци-изисква допълнителна програма, поне при картите на NVidia има несъвместимост между включен драйвер в ядрото и използването на външен драйвер
-трети метод: предимства-значително по-голям избор от различни разделителни способности и честоти, не е нужно включването на поддръжка на драйвер в ядрото,което позволява използването на външни драйвери, лесна конфигурация и използване; недостатъци-изисква използването на допълнителна програма, тъй като не се използва драйвер от ядрото липсва и поддръжката на frame buffer, възможно е да възникнат проблеми с шрифтовете в конзолата.

ВРЪЗКИ:
http://www.ibiblio.org/pub/Linux/utils/console/
http://packages.qa.debian.org/f/fbset.html
Документация в линукс ядрото.

Благодарности: Искам да благодаря на всички които спомогнаха за написването на тази статия и най-вече на потребителите на LUG-BG.

Уточнение: Не съм специалист нито в софтуера нито в хардуера. С горните редове описах пътя които изминах докато успея да постигна целта си. Не зная дали нещата са общо валидни но се надявам написаното да е в полза на някого.


<< За пишещите на PHP | Файлът XF86Config или какво се крие зад завесата >>