🐧

ASUS Chromebook Flip C101PA に PostmarketOS をインストールした

に公開

以前 ASUS の Chromebook Flip C101PA を購入したのですが、結局ろくに使わないまま EOL を迎えてしまいました。

https://www.asus.com/jp/laptops/for-home/chromebook/asus-chromebook-flip-c101/

もったいないので Linux をインストールします。

しかし、プロセッサーが Arm 系 (Rockchip RK3399) であることや、ChromeOS デバイスのやや厳し目な OS ロックなどにより、通常の x86 系デバイスへの Linux インストールに比べて、やや難易度は高めです。
いくつか Linux ディストリビューションを試しましたが、成功したのは PostmarketOS だけでした。
C101PA 特有の設定方法と、PostmarketOS の両方について解説したドキュメンテーションが見つからなかったため、ここにインストール方法を紹介したいと思います。

前提条件

本記事の対象読者として、一般的な x86 系 PC への Linux は行ったことがあり、ある程度 Linux のコマンドに慣れていることを前提とします。
前述のように比較的インストールの難易度は高めですし、PostmarketOS 自体が公式に

In its current stage, postmarketOS is for Linux enthusiasts

宣言しています。デスクトップ Linux 初心者にはあまり積極的にはお勧めできません。

ブータブル USB メモリーを作成するためのマシンとしては一応 Linux + KDE 環境を想定していますが、もしかすると Windows などでもできるかもしれません。

準備作業

当然ですが ChromeOS のデータは一切が削除されます。
必要なデータが残っている場合は、事前にバックアップを取っておきましょう。

イメージのダウンロード

準備用マシン上での作業

.img.xz ファイルをダウンロードします。x86 系の場合は .iso ファイルをダウンロードすることが多いですが、今回は .img ファイルを xz 形式で圧縮した形式で配布されています。

筆者は今回 https://images.postmarketos.org/bpo/v25.06/google-gru/plasma-desktop/20251024-0651/ からダウンロードしましたが、本記事執筆時点からバージョンやビルドが上がっている場合や、別のデスクトップ環境を用いたい場合は

https://images.postmarketos.org/bpo/ > (バージョン番号) > google-gru/ > (お好みのデスクトップ環境) > (ビルド番号)

と辿って下さい。
Gru というのは、私も調べてもよくわからなかったのですが、Chromebook のハードウェアの世代を表すコードネームのようです。

Google Gru 向けにはプリインストールのデスクトップ環境として、Plasma Desktop の他に Gnome、Phosh、Sway、Sxmo などが用意されているようです。
Plasma Mobile は用意されておらず、OS インストール完了後にインストールする必要がありそうです。こちらは別途記事を書く予定です。

さて、ダウンロードを待っている間に、C101PA の各種ロック解除を進めましょう。

C101PA の各種ロックを解除する

C101PA 上での作業

まず Chrome OS のディベロッパーモードを有効化した上、USB メモリーからのブートをできるようにします。

ディベロッパーモードの有効化

  1. C101PA が起動している場合は、一旦シャットダウンして下さい。
  2. リカバリーモードを有効にするために、ESCブラウザーのリロードボタン (一般的なキーボードにおける F5 の位置にあるもの) を押しながら、電源ボタンを押して C101PA を起動します。
  3. リカバリー画面で Ctrl+D を押します。
  4. Enter キーを押してディベロッパーモードを有効化します。
    • C101PA が再起動し、ディベロッパーモードの有効化作業が始まります。
    • このタイミングで OS のリセットが行われるようですので、注意して下さい
    • 10〜15分程かかるようです。

これでディベロッパーモードの有効化は完了です。

ディベロッパーモードを有効化した後は、C101PA のブート時に毎回「OS の確認機能が無効になっています」というようなメッセージが表示されます。その画面で Ctrl+D を押すと、Chrome OS (正確には内臓ストレージにある OS) が起動します。
しばらく何も押さないと爆音でビープ音が鳴ります。心臓に悪いので、心の準備をしておいて下さい。

USB ブートの有効化

  1. C101PA を起動し、「OS の確認機能がオフになっています」の画面で Ctrl+D を押し、ディベロッパーモードで Chrome OS を起動します。
  2. Chrome OS が起動すると、WiFi の設定画面が表示されます。インターネット接続は一旦必要ないので、無視して左下の "Guest mode" ボタンを押してログインします。
  3. OS アカウントにログインできたら、ターミナルを起動します。Ctrl+Alt+T でターミナルが起動します。
  4. ターミナル起動時のシェルは crosh という Chrome OS 独自のシェルになっています。shell コマンドを打つと bash に切り替わります。
  5. (任意) 必要に応じて sudo su -u root bash と打って root ユーザーに切り替えます。一般ユーザーモードのまま、sudo コマンドを用いてコマンドを実行しても構いません。
  6. USB メモリーからの OS ブートを有効化するため、下記のコマンドを打って下さい。
    crossystem dev_boot_usb=1 dev_boot_signed_only=0
    
  7. C101PA をリブートし、USB ブートの設定を有効化します。

USB ブートイメージの作成

準備用マシンでの作業

先程ダウンロードした .img.xz ファイルを USB メモリーに書き込みます。
今回は balenaEtcher で書き込みますが、恐らく一般的な iso 書き込みツールでも書き込めると思います。

まずはダウンロードした .img.xz ファイルを、Ark や tar コマンドなどで展開して .img ファイルを取り出して下さい。
尚、展開前の .img.xz ファイルは後で使うので、まだ削除しないで下さい。

USB メモリーを準備用マシンに挿入したら、balenaEtcher を起動し、Flash from file ボタンを押して .img ファイルを選択し、Select Target で書き込み対象の USB メモリーを選択し、Flash します。

balenaEtcher の画面。書き込み元ファイルとして .img ファイル、書き込み先ファイルとして、USB メモリーの機種名 (Buffalo USB Flash Disk) が指定されている

参考: コマンドラインから `dd` で書き込む場合

dd で書き込む場合は下記のようにします。
USB メモリーが /dev/sdb として認識されている場合ですが、別のデバイス名が割り当てられている場合は読み替えて下さい。

sudo dd if="/path/to/20251024-0651-postmarketOS-v25.06-plasma-desktop-3-google-gru.img" of="/dev/sdb" status=progress

status=progress の付加は任意ですが、付けると書き込み進捗が表示されます。

以上でブータブル USB メモリーの作成は完了です。

USB メモリーからの PostmarketOS の起動

C101PA での作業

先程作成した USB メモリーを C101PA に挿し込んでから、C101PA の電源を起動します。
「OS の確認機能がオフになっています」というようなメッセージが表示される画面で、Ctrl+D ではなく Ctrl+U を押すと、USB メモリーから OS が起動します。

ここで USB メモリーへの書き込みがうまくいっていない場合は、Ctrl+U を押してもビープ音が鳴ります。
その場合は手順が間違っていないか再度確認してみて下さい。
また、今回 USB メモリーの作成には頻繁に失敗しました。エラーメッセージを見落としている可能性もありますので、再度 USB メモリーにイメージを書き込み直してみて下さい。

うまく起動した場合、一般的な KDE と同じ SDDM の画面が表示されますので、

  • ユーザー名: user
  • パスワード: 147147

でログインしてみて下さい。
Plasma Desktop などデスクトップ環境が表示される筈です。

起動に成功したら、一旦 C101PA はシャットダウンして下さい。
KDE Plasma のイメージを用いている場合、2025.10.31 時点では KDE のアプリケーションランチャーのシャットダウンボタンがうまく動作しないため、Konsole を開いてコマンドで sudo shutdown now を実行する必要があります。

.img.xz ファイルを USB メモリー内に置く

準備用マシンでの作業

OS のファイルを C101PA の内部ストレージに書き込むため、書き込み元ファイルとして、ダウンロードしてきた PostmarketOS の .img.xz ファイルを USB メモリー内に置きます。

C101PA で起動する前にコピーしておけば良かったと思われるかもしれませんが、.img ファイルを USB メモリーに書き込んだ直後のパーティション構成は下記のようになっており、私の環境では .img.xz ファイルを、以下で言う /dev/sdb3 に入れようとすると、パーティションの容量が足りなくなりコピーに失敗しました。

KDE Partition Manager で、.img ファイルを書き込んだ直後の USB メモリーのパーティション構成を表示しているところ。/dev/sdb1 (pmOS_kernel) が 32MiB、/dev/sdb2 (pmOS_boot) が 62.09MiB、/dev/sdb3 (pmOS_root) が 4.39GiBとなっており、unallocated の領域が 10.17GiB ある。

一度 C101PA 上で起動することで、PostmarketOS が自動的にパーティションを再構成してくれます。
C101PA 上で起動した後のパーティション構成は以下の通りです:

KDE Partition Manager で、一度 C101PA 上で起動した後の USB メモリーのパーティション構成を表示しているところ。/dev/sdb2 (pmOS_boot) の容量が 256MiB、/dev/sdb3 (pmOS_root) が 14.57GiB に増加し、その後の unallocated の領域がなくなっている。

これで1GB超ある .img.xz ファイルをファイルシステム上に配置することができるようになりました。


それでは、コピーしていきましょう。

USB メモリーを準備用マシンに再度差し込み、pmOS_root とラベルの付いているパーティションをマウントします。
私の環境では KDE (Plasma) デスクトップ右下のシステムトレイからマウントしたので、/media/USERNAME/pmOS_root/ 以下にマウントされました。

KDE のファイルマネージャー Dolphin で、/media/phanect/pmOS_root/home/user/ を表示しているところ

その中の適当なディレクトリーに、.img.xz ファイルをコピーします。
私は PostmarketOS のデフォルトユーザーである user という名前のユーザーのホームディレクトリー以下にコピーしましたが、どこでも良いと思います。

cp /path/to/20251024-0651-postmarketOS-v25.06-plasma-desktop-3-google-gru.img.xz /media/USERNAME/pmOS_root/home/user/

C101PA 内蔵ストレージへの OS 書き込み

C101PA での作業

C101PA の内蔵ストレージに PostmarketOS を書き込んでいきます。
先程と同じように、USB メモリーを C101PA に挿入し、電源を投入の後、Ctrl+U を押して USB メモリーからブートして下さい。

今回作成した USB メモリーは、単に USB から PostmarketOS を起動するためのものであり、OS インストーラーは付属していません。
そのため、先程 USB メモリーのホームディレクトリーにコピーした PostmarketOS の .img.xz ファイルを、dd で内蔵ストレージに書き込むことでインストールを行います。

C101PA の内蔵ストレージは eMMC のため、/dev/mmcblk1 という名前になっていることが多いと思います。
複数のパーティションがある場合は /dev/mmcblk1p1 のように pN が後に付いたものがそれぞれのパーティションを指し示します。
USB メモリーの中に KDE Partition Manager は入っていないため、lsblk コマンドで内蔵ストレージの名前を確認して下さい。

※ キーボードレイアウトが英語のものになっているため、記号の位置が日本語キーボードと異なることに注意して下さい。

lsblk --output=PATH,NAME,VENDOR,MODEL,LABEL

ここでは、内蔵ストレージが /dev/mmcblk1 であるという前提で進めます。
今回は xzcat というコマンドを利用し、xz ファイルの中身を直接 dd にパイプします。

xzcat /path/to/20251024-0651-postmarketOS-v25.06-plasma-desktop-3-google-gru.img.xz | sudo dd of=/dev/mmcblk1 bs=1M oflag=direct iflag=fullblock

※ PostmarketOS に同梱されている dd では status=progress はサポートされていないようだったので、今回は省いています。

OS インストール完了

xzcat コマンドが完了したら、一度 C101PA をシャットダウンします。
KDE Plasma Desktop の場合、私の環境ではアプリケーションランチャーのシャットダウンボタンが動作せず、ターミナル (Konsole) から sudo shutdown now を実行するしかありませんでした。

USB メモリーを抜いたら再度電源を入れます。
「OS の確認機能が無効になっています」の画面では、今回は Ctrl+D を押します。USB メモリーではなく内蔵ストレージから OS を起動するからです。

無事 PostmarketOS が起動できたでしょうか?
この後、キーボードや日本語入力、タイムゾーンなど、通常なら OS インストーラーで行うような設定を手動でする必要がありますが、そのあたりは他のディストリビューションと同じだと思います。
私はこの後 Plasma Mobile をインストールするつもりなので、本記事では一旦ここまでとしておきます。

蛇足: 他のディストリビューションの選択肢

私が見つけることのできた ASUS C101PA への Linux インストール解説文書には、Debian と Arch Linux ARM 向けのものがありました。

https://wiki.debian.org/InstallingDebianOn/Asus/C101PA

https://archlinuxarm.org/platforms/armv8/rockchip/asus-chromebook-flip-c101pa

Debian の方は、うまく USB メモリーを作成できなかったのか、USB ブートさせることができませんでした。
(Ctrl+U を押すとビープ音が鳴ってしまう)

Arch Linux ARM は USB メモリーからブートさせることには成功したのですが、既にメンテナンスされていないのか、ARM 向けの AUR リポジトリーが消失しており、パッケージのアップデートやインストールができませんでした。
Arch Linux ARM は、どうやら Arch Linux 本体とは別体制で開発がされていたようです。
全て自分で AUR のソースパッケージからビルドすればどうにかなる可能性もあるのですが、Ubuntu 系育ちのゆとりなので、バイナリーパッケージが配布されている PostmarketOS に逃げました…

参考資料とライセンス

本記事はCreative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) でライセンスします。

本記事では、以下の資料の一部を和訳・修正の上取り込んでいます。
以下の記事は CC BY-SA 4.0 でライセンスされています。

https://wiki.debian.org/InstallingDebianOn/Asus/C101PA

その他、下記の記事も参考にさせて頂きました。

https://wiki.postmarketos.org/wiki/Google_Gru_Chromebook_(google-gru)

https://archlinuxarm.org/platforms/armv8/rockchip/asus-chromebook-flip-c101pa

Discussion