今まで、yoctoで作成したLinuxでは日本語を表示できる環境はよく見かけたが、 meta-oeにはuimとanthyのパッケージが存在するのに、日本語を入力できる環境を見たことがなかった。
今回、仕事がらみで日本語入力環境について調べたところ、uimのレシピに不具合があり、 正しい日本語入力環境が作成できなくなっていたことがわかった。 いろいろ修正した結果日本語が入力できる環境を作成することができたので、 これらの修正パッチをmeta-openembeddedのMLに投稿したところ、取り込んでもらえた。 そのため、masterブランチおよび次期バージョンではuim+anthyによる日本語入力環境が作成できるようになる。
ここではmasterブランチを使用し、qemu環境で日本語を入力できる環境を構築する。
poky及びmeta-openembeddedの取得
$ git clone git://git.yoctoproject.org/poky.git $ cd poky $ git clone git://git.openembedded.org/meta-openembedded
環境変数の設定
$ cd ../ $ source poky/oe-init-build-env build
これで自動的にbuildディレクトリへ移動する。
レイヤの追加
$ bitbake-layers add-layer ../poky/meta-openembedded/meta-oe
local.confの修正
IMAGE_INSTALL_append = " uim-xim uim-utils uim-common uim-gtk2.0 uim-gtk3 uim-anthy" IMAGE_INSTALL_append = " ttf-vlgothic ttf-sazanami-gothic ttf-sazanami-mincho" IMAGE_INSTALL_append = " setxkbmap" IMAGE_LINGUAS ?= "ja-jp ja-jp.euc-jp" GLIBC_GENERATE_LOCALES = "ja_JP.UTF-8 ja_JP.EUC-JP"
日本語入力に必要なパッケージと、日本語フォント、キーボードレイアウトの設定。 そしてロケールの設定を追加している。
bitbake
$ bitbake core-image-sato
QEMUの起動
buildディレクトリで次のコマンドを実行するとQEMUが起動する。
$ runqemu
日本語設定
そのままでは、日本語の表示び入力が有効化されていないので、~/.profile
を以下の内容で作成し、rebootする。
export LC_ALL=ja_JP.UTF-8 export GTK_IM_MODULE="uim" export XMODIFIERS="@im=uim-anthy" uim-xim & uim-toolbar-gtk-systray & setxkbmap -layout jp
日本語入力
再起動後、キーボードも日本語配列になり、 「shift+スペース」で日本語入力ができるようになる。
きちんと試してはいないが、Qt系のアプリではおそらく効果はないと思う。(QT_IM_MODULEの環境変数を設定しても)
これらのパッケージは、もちろんQEMU以外の実機でも動作する。