だから私はPalm Pre(オリジナルP100EWW)モデルを持っていて、開発者モードを有効にしてDebian Squeeze chrootをインストールしました。良い結果。私はそれを携帯電話以外のもの(ビットトレントピア、Webサーバー)に使用する予定です。
これにより、実際にエラーが生成されるcat /dev/urandom > /dev/fb0
まで画面にランダムなピクセルが記録されることがわかりました。No space left on device
いいですね。これでモニターを使用できるようになります。
A)テキストを出力できるコンソールとして/ dev / fb0を使用するか、B)コマンドラインから/ dev / fb0にテキストをレンダリングするユーティリティがありますか?
私はこれを行うためにカーネルを再コンパイルすることはまだわかりません(最終的にWebOSを完全に削除して最小限のARMサーバーに切り替えたいと思います)。したがって、ユーザースペースツール(存在する場合)は私が尋ねるものです。また、Xを使用する代わりに/ dev / fb0に直接レンダリングすることを好みます。
答え1
複数の人々がすでにカーネルとバッチに関する質問の部分に答えています。絵(テキストの代わりに)をフレームバッファに保存しましたが、残りはこれまで解決されていません。はい、カーネル仮想端末サブシステムを使用して、いわゆるスピーチを作成できます。フレームバッファコンソール。ただし、フレームバッファデバイスを使用して次の作業を実行できるツールはいくつかあります。ユーザー空間仮想端末。これには以下が含まれます。
- チョンカン(ダーバン) - カーネルサブシステムよりもCJK I / Oを処理するように設計されたユーザースペース仮想端末。特に強みは、ISO 2022非UTFエンコーディングを処理することです。特に弱点はUTFエンコーディングです。
- Facebookの用語(ダーバン) — 次のような複数のフォークを作成したユーザー空間仮想端末共同用語。これには、さまざまなCJK入力方式プラグインがあります。
- ボグ-bterm(ダーバン) — 分岐したユーザ空間仮想端末です。ニテム。
- アリ・ゴラミ・ルディ鍵盤- Xライブラリに依存しない最小限のユーザースペース仮想端末。
console-terminal-emulator
そしてツールconsole-fb-realizer
おやつ- LinuxおよびFreeBSD / PC-BSDカーネル仮想端末を複製するように設計されたユーザー空間仮想端末。また、Xライブラリに依存しません。- キロメートルスコーン— システムと密接に接続されたユーザー空間仮想端末
logind
systemdのサーバーと「座席」の概念。
特にAli Gholami Rudiは、単純なフレームバッファ操作以上の端末エミュレータを作成しました。 彼も書いたDirect-to-framebuffer PDFビューア、VNCビューア、メディアプレーヤー、Quranリーダー。
完全な並列比較はこの回答の範囲外ですが、以下は質問に関連するいくつかの重要な点です。
- 前述のように、一部のユーザー空間仮想端末プログラムは、フォント処理、キーボードマッピング、CJK入力方法などのためにXライブラリを利用しています。 X クライアントではありませんが、X ライブラリに依存しています。
fbpad
noshツールはXライブラリを使用するようには設計されていません。 - フォント処理にXライブラリを使用するプログラムだけでなく、Xフォントも使用します。他の人は別の計画を持っていました。
- bogl-btermとfbpadはどちらも独自の特殊フォントフォーマットを持っています。 1つは、このツールを使用して
bdftobogl
BDFフォントをBOGLフォントに変換することです。もう1つは、ft2tfを使用してTTFをfbpadに変換することです。アーチ)ツール。 - nosh
console-fb-realizer
ツールの使用と新しいFreeBSD 10.1カーネル仮想端末サブシステムこれが実際に本当であるため、FreeBSDフォント操作ツールが共有されました。vtfontcvt
BDFフォントを変換するために使用されます。
- bogl-btermとfbpadはどちらも独自の特殊フォントフォーマットを持っています。 1つは、このツールを使用して
- Xライブラリを使用するプログラムはXキーマップを使用します。他のすべての人の場合:
- noshツールには、ISO "Universal" Group 2用の完全なISO 9995-3機能キーボードを提供するように設計された独自のキーマップ形式があります。この
console-convert-kbdmap
ツールを使用して、BSD kbdmapファイルをこの形式に変換できます。繰り返しますが、このkbdmapファイルはFreeBSD/PC-BSD vtサブシステムで使用。 - fbpad は独自のキーマッピングをまったく実行しませんが、カーネル仮想端末サブシステムとそのキーマッピングメカニズムの存在に依存します。
- noshツールには、ISO "Universal" Group 2用の完全なISO 9995-3機能キーボードを提供するように設計された独自のキーマップ形式があります。この
- 通話と必須権限にはいくつかの違いがあります。
- zhcon、fbterm、bogl-bterm、fbpad、およびkmsconは、端末から直接シェル/ログインプログラムを子プロセスとして生成する端末エミュレータによって動作します。を作成するにはスーパーユーザー権限が必要です
login
。 - noshツールは既存の
/etc/ttys
(BSD)、/etc/inittab
(Linux System 5init
)、または他のシステムと統合するように設計されており、getty / login / shellの作成操作はこれらのシステムに委ねられます。console-fb-realizer
フレームバッファと入力イベントデバイスを開いて(スーパーユーザー権限は必要ありません)、管理するFIFOおよび一般ファイルにアクセスするのに十分な権限が必要です。これは特別なconsole-terminal-emulator
権限を必要としません。
- zhcon、fbterm、bogl-bterm、fbpad、およびkmsconは、端末から直接シェル/ログインプログラムを子プロセスとして生成する端末エミュレータによって動作します。を作成するにはスーパーユーザー権限が必要です
これらはすべて端末エミュレータ確かに。端末エミュレーションを削除し、フレームバッファにテキストを直接配置するには、次のようないくつかのオプションがあります。
- bogl-btermはもちろん、Ben Pfaffに基づいています。Benの独自のグラフィックライブラリシステム設定/構造環境で使用するように設計されたフレームバッファI / Oライブラリ(および「PDA用GUI」)。もちろん、それを直接使用するプログラムを書くこともできます。
- セルフレンダリングを実行するためにフレームバッファライブラリを使用するプログラムの作成とターミナルであると思うことにエスケープシーケンスを生成するプログラムとの間の中間の切り替えのために:noshユーザー空間仮想ターミナルはモジュール式であり、コンポーネント部分に分けられます。まったく動作しません
console-terminal-emulator
。console-fb-realizer
/dev/vcsa*
Unicodeコードポイント、ECMA-48属性、および24ビットRGBカラーを持つ通常のファイル(文字特殊デバイスファイルではない)に似た文字セル配列を持つ表示ファイルを使用します。したがって、これを実行してから、文字+属性+色を文字セル配列ファイルに直接書き込んでから、フォントをconsole-fb-realizer
フレームバッファにレンダリングできます。ところで:これは次のようにはなりません。BRLTTYとの統合を使用します
console-terminal-emulator
が、実行されませんconsole-fb-realizer
。
答え2
/dev/urandom > /dev/fb0
画面から任意のピクセルをキャプチャして取得できる場合は、必要なものすべてを備えています。
私の場合は、いくつかのテキスト情報をダンプする必要があります。私はこれをbusyboxとraspiでテストしたので、あなたに役立ちます。答えが多少長くなることがあります。一部のコンソールを使用しない場合は、文字のピクセルを直接印刷する必要があるためです。幸いなことに、誰かがすでに難しいことをしてきたので、私たちはそれを一緒にまとめることができます。
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
画面を消去することに加えて、正しい寸法が得られていることを確認する必要があります。
私のビジボックスには、.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文字の幅になります。文書によると、fの代わりに1でなければなりません。 busyboxでは、raspi fは明るいです。
0の後にスペースを入れないことが重要です...これは少し面倒です。役に立つテキストエディタを使用することをお勧めします。 vimでは、最初の2行をコピーしてコマンドモード(esc)を入力してから、次の文字を入力できます。
of(esc)479a 0(esc)yy271p
もちろん、私は私の測定値を使い、あなたもあなたの測定値を使うべきです。このファイルを に送信すると、/dev/fb0
次のようになります。
わかりました、私は風を吸っています...行が1つではなく... 8個程度ですが...動作しないと(サイズが間違っているか、最後にスペースがあって1行だけ多すぎる))そしてより簡単です)。
ここまで完了したら、正しいピクセルを印刷して文字で処理するだけです。ありがとうMarcel Sondaarと彼のGitHubリポジトリすべてのキャラクターを描く必要はありません。
少しだけ変更すると、彼の単純なプログラムをスペースの代わりに印刷するように拡張し、f
各X
文字0
の間にスペースを挿入し、タイトルを追加し、文字コードに対応する文字を含む.ppmファイルを持つことになります。
さらに一歩進むと、文字を入力として受け取るのではなく行が生成されます。ファイルをCatとして指定してプログラムにパイプして出力すると、/dev/fb0
テキスト出力が表示されます。
また、Raspberry Piでこのソリューションをテストしましたが、うまくいきました。リンクを2つ以上上げることができないそうです。私がこれを得るまでは私の言葉に従うべきです:D
答え3
フレームバッファをコンソールとして使用するには、このfbdev
モジュールが必要です。カーネルを再コンパイルする必要があるかもしれません。
フレームバッファ操作を容易にするライブラリであるDirectFBプロジェクトにも興味があるかもしれません。すでにこのために作成されたアプリケーションとGUI環境があります。
答え4
これは古い投稿ですが、通常、フレームバッファでコンソールを実行するにはフレームバッファコンソール(fbcon)が必要であることがわかります。構成にあります。 (デバイスドライバ/グラフィック/コンソールディスプレイ..)