追加読書

追加読書

外部ボタンで有効にできるスクリプトを使用してTTYを切り替える方法はありますか?私はLCD画面を備えた小さなホームコントローラRaspberryを持っています、キーボードやマウスは接続されていません、そしてLCDの横には再起動などのコマンドを実行するためにマップされたいくつかのボタンがあります。いずれかのボタンをプログラムしてキーを押すと他の(次の)ttyに切り替わり、「ループ」が終わるとtty1に戻ります。chvtキーボードの組み合わせを知っていますが、Alt F1, F2...それらのどれも私が望むように動作しません。可能ですか? ?手がかりは、「ラック」にアクセスするときに確認できるように、異なるttyに3つ以上のプログラム(診断など)があることです。 :)

ベストアンサー1

ループKVTなどのプログラムを作成しchvt、他のプログラムを別のボタンに接続したかのように接続するだけです。

FreeBSDから:

  • 現在アクティブなKVT番号を出力として使用できますvidcontrol -i active
  • 「次の」タスクは、vidcontrol -s $NEXT増分および一部のモジュールでの作業の後です。

NetBSDから:

  • 現在アクティブなKVT番号を出力として使用できますwsconscfg -g
  • 「次の」タスクは、wsconscfg -s $NEXT増分および一部のモジュールでの作業の後です。

Linuxの場合:

  • 現在有効になっているKVT番号は、以下の擬似ファイルにあります/sys/class/tty
  • 「次の」タスクは、chvt $NEXT増分および一部のモジュールでの作業の後です。
  • 可能な最大KVT数は固定されています(必要に応じて、いつでもより低い最大値を直接接続できます)。

3つすべてについて、上記のすべての作業は、いくつかの簡単なシェルスクリプトアルゴリズムを使用して実行できます。あるいは、別の言語でプログラムを作成し、直接低レベルのioctl()呼び出しを行うこともできます(VT_GETACTIVE例:VT_ACTIVATEFreeBSDで)。

OpenBSDにはこれを達成するための便利なユーティリティがないため、wsdisplay(4)を直接呼び出すプログラミングが必要です。ioctl()

フレームバッファに直接レンダリングされるユーザ空間仮想端末は、同様のメカニズムを有することができるが、ソフトウェアに依存する。たとえば、私のデバイスは、「消費者デバイスアプリケーションが起動しました」という実際のUSB HIDコードで応答します。次/前の作業キー。

追加読書

  • ジョナサンデボインポラード(2018)。 」Linux vt」。 装備。 Nosh ツールセット。
  • Søren Schmidtet al。 (2016-01-19).vidcontrolFreeBSD 共通コマンドマニュアル
  • wsconscfgNetBSD システム管理者マニュアル。 2006年6月24日。
  • ジョナサンデボインポラード(2018)。console-multiplexorスナックガイド。ソフトウェア。
  • ジョナサンデボインポラード(2018)。console-multiplexor-controlスナックガイド。ソフトウェア。

おすすめ記事