Próbuję sprawić, by karta tunera PCMCIA działała na moim bezgłowym serwerze domowym z systemem Debian Squeeze. Teraz, gdy mam bardzo duże problemy ze znalezieniem właściwej linii poleceń do przechwycenia, transkodowania końcowego strumienia wideo do sieci za pomocą VLC, zdecydowałem się iść krok po kroku i najpierw pracować na lokalnym wyjściu.
Tu pojawia się problem: wydaje się, że nie ma urządzenia buforującego ramki (/ dev / fb0), do którego można by uzyskać dostęp do wyświetlania grafiki na dołączonym ekranie! I rzeczywiście zauważyłem, że nie mam obrazu pingwina z Linuksa podczas rozruchu (wcześniej nie zwracałem uwagi, ponieważ ekran jest podłączony, ale zawsze wyłączony, a mimo to komputer jest zawsze włączony).
Ponieważ nie znam się dobrze na grafice systemu Linux, chciałbym zrozumieć:
- Czy jest to związane z moim konkretnym sprzętem (patrz poniżej)? Czy może jest specyficzny dla Debian Squeeze / wersji jądra / ...?
- Czy jest jakiś sterownik, który muszę ręcznie zainstalować / załadować?
Teraz kilka ogólnych informacji:
- Komputer nie ma dedykowanej karty graficznej, ale wbudowany mikroukład graficzny (Intel G31 Express), osadzony na płycie głównej (Gigabyte G31M-ES2L)
- Nie chcę instalować w pełni funkcjonalnego serwera X, po prostu mam urządzenie buforujące ramki do tego konkretnego testu
Wszelkie pomysły / komentarze na ten temat?
źródło
/dev/fb0
działać, pamiętaj o mojej odpowiedzi. Rzadko ludzie z faktycznym doświadczeniem na mniej powszechny temat, poruszają się, aby udzielić odpowiedzi na kwaterę główną. Istnieją na UNIX-SE, jest to stosunkowo rzadki temat, więc istnieje mniej ekspertów.Odpowiedzi:
Mogę odpowiedzieć na twoje pytanie, wcześniej pracując z Linuksem FB.
Jak Linux robi FB.
Najpierw musisz mieć wsparcie FrameBuffer w twoim jądrze, odpowiadające twojemu sprzętowi. Większość współczesnych dystrybucji ma obsługę za pośrednictwem modułów jądra. Nie ma znaczenia, czy twoja dystrybucja jest wstępnie skonfigurowana z logo rozruchowym, nie używam go i mam wsparcie FB.
Nie ma znaczenia, czy masz dedykowaną kartę graficzną, zintegrowana będzie działać tak długo, jak obsługiwany jest sprzętowy bufor ramki.
Nie potrzebujesz X, który jest najbardziej kuszącym aspektem posiadania FrameBuffer. Niektórzy ludzie nie wiedzą lepiej, więc zalecili jakąś formę X, aby obejść swoje nieporozumienia.
Nie musisz bezpośrednio pracować z FB, co wiele osób błędnie zakłada. Bardzo niesamowitą biblioteką do programowania w FrameBuffer jest
DirectFB
to, że ma nawet podstawowe wsparcie akceleracji. Zawsze sugeruję przynajmniej sprawdzenie tego, jeśli zaczynasz w pełni funkcjonalny projekt oparty na FB (przeglądarka internetowa, gra, GUI ...)Specyficzne dla twojego sprzętu
Użyj Vesa Generic FrameBuffer, jego moduły są nazywane
vesafb
. Możesz go załadować, jeśli masz dostępny, za pomocą poleceńmodprobe vesafb
. wiele dystrybucji wstępnie skonfigurowało go jako wyłączony, możesz się zalogować/etc/modprobe.d/
.blacklist vesafb
może być konieczne skomentowanie za pomocą pliku „#
,”blacklist-framebuffer.conf
lub innego pliku czarnej listy.Najlepszą opcją jest sterownik KMS specyficzny dla sprzętu. Głównym dla Intela jest Intel GMA, nie jestem pewien, jak nazywają się jego moduły. Będziesz musiał przeczytać o tym z dokumentów dystrybucyjnych. Jest to najlepiej działająca opcja FB, osobiście zawsze najpierw wybieram KMS, jeśli to możliwe.
Używaj starszych sterowników FB specyficznych dla sprzętu, niezalecane, ponieważ czasami są wadliwe. Unikałbym tej opcji, chyba że jest to konieczne w ostateczności.
Uważam, że obejmuje to wszystkie twoje pytania i powinien dostarczyć informacji, aby
/dev/fb0
udostępnić to urządzenie. Wszystko bardziej szczegółowe wymagałoby szczegółów dystrybucji, a jeśli masz trochę doświadczenia, RTFM powinien być wszystkim, czego potrzebujesz. (po przeczytaniu tego).Mam nadzieję, że pomogłem. Masz szczęście, że pytasz o jeden z moich tematów! Jest to zaniedbany temat w UNIX-SE, ponieważ nie wszyscy (świadomie) korzystają z Linux FrameBuffer.
UWAGA: UvesaFB czy VesaFB?
Być może przeczytałeś, że inni używają
uvesafb
govesafb
, ponieważ miał lepszą wydajność. Zasadniczo było to prawdą, ale nie w nowoczesnej dystrybucji z nowoczesnym sprzętem. Jeśli Twój sprzęt graficzny obsługuje tryb chroniony VESA (VESA> = 2.0) i masz nieco nowsze jądro,vesafb
to teraz jest lepszym wyborem.źródło
modprobe vesa
(pamiętam, że próbowałem przed zadaniem pytania tutaj), który się nie udaje, ponieważ moduł nie istnieje w moim systemie (FATAL: Module vesafb not found.
) -> będę musiał zrozumieć, czy jest to związane z moim sprzętem lub dystrybucją Linuksa (Debian Squeeze ). Dobra wiadomość jest taka, żemodprobe uvesafb
działa i tworzy/dev/fb0
urządzenie. Jednak teraz, gdy przeczytałem twoją odpowiedź, postaram się odpowiednio ustawić rzeczy i znaleźć sterownik KMS ...inteldrmfb
że przeprowadziłem kilka szybkich badań. Zawsze mam ATI, więc wsparcie związane z procesorami graficznymi Intela nie jest moją najmocniejszą stroną. Państwo może trzeba zainstalować pakiet dla niego, ale ja zobaczę, czy mogę się dowiedzieć.i915
, ale ładuje bufor bufora zwany inteldrmfb. Może być konieczne zainstalowanie pakietulibdrm-intel1
lub sprawdzenie, czy jest zainstalowany.W końcu znalazłem rozwiązanie mojego problemu !!
Przede wszystkim bardzo dziękuję wszystkim, którzy wnieśli swój wkład, w szczególności TechZillę, oraz szczegółowe wyjaśnienia, które przedstawił, bez których, jak sądzę, dawno by się poddał!
Zasadniczo wszystko, co należy zrobić, to włączyć tryb ustawiania (
modeset=1
) podczasi915
ładowania modułu jądra. Można to zrobić zwykłymi sposobami:/etc/modprobe.d
lub w wierszu poleceń:
W rzeczywistości nie musisz nic robić, jeśli instalujesz pakiet
xserver-xorg-video-intel
, który tworzy/etc/modprobe.d/i915-kms.conf
zawierającyoptions i915 modeset=1
. Jeśli jednak ktoś nie chce instalować X (jak w moim przypadku), KMS nie jest automatycznie włączany, co wyjaśnia, dlaczego urządzenie FrameBuffer nie zostało utworzone ...źródło
Możesz wypróbować wirtualny framebuffer, taki jak Xvfb (X virtual framebuffer).
Opis pakietu xvfb w squeeze
źródło
Tak długo, jak jest to standardowa instalacja Debiana, która nie ma nic wyszukanego i standardowego jądra, powinieneś mieć możliwość wypożyczenia konsoli VGA, która korzysta z urządzenia bufora ramki z parametrem jądra, takim jak „vga = 792” (czyli 24 bity 1024 × 768 ). Jasne, że jądro zgłasza to jako przestarzałe, ale działa.
Zobacz http://www.kernel.org/doc/Documentation/kernel-parameters.txt dla parametrów jądra. Co ciekawe, paremeter „vga =” nie wyświetla się jako przestarzały.
Pamiętaj o ponownym uruchomieniu update-grub (2) i polubień po zmianie.
Spójrz także na http://packages.debian.org/squeeze/svgalib-bin , nie jest idealny, ale pozwala ci robić fantazyjne grafiki na konsoli.
źródło
16
. Jest to również przestarzałe, co przynajmniej uznajesz pragmatycznie, co oznacza, że NIE NALEŻY Z nim robić nowych ustawień. Starevga=
śmieci nie uruchomią się, jeśli masz wyłączone moduły sprzętowe/etc/modprobe.d/
i wiele dystrybucji jest wstępnie skonfigurowanych jako takie.