devsfsルール

devsfsルール

xorg-x11が刑務所で実行されるシステム全体があります。私の唯一の問題は、Xの実行中にキーボードやマウスを追加または削除できないことです。 Xを再起動すると、新しく接続されたキーボードまたはマウスが正しく機能します。 Xを再起動したくありません。ベアメタルでシステムを実行すると、期待どおりに動作します。刑務所から逃げるときにのみこのようなことが起こります。

接続または切断すると、次のデバイスが作成されることがわかります。

/dev/input/event*
/dev/usb/*
/dev/ukbd*
/dev/kbd*
/dev/ums*
/dev/ugen*

私はdbusを実行していますが、何らかの理由でXorgはこれを見ることができないようです。

/var/log/Xorg.0.logを追跡すると、キーボードまたはマウスを接続または切断したときにキーボードまたはマウスが追加または削除されるというメッセージは表示されません。

編集#1:

この刑務所の私のdevfsルールは次のとおりです。

add path 'dri*' unhide
add path 'drm*' unhide
add path 'dsp*' unhide
add path 'mixer*' unhide

add path 'speaker*' mode 0660 group operator unhide

# USB drives
add path 'da*' unhide

編集#1:回答の質問に答えるには:

  1. 私のdevfsルールはJail devfsルールIDと一致します。
  2. キーボードとマウスを取り外して復元すると、Xorg.0.logにイベントは表示されません。代わりに、ホストシステムには、キーボードとマウスが切断され、再接続されているとマークされます。
  3. ホストシステムは最小インストールで、管理パックとビデオドライバのみが含まれています。完全なXorgインストールはありません。

編集#2:

  1. inputplugをインストールし、以下を実行しました。 DISPLAY=:0 inputplug -d --debug -c echo キーボードを接続して抜いたときに出力が印刷されませんでした。
  2. 同様に、プライマリ/ホストシステムのdmesgは、キーボードが接続され切断されていることを示しています。
  3. 刑務所では、/dev/ukbd1の下のデバイスがホストと一致することを示しています。
  4. 刑務所ディスプレイには、/ dev / input / event7の下に新しく追加されたデバイスも表示されます。
  5. xinput リストには前と後の違いは表示されませんでした。

さて、刑務所ではrootとして/ devにファイルを作成することはできません。これは無理ですが、刑務所自体には必要なデバイスノードを作成する権限がなく、代わりにホストに依存して生成されますか?

答え1

devsfsルール

私が最初に疑ったのはdevfs ルール設定しました。

以下を使用して、刑務所でどのルールを設定したかを確認できます。

# jls -j <jailname> -n devfs_ruleset
devfs_ruleset=0

で基本ルールを確認し/etc/defaults/devfs.rules、で独自のルールを設定できます/etc/devfs.rules

刑務所でオーディオを有効にする一般的な例は次のとおりです。

# /etc/devfs.rules

[devfsrules_my_fine_x_jail=42]
add include $devfsrules_hide_all
add include $devfsrules_unhide_basic
add include $devfsrules_unhide_login
add path 'mixer*' unhide
add path 'dsp*' unhide

service devfs restartルールを破った場合は覚えておいてください。参考にしてください重なったり入れ子にしたりしないでください。あなたのルールセットですが、上記のように明示的です。

次に、刑務所構成でルールセットを設定します。

# /etc/jail.conf

myjail {
    devfs_ruleset = 42;
}

この場合は十分です(TM)。特にXを再起動した後に動作する場合は、さらにそうです。ただし、このデバイスはで見たことが知られているため、言及する価値があります/dev。言及されていないのは、これが刑務所で確認されるのか、コンソールで確認されるのかです。また、kbd/mouse が接続されたときに実際に追加される内容に違いはありません。

X構成

ホストと刑務所でまったく同じX設定が使用されているとします。しかし、それがどのように設定されたかについての言及はありません。今日、Xはすべてを自動的に検出するのに非常に堪能です。もう一度最新のFreeBSD 14と新しいXを使用しているとします。

Xを構成する現代的な方法は、1つの大きなxorg.confを持つのではなく、実際に必要なときにのみ部分を追加することです。/usr/local/etc/X11/xorg.conf.d/input.confどのデバイスパスとドライバがあるかを選択する設定があれば興味深いでしょう。これの一部は、無効化などの奇妙なことをしないようにすることです。自動的にデバイスを追加

この場合、何も設定されていないと仮定します。ただし、Xを再起動したときに機能する場合は、/var/log/Xorg.0.logどのマウス/キーボードデバイスパスとドライバが実際に選択されているかを確認するのが面白いでしょう。ホストで実行している場合、刑務所と同じものを使用していますか?刑務所で捕捉されていないイベントはコンソールでトリガーされますか?これは検索を絞り込むのに役立ちます。

開発上の特異点

前に見ると、実際にどのデバイスが使用されているのかわかりません。おそらくデバイスは正常に動作していますが、設定の問題かもしれませんevdev。私たちはウデブ翻訳レイヤー?おそらく、翻訳レイヤにはLinux chroot環境など、刑務所の内部にエッジの問題がある可能性があります。ここを見てくださいudevをバインドしてマウントする必要がある場所。

最後の措置

Xorgを使用した正しい自動検出が不可能であっても、Xサーバー全体の再起動を回避するオプションがあります。X入力コマンドで実行できます。正確にどの注文が必要かは、使用する機器によって異なります。簡単な--enableデバイス名で十分です。これがほとんど発生しない場合は、VTを切り替えて(可能であれば)実行してくださいjexec xinput

devdそれとも価値がある場合は、力を入れてハッキングされたスクリプトを書いてください。ホッケー、そうですね。最後の手段としてそうです。バラよりUSBキーボードが接続されているときにプログラムを実行するようにFreeBSDでdevdをどのように設定しますか?

関連情報