J'essaie de faire fonctionner une carte tuner PCMCIA sur mon serveur domestique sans tête, exécutant Debian Squeeze. Maintenant, comme j'ai de gros problèmes à trouver la bonne ligne de commande pour capturer, transcoder et diffuser la vidéo sur le réseau en utilisant VLC, j'ai décidé d'aller étape par étape et de travailler d'abord sur la sortie locale.
C'est là qu'intervient le problème: il ne semble pas y avoir de périphérique framebuffer (/ dev / fb0) auquel accéder pour afficher les graphiques sur l'écran ci-joint! Et en effet, j'ai remarqué que je n'ai pas l'image du pingouin Linux au démarrage (n'a pas fait attention avant car l'écran est attaché, mais toujours éteint, et de toute façon l'ordinateur est toujours allumé).
Comme je ne connais pas très bien les graphiques Linux, je voudrais comprendre:
- Est-ce lié à mon matériel particulier (voir ci-dessous)? Ou est-ce spécifique à Debian Squeeze / une version du noyau / ...?
- Existe-t-il un pilote dont j'ai besoin pour installer / charger manuellement?
Maintenant quelques informations générales:
- L'ordinateur n'a pas de carte graphique dédiée, mais un chipset graphique intégré (Intel G31 Express), intégré sur la carte mère (Gigabyte G31M-ES2L)
- Je ne veux pas installer un serveur X complet, juste avoir un périphérique framebuffer pour ce test particulier
Des idées / commentaires sur la question?
la source
/dev/fb0
opérationnel, assurez-vous d'accepter ma réponse. Il est rare que des personnes ayant une expérience réelle sur un sujet moins courant se déplacent pour donner une réponse au siège. Ils existent sur UNIX-SE, c'est un sujet relativement rare, donc moins d'experts existent.Réponses:
Je peux répondre à votre question, ayant déjà travaillé avec le FB Linux.
Comment Linux fait son FB.
Vous devez d'abord avoir le support FrameBuffer dans votre noyau, correspondant à votre matériel. La plupart des distributions modernes sont prises en charge via les modules du noyau. Peu importe si votre distribution est préconfigurée avec un logo de démarrage, je n'en utilise pas et j'ai le support FB.
Peu importe si vous avez une carte graphique dédiée, intégrée fonctionnera tant que le Framebuffer matériel est pris en charge.
Vous n'avez pas besoin de X, qui est l'aspect le plus attrayant d'avoir le FrameBuffer. Certaines personnes ne savent pas mieux, alors elles ont préconisé une certaine forme de X pour contourner leurs malentendus.
Vous n'avez pas besoin de travailler directement avec le FB, ce que de nombreuses personnes supposent à tort. Une bibliothèque très impressionnante pour développer avec FrameBuffer est
DirectFB
qu'elle a même un support d'accélération de base. Je suggère toujours au moins de le vérifier, si vous démarrez un projet basé sur FB complet (navigateur Web, jeu, interface graphique ...)Spécifique à votre matériel
Utilisez le Vesa Generic FrameBuffer, ses modules s'appellent
vesafb
. Vous pouvez le charger, s'il est disponible, avec les commandesmodprobe vesafb
. de nombreuses distributions le préconfigurent désactivé, vous pouvez vous enregistrer/etc/modprobe.d/
.blacklist vesafb
peut avoir besoin d'être commenté avec un#
, dans unblacklist-framebuffer.conf
ou un autre fichier de liste noire.La meilleure option est un pilote KMS spécifique au matériel. Le principal pour Intel est Intel GMA, ne sachant pas comment ses modules sont nommés. Vous devrez en prendre connaissance à partir de vos documents de distribution. C'est l'option FB la plus performante, personnellement, j'irais toujours KMS en premier si possible.
Utilisez les pilotes FB spécifiques au matériel hérité, non recommandés car ils sont parfois bogués. J'éviterais cette option, sauf en dernier recours.
Je crois que cela couvre toutes vos questions et devrait fournir les informations nécessaires pour que cet
/dev/fb0
appareil soit disponible. Quelque chose de plus spécifique nécessiterait des détails de distribution, et si vous êtes un peu expérimenté, RTFM devrait être tout ce dont vous avez besoin. (après avoir lu ceci).J'espère que j'ai aidé, votre chance vous posez des questions sur l'un de mes sujets! C'est un sujet négligé sous UNIX-SE, car tout le monde n'utilise pas (sciemment) le FrameBuffer Linux.
REMARQUE: UvesaFB ou VesaFB?
Vous pouvez avoir des gens utilisent lecture
uvesafb
plusvesafb
, car il avait de meilleures performances. Cela était généralement vrai, mais pas dans une distribution moderne avec du matériel moderne. Si votre matériel graphique prend en charge le mode protégé VESA (VESA> = 2.0), et que vous avez un noyau un peu récent,vesafb
c'est maintenant un meilleur choix.la source
modprobe vesa
(ce dont je me souviens d'avoir essayé avant de poser la question ici) qui échoue parce que le module n'existe pas sur mon système (FATAL: Module vesafb not found.
) -> devra comprendre si cela est lié à mon matériel ou à ma distribution Linux (Debian Squeeze ). La bonne nouvelle est que celamodprobe uvesafb
fonctionne et crée l'/dev/fb0
appareil. Cependant, maintenant que j'ai lu votre réponse, je vais essayer de configurer les choses correctement et de trouver le pilote KMS ...inteldrmfb
, je l'ai découvert en faisant des recherches rapides. J'ai toujours ATI, donc le support Intel GPU n'est pas mon point fort. Vous devrez peut- être installer un package pour cela, mais je vais voir si je peux le découvrir.i915
, mais il charge le Framebuffer connu sous le nom d'inteldrmfb. Vous devrez peut-être installer le packagelibdrm-intel1
ou vérifier s'il est installé.J'ai enfin trouvé la solution à mon problème !!
Tout d'abord, merci beaucoup à tous ceux qui ont contribué et en particulier TechZilla et l'explication détaillée qu'il a fournie sans laquelle je pense que j'aurais abandonné il y a longtemps!
Donc, fondamentalement, tout ce qui doit être fait est d'activer modesetting (
modeset=1
) lorsque lei915
module du noyau se charge. Cela peut être fait de la manière habituelle:/etc/modprobe.d
ou sur la ligne de commande:
En fait, vous n'avez rien à faire si vous installez un package
xserver-xorg-video-intel
, qui crée des/etc/modprobe.d/i915-kms.conf
conteneursoptions i915 modeset=1
. Cependant, si quelqu'un ne veut pas installer X (comme dans mon cas), alors KMS n'est pas automatiquement activé, ce qui explique pourquoi le périphérique FrameBuffer n'a pas été créé ...la source
Vous pouvez essayer un framebuffer virtuel comme Xvfb (X framebuffer virtuel).
Description du package xvfb dans squeeze
la source
Tant qu'il s'agit d'une installation Debian standard sans rien d'extraordinaire et d'un noyau standard, vous devriez pouvoir obtenir une console VGA de location qui utilise le périphérique framebuffer avec un paramètre de noyau tel que "vga = 792" (qui est de 24 bits 1024 × 768 ). Bien sûr, le noyau le signale comme obsolète, mais cela fonctionne.
Voir http://www.kernel.org/doc/Documentation/kernel-parameters.txt pour les paramètres du noyau. Fait intéressant, le paramètre "vga =" ne s'affiche pas comme obsolète.
Assurez-vous de relancer update-grub (2) et les likes après le changement.
Jetez également un œil à http://packages.debian.org/squeeze/svgalib-bin ce n'est pas parfait mais il vous permet de faire des trucs graphiques fantaisistes sur une console.
la source
16
décélérations héritées . Il est également obsolète, ce que vous reconnaissez au moins, de manière pragmatique, cela signifie NE PAS FAIRE DE NOUVELLES CONFIGURATIONS AVEC ELLE. Les vieillesvga=
ordures échoueront au démarrage, si vos modules matériels sont désactivés/etc/modprobe.d/
et que de nombreuses distributions sont préconfigurées comme telles.