Ich versuche, eine PCMCIA-Tunerkarte in meinem kopflosen Heimserver zum Laufen zu bringen, auf dem Debian Squeeze ausgeführt wird. Da ich große Probleme habe, die richtige Befehlszeile für die Aufnahme zu finden, das Video mithilfe von VLC zu transkodieren und an das Netzwerk zu übertragen, habe ich mich dazu entschlossen, Schritt für Schritt vorzugehen und zuerst an der lokalen Ausgabe zu arbeiten.
Hier kommt das Problem ins Spiel : Es scheint kein Framebuffer-Gerät (/ dev / fb0) zu geben, auf das zugegriffen werden kann, um Grafiken auf dem angehängten Bildschirm anzuzeigen! Und tatsächlich ist mir aufgefallen, dass ich beim Booten kein Linux-Pinguin-Image habe (habe vorher nicht darauf geachtet, da der Bildschirm angeschlossen ist, aber immer ausgeschaltet ist und der Computer sowieso immer eingeschaltet ist).
Da ich mit Linux-Grafiken nicht sehr vertraut bin, möchte ich Folgendes verstehen:
- Bezieht sich das auf meine spezielle Hardware (siehe unten)? Oder ist es spezifisch für Debian Squeeze / eine Kernel-Version / ...?
- Gibt es einen Treiber, den ich manuell installieren / laden muss?
Nun einige allgemeine Informationen:
- Der Computer verfügt nicht über eine dedizierte Grafikkarte, sondern über einen integrierten Grafikchipsatz (Intel G31 Express), der auf dem Motherboard integriert ist (Gigabyte G31M-ES2L).
- Ich möchte keinen X-Server mit vollem Funktionsumfang installieren, sondern nur ein Framebuffer-Gerät für diesen speziellen Test
Irgendwelche Ideen / Kommentare zu diesem Thema?
quelle
/dev/fb0
fertig sind, akzeptieren Sie bitte unbedingt meine Antwort. Selten kommen Leute mit wirklicher Erfahrung zu einem weniger verbreiteten Thema, um eine HQ-Antwort zu geben. Sie existieren unter UNIX-SE, einem relativ seltenen Thema, daher gibt es weniger Experten.Antworten:
Ich kann Ihre Frage beantworten, nachdem ich zuvor mit der Linux-FB gearbeitet habe.
Wie Linux seine FB macht.
Zuerst müssen Sie in Ihrem Kernel FrameBuffer-Unterstützung haben, die Ihrer Hardware entspricht. Die meisten modernen Distributionen unterstützen Kernelmodule. Es spielt keine Rolle, ob Ihre Distribution mit einem vorkonfigurierten Boot-Logo geliefert wird, ich verwende keines und habe FB-Unterstützung.
Es spielt keine Rolle, ob Sie eine dedizierte Grafikkarte haben. Die integrierte Grafikkarte funktioniert, solange der Hardware-Framebuffer unterstützt wird.
Sie brauchen kein X, was der verlockendste Aspekt des FrameBuffers ist. Einige Leute wissen es nicht besser, deshalb haben sie sich für eine Form von X ausgesprochen, um ihre Missverständnisse zu umgehen.
Sie müssen nicht direkt mit der FB arbeiten, was viele Leute fälschlicherweise annehmen. Eine großartige Bibliothek für die Entwicklung mit FrameBuffer
DirectFB
, die sogar grundlegende Beschleunigungsunterstützung bietet. Ich schlage immer vor, es zumindest auszuprobieren, wenn Sie ein FB-basiertes Projekt mit vollem Funktionsumfang starten (Webbrowser, Spiel, GUI ...).Speziell für Ihre Hardware
Verwenden Sie den Vesa Generic FrameBuffer, dessen Module aufgerufen werden
vesafb
. Sie können es mit den Befehlen laden, wenn Sie es zur Verfügung habenmodprobe vesafb
. Viele Distributionen vorkonfigurieren es deaktiviert, Sie können einchecken/etc/modprobe.d/
.blacklist vesafb
müssen möglicherweise mit einer#
, in einerblacklist-framebuffer.conf
oder einer anderen Blacklist-Datei auskommentiert werden.Die beste Option ist ein hardwarespezifischer KMS-Treiber. Die wichtigste für Intel ist Intel GMA, nicht sicher, wie die Module heißen. Sie müssen es in Ihren Distributionsdokumenten nachlesen. Dies ist die FB-Option mit der besten Leistung. Ich persönlich würde immer zuerst KMS verwenden, wenn dies möglich ist.
Verwenden Sie die für Legacy-Hardware spezifischen FB-Treiber. Diese werden nicht empfohlen, da sie manchmal fehlerhaft sind. Ich würde diese Option meiden, sofern nicht das letzte Mittel erforderlich ist.
Ich glaube, dies deckt alle Ihre Fragen ab und sollte die Informationen liefern, um dieses
/dev/fb0
Gerät verfügbar zu machen. Alles, was spezifischer ist, benötigt Distributionsdetails. Wenn Sie etwas Erfahrung haben, sollten Sie nur RTFM benötigen. (nachdem ich das gelesen habe).Ich hoffe ich habe geholfen, Sie haben Glück, dass Sie nach einem meiner Themen gefragt haben! Dies ist ein unter UNIX-SE vernachlässigtes Thema, da nicht jeder (wissentlich) den Linux-FrameBuffer verwendet.
HINWEIS: UvesaFB oder VesaFB?
Sie können Lese Menschen nutzen
uvesafb
übervesafb
, da es eine bessere Leistung hatte. Dies stimmte im Allgemeinen, aber nicht in einer modernen Distribution mit moderner Hardware. Wenn Ihre Grafikhardware den geschützten Modus VESA (VESA> = 2.0) unterstützt und Sie einen etwas neueren Kernel haben,vesafb
ist dies die bessere Wahl.quelle
modprobe vesa
(was ich mich erinnern kann, bevor ich die Frage hier gestellt habe), was fehlgeschlagen ist, weil das Modul auf meinem System nicht existiert (FATAL: Module vesafb not found.
) -> muss verstehen, ob dies mit meiner Hardware oder meiner Linux-Distribution zusammenhängt (Debian Squeeze) ). Gute Nachricht ist, dassmodprobe uvesafb
funktioniert und das/dev/fb0
Gerät erstellt. Nachdem ich Ihre Antwort gelesen habe, werde ich jedoch versuchen, die Dinge richtig einzurichten und den KMS-Treiber zu finden ...inteldrmfb
, ich habe es in kurzen Recherchen herausgefunden. Ich habe immer ATI, daher ist die Unterstützung von Intel GPUs nicht meine größte Stärke. Möglicherweise müssen Sie ein Paket dafür installieren, aber ich werde sehen, ob ich es herausfinden kann.i915
, aber es lädt den als inteldrmfb bekannten Framebuffer. Möglicherweise müssen Sie das Paket installierenlibdrm-intel1
oder prüfen, ob es installiert ist.Ich habe endlich die Lösung für mein Problem gefunden !!
Zunächst vielen herzlichen Dank an alle, die dazu beigetragen haben und insbesondere an TechZilla und die ausführliche Erklärung, ohne die ich wohl längst aufgegeben hätte!
Im Grunde ist es also alles, was getan werden muss, das Modesetting (
modeset=1
) zu aktivieren, wenn dasi915
Kernelmodul geladen wird . Dies kann auf die übliche Weise erfolgen:/etc/modprobe.d
oder in der Kommandozeile:
In der Tat, brauchen Sie nichts weiter zu tun , wenn Sie Paket installieren
xserver-xorg-video-intel
, die erstellt/etc/modprobe.d/i915-kms.conf
enthaltenoptions i915 modeset=1
. Wenn jedoch jemand X nicht installieren möchte (wie in meinem Fall), wird KMS nicht automatisch aktiviert. Dies erklärt, warum das FrameBuffer-Gerät nicht erstellt wurde.quelle
Sie können einen virtuellen Framebuffer wie Xvfb (X virtual framebuffer) ausprobieren.
Beschreibung des xvfb-Pakets in squeeze
quelle
Solange es sich um eine Standard - Debian - Installation mit nichts Besonderem und einem Standard - Kernel handelt, sollten Sie in der Lage sein, eine VGA - Konsole zu erwerben, die das Framebuffer - Gerät mit einem Kernel - Parameter wie "vga = 792" (24 Bit 1024 × 768) verwendet ). Sicher, der Kernel meldet es als veraltet, aber es funktioniert.
Siehe http://www.kernel.org/doc/Documentation/kernel-parameters.txt zu den Kernel-Parametern finden . Interessanterweise wird dort der Parameter "vga =" nicht als veraltet angezeigt.
Stellen Sie sicher, dass Sie update-grub (2) und ähnliche Programme nach der Änderung erneut ausführen.
Schauen Sie sich auch http://packages.debian.org/squeeze/svgalib-bin an, es ist nicht perfekt, aber es ermöglicht Ihnen, einige ausgefallene Grafikaufgaben auf einer Konsole auszuführen.
quelle
16
Verzögerungen. Es ist auch veraltet, was zumindest Sie anerkennen, was pragmatisch bedeutet, dass Sie KEINE NEUEN SETUPS MIT IHM TUN. Der altevga=
Müll bootet nicht, wenn Sie Ihre Hardwaremodule deaktiviert haben/etc/modprobe.d/
und viele Distributionen als solche vorkonfiguriert sind.