QEMU上で'_'(アンダーバー)を入力できない問題の解決法(debian packageへのコード修正・再ビルド)
少し早いですが、本記事はDebian/Ubuntu Advent Calendar 2017の12/7(木)の記事として書いてみたものです。
qemu-system-x86_64(qemu-system-x86パッケージ、バージョン:1:2.1+dfsg-12+deb8u6)を使用していて、ゲスト上で'_'(アンダーバー)を入力できないという問題がありました。
ソースコードの修正が必要で、以下の記事等で修正方法が紹介されています。
Debianパッケージのソースコードを取得して、ソースコード修正し、debパッケージ再生成を行ってみましたので、
この記事ではその手順をまとめておきます。
手順1. パッケージのビルドに必要なパッケージをインストール
$ sudo apt-get build-dep qemu-system-x86
手順3. ソースコード修正
qemu-2.1+dfsg/ui/x_keymap.c を以下のように修正
--- 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) */
手順4. debパッケージ再生成
$ cd qemu-2.1+dfsg $ dpkg-buildpackage -rfakeroot -uc -b