概要
eMMCへのインストール
JumpDrive
内蔵のeMMCは、postmarketOSのDanct12とMartijnによるJumpDriveユーティリティを使用してOSを書き込むことができる。
JumpDriveはMicroSDから起動して、PinePhoneがコンピュータに接続されると内蔵のeMMCを公開する。
マウントされたeMMCにOSをフラッシュする手順は、他のストレージの場合と同様である。
ddコマンド、balenaEtcher、Gnome Disks等のソフトウェアを使用してOSを書き込むことができる。
JumpDriveは、以下の公式Webサイトからダウンロードできる。
(PinePhoneの場合は、pine64-pinephone.img.xzをダウンロードする)
https://github.com/dreemurrs-embedded/Jumpdrive/releases/
- JumpDriveのイメージをダウンロードして解凍する。
- balenaEtcher等を使用して、MicroSDにJumpDriveのイメージを書き込む。
- MicroSDをPinePhoneに挿入して、PinePhoneを起動する。
- PCとPinePhoneをUSBケーブルで接続する。
- PinePhoneのストレージ(例: /dev/mm〜、dmesg、GNOME disks等でデバイス名およびアンマウントされていることを確認する)に、選択したOSのイメージファイルを書き込む。
- 書き込みが完了した後、PinePhoneをPCから外して、PinePhoneをシャットダウンする。
この時、MicroSDを取り出す。 - PinePhoneの電源を投入して、eMMCから起動する。
※備考
JumpDriveは、インストールに失敗した場合のレスキューイメージとしても機能する。
レスキューイメージとして使用するには、172.16.42.1にTelnetで接続した後、rootfsをマウントして修正すればよい。
MicroSDのOSからインストール
- MicroSDに任意のOSを書き込みした後、PinePhoneにMicroSDを挿入して、PinePhoneを起動する。
- Webブラウザを起動して、任意のOSのイメージをダウンロードする。
または、ターミナルを起動して、OSのプロジェクトをgit clone <OSのプロジェクトのURL>する。
Gitを使用する場合は、OSをビルドする必要がある。 - 以下のコマンドを実行して、ダウンロードまたはビルドしたOSのイメージをeMMCに書き込む。
通常、現在のカーネルでは、MicroSDは/dev/mmcblk0、eMMCは/dev/mmcblk2となる。sudo dd if=<インストールするOSのイメージ> of=/dev/mmcblkX bs=1M status=progress# XはeMMCの番号ラベル
- 書き込みが完了した後、PinePhoneをシャットダウンして、MicroSDを取り出す。
- PinePhoneの電源を投入して、eMMCから起動する。
日本語入力
現在(2021/4/24)、この設定が有効な環境は、Mobianのみである。
まず、以下のFcitxとそのライブラリをインストールする。
sudo apt install fcitx fcitx5 fcitx5-config-qt fcitx5-data fcitx5-frontend-gtk2 fcitx5-frontend-gtk3 \
fcitx5-frontend-qt5 fcitx5-table gir1.2-fcitxg-1.0 fcitx5-module-wayland fcitx5-modules \
fcitx5-module-ibus fcitx5-module-fullwidth fcitx5-module-dbus fcitx5-module-emoji fcitx-mozc \
ibus-mozc mozc-data mozc-server mozc-utils-gui
/etc/environmentファイルまたは~/.profileファイルの最下行に、以下の内容を追記する。
export XMODIFIERS=@im=fcitx export QT_IM_MODULE=fcitx export GTK_IM_MODULE=fcitx
次に、/usr/share/fcitx5/addon/fcitx-mozc.confファイルを、以下の内容で作成する。
[Addon] Type=SharedLibrary Name=fcitx-mozc GeneralName=Mozc Comment=Mozc support for Fcitx Library=fcitx-mozc.so Category=InputMethod Enabled=True SubConfig= IMRegisterMethod=ConfigFile LoadLocal=True
さらに、/usr/share/fcitx5/inputmethod/mozc.confファイルを、以下の内容で作成する。
[InputMethod] UniqueName=mozc Name=Mozc IconName=/usr/share/fcitx5/mozc/icon/mozc.png Priority=1 LangCode=ja Parent=fcitx-mozc
/usr/share/fcitx/mozcディレクトリを/usr/share/fcitx5ディレクトリにコピーする。
sudo cp -rf /usr/share/fcitx/mozc/ /usr/share/fcitx5/
Mobianを再起動する。
sudo shutdown -r now
再起動後、Fcitx5を有効にする。
有効にするには、ターミナルで以下のコマンドを実行する。(~/.profileファイルに、以下のコマンドを記述してもよい)
この時、エラーメッセージが出力されて処理が止まるが、気にせずに[Ctrl] + [C]キーを同時押下する。
fcitx -r
日本語入力と英語入力の切り替えは、PCと同様に、[Ctrl] + [Space]キーを同時押下することで切り替えができる。
スリープ / サスペンド
Phosh
カスタムサスペンドタイムアウトの設定
[設定]ソフトウェアの[電源]項目では、限られた種類のタイムアウトのみ用意されている。
以下の例では、サスペンドのタイムアウトを30秒に設定している。
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 30
また、現在のタイムアウトを確認するには、以下のコマンドを実行する。
gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout
サスペンドを防いで画面を表示し続ける
ソフトウェアの中には、スクリーンセーバーまたはサスペンドが作動するものがある。(mpv、aptでのアップグレード等)
このような場合、gnome-session-inhibitツールが役に立つ。
gnome-session-inhibitツールには、様々なレベルの抑制機能がある。
inhibit LEVELオプションを使用すると、サスペンド(別名:クラストスリープ)やアイドルでのスクリーンロックを防ぐことができる。
例えば、PinePhoneがスリープ状態になるのを防ぎ、システムをアップグレードするには、以下のコマンドを実行する。
gnome-session-inhibit -inhibit suspend sudo apt upgrade
また、以下のコマンドを.bashrcファイルのエイリアスに追記すると便利である。
# ターミナルでsudoコマンドを使用する場合はサスペンドを禁止する alias sudo='gnome-session-inhibit sudo'
上記のコマンドを自動化するには、/usr/share/applications/*.desktop にある任意のデスクトップランチャーのexec項目に対して、
gnome-session-inhibitを付加することができる。
SSHセッションでのスリープ防止
Phoshの[電源]項目にあるインアクティビティは、画面とのインタラクションのみを考慮しているため、SSH接続中にPinePhoneがスリープモードに入ることがある。
これを防ぐためには、~/.bashrcファイルの最下行に以下の設定を追記する。
if [[ -n $SSH_CONNECTION ]]; then
: $(gnome-session-inhibit --inhibit suspend \
--reason "SSH connection is active" \
--inhibit-only) &
fi
上記の設定は、環境変数SSH_CONNECTIONが現在設定されているかどうかを確認する。(これはPinePhoneにSSH接続した場合に確認される)
設定されている場合は、現在のシェルはSSHセッションを介して生成されているので、gnome-session-inhibitを使用してPinePhoneのサスペンド / スリープを防ぐ。
ssh-connectionやbash-sessionがkillされる時、gnome-session-inhibitもkillされて、PinePhoneはサスペンドできるようになる。
Mediaplayback作動中のスリープ防止
Suspend-Guardスクリプトを使用して、メディア(音楽や動画等)が再生されている間はサスペンドしないようにすることができる。
このスクリプトは、pulseaudioでオーディオを出力しているソフトウェアがあるかどうかを確認して、再度確認するまでの間、サスペンドを防止する。
これにより、メディアが再生されない場合は、サスペンドできるようになる。
このスクリプトには、自動的に設定を有効にするsystemd-unitが付属しており、ソースコードはGitで閲覧することができる。