osa2's memo

自分の記憶のために・・・。

Galaxy S2のPMOSインストール (1)

Samsung Galaxy S2 (i9100 / SC-02C) へのPMOS(postmarketOS)のインストールまとめ。

最初はOSのインストールからXfce4の起動まで。以下が参考にしている本家本元ページ。

Samsung Galaxy SII (samsung-i9100) - postmarketOS

警告:本記事で使用している端末、SDカードのデータは完全にクリアされます。バックアップを取るなど、十分な対策の後にトライしてください。またこの手順では文鎮化はないとは思いますが、あくまでも自己責任でトライしてください。

ちなみにGalaxy S2(以下S2)はPMOSの中ではかなり安定して稼働し、何とか操作もできる稀有な機種。ここではX11+Xfce4をインストールする。リソースを気にするなら、matchboxも悪くない選択です。

1. pmbootstrapのgit clone

ここは特に問題なし。ちなみにNexus5では、かつてはこのリンクに間違いがあった。

$ git clone https://gitlab.com/postmarketOS/pmbootstrap.git

以下、git cloneでできた、pmbootstrapディレクト直下での操作。

2. pmbootstarp init

ここで諸々初期設定する。

$ ./pmbootstrap.py init

本家のWikiでは.pyがないけど、aliasでも通してそうすれば良いのかも。

Q&A形式なので分からなければデフォルトでも構わないが、並列度とccacheのメモリ量は変更した方が良いかもしれない。

  • デフォルト:parallel 9, ccache 5GB
  • 私の場合 : parallel 4, ccache 50GB

途中でXfce4など選択する。あと、アプリも指定可能。ただ後からパッケージマネージャ(apk)でインストールもできるので、例の通り、vim程度でOK。initの結果は、~/.config下にpmbootstarp.cfgとして保存されている。リセットしたければこのファイルを消せばいいが、選択し直せばいいだけなので、あまり意味はない。

3. pmbootstarp install

ここはいろんな進め方があるけど、一番無難なのはSDカードを用意してそこにrootfsを焼きこんじゃうのがいい。他の方法は手間がかかるのと、容量不足など起きる可能性があり、その場合はpartedなどでのリパーティションが必要。コマンドとしては以下が結論。

$ ./pmbootstrap.py -t 1800 install --no-fde --sdcard /dev/sdx

まず後ろのsdxの部分は、母艦のPCにSDカードをUSBでのカードリーダーなどで接続し、lsblkするとxの部分がわかる(これは個々の環境により異なり、sdcだったりsdfだったりする)。もしデータが入っているならバックアップの上、sudo fdisk /dev/sdx(xの部分はさっき調べた値)でパーティションを削除する。ディストリでフォーマッタが提供されているならそれでもOK。もしsdx1のようにパーティションができた場合は念のためsudo umountしておく。

これでSDカードは準備OK。上のpmbootstrap installを打つ。ここでsudoして~/.local/var以下にchrootして主にrootfsを用意して、上のコマンドではSDカードにrootfsの展開まで行われる。

オプションの--no-fdeはディスクの暗号化(full disk encryption)をしない、という設定。これがないと暗号化がはじまり、起動時にパスコードの入力を要求されるので面倒なので--no-fdeとしている。

-t 1800はexpireationを1800秒、30分としている。これがないとデフォルトでは-t 300のため、5分でrootfsを焼ききれないとタイムアウト、出来上がったSDカードも使い物にならない。xfce4ならカードリーダーがUSB2.0でしたーとかない限り、-t 1800あれば十分である。

ここまでがERRORという表示なしに終わると、kernelとinitramfsを焼けという指示が書いてある。

4. pmbootstrap flasher flash_kernel

これでbootパーティションにkernelが、recoveryパーティションにinitramfsが焼き込まれる。

$ ./pmbootstrap.py flasher flash_kernel

ここはWikiの通りだが、前提としてWindowsならOdinに相当するheimdallが必要なのでパッケージマネージャ経由でもいいのでインストールしておく(debian系だと sudo apt install heimdall でOK)。heimdall はオプションを付けない限り、焼き終わると勝手にリブートするので、USBで端末をつなぐのはもちろんだが、S2本体はDownloadモードにしておくこと、その起動の際には3.で作成済みのSDカードをS2に装着しておく必要がある。手順としては、

  1. (USBの接続は後にする。ここでは未接続にしておく)
  2. S2の裏蓋を開けてバッテリーを取り出す
  3. SDカードを装着、バッテリーを元通りに装着する
  4. vol down + home + power同時押しをする
  5. Downloadモードに入る前の警告画面でvol upを押すとDownloading..と待機画面になる
  6. ここまで来たらUSBケーブルで母艦のPCとS2をUSBケーブルでつなぐ
  7. 上記flashコマンドを打ち込むと、heimdall経由でkernal, initramfsを焼きこんで勝手にリブートされる

黙っていれば、2,3分でXの画面が、そして程なくxfce4が立ち上がる。マウスポインタはドラッグで移動、タップでクリックとなる。

== END ==