質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.69%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

1回答

5090閲覧

raspberry pi に ssh接続でキーストロークを送信する仕組みがわかりません、どうやって検索や調べ物をすれば良いのでしょうか?

YoheiKoga

総合スコア9

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2015/05/19 11:19

SSH接続でRaspberryPiを扱っています。

SSH接続でリモート操作で、RaspberryPi内の画像をRaspberryPiからHDMI接続した画面に表示させたいので下記のページを参考にしました

Raspberry Pi(raspbian)でSSHからHDMI接続中の画面にXを使わず画像を表示する。

画面に画像を表示した後に、リモート操作で画像表示を終了させたいので
キーストロークでqを送信する、というのをコマンド送信しました

lang

1$ sudo perl -e '$chr="q"; require "sys/ioctl.ph";open($hTTY, ">", "/dev/tty1");ioctl($hTTY, TIOCSTI(), $chr)'

このコマンドの意味がわからない(どうやってリモートでキーボードのqを押したのと同様の結果を実行しているのか?)のと、何を調べたらいいのか、どうやって調べたら良いのかがわからなかったので質問させていただきました・・・

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答1

1

ベストアンサー

lang

1sudo perl -e '$chr="q"; require "sys/ioctl.ph";open($hTTY, ">", "/dev/tty1");ioctl($hTTY, TIOCSTI(), $chr)'

perl で何をしているかですね。

lang

1$chr="q"; 2require "sys/ioctl.ph"; 3open($hTTY, ">", "/dev/tty1"); 4ioctl($hTTY, TIOCSTI(), $chr)

初めの2行で $chr を "q" という文字列にし、ioctl というものを使えるようにしています。
次に、open($hTTY, ">", "/dev/tty1"); で、/dev/tty1 というデバイスを開いています。乱暴な言い方をすると、「キーボードの入力部をファイルとして開く」ということをしています。そこに、
ioctl($hTTY, TIOCSTI(), $chr) として、q を流し込んでいます。
man tty_ioctl(4)
を見ると

Faking input
TIOCSTI const char *argp
Insert the given byte in the input queue.
とあります。ここに、キーボードからの入力のふりをして、文字列を入れています。

追記: 質問自体の答えは「ioctl について調べるのが良く、リンクを眺めてみるとよいでしょう。」です。

投稿2015/05/19 12:00

編集2015/05/19 12:01
takotakot

総合スコア1111

sho_cs👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答へのコメント

YoheiKoga

2015/05/20 00:37

ご丁寧にありがとうございます!色々モヤモヤしてたのですが >>「キーボードの入力部をファイルとして開く」 というところの説明があったのでスッキリしました、ioctlについて調べてみます! 大変助かりました、ありがとうございます!

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.69%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。