Build767での日本語入力(ibus-Anthy)

先日のエントリでは、rainbowを無効にして、Build767でAnthyの日本語入力を無理やり動かす実験をしました。
しかし、Sayamindu Dasgputaが、rainbowにパッチをあててIMEからの入力を可能にするという案を考えてくれました。今回はこの方法を使って日本語入力を設定してみます。なお、mixiの方でご質問があったので、今回はibusを使います。

(0) 前提

  • Build767がインストールされている
  • 日本語フォントがインストールされている
  • 言語が日本語に設定されている

以下の手順はTerminalの中で行います。

(1) ibus-Anthyをインストールします。

$ su
# yum install ibus-Anthy
    :
  (途中確認メッセージに答える)
# exit

(2) 以下のような内容の/home/olpc/.xsessionを書きます。

export XMODIFIERS=@im=ibus
export GTK_IM_MODULE=xim
export QT_IM_MODULE=ibus
ibus &

(3) /usr/bin/olpc-sessionと、/usr/lib/python2.5/site-packages/rainbow/service.py をSayaminduのメールに添付されているものに置き換えます。

(4) (3)のファイルは、SCIM用の設定になっているので、これを編集し、ibus用に直します。
(4.1) olpc-session
以下の箇所:

export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=xim
export USE_XOPENIM=t

を次のように直します:

export XMODIFIERS=@im=ibus
export GTK_IM_MODULE=xim
export USE_XOPENIM=t

(4.2) service.py
以下の箇所:

os.environ['XMODIFIERS'] = '@im=SCIM'
os.environ['GTK_IM_MODULE'] = 'xim'
os.environ['USE_XOPENIM'] = 't'

を次のように直します。

os.environ['XMODIFIERS'] = '@im=ibus'
os.environ['GTK_IM_MODULE'] = 'xim'
os.environ['USE_XOPENIM'] = 't'

(5) Ctrl-Alt-DeleteをタイプしてXを再起動します。

(6) ibusを設定します。Terminalを開き、"ibus-setup" を実行します。

起動した「IBus-セットアップ」という画面の「エンジン」タブで、Anthyのアイコンの行の「開始」「プリロード」にチェックを入れ、「閉じる」をクリックします。

これでAnthyによる日本語入力ができるようになりました。
注意:Etoys, ScratchについてはVM側に問題があり、以上の設定だけでは日本語入力できません。

まめちしき:PSE法

PSEは製造輸入販売業を規制するものです。したがって、個人輸入PSE法に通っていないものを入手したユーザがそれを利用することを規制するものではありません。(AmazonやeBayはどうなる?)一方、技適は、無線設備の使用=個々のユーザによる利用を規制するものなので、認証済みでないものを使用するのは法的にはNGです。

現在出荷されているXO-1を このサイトの解説に照らしてみると、

  • パソコン=「特定電気用品・特定以外の電気用品」以外の製品→一般に規制対象外
  • ACアダプターは専用品としてセットで販売している→規制対象外(マニュアルで専用品として記述する必要があるみたい)
  • TV機能・配電機能など、規制対象品の機能を持つわけではない
  • Liイオン電池は別に規定があり、専用品として同梱されていても規制対象

ということで、Liイオン電池の規制をクリアすればよさそうです。

Liイオン電池の規制は、METIのPSE法のページに、英文版も含めて掲載されています。wadさんにはこれをお知らせすればいいのでは?>id:abee2さん
要点は

まめちしき:技術基準適合認証を通すコスト

  • http://telec.org/base/base4.html によれば、認証そのものには、チャンネルあたり約50万円くらいの費用がかかるそうです。XO-1のハードウェアは3チャンネルをサポートしているので、少なくとも150万円くらいの費用がかかると思われます。ドルが安い今は、ドル換算すると割高になりますね。
  • 工事設計認証を受ける場合、検査記録の作成と保管が法的に求められています。こういう組織・プロセスコストは馬鹿にできない額になりがちです。
  • また販売される個々の個体に認証番号のラベルを表示することが必要です。この作成・貼り付けのコストも必要ですね。

仮に本当に技適を通すなら、XOの製造販売形態やコストモデルを考えた場合、日本側で輸入販売を管理する組織がないと難しいのではないかと思われます。
また、大量生産品として工事設計認証を通すのではなく、注文をまとめてQuantaから直接ロットで輸入し、抜き取り検査で技術適合証明を通すほうが要件やコストが少ないかもしれませんね。

ちなみに、PSEは規制をさす言葉ですが、TELECは技術適合認証を実施する組織のうちの1つであって、規制の名前ではありません。

Scratchライセンス

SugarLabsのMLでは、ここ数日盛り上がった「EtoysがDebianに入れてもらえないのをどうするか」が一区切りついた後、Scratch1.3でライセンスが 従来の free系 から non-comercialに変更されていたことが話題になっています。このままだと1.3のソース公開もされないかも?

Build767での日本語入力

olpc-ja MLでもちょっと書いたのですが、新しい8.2-767上で日本語入力の設定を調べてみました。

普通にSCIMを入れてみる

以前のバージョンで行っていた手順SCIMを入れます。
しかし、Ctrl-Spaceを押してもIMEが上がってきません。SCIMのデーモンは動いているように見えます。
Fedora9になって依存関係が変わったようで、なにやらたくさんのrpmも一緒にインストールされるのが気に入りません。

ibusを入れてみる

SCIMの直し方のヒントが見つからなくて、検索した際にFedora9で動いたと記述があった、ibusibus-anthy)を試してみました。
ibusは、RedHatの人が中心になって開発している新しいInputMethodのフレームワークです。SCIMとの大きな違いとして、dbusベースのAPIを使用していることが大きな特徴です。詳細は、http://ibus-user.googlegroups.com/web/ibus.pdf に説明があります。

今回ibusを試したもう一つの理由は、ibusが XOの将来のOSでのInputMethodの候補としても検討されていることです。直近のバージョンではSCIMが候補ですが、ibusへの移行の容易さも考慮されたようです。

まだいろいろ開発中ではありますが、Fedora9ではyumで普通に入りました。
.xsessionは次のように書きます。

export XMODIFIERS=@im=ibus
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
ibus &

あと、ibus-setupでAnthyを使うように指定しましたが、この指定が効いているかどうかは不明です。

ibusでもやはりCtrl-SpaceでIMEが上がってきませんでした。しかし、色々試しているうちに、TerminalアクティビティだけはIMEが起動されて入力できることがわかりました。

Terminal以外でも入力できるようにするには?

OLPCでは子供に安全に自由に使ってもらうために、セキュリティを大変重要視しています。IvanのBitfrost platformのサブセットである、アクティビティ間の分離機能をRainbowをOS上のサービスの一部として実装しています。8.2-767が前バージョンの8.1と大きく変わった点の一つとして、このRainbowによる分離がデフォルトでONになっていることがあり、これが怪しい気がします。
通常のユーザ向けアクティビティと異なり、Terminalはいろんな管理作業を行えるよう、セキュリティ上の扱いが異なります。TerminalアクティビティだけIMEが動くというのは、重要なヒントです。

そこで、実験的にアクティビティ分離を停止して試してみます。
アクティビティ分離の停止方法は、Wikiのここに説明があります。
その結果、Terminal以外でもibus-anthyIMEによる入力ができました。

再度SCIMに挑戦する

ibusでの回避手段を見つけたことに気をよくして、再度SCIMに挑戦してみます。
Fedora9での事例やscimのエラーメッセージでいろいろ検索した結果、scim-lang-japaneseをインストールした上で、
.xsessionはこのように変更したら、動くようになりました。

export LC_TYPE="ja_JP.UTF-8"
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=scim-bridge
export QT_IM_MODULE=scim
export USE_XOPENIM=t
scim -d &

この場合でも、アクティビティ分離を停めないとTerminal以外でのIME入力はできません。

今後の課題

実験的な回避手段としては使えると思いますが、Rainbowを停めていることで動かないアクティビティがあったり、本来のセキュリティではないので、このままでは実用には耐えられませんので、MichaelやSayaminduに相談して、Rainbowの中で動作できるように研究してみたいと思います。