web-dev-qa-db-ja.com

VNCクライアントでキーボードレイアウトをKVM(libvirt)に設定する方法

AMDマシンのkdeを使用して、Debian 9.9にkvmゲストとホストの両方をインストールしました

qemu-kvm 1:2.8+dfsg-6+deb9u7 AMD64

  • virt-viewerで接続すると、私のキーボードレイアウトはworking(fr-ch)ですが、どこにあるかわかりません私のfr-chが利用可能であることを確認するために利用可能なレイアウトのリストです
  • vnc clientと接続すると、キーボードレイアウトが機能しないレイアウトが理解できません...

私は試した

  • directive into xmlSudo virsh edit myVmGuest => keymap='fr-ch'でグラフィックスセクションに変更(機能しない)
  • キーボードレイアウトをkdeゲストに変更する(どちらも機能しない)
  • Vncクライアントを変更する
2

VNCプロトコルでの標準のキー処理は、Xキーシムをサーバーに送信する必要があるため、仮想化に非常に適していません。 VNCクライアントマシンのハードウェアスキャンコードはキーシムに変換され、QEMUに送信されます。QEMUは、それらをハードウェアスキャンコードに戻し、ゲストに送信して、キーシムに戻します。これがまったく機能しない可能性があるためには、ローカルラップトップのキーマップがQEMUで設定されたキーマップと一致する必要があり、QEMUはゲスト内で設定されたキーマップと一致する必要があります。それでもそれはしばしば完全ではありません。

したがって、QEMUはVNCクライアントからハードウェアスキャンコードを送信するためのVNCプロトコル拡張を定義しました。これにより、VNCクライアントマシンやQEMUでのあらゆる種類の変換が回避されます。ハードウェアスキャンコードはVNCクライアントからQEMUに送信され、QEMUがゲストに送信します。ゲストだけが翻訳を行う必要があります。

Virt-viewerアプリケーションは、このプロトコル拡張をサポートするGTK-VNCライブラリーを使用しているため、それがうまく機能するのはなぜですか。

リモートビューアアプリケーションは、virt-viewerと同じコードベースの一部であるため、このプロトコル拡張を正しくサポートするプレーンなVNCクライアントを提供できます。

スキャンコードにVNCプロトコル拡張を使用するよりも常に悪い結果になるため、QEMUでキーマップを構成することは実際に価値がありません。

ほとんどの歴史的なVNCクライアントはnotで拡張機能をサポートしていますが、正しく機能すると信じているのはtigervncです。したがって、virt-viewerまたはremote-viewerを使用できない/使用できない場合は、tigervncを使用してみてください。

3
DanielB