そこで、開発者モードを有効にしたPalm Pre(元のP100EWW)モデルを用意し、Debian Squeeze chrootをインストールしました。よく働く。私はこれを何でも(bittorrentピア、webサーバー)、電話に使うつもりです。
cat /dev/urandom > /dev/fb0
を実行すると、実際にNo space left on device
エラーが生成されるまでランダムピクセルが画面に書き込まれることに気付きました。これで、ディスプレイを使用できるようになりました。
したがって、A)/ dev/fb0をコンソールとして使用できるようにするユーティリティ、またはB)コマンドラインから/ dev/fb0にテキストをレンダリングするユーティリティの種類は何ですか。
私はこれのためにカーネルを再コンパイルすることについてはまだ知りません(最終的にWebOSを完全に削除してこれを最小限のARMサーバー)にしたい)。また、Xを使用せずに/ dev/fb0に直接レンダリングすることをお勧めします。
フレームバッファをコンソールとして使用するには、fbdev
モジュールが必要です。カーネルを再コンパイルする必要があるかもしれません。
フレームバッファの使用を容易にするライブラリであるDirectFBプロジェクトにも興味があるかもしれません。アプリケーションとGUI環境もすでに作成されています。
カーネルを扱い、(テキストではなく)imagesをフレームバッファーに書き込むという質問の一部に数人が回答しましたが、残りはまだ対処されていません。はい、カーネル仮想端末サブシステムを使用して、いわゆるframebuffer consoleを作成できます。しかし、フレームバッファデバイスを使用してユーザー空間の仮想端末を作成できるツールがいくつかあります。これらには以下が含まれます:
console-terminal-emulator
およびconsole-fb-realizer
ツール— LinuxおよびFreeBSD/PC-BSDカーネル仮想端末の複製を目的としたユーザー空間仮想端末。 Xライブラリにも依存していません。logind
サーバーに密接にリンクされているユーザー空間仮想端末とその「シート」の概念。特に、ALi Gholami Rudiは、フレームバッファ作業用のターミナルエミュレータだけではありません。 彼も書いた フレームバッファへのダイレクトPDFビューア、VNCビューア、メディアプレーヤー、およびコーランリーダー。
完全な比較は、この回答の範囲外です。しかし、これは質問に関連するいくつかのポイントです:
fbpad
およびnoshツールの仕様では、Xライブラリを使用しません。bdftobogl
ツールを使用してBDFフォントをBOGLフォントに変換します。 TTFをft2tf( Arch )ツールでfbpadが使用する「tinyfont」フォントに変換します。console-fb-realizer
ツールは 新しいFreeBSD 10.1カーネル仮想端末サブシステム と同じ「vt」フォントを使用するため、BDFフォントを変換するためにFreeBSDフォント操作ツール vtfontcvt
を共有します。console-convert-kbdmap
ツールでBSD kbdmapファイルをこの形式に変換します。繰り返しますが、これらのkbdmapファイルは FreeBSD/PC-BSD vtサブシステムで使用されるファイル です。login
を起動するには、スーパーユーザー権限が必要です。/etc/ttys
(BSD)、/etc/inittab
(Linuxシステム5 init
)、または他のシステムと統合するように設計されており、getty/login/Shellを生成する仕事を任されています。 console-fb-realizer
は、スーパーユーザー権限である必要のないフレームバッファーと入力イベントデバイスを開くため、およびconsole-terminal-emulator
によって維持されるFIFOと通常のファイルにアクセスするために十分な権限のみを必要とします。これにより、特別な権限はまったく必要ありません。これらはすべて端末エミュレータです。端末エミュレーションを取り除き、より直接フレームバッファーにテキストを配置したい場合は、いくつかの選択肢があります。
console-terminal-emulator
。は使用できません。console-fb-realizer
は、/dev/vcsa*
のような文字セル配列を使用した表示ファイルを使用しますが、通常のファイル(文字特殊デバイスファイルではない)と、Unicodeコードポイント、ECMA-48属性、および24ビットRGBカラーを使用します。したがって、これを実行して、文字+属性+色を文字セル配列ファイルに直接書き込むだけで、console-fb-realizer
でフレームバッファーへのフォントレンダリングを実行できます。
余談ですが、これはconsole-terminal-emulator
を使用しますがconsole-fb-realizer
を実行しない BRLTTYとの統合 の反対であることを確認してください。
猫を/dev/urandom > /dev/fb0
して画面上にランダムなピクセルを表示できれば、必要なものはすべて揃っています。
私の場合、テキスト情報をダンプする必要がありました。これをbusyboxとraspiでテストしたので、うまくいくかもしれません。コンソールを使用しない場合は、charのピクセルを自分で印刷する必要があるため、答えは少し長いかもしれません。幸運なことに誰かが大変な仕事をしたので、私たちはそれを組み合わせる必要があります。
Busyboxまたはraspiにはfbset
バイナリが必要です。これは、画面サイズとして設定を見つけるのに役立つ場合があります。
私の埋め込みでは次のようになります:
# fbset
mode "480x272-1"
# D: 0.104 MHz, H: 0.207 kHz, V: 0.657 Hz
geometry 480 272 480 272 16
timings 9600000 3 3 0 32 17 11
accel false
rgba 5/0,6/5,5/11,0/0
endmode
ここで重要な部分は、幅480ピクセル、高さ272ピクセルです。
おっしゃったように、cat /dev/urandom > /dev/fb0
で画面を満たすことができます
cat /dev/zeros > /dev/fb0
でクリアできます
画面をクリアにするよりも、寸法を適切に取得する必要があります。
偶然にも、私のbusyboxには、.ppmファイルとして入力されるfbsplashバイナリがありました。
私が間違っている場合は正解ですが、fb0
がこの形式を受け入れているようです。 WikipediaのポータブルAnymap を見てみると、いくつかの「サブフォーマット」があります... fbsplashは、色の付いたファンシーなものを使用します...などですが、読みやすいものを印刷できるようにしたいだけです。 。 ASCIIでコーディングされたP1を使用してみましょう。簡単にするためです。垂直の線を印刷できれば、寸法が正しいことがわかります。試してみましょう。
PpmタイプP1の垂直線は次のようになります。
P1
480 272
f 0 0 0 0 ... 0
f 0 0 0 0 ... 0
...
f 0 0 0 0 ... 0
したがって、272行、959文字幅になります。ドキュメントによると、busyboxではf ...の代わりに1にすべきであり、raspi fはより明るくなりました。
0の後にスペースがないことが重要です...このタスクは少し面倒な場合があります...役立つテキストエディターを使用することをお勧めします。 vimでは、最初の2行をコピーしてコマンドモード(esc)に移動し、次の文字を入力します。
of(esc)479a 0(esc)yy271p
もちろん、私は私の次元を使用しています。あなたは自分の次元を使用する必要があります。このファイルを/dev/fb0
にキャットすると、次のようになります。
さて、私は浮気しています...それはそこに1行だけではありません...それは約8です...しかし、それが機能しないとき(私たちは間違った寸法を持っているか、最後にスペースがあるので、1行だけを持っていることは多くです)より簡単に)。
そこまで進んだら、文字として表示するために正しいピクセルを印刷する必要があります。おかげで Marcel SondaarとGitHubの彼のリポジトリ 各文字を描画する必要はありません。
小さなTweakを使用して、単純なプログラムを拡張して、スペースの代わりにf
と0
の代わりにX
を印刷し、各文字の間にスペースを挿入し、ヘッダーを追加すると、.ppm文字コードに対応する文字を含むファイル。
さらに一歩進んで、入力としてcharを取得するのではなく、行を取得します。ファイルをcatし、プログラムにパイプして/dev/fb0
に出力すると、テキスト出力が得られます。
私はこのソリューションをRaspberry Piでもテストしましたが、うまくいきました。 2つを超えるリンクを投稿するという評判はないと私は教えてくれます。私がこれを手に入れるまで、あなたは私の言葉に頼らなければなりません:D
コンソール側では、/dev/console
にエコーするか、syslogを使用できます。他のさまざまな設定によっては、コンソールに表示される場合があります。
画像の場合、bmpファイルをfb0に接続しようとしたところ、実際に機能しました。 (ソート-複数のコピー、小さいサイズ)
Bmp-to-framebufferプログラム here を見つけました。これは、fb0が期待する形式の完璧な例です。フレームバッファに直接書き込むためのプログラムであるfbi
もあります。
古い投稿ですが、フレームバッファでコンソールを実行するには、通常フレームバッファコンソール(fbcon)が必要です。構成にあります。 (デバイスドライバー/グラフィックス/コンソールディスプレイ..)