raspberry piのベアメタル・プログラムのクロスビルドをubuntu on windowsで行うことは工夫が必要そうだし、私にはそのスキルはないと自己判断したので、ubuntuをhyper-v上にインストールしてその上にクロス開発環境を構築することにした。そうすれば、「本物のlinux」なのでWeb上の情報そのままにRaspberry Piのクロスビルド環境が構築できるはずだ。 本来であれば、物理ディスクからデュアルブートで立ち上げ、リモートデバッグ自体もubuntu上から行うべきだと思うが、それはそれでちょっと面倒なので、とりあえずクロスビルド環境を仮想マシン上のubuntuで構成し、ソースコードの編集はwindows 10 、デバッグはwindows 10上のGDBもしくはeclipseで行うことにした。
それで仮想マシンを作って、ubuntu 16.10をインストールしたのだが、なぜか日本語入力が立ち上がらない。2-3回インストールし直したものの、同じ現象が再現される。raspbianではuim + mozcであっさり日本語入力が構築できたので、ubuntuだと楽勝だと思ったが以外にも日本語入力という基本中の基本の部分でハマってしまった。で、デフォルトの日本語入力エンジンを見ると「fcitx」という今まで見たことないものが既定となっていた。これは何ぞやというとinput methodの一種らしい。linux上の日本語入力はinput methodが受け持つのだが、この種類が豊富である。uim,kkc,skk,ibus,xim,mozc...多すぎて何がなんだかwindows使いの私にはさっぱりである。これはunix上のunixの日本語入力の変遷と関係があって、都度改良されたものが、以前のものと完全には入れ替わらず、改良版が出るたびに古いものが並列して存在し続けた結果らしい。
それでいろいろ調べた結果、fcitxが起動していないことが分かったので、ターミナルでfcitx -r
を実行すると日本語入力できるようになった。が、再起動するとまた日本語入力できなくなってしまう。どうも起動時スクリプトでfcitxを起動しないといけないようである。で、起動スクリプトというのがいろいろあって.xpinutc,.xinitrc,.xprofile,.profile等ネット上の情報を調べれば調べるほどどれに記述すればよいかわからない。どうもubuntuでは.profileに書くようである。で.profileの最後の行にviでexec fcitx_autostart
を追加して再起動したところ今後はログインできなくなってしまったのである。多分やり方が違うのだろうが、私はここでubuntuを使うのをあきらめた。
で今はdebian + LXDEでインストールをしている途中である。raspbianでLXDEを使って気に入ったので。これでうまくいくといいのだが。