2013年8月9日

QEMUのゲストOSでアンダースコアが入力できない問題への対応(Gentoo Linux)

Gentoo LinuxでQEMU-1.4.2を利用しているが、ゲストOSでアンダースコア '_' が入力できない。
Googleで調べてみるとVirtの設定ファイルを記述する方法が記載されている(リンク)が、私の環境ではVirtは導入していないので別の方法を取りたい。この問題に対するQEMU修正のパッチがあった(リンク)ので、このパッチを利用してQEMUをビルドしなおす方法をとる。

1. パッチファイルの作成
/etc/portage/patches/app-emulation/qemu-1.4.2/qemu-jp106-underscore-fix.patch というファイルで、上記パッチ内容を記述する。

  --- a/ui/x_keymap.c     2013-08-09 07:40:09.530318381 +0900
  +++ b/ui/x_keymap.c     2013-08-09 07:38:27.310309931 +0900
  @@ -94,7 +94,7 @@
    */
  
   static const uint8_t evdev_keycode_to_pc_keycode[61] = {
  -    0,         /*  97 EVDEV - RO   ("Internet" Keyboards) */
  +    0x73,      /*  97 EVDEV - RO   ("Internet" Keyboards) */
       0,         /*  98 EVDEV - KATA (Katakana) */
       0,         /*  99 EVDEV - HIRA (Hiragana) */
       0x79,      /* 100 EVDEV - HENK (Henkan) */


2. PortageでQEMUをビルドしなおす
以下のコマンドでQEMUをビルドしなおす
  # emerge app-emulation/qemu

これで、1.で用意したパッチを当てた上でQEMUがビルドされ直した。
うーん。便利!

0 件のコメント: