Intel Celeron N2806のeMMC(RPMB)

Pocket

ECS LivaというBay-Trail MベースのPCがあります。秋葉原の複数の店舗やAmazonで扱っています。2万円しない小型PCで、メモリ(2GB)とストレージ(eMMC 32GB)を搭載しているので、OSさえ用意すれば他には何もなくても使えるマシンです。

公式でUbuntu 14.04が動作すると書かれているのですが、やはりDebianを使いたいのでなんとかしてインストールしてみました。

しかし、wheezyのインストーラではストレージを認識できません。Linux kernel 3.8から入ったsdhc_acpiというホストドライバが必要なのですが、Debian wheezyの標準kernelは3.2と古いのが原因です。

結局、自分は一度Ubuntu Live USBイメージから起動して、debootstrapで頑張ってDebianをインストールするという手段で実現しました。Debianさえ入ってしまえば、backportsにある3.14 kernelがwheezyでも使えます。

最初はwheezy用のインストーラを作るべく頑張ってみたのですが、3.14 debian udebにsdhc-acpi.koが含まれていないというバグがあるため(kernel debにはある)、kernelパッケージを作り直す必要がありました。しかし作り直しても、eMMCデバイスは見えるけれどもアクセスすると固まるという問題があったため、挫折しました。

今のbackports kernelでは一応動いていますが、Replay Protected Memory Block(RPMB)と呼ばれる領域にアクセスできないという不具合があります。この警告はUbuntu kernelだと出ません。

[    3.202626] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
[    3.205033] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
[    3.207399] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
[    3.209806] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
[    3.212209] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
[    3.214579] mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
[    3.214861] end_request: I/O error, dev mmcblk0rpmb, sector 8190

Ubuntu kernelからこの対応をやっている箇所をどうやって特定しようか、と考えていたら、対応している人の記事がみつかりました。

/dev/nell – RPMB eMMC errors under Linux

この記事ではASUS T100Aを対象としているようですが、おそらくLivaでも使えることでしょう。

By knok

I am a Debian Developer and a board member of Free Software Initiative (FSIJ).