junk:fz-b2.html

Panasonic TOUGHPAD FZ-B2B

Android タブレットなのに BIOS があって x86 な CPU が載ってる頑丈な変態タブレットをアレコレしちゃいます

この記事で取り扱うのは Bay Trail-MのCeleron N2930を搭載しAndroid 4.4がインストールされているバージョンです。

仕様など

バーコードリーダーほしいよぉ FZ-M1用バーコードリーダー手に入れました。普通に動きます。

FZ-M1と同じ方法でいける。

  • Starting System画面の左上隅をタッチ連打。青い画面に代わるまでやらないと認識しない。
  • Starting System画面でUSBキーボードからF2連打

/bootloader/ami/etc/recovery.fstabより

/dev/block/mmcblk0p7	/system	ext4	ro	wait
/dev/block/mmcblk0p10	/factory	ext4	ro	wait
/dev/block/mmcblk0p8	/cache	ext4	noatime,nosuid,nodev,errors=panic	wait,check
/dev/block/mmcblk0p9	/data	ext4	noatime,nosuid,nodev,errors=panic	wait,check,encryptable=footer
/dev/block/mmcblk0p3	/boot	emmc	defaults	defaults
/dev/block/mmcblk0p4	/recovery	emmc	defaults	defaults
/dev/block/mmcblk0p5	/misc	emmc	defaults	defaults
/dev/block/mmcblk0p1	/bootloader	vfat	defaults	recoveryonly
/dev/block/mmcblk0p2	/bootloader2	vfat	defaults	recoveryonly
/dev/block/mmcblk1p1	/sdcard	vfat	defaults	recoveryonly
  • セキュアブートが有効になっており、通常では解除できない。
  • ESPの各バイナリはPanasonicの署名がついている。Microsoftの署名が通るかどうかは検証していない。
  • /dev/block/mmcblk0p1がESPになっている
  • ESP:/shim.efiがUEFIのbootentryに登録されている
  • ESP:/shim.efiからESP:/gummiboot.efiを起動している。
  • gummiboot.efiはAndroidを起動できるようにカスタムしたsystemd-bootのようだ。 https://github.com/me176c-dev/me176c-boot#readme 近い実装のbootloader
  • ESP:/gummiboot.efiの場所は決め打ちっぽい
  • gummiboot.efiがAndroid、Recovery、MokManager.efiの切り替えを担当しており、Vol-おしっぱで選択メニューが表示される。
  • boot、recoveryはAndroidのboot.img 形式
  • Starting System画面でVol-を押したまま起動すると、選択肢が出るので、MokManagerを選ぶと証明書の登録ができる。
  • 起動したいディストリビューションの証明書やオレオレ証明書を登録しておくとよろしい。
  • 登録する際は、証明書のみをUSBメモリに入れてやらないと画面が崩れたりして失敗しやすい。
  • セキュアブートの証明書に関してはArch LinuxのWiki 参照
  • オレオレ証明書の作成方法は コマンド等のメモ に書いてます。
  • 本体ESPの署名がついたbootloader一式をUSBメモリにコピーすればUSB起動が可能。
  • USB:/gummiboot.efiを署名付きの任意のローダーに入れ替えれば任意のLinuxカーネルを立ち上げることができる
  • 個人的にはタッチパネルで操作可能な rEFInd がおすすめ
  • AmiSetupWriter.efiはWin-Raid Forumの当該スレッド からダウンロードしてオレオレ署名する
  • セキュアブート解除後もトラブルシューティング用に一式残しておくといざというときに対処可能
    USB
     ├──MokManager.efi ←本体からコピー
     ├──shim.efi ←本体からコピー
     ├──gummiboot.efi ← refind_x64.efi と差し替える
     ├──cert/ ←オレオレ証明書とrEFInd のrefind.crtだけを入れる
     ├──EFI/tools ← EFI Shellのshellx64.efi等を入れておくとRefindから起動できる
     ├──AmiSetupWriter.efi ←自分で署名したものを入れる
     │
     └──EFI/boot
        ├──bootx64.efi ←本体からコピーshim.efiと同一
        ├──refind.conf ←rEFInd のアーカイブからコピー、適宜編集
        ├──icons/ ←rEFInd のアーカイブからコピー
        └──drivers_x64/ ←rEFInd のアーカイブからコピー

FZ-B2 の UEFI は当然ながら Android に特化した設定となっており、非表示の設定項目を変更しないと SSD を換装して OS を入れ替えても
タッチパネルが動作しなかったり、シャットダウンした後に電源が切れなかったりしてまともに動作しないため、ここで設定変更を行う。

  • FZ-B2のBIOSをV1.00L12に更新する。
  • 上記を参考にセキュアブート環境で起動可能なEFI Shellとamisetupwriter.efiが入ったUSBメモリを用意する。
  • UEFI Shellから下記のコマンドを入力して電源OFFしてから電源ONする。
    AmiSetupWriter.efi 0x22e 0x0 
    AmiSetupWriter.efi 0x1F0 0x0
    AmiSetupWriter.efi 0x1F1 0x0
  • BIOS設定のセキュリティタブにセキュアブートの設定項目が追加されるので、セキュアブートを解除してフィニッシュ
  • ここまで行えば通常のPCAT互換機なのでLinuxやWindowsをインストールできるようになります
  • セキュリティタブにセキュアブートの設定項目を表示(0x1で非表示)
    AmiSetupWriter.efi 0x22e 0x0 
  • Boot OS Selection をWinsdows 8.xに変更(0x1でAndroid 0x2でWindows7)
    AmiSetupWriter.efi 0x1F0 0x0 
  • LPSS & SCC Devices ModeをACPIに変更(Androidの場合はPCI 0x1)
    AmiSetupWriter.efi 0x1F1 0x0 

上記のコマンドは FZ-M1A(Celeron版)とFZ-B2BのSetup IFR を比較することで発見した。
ほかにも面白そうなものや文鎮化しそうな項目があるので人柱するのもいいだろう。 俺はもうやらないけど

m2接続のeMMCが搭載されている。

そのままm2 SATA接続のSSDに換装可能。ただしセキュアブートを解除しておかないと詰む。

FZ-M1用を刺したら認識した。BIOSに項目が現れないがFZ-B2の取説通り画面回転ロックボタンで読取光が出る。