Linuxで追加のフレームバッファーデバイスを追加するにはどうすればよいですか?


15

私はUbuntu 12.04 LTSをXなしでホームNASサーバーとして実行しています。最近、ビデオ再生メディアデバイスとしても機能するようにチューニングしました。この時点でXをインストールする方が簡単だったかもしれませんが、フレームバッファー再生でmplayerを試すことにしました。それは機能し、すべてが素晴らしく、良好でした。

ただし、好奇心と実際の結果のために、フレームバッファについて考えることをやめられません。フレームバッファデバイスは1つだけのよう/dev/fb0です。(ところで私はvesafsドライバーを使用しています)フレームバッファーを使用する複数のプログラムを実行すると、混乱が生じます。たとえば、fbtermからmplayerを実行するとクラッシュします。不思議なことに、fbi画像ビューアーはなんとか画像を表示することができます。明らかに、プログラムはデバイスを共有できません。結局、ウィンドウシステムはありません。

では、(vesa)fbデバイスの数はハードウェアディスプレイデバイスに制限されていますか?または、複数のttyがあるように、原則としてもっとあるでしょうか?それらを使用するソフトウェアを同時に実行するのに、いくつかのヘルプを追加しますか?どうすれば追加できますか?

また、フレームバッファがttyにどのように接続されるかというロジックは私にはあまり明確ではありません。たとえば、mplayerはすべてのttyでビデオフレームを表示しますが、fbiはそうではありません。さらに、Ubuntuのデフォルトコンソール(fbcon?)がビデオオーバーレイの背後に表示されるため、奇妙に感じます。これは何ですか?

回答:


18

誰もまだ答えていないので、グーグルとテストの退屈な時間の後、私は主題のいくらかの把握を得ました、私はそれに答えるつもりです...

フレームバッファデバイスインターフェースは非常に一般的なものであるため、原理的にはより多くのfbデバイスが存在する可能性があります。ただし、私が使用したVESAドライバーは特定のハードウェアデバイスとフレームバッファーデバイスファイル間の直接接続を提供するため、実際のデバイスよりも多くのハードウェアデバイスを持つことは意味がありません。

仮想フレームバッファーデバイス用のドライバーvfbがあります。(注:Xの仮想フレームバッファーであるxvfbとは異なります)私はこれを自分でテストしていませんが、仮想デバイスを使用するのと同じ数のfbデバイスを持つことができます。また、原則として、仮想デバイスをハードウェアフレームバッファデバイスにパイプすることを妨げるものは何もないと考えており、フレームバッファマルチプレクサを構築できます。

フレームバッファとttyの間の接続について:なし。フレームバッファは、何も無視して、単に画面に描画されます。

元々私を混乱させたのは、fbi画像ビューアの動作です。実行中のttyが開いているかどうかを賢くチェックし、それに応じてフレームバッファーに描画するかどうかがわかります。(そのため、mplayerとは異なり、SSHでの実行を拒否します。疑似端末は受け入れません。)しかし、マルチプレクサーのような機能は、フレームバッファー自体とは関係ありません。

フレームバッファに書き込む複数のプロセスがある場合、それらは互いにブロックしません。複数のfbプログラムを同時に使用する私の以前の問題(クラッシュなど)は、フレームバッファに関するものでさえありませんでした。fbtermターミナルを使用して、そこからmplayerを実行します。問題ありません。fbtermおよびfbcon端末とfbi画像ビューアーは、何かが更新された場合にのみバッファに描画するため、mplayerは、ほぼ100%の時間を画面を支配します。ただし、2つのmplayerを実行しようとすると、競合状態のバッファーに描画しようとするときに、一方と他方のフレームが点滅するビューが表示されます。

便利なリンク:

http://moi.vonos.net/linux/framebuffer-drivers/

https://www.kernel.org/doc/Documentation/fb/framebuffer.txt


セカンダリとして小さなLCD 2番目のディスプレイがある場合(320x240ピクセル、3インチと考えてください)、fb1を使用するのは理にかなっています。私は、fb1のみを使用する小さなAdafruit adafruit.com/product/1601を持っています。彼らのソフトウェアはオープンソースですが、OSイメージは320x240でGUIを使用してLinuxを実行しようとし、惨めに失敗します。2番目のデバイスとしては大丈夫かもしれませんが、私は数年間使用していません。man mknodを参照してください。
アランコーリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.