Kvm-Virtualization

如何使用 VNC 客戶端將鍵盤佈局設置為 KVM (libvirt)

  • July 1, 2019

我在 Debian 9.9 上安裝了 kvm 來賓和主機,並在 AMD 機器上安裝了 kde

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

  • virt-viewer連接時,我的鍵盤佈局實際上正在工作(fr-ch),我不知道可用佈局列表在哪裡確認我fr-ch的可用
  • 與任何vnc 客戶端連接時,我的鍵盤佈局無法正常工作,佈局無法理解….

我試過

  • 使用=>將指令更改為 xml 到圖形部分(不起作用)sudo virsh edit myVmGuest``keymap='fr-ch'
  • 將鍵盤佈局更改為 kde guest(均無效)
  • 更改我的 vnc 客戶端

VNC 協議中的標準密鑰處理與虛擬化非常不匹配,因為它涉及向伺服器發送 X 密鑰符號。VNC 客戶端機器上的硬體掃描碼被轉換為密鑰符號,然後發送到 QEMU,QEMU 然後將它們轉換回硬體掃描碼,然後將它們發送給客戶機,客戶機再次將它們轉換回密鑰符號。為了讓它有任何工作的機會,您本地筆記型電腦上的鍵盤映射需要匹配 QEMU 中設置的鍵盤映射,而 QEMU 需要匹配來賓內部設置的鍵盤映射。即便如此,它通常也不完美。

因此 QEMU 定義了一個 VNC 協議擴展,用於從 VNC 客戶端發送硬體掃描碼。這避免了 VNC 客戶端機器或 QEMU 中的任何類型的轉換。硬體掃描碼從 VNC 客戶端發送到 QEMU,QEMU 將它們發送給來賓。只有客人需要翻譯。

virt-viewer 應用程序使用支持此協議擴展的 GTK-VNC 庫,因此它非常適合您。

remote-viewer 應用程序是與 virt-viewer 相同的程式碼庫的一部分,因此可以提供正確支持此協議擴展的普通 VNC 客戶端。

真的不值得嘗試使用 QEMU 配置鍵盤映射,因為結果總是比使用 VNC 協議擴展掃描碼更糟糕。

大多數歷史 VNC 客戶端不支持該擴展,但我認為正確執行的一個是tigervnc。因此,如果您不/不能使用 virt-viewer 或 remote-viewer,請嘗試使用tigervnc。

引用自:https://serverfault.com/questions/973538