SSH経由でFBIにコマンドを送信する方法は?

SSH経由でFBIにコマンドを送信する方法は?

一部の画像を表示するために使用しますfbi。 、、などfbiの一部のキーボードコントロールを使用して画像を制御できます。+-Page UpPage Down

キーボードを使用する代わりに、SSHを介してこれらの制御コマンドをfbi

私は以下を試しました:

mkfifo /tmp/mycmd
fbi /myfolder/*.jpg < /tmp/mycmd &

これによりfbi起動が失敗します。たとえば、いくつかのコマンドを送信しようとしましたが、echo . > /tmp/mycmd開始されず、次のエラーが発生しました。

using "DejaVu Sans Mono-16", pixelsize=16.67 file=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
ioctl VT_GETSTATE: Inappropriate ioctl for device (not a linux console?)

問題は何ですか?

SSH経由でコマンドを送信する方法fbi! ?

答え1

画像を表示するにはfbiTTYへのアクセスが必要です。したがって、以下を使用する必要があります-T 1

fbi -d /dev/fb0 -T 1 zxcv.png

それを取得したら、をaccess /dev/tty1: Permission denied使用してコマンドを実行できますsudo

残念ながら、私はそれにコマンドを送信する方法を知りません。使ってみようティエホ何かを送信します/dev/tty1が、fbi競合が発生します。あなたのfifo方法もうまくいかないようです。

答え2

私もこの問題に直面しました。仮想端末1に変更しましたが、うまくいきました。

# Change to virtual terminal 1
chvt 1

# Make a dummy image with ImageMagick if you need one
magick -size 640x480 xc:red image.jpg

# Display on framebuffer
fbi -d /dev/fb0 -T 1 image.jpg

/dev/fb0問題がある場合は、実際にはフレームバッファであるか、書き込み権限があるかを確認できます。

cat /dev/random > /dev/fb0

画面がランダムな色のピクセルで覆われている場合、/dev/fb0それは実際にはフレームバッファであると推測できます。

あなたが得る場合「許可が拒否されました」エラーが発生しました。もう一度お試しください。

sudo cat /dev/random > /dev/fb0

機能している場合は、権限を変更してください/dev/fb0。たとえば、次のようになります。

sudo chmod 666 /dev/fb0

または、管理者権限の bash シェルを起動し、権限を変更し、すべてを一度に表示することもできます。

sudo bash -c "chvt 1; fbi -T 1 -d /dev/fb0 image.jpg"

そうでなければ何も得られないでしょう。そのような場合は、私よりスマートな人に尋ねる必要があります。たくさんあります!

答え3

-d /dev/fb0でオプションを試してくださいfbi

デフォルトで使用する必要がfbiあるフレームバッファデバイスは、使用している仮想コンソールデバイスを見るとわかります。明らかに、この目的のために標準入力を見てください。 FIFOから標準入力をリダイレクトすると、コンソール以外のデバイスをインポートして続行できません。使用するフレームバッファデバイスを明示的に指定すると便利です。

フレームバッファデバイスを使用するために必要な権限がある限り、FIFOも必要ないかもしれません。fbi -d /dev/fb0 /myfolder/*.jpg目的に適している場合は、SSH接続を再開してください。

関連情報