2016年3月26日土曜日

MacBook Pro Retina 13-inch Mid 2014死亡→3日後に復活(追記:やっぱり死亡 in 2016年4月3日)

 (追記:2016年4月20日)
いったん復活したかに見えたのですが、結局ディスプレイのブラックアウトが発生し、どうにもならなくなりました。以後の顛末は次のエントリで。


3日前、新学期に備えて3Dプリンタの修理をしていて、調整のためUSBケーブルで接続していたところ、椅子で膝にMBPを載せた状態のまま、ふと立ち上がろうとしたら手すりがケーブルを引っ掛けてMBPが2m以上吹き飛び、ケーブルも壊れるという事態が発生しました。

MBPには、AppleStoreサイト限定の「Tech21 13インチ Impact Snap Case for MacBook Pro」を装着していて、これまでも教室への運搬中に落下させるなど、ひどい扱いをしているものの、特に傷が入ることもなく、本体の動作に支障をきたすこともなく使えていたのですが、今回はMicroUSBアダプタをSDスロットに指していて、それが破壊するほどの衝撃だったためか、起動不能状態に陥りました。

こういうときはまずPROMリセットから、ということで、Command+Option+P+Rを押した状態で電源を入れ、いったんはそれで何事もなく再起動したのですが、ほどなく突然ブラックアウトし、そのまま再びPROMリセットしても、SCMCクリアしても、起動音こそすれAppleロゴが現れない、ターゲットディスクモードのため、Tキーを押して起動した状態でThunderbolt接続したMac miniで様子をみても、外付けディスクとしても、「システム情報」にもThuderboltデバイスとして見つからず、お手上げになりました。

最後の頼みでAppleのサポートに電話して、3時間ほどあれこれと対処を探るものの改善せず、「残念ですが修理になります」という結論になりました。

Mac miniはTime Machineバックアップしているのですが、MBPは128GB SSDということもあり、クラウドに必要と思ったものを載せるやりかたでやっていて、作業中のファイルや、メモ的に開きっぱなしにしているブラウザのタブが失われると仕事が分断されるところがあり、修理に出してきれいさっぱりということには強い抵抗がありました。あと、Apple Careを購入していなくて1年保証が切れてしばらく経ったこの時点で修理代を払うこともできない状態で、詰んでいるような気持ちになっていました。

検索すると、内部の掃除だけで復旧できたという話がこのモデルについてもいくつかあり、なんとか底面の星形レンチのねじを外してみたいと強く思うに至りました。

そういうときはiFixitなわけですが、該当ページによれば使う工具は「P5」タイプのドライバとのこと、Amazonでいろいろ見ると、Penta 1.2mmという記述するものと同じようでした。ただ、iFixitの最初の写真は、P5以外にヒンジ部分の2本はP6と書かれており、2種類必要そうであるものの、使う工具の欄はP5ひとつだけということで、よくわかりませんでした。

翌日大須で、こういう特殊ドライバを置いている店をくまなく探してみるものの、工具を多く扱う店の入っている第2アメ横ビルは水曜休み、他の多くの店に置かれていた中華ドライバビットのセットで、P5とP6の両方が入ったものは扱いがありませんでした(あっても、P5のみを含むセットのみ)。

それでAmazonをポチると、通常配送で翌日には届いてしまい、電車賃払う必要があったのかと自問。

さて、それで、iFixitのサイトをみるのですが、さきのリンクの通り、Teardownのページがなく、内部掃除のため部品を外していく明確な手順はわかりませんでした。

それで、まずP5のビットでねじを外していくと、裏蓋のすべてのねじがP5であって、P6に合うものはありませんでした。ということは、大須にあったセットでもよかったわけですが、価格が1500円前後だったので、電車賃を入れてもAmazonのほうが安かった。結果的に。

ひとまず内部が見えたので観察するのですが、ほとんどの部品はねじでしっかり留められており、SSDもビス止めされ、振動などで部品が緩んで起動できなくなるような要素は見当たりませんでした。

そこで、ゴムのなかに接点があるようなコネクタ部分を指でしっかり押さえてみて、外した裏蓋をウエットティッシュで拭いたあと、見えている部分のほこりをさっと拭ったところで、裏蓋が外れたまま電源を入れてみると、意外にもAppleロゴが表示されました。そのまま、リカバリ手順に入ったように見えるのですが、メニューバーはあってAppleメニューがあるので、そこから再起動すると、普通にもとの状態で再起動してきました。

疑心暗鬼のまま、裏蓋を再度ねじどめして、もとの状態に戻して電源を入れると、なぜか完全復旧できた様子で、そのままいまに至ります。

考えてみたら、このマシンは購入翌日になにか致命的な初期不良があって、いったん修理に出していたのでした。そのときはGenius Barで確認して1年保証の範囲で無償修理に出しました。2013年モデルではビデオ関係の問題でApple Care関係なく無償修理対象だったことがあるようで、Mid 2014でも何か不具合が出やすいなにかがあるのかもしれません。

明日はTime Machine用HDDがついたマシンにTime Machineバックアップしておこうと思います。

2016年3月12日土曜日

Raspberry Pi純正7inch Touch ScreenとRaspbian Jessieへのジェスチャー機能の導入

Raspberry Pi公式7inch Touch Screenが届いたのが1月中旬だったかと思いますが、いままで多忙のため、ほったらかしにしていました。

OSも入れ替えるので、スクリーンがあったほうがよいと思い、使ってみることにしました。

まずボードを見ると、ATTINY88、つまり汎用AVRマイコンがいて、おや、と思いました。基板のパターンが見えないのでなんともいえませんが、東芝TC358762XBG DPI-DSIシリアル-パラレル変換チップとディスプレイコントローラのFT5406DQ9(フレキのなかに埋まっている)の間に入って、パラレル信号をAVRマイコンのI/Oで受けて、FT5406DQ9にSPIで画面のビットマップデータを渡す仕事をしているのかなあと思うところです。TC358762XBGの右側、Raspberry Piロゴのところで盛大にパラレルのラインが走っているのですが、スルーホールが終端になっているので、そこから基板の裏に抜けてATTINY88のI/Oに入っていると想像すると、ATTINY88とフレキのコネクタが隣り合っている理由が立つんではないか、という感じです。

あとRaspberry Piにこのボードから給電する使い方なので、電源がどうなっているのかが気になりますが、搭載されている電源チップはTIのTPS65101という液晶ディスプレイ用マルチ電圧電源チップが搭載されているだけで、Raspberry Pi基板給電についてこれといった特別な配慮はないように見えました。USB端子から給電されたものを液晶用にはこのチップで複数の電圧の電源を作って使いますが、Raspberry Pi側にはそのまま流すだけなのかなと思います。

マルチタッチのための指の座標などを扱うI2Cに関しては、Raspberry Pi A+/B+以後はDSI端子にI2Cが出ているのでそれを使うそうです。一方、Pi 1のDSIにはI2Cが含まれていないので、Raspberry PiのGPIOに配線するためのI2Cピンヘッダが出ているということのようです。販売されているキットに4色のメス-メスワイヤーがついてきて、赤と黒でRaspberry Piにこの基板から給電するような説明で、残りの3つのピンや黄と青のワイヤーの使い道について説明がないのは、それが理由のようです。つまり、Pi 1ならSCLとSDAを余った2本のワイヤーでそれぞれGPIOの物理ピン番号で5(SCL)と3(SDA)につないでタッチ機能を使えるようにする、ということ。さらに、ボード上のUSB A端子は5V出力用なので、百均の短いmicroUSBケーブルを使ってRaspberry Piに給電してあげれば、Pi 1以外ではキットに添付のワイヤーは不要になります。
ディスプレイ裏のボード部分
話が前後しましたが、接続方法はRSコンポーネンツの代理店ケイエスワイさんのページにある通り簡単で、DSIフラットケーブルの向きや裏表を間違えないことと、この手のケーブル用コネクタはプラスチックの押さえを引き出してからケーブルを差し込み、再度押し込んで固定する構造ということさえ理解していればよい、と、他のブログでもいろいろ解説されている通りです。Raspbianも最新のNOOBSでは最初からタッチデバイスを「FT5406」として認識してくれました。lsmodすると、「rpi_ft5406」というカーネルモジュールも入っています。

ということで、いきなり何も困らない感じでしたが、触ってみると困るのが右クリックがないこと。

WheezyではXの設定でEmulateButton3関係のプロパティを設定してあげれば動くようですが、Jessieではプロパティが設定されていても無視されるようでした。ここまではフォーラムの前半の議論の通りですが、次のページにあたる後半に、twofingというプログラムでジェスチャーイベントを設定してやる方法がありました。 設定手順は別スレッドに整理されていたので、こちらを参照されるとよいと思います。

「twofing」が実現するのは、以下の3つのジェスチャーのようです。
  • 2本指スクロール(タブレットと同様に、指に画面移動がついてくる動き)
  • 2本指ピンチズームと回転
  • 2本指タップによる右クリック
やってみると、狭い画面で2本指タップで右クリックというのはなかなかつらいですが、タップを使っている間に右クリックだけのためにマウスに手を伸ばすのはたいへん残念なので、それよりはよほどいいのかなと思います。

フォーラムに書かれている手順の概略をだいたいまとめると以下の通り。
  1. gitを入れる
    $ sudo apt-get install git
  2. ソースを取得
    $ git clone https://github.com/Plippo/twofing.git
  3. 必要なライブラリ取得
    $ sudo apt-get install build-essential libx11-dev libxtst-dev libxi-dev x11proto-randr-dev libxrandr-dev
  4. cd twofing; make; make install
  5. /etc/udev/rules.d/70-touchscreen-egalax.rules に以下を追記
    KERNEL=="event*",ATTRS{name}=="FT5406 memory based driver",SYMLINK+="twofingtouch",RUN+="/bin/chmod a+r /dev/twofingtouch"
  6. ~/.config/lxsession/LXDE-pi/autostart に以下を追記
    @/usr/bin/twofing
5番目はOS起動時にタッチスクリーンの入力イベントデバイスを、twofingが参照するデバイス /dev/twofingtouch に関連付ける記述で、6番目はLXDEが起動するときについでにtwofingを起動させるための記述です。

これで二本指ジェスチャーが使えるようになって、マウスがなくてもあまり困らなくなると思います。

右クリックは上部のバーですぐに確かめられます。スクロールは標準のEpiphanyブラウザで、ピンチでの拡大縮小はLibreOfficeで確認できると思います。

このあとさらにオンスクリーンキーボードもあればキーボードも不要になっていよいよタブレットということになりそうですが、LXDEデスクトップを使うには解像度が足りないので画面が狭く、ちょっと躊躇するところです。この画面サイズで指操作を考慮した特定のアプリケーションでの利用に限定するのが無難なのかと思います。研究・開発用という感じでしょうか。

2016年3月11日金曜日

Raspbian Jessie上のドリトルで日本語入力できた

昨年夏にRaspberry Piのドリトルで日本語入力しようとしたとき、Jessie+ibus-anthyではドリトルだけ日本語入力できないという問題があり、Wheezyに戻して使うということをしていました。

しかし、Raspberry Pi 3で標準搭載のWi-Fi+Bluetooth 4.1チップのドライバが、発表日である2月29日以後のRaspbianにしか入っていないような報告があり、Jessieがインストールされることが確実なため、日本語入力の方法を探しておかなければならないと思い、試してみました。

日本語入力については、検索してみるとscimを使う人、ibusを使う人、いろいろおられるようでしたが、uimを使う設定を書かれている人がいて、「あ、これは...!!」と思った次第。

具体的にはNOOBSは1.8.0でした(2016年2月29日付)が、もちろんJessieです。

RSコンポーネンツの解説にしたがって、日本語フォントを導入したあと、
$ sudo apt-get install uim uim-anthy
としました。なにやらuimのメニューアプレットが表示されましたが、日本語入力への切り替えがわかりませんでした。検索してみると、コマンドラインから「uim-pref-gtk」を起動せよとのこと。

起動すると、左の「グループ」のなかにいろいろありますが、「全体キー設定1」をみると、「Shift+スペース」がローマ字かな変換のオンオフということがわかりました。状態表示がよくわからないので「全体設定」グループの「視覚設定」→「□カーソルの側に入力モード表示」にチェックを入れて、「OK」ボタンを押し、設定変更してみたところ、たしかに、Shift+スペースで、直接入力とローマ字かな変換の表示が変化して、日本語変換できることが確認できました。

さてドリトルです。新しくインストールしたRaspbianなので、再び公式ページからダウンロードしてインストールするんですが、Jessieからは、ダウンロードフォルダの名称が「Downloads」になったんですね。Wheezyでは全角カタカナの「ダウンロード」だったので、コマンドラインからの入力に一手間入ってつらかったのですが、助かります。「dpkg -i ファイル名」でインストール、メニューからドリトルを起動しました。

日本語入力、ちゃんとできました。

最初に失敗してから半年以上経っているので、どこがどう変化してうまくいくようになったのかよくわかりませんが、いちおうuim-anthyでは大丈夫ということが確認できたので、ご報告です。