2016年6月16日木曜日

NOOBS 1.9.2でインストールしたRaspbian (jessie) 上のScratchで日本語入力を可能にしてみた

0. はじめに

Raspberry PiでGPIOにアクセスする場合、プログラミング言語としてPythonばかり使ってきたのですが、ふとScratchではどうなんだろう、と思い、調べてみることにしました。

ところが、Scratchに触れること自体が初めてだったので、GPIOへアクセスする以前に、Scratchで日本語入力を実現する設定に手こずってしまいました。

そこで、日本語入力を実現するために行った方法をまとめておきます。用いたのは、執筆時に最新であったNOOBS 1.9.2に含まれるjessie系列のRaspbian (2016-05-27)です。Raspberry Pi 2のみで試しました。


1. Raspbianの日本語表示設定

Scratchの前に、まずはRaspbianで日本語を表示できるようにします。

jessie系列のRaspbianには日本語フォントが含まれないので、日本語表示設定の前にまず日本語フォントをインストールする必要があります。ターミナルを起動し、下記のコマンドを実行しましょう。
$ sudo apt-get update
$ sudo apt-get install fonts-vlgothic
フォントのインストールが終わったら、デスクトップ左上のメニュー(Menu)から、「Preferences(設定)」→「Raspberry Pi Configuration(Raspberry Piの設定)」をマウスで選択してください。

現れた設定用アプリケーションで「Localisation」→「Set Locale」を選択し、「Language」を「ja (Japanese)」に、「Country」を「JP (Japan)」に、「Character Set」を「UTF-8」に設定します。その後Raspberry Piを再起動すると、日本語表示されたデスクトップ環境が起動します。

その後、メニューから「プログラミング」→「Scratch」を選択すると、下図のようにメニューが日本語化されたScratchが起動します。

しかし、よく見ると文字があまりなめらかではありませんね。そこで、Scratch用には別のフォントを設定することにします。


2. Scrachの日本語表示設定

Scrachでの日本語表示に適したフォントをインストールし、それを用いるよう設定します。本節の内容は「Raspberry PiでScratchを使う際の覚書」を参考にしました。

まず、ターミナルを起動し、下記のコマンドでフォントをインストールしましょう。
$ sudo apt-get update
$ sudo apt-get install ttf-sazanami-gothic
インストール後、「/usr/share/scratch/locale/ja.po」および「/usr/share/scratch/locale/ja_HIRA.po」という2つの設定ファイルをテキストエディタで編集し、上記のさざなみフォントを用いるよう設定します。

まず、下記のコマンドにより、管理者権限のテキストエディタで「/usr/share/scratch/locale/ja.po」を開きます。
$ sudo leafpad /usr/share/scratch/locale/ja.po
この中で、
msgid "Linux-Font"
msgstr "Mona"
という2行を見つけ、これを下記のように編集します。
msgid "Linux-Font"
msgstr "Sazanami Gothic"
編集が終わったら保存してテキストエディタを閉じます。

同様に、下記のコマンドにより、「/usr/share/scratch/locale/ja_HIRA.po」をテキストエディタで開きます。
$ sudo leafpad /usr/share/scratch/locale/ja_HIRA.po
編集内容は「/usr/share/scratch/locale/ja.po」と全く同じです。編集したら保存してテキストエディタを閉じてください。

その後、Scratchを起動しなおすと、下記のようにメニューなどがきれいなフォントで表示されます。


3.日本語入力用アプリケーションのインストール

jessie系列のRaspbianでは、日本語入力アプリケーションとして、Googleが開発したMozcをインストールするのが良いでしょう。

ターミナルを起動し、下記のコマンドでインストールします。
$ sudo apt-get update
$ sudo apt-get install ibus-mozc
インストールが終わったらRaspberry Piを再起動します。

その後、下図のように「US」と書かれた部分をマウスでクリックし「日本語 - Mozc」を選択してください。あとは「半角/全角」キーで日本語入力のオンオフを切り替えられます。


4. Scrachに日本語入力を受け付けさせるための設定

次に、上で可能になった日本語入力をScrachに受け付けさせるための設定を行います。

ターミナルを起動し、テキストエディタでScratchの起動スクリプトを編集します。
$ sudo leafpad /usr/bin/scratch
最後付近にある下記の行を見つけます。
$WRAPPER "$VM" "$IMAGE" "$DOCUMENT" $IMOPTIONS
ここに、下記のように「 -vm-display-x11 -compositioninput 」を追記します。
$WRAPPER "$VM" -vm-display-x11 -compositioninput "$IMAGE" "$DOCUMENT" $IMOPTIONS
追記したら保存してテキストエディタを閉じます。

その後Scratchを起動し、文字を入力できる部分で「半角/全角」キーを押すと、左下に変換候補が表示され、日本語入力が受け付けられそうなことがわかります。


ここで、確定した変換が文字化けすることなく入力部に表示されれば、設定は終了です(将来のRaspbianではそうなると思います)。

しかし、NOOBS 1.9.2に含まれるRaspbianでは確定した文字列が下記のように文字化けしてしまいます。

これを直す設定をさらに行っていきましょう。


5. Squeakのvm-display-x11をビルドしなおす

最後の手順です。長いですが一つずつ実行していきましょう。なお、この節の内容は「RaspbianのScratch1.4で日本語入力(QEMU上だけど)」を参考にさせて頂きました。

Squeakというアプリケーションを再ビルドし、vm-display-x11というプラグインを差し替える必要があります。まず、ターミナルを起動し、 ビルドに必要なパッケージをインストールします。
$ sudo apt-get update
$ sudo apt-get install subversion cmake g++ xorg-dev uuid-dev libasound2-dev libssl-dev libgl1-mesa-dev
その後、Squeakのソースをダウンロードし、ビルドします。
$ svn co http://www.squeakvm.org/svn/squeak/branches/Cog
$ cd Cog/build.linux32ARM/squeak.cog.spur/build
$ ./mvm
ここで「clean?」と聞かれますが「n」を入力してEnterします。

Raspberry Pi 2で5分くらい待つと、ビルドが完了します。 後は、下記の要領でできたプラグインを差し替えます。
$ sudo mv /usr/lib/squeak/5.0-3663/vm-display-X11  /usr/lib/squeak/5.0-3663/vm-display-X11.orig
$ sudo cp /home/pi/Cog/products/cogspurlinuxhtARM/lib/squeak/5.0-3744/vm-display-X11 /usr/lib/squeak/5.0-3663/
その後、Scratchを起動すると、日本語を入力しても文字化けしなくなっているはずです。

何が起こっているかというと、NOOBS 1.9.2に含まれるRaspbianのSqueakは、ダウンロードしたソースよりも若干バージョンが古いのですね。最新のソースでは文字化けを解消するコードが既に取り込まれているので、ビルドして差し替えるだけで文字化けが解消した、というわけです。

6. 終わりに


以上でした。最近のScratchはデフォルトでGPIOにアクセスできたり、カメラモジュールが使えたりするらしいので(参考)、試してみたいと思います。

こちらもどうぞ




「ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作」、「実例で学ぶRaspberry Pi電子工作」、「Raspberry Piではじめる機械学習」を執筆しました。

2016年4月9日土曜日

Windows 7からWindows 10にアップグレードしたらポータブルハードディスクが使えなくなった話

遅ればせながらWindows 7をWindows 10にアップグレードしています。メイン機は怖いのでサブ機から少しずつ試しているのですが、あるとき、タイトル通り「Windows 10でポータブルハードディスクが使えない」という状況に遭遇しました。

IO-DATAのHDPA-UT1.0XKというHDPA-UTシリーズのポータブルハードディスクなんですが、こちらの「Windows 8対応製品リスト」を見るとしっかり「☓」がついてますね。

実際にWindows 10に接続してアクセスすると、エクスプローラが固まってどうにもなりません。ファームウェアのアップデートも見当たらないですし、これはWindows 10対応のポータブルハードディスクを買い直し、Windows 7上でデータを退避するしかなさそう。

調べたら、こちらの方と全く同じ状況でした。

しかし、OSのバージョンアップでハードディスクが読めなくなるなんて初めての体験で驚きました。FATではなくNTFSなのが影響してるんでしょうか。

重要なデータが全てポータブルハードディスクにしまっている方がこの問題にハマったら、と考えると恐ろしいですね。

Boot Camp上のWindows 7をWindows 10にアップグレードしてみた

はじめに

普段、Mac Book AirのBoot Camp上でWindows 7を使っているのですが、Windows 10の強制アップグレードが始まる、という話をちらほら耳にしたので、その前に試してみました。Mac Book Airモデルとしては2011年と2012年のモデルを1台ずつ行いました。

その際、正しい手順をとらないとハマることがあることがわかったので、以下にメモします。

推奨する手順


先に、推奨する手順を記します。この手順なら恐らくトラブルは起こらないのではないでしょうか?
  • まず、Windowsで動いているBoot Campヘルパーツールを最新にします。そのためには、下記の手順に従いました。
    • Mac Book AirをOS Xで起動し、「アプリケーション→ユーティリティ→Boot Campアシスタント」を実行し、Boot Campヘルパーツールを更新するためのUSBメモリを作製します。
    • Windows 7に戻り、作製したUSBメモリのSetup.exeを実行し、Boot Campヘルパーツールを最新にします。Mac Book Airのバージョンによりますが、Boot Camp バージョン5.1かバージョン6.0になるのではないかと思います。なお、RealTekオーディオドライバのインストールがいつまでも終わらない場合、一旦セットアップを終了し、USBメモリ内のRealTekフォルダを削除してからもう一度セットアップする必要があります(これは検索すれば情報が多く見つかります)。
  • あとは通常の手順でWindows 7をWindows 10にアップグレードします。タスクバーにアップデート用のアイコンがある場合はそちらからでも良いですし、こちらのリンクからでも構いません。
  • Windows 10へのアップグレードが終わったら、Bluetoothが機能しない状態になっていると思います。そこで、上で作製したUSBメモリのSetup.exeをもう一度実行すると、Boot Campの修復が行えるので、それで全てのデバイスが利用可能になります(先ほどと同様、USBメモリ内のRealTekフォルダの事前の削除が必要な場合があります)。

以上です。

Boot Camp 4.xの状態でWindows 10にアップグレードしてしまったら?

上で見たように、Boot Camp上のWindows 7をWindows 10にアップグレードする前にBoot Campヘルパーツールを最新にするのが重要です。

それを行わず、Boot Camp 4.xのままWindows 10にアップグレードしてしまったら何が起こるか、そしてどう対処すべきかを以下に記します。

Boot Camp 4.xのままWindows 10にアップグレードすると、アップグレード自体は問題なく終わるのですが、以下の様な状態になります。
  • トラックパッドが効かない
  • キーボードに対するIMEの設定変更が保存されない
  • Bluetoothが効かない
そのため、Boot Campヘルパーツールを最新にしようとするのですが、上で作製したUSBメモリ上のSetup.exeを実行しても、エラーが出てすぐ終了してしまい、ドライバの更新などが行われません。

また、旧バージョンのBoot Campをコントロールパネルのプログラムのアンインストールから削除しようとしても、「削除にはWindows 7が必要」と言われ、削除できません。

この状態に結構困ったのですが、下記の手順で解決出来ました。
  • Revo Uninstallerをインストールし、Boot Campに関するファイルとレジストリを全て削除する
  • 最新のBoot Campヘルパーツールをインストールする
Revo Uninstallerは、私は30日間の体験版を使い使用後にアンインストールしたのですが、無料版でも多分大丈夫なのではないでしょうか。また、最新のBoot Campヘルパーツールのインストール時にエラーがいくつか出ましたが、インストールは最後まで進み、Boot Campヘルパーツールは最新のものがインストールされました。もちろん、それで全てのデバイスが利用可能になりました。

おしまいです。