web-dev-qa-db-fra.com

Aucun périphérique Framebuffer: Comment l'activer?

J'essaie de faire fonctionner une carte de syntoniseur PCMCIA dans mon serveur à domicile sans tête, exécution de Debian Squeeze. Maintenant, comme j'ai des problèmes très gros trouvant la ligne de commande correcte pour capturer, transcodez End flux de la vidéo sur le réseau à l'aide de VLC, j'ai décidé d'aller étape par étape et de travailler d'abord sur la sortie locale.

C'est là que le problème vient: Il semble y avoir un périphérique de framebuffer (/ dev/fb0) pour accéder à l'affichage de graphiques sur l'écran ci-joint! et j'ai remarqué que je n'ai pas l'image de pingouin Linux Au démarrage (n'a pas fait attention auparavant, car l'écran est attaché, mais toujours éteint, et de toute façon l'ordinateur est toujours allumé).

Comme je ne suis pas très familier avec Linux Graphics, je voudrais comprendre:

  • Est-ce lié à mon matériel particulier (voir ci-dessous)? Ou est-il spécifique à Debian Squeeze/Bernel Version/...?
  • Y a-t-il du pilote que j'ai besoin d'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, il suffit d'avoir un périphérique Framebuffer pour ce test particulier.

Des idées/des commentaires sur la question?

23
Federico

Je peux répondre à votre question, après avoir travaillé auparavant avec le Linux FB.

Comment Linux fait son fb.

  1. Vous devez d'abord avoir une prise en charge de la tramebuffer dans votre noyau, correspondant à votre matériel. La plupart des distributions modernes ont une prise en charge via des modules de noyau. Peu importe si votre distribution est préconfigurée avec un logo de démarrage, je n'utilise pas un support FB.

  2. Peu importe que vous ayez une carte graphique dédiée, intégré fonctionnera tant que la structure matérielle est prise en charge.

  3. Vous n'avez pas besoin de x, ce qui est l'aspect le plus séduisant d'avoir la tramebuffer. Certaines personnes ne savent pas mieux, ils ont donc préconisé une forme de x pour renforcer leurs malentendus.

  4. Vous n'avez pas besoin de travailler directement avec le FB, que de nombreuses personnes supposent de manière incorrecte. Une bibliothèque très impressionnante pour le développement avec une tramebuffer est DirectFB elle a même un soutien d'accélération de base. Je suggère toujours au moins de le vérifier, si vous démarrez un projet FB complet basé sur FB (navigateur Web, jeu, interface graphique ...)

Spécifique à votre matériel

  1. Utilisez le cadre générique VESA Generic, ses modules sont appelés vesafb. Vous pouvez le charger si vous l'avez disponible, avec les commandes modprobe vesafb. De nombreuses distributions préconfigurez-la désactivée, vous pouvez enregistrer /etc/modprobe.d/. blacklist vesafb Peut-être avoir besoin d'être commenté avec un #, dans un blacklist-framebuffer.conf ou autre fichier noirliste.

  2. La meilleure option est un pilote de KMS spécifique matériel. Le principal pour Intel est Intel Gma, pas sûr de ce que sont nommés ses modules. Vous devrez y parvenir de vos documents de distribution. C'est la meilleure option FB performante, je voudrais toujours toujours les kilomètres d'abord si possible.

  3. Utilisez les pilotes FB spécifiques du matériel hérité, non recommandés car ils sont parfois buggy. J'éviterais cette option, sauf si la dernière station nécessaire.

Je crois que cela couvre toutes vos questions et devriez fournir les informations pour obtenir que /dev/fb0 Dispositif disponible. N'importe quoi plus particulièrement spécifique aurait besoin de détails de la distribution et si vous êtes un peu expérimenté, RTFM doit être tout ce dont vous avez besoin. (Après avoir lu ceci).

J'espère que j'ai aidé, votre chance de demander à l'un de mes sujets! Ceci est un sujet négligé sur UNIX-SE, comme tout le monde (sciemment) n'utilise la tramebuffer Linux.

Remarque: Uvesafb ou Vesafb?

Vous avez peut-être lu que les gens utilisent uvesafb sur vesafb, car il y avait une meilleure performance. C'é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), vous avez un noyau un peu récent vesafb est maintenant un meilleur choix.

37
J. M. Becker

J'ai enfin trouvé la solution à mon problème !!

Tout d'abord, beaucoup de merci à 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 activer le mode de réception (modeset=1) quand le i915 Charges de module de noyau. Cela peut être fait les voies habituelles:

  • via le paramètre du noyau de Grub,
  • via un fichier de configuration dans /etc/modprobe.d
  • ou à la ligne de commande:

    # rmmod i915
    # modprobe i915 modeset=1
    

En fait, vous n'avez rien à faire si vous installez un package xserver-xorg-video-intel, qui crée /etc/modprobe.d/i915-kms.conf contenant options i915 modeset=1. Cependant, si quelqu'un ne veut pas installer x (comme dans mon cas), alors KMS n'est pas activé automatiquement, ce qui explique pourquoi le périphérique Framebuffer n'a pas été créé ...

11
Federico