Nowe posty

xx Odpowiednie wykorzystanie rdzeni P i E procesora (1)
Dzisiaj o 06:44:59
xx Samba DC/AD problem z DNS (0)
2024-07-25, 12:42:23
xx DNS i WWW na virtualbox (4)
2024-07-24, 10:30:38
xx Instalacja Manjaro Linux (11)
2024-07-13, 22:57:31
xx Linux Lite 6.6. Po uruchomieniu z DVD przeglądarka Chrome jest nieaktywna (12)
2024-07-10, 22:33:30
xx Laptop MSI CR500 - nie akceptuje linuksa (6)
2024-07-03, 05:30:18
xx Co to jest ? (3)
2024-07-02, 13:36:58
xx Nowa wersja libreoffice (1)
2024-06-30, 18:22:49
xx Dystrybucja - środowisko graficzna dla amigowca (MUI) (4)
2024-06-30, 12:14:25
xx Jaki kod błędu zwracać z kernela? (3)
2024-06-09, 12:29:22

Autor Wątek: Framebuffer - odswiezanie i rozdzielczosc  (Przeczytany 12852 razy)

--wojtek--

  • Gość
Framebuffer - odswiezanie i rozdzielczosc
« Odpowiedź #45 dnia: 2005-10-05, 01:47:03 »
2005-09-02 17:54:20 olka napisał:

> 2005-08-28 11:17:09 mordimmer napisał:
 >
 >  > Dobra. ja używam Slacka 10.1, kernel 2.6.12.5 oraz GF4 mx (a pozatym słucham metalu i
 > jestem do
 >  > wzięcia ;->).
 >
 > A to się chyba nie najlepiej składa, bo ja preferuję muzyke klasyczną ;-)
 > a tak na poważnie,
 >
 >  >Odświeżanie chwilowo jest stale i wynosi
 >  > 60Hz dla konsoli
 > Hmm... chwilowo? z tego co się wywiedziałam to nie wygląda to na sprawę przejściową, poza tym
 > praca przy takim odświeżaniu w trybie graficznym grozi ślepotą ;)
 >
 >  > Opcje kernela które trzeba wybrać dla wsparcia innych trybów to kolejno:
 >  > support for frame buffer devices FB
 >  > VESA VGA graphics support
 >  > VGA text console (jak się coś spapra to jest text mode)
 >  > Framebuffer Console support
 >  > Select compiled-in console fonts
 >  > VGA 8x16 font
 >  
 > Ustawiłam dokładnie to, co kolega radził i d...
 > FB nie działa
 > open /dev/fb0: No such file or directory
 >
 > ---------------------------------------
 >
 > ogólnie rzecz ujmując utknęłam w martwym punkcie, pomimo przeczytania dokumentacji do fb, wielu
 > z dostępnych manuali (slackware, gentoo, debian), a także wypowiedzi na róznych nie tylko
 > slackowych forach pod kątem fb i tej karty oraz tylokrotnej rekompilacji jądra, ze już
 > przestałam liczyć :D. Pozostaje tylko rwać włosy z głowy albo iść na wieczorny spacer...
 >
 > Uzyskane wnioski:
 > Slackware 10.1 + 2.6.12.3
 > *vesa (sama)
 > nie działa fb
 > *vesa +fb_vga16
 > fb działa, ale tylko na VGA16
 > (Frame buffer device information:
 >     Name        : VGA16 VGA)
 >     nie można ustawić trybu pracy przez vga=jakiś_tryb_graficzny, mimo, że zgodny z zawartością
 > fb.modes
 >     -zawsze: undefined mode number, a dla vga=ask tylko tryby tekstowe
 > *vesa + VGA16 +riva(jako moduł)    
 >  j/w (wyczytałam, że sterownik dla fb musi być wkompilowany w jądro, bo fb jest uruchamiane
 > przed załadowaniem modułów, nie wiem czy to prawda, ale tłumaczyłoby dlaczego działa na vga a
 > nie rivie)
 >  *riva (sama)
 >  nie działa fb
 >  *nvidia (sama)
 >  działa fb ale nie można ustawić domyślnie trybu dla wszystkich konsoli przez lilo- uruchamia
 > sie w trybie domyslnym dla vesy: 640x480-60 (można zmienić ręcznie przez fbset)
 >
 > Najdziwniejsze jest dla mnie jednak co poniżej (może czegoś nie wiem i dlatego się dziwię :D)
 > Archlinux
 >    +2.6.12.3
 > *fb_nvidia
 > fb działa, ale tylko w 640x480-60 (co można zmienić przez fbset)
 >
 >     +2.6.12
 > *vesa(sama)  - config identyczny jak w przypadku slacka
 > fb działa i to domyślnie w trybie 800x600-75 ! Minus: ekran przesunięty jest dość znacznie w
 > prawo (co oczywiscie da sie skorygowac recznie za pomocą fbset)
 > Frame buffer device information:
 >     Name        : VESA VGA
 > a jak w lilo pojawi się jakikolwiek zapis vga=... (np vga=ask) to w podpowiedziach ukazują sie
 > tylko tryby tekstowe a sterownikiem fb jest VGA16 :
 > Frame buffer device information:
 >     Name        : VGA16 VGA
 > a w .configu TEGO kernela stoi:
 > # CONFIG_FB_VGA16 is not set  
 >
 > Skopiowanie w/w kernela do slacka(chciałam mieć absolutną pewnośc co do identyczności
 > uruchamianego kernela) skutkuje uruchomieniem fb na sterowniku VGA16
 >
 > -------------------
 >
 > Skoro nie udało mi się uzyskać zadawalajacych rozdzielczości na wszystkich konsolach przez wpis
 > w lilo, próbowalam ustawić to przez odpowiednie wpisy w różnych skryptach:
 >
 > 1.)Dopisanie do /etc/inittab (testowane zarówno w slacku jak i archlinuxie)
 > fb:2345:wait:/usr/sbin/fbset -a 1024x768-75
 > co opatrzone było komentarzem na stronce, z której to wyczytałam:
 > "Success! My virtual terminals all run at a nice resolution"
 > niestety, ten zapis ustawił mi jedynie parametry dla pierwszej konsoli, co więcej, nie
 > znalazłam w manualu do fbset żadnej opcji -a (czy też sugerowanej w innych poradach wersji
 > --all)
 > 2.)Spróbowałam więc łopatologicznie
 > fb1:2345:wait:/usr/sbin/fbset 1024x768-75 tty1
 > fb2:2345:wait:/usr/sbin/fbset 1024x768-75 tty2
 > ...
 > fb6:2345:wait:/usr/sbin/fbset 1024x768-75 tty6
 >
 > efekt: jak wcześniej
 >
 > 2.)Trochę przez zmałpowanie, próbowałam ustawić to w rc.local, kierując się skryptem
 > ustawiającym numlocka na wszystkich konsolach
 > echo "Ustawiam parametry framebuffera"
 > for i in 1 2 3 4 5 6 ; do
 > /usr/sbin/fbset 800x600-75/dev/null
 > done
 > ale efekt: jak wcześniej
 > z tym, że to była akurat moja własna radosna twórczośc ;), więc i nie dziwota, że nie działa.
 > (Testowane tylko na slacku, bo w archu, z uwagi na troche inna strukturę i nazewnictwo urządzeń
 > w ogóle się skrypt wysypywał bo nie umiałam poprawnie odwołać się do odpowiednich konsoli)
 >
 > Pukając do różnych drzwi uzyskałam najróżniejsze porady, włącznie z  odpowiedzią od jednego
 > użytkownika fb na GF400, że najłatwiej zwalić winę na sterowniki/linuxa zamiast samemu poszukać
 > rozwiązania, ale to już by musiało sugerować totalny debilizm z mojej strony, jeśli po tylu
 > różnych próbach nie mogę uruchomić fb w satysfakcjonujący sposób.
 >
 > Dziękuję wszystkim za dobre chęci i próbę pomocy,
 > pozdrawiam
 > olka
 >
 > PS Mam nadzieję, że tak długa wypowiedź nie zostanie uznana za forumowy spam :D. A jeśli, to
 > bardzo przepraszam.

---------------------------------------------------------------------
#!/bin/sh

for i in 1 2 3 4 5 6 12 ; do
    chvt $i ;fbset 1024x768-75
done

chvt 0

to powinno załatwić sprawe :)


olka

  • Gość
Framebuffer - odswiezanie i rozdzielczosc
« Odpowiedź #46 dnia: 2005-10-05, 20:13:58 »
2005-10-05 01:47:03 --wojtek-- napisał:

 > #!/bin/sh
 >
 > for i in 1 2 3 4 5 6 12 ; do
 >     chvt $i ;fbset 1024x768-75
 > done
 >
 > chvt 0
 >
 > to powinno załatwić sprawe :)
 >

Na wstępie: wielkie dzięki ! :-)
Jestem trochę w kropce, bo problem już rozwiązany i nie wiem czy mogę kontynuować i bez tego nieprzyzwoicie już długi wątek, ale co tam, najwyżej się mi oberwie :D.

Faktycznie, podany skrypt załatwia sprawę, ale nie do końca...
W postaci takiej, jaka została podana ustawia rozdzielczość zgodnie z żądaniami, na wszystkich konsolach, ALE "blokuje" przy okazji konsolę z której został wywołany (tj. najpierw przełącza się monitor w żądany tryb, potem chwilę nic się nie dzieje - zupełnie czarny ekran, potem w pierwszej linii ekranu pojawia się kursor w postaci "_" i nie reaguje w ogóle na wciskanie klawiatury), co ciekawe, przełączenie się na inną konsolę i powrót na "zablokowaną", powoduje jej "odblokowanie" :
uwidaczniając komunikat:
chvt: VT_ACTIVATE: No such device or address

usunięcie ze skryptu linijki: chvt 0, skutkuje działaniem identycznym jak w/w, ale bez żadnego komunikatu.

Skrypt testowałam na systemie Slackware 10.1 + jądro 2.6.12.3 z wkompilowanym sterownikiem nvidii (dla sterownika vesa skrypt nie działa, z wyjątkiem tego, że blokuje konsolę - z powodów wymienionych w końcu wątku)

pozdrawiam
olka

PS Z dużą dozą prawdopodobieństwa dopuszczam możliwość, że przedstawiony przez Kolegę Wojtka skrypt wszystkim działa, a tylko mój sprzęt znowu czegoś nie implementuje ;-)

chmooreck

  • Gość
Framebuffer - odswiezanie i rozdzielczosc
« Odpowiedź #47 dnia: 2005-10-06, 11:52:07 »
2005-10-05 20:13:58 olka napisał:

> 2005-10-05 01:47:03 --wojtek-- napisał:
 >
 >  > #!/bin/sh
 >  >
 >  > for i in 1 2 3 4 5 6 12 ; do
 >  >     chvt $i ;fbset 1024x768-75
 >  > done
 >  >
 >  > chvt 0
 >  >
 >  > to powinno załatwić sprawe :)
 >  >
 > usunięcie ze skryptu linijki: chvt 0, skutkuje działaniem identycznym jak w/w, ale bez żadnego
 > komunikatu.

a nie powino byc czasem na koncu
chvt 1
zamiast chvt 0 ?

chmooreck

  • Gość
Framebuffer - odswiezanie i rozdzielczosc
« Odpowiedź #48 dnia: 2005-10-06, 11:58:01 »
jeszcze jedno.. chyba nie trzeba uzywac chvt

z man'a fbset:

 Frame buffer device nodes:

-fb " <" device >
    device gives the frame buffer device node. If no device via -fb is given, /dev/fb0 is used

czyli powinno wystarczyc:

for i in 0 1 2 3 4 5 11 ; do
  fbset -fb /dev/fb$i 1024x768-75
done

czy jakos tak ;-)