設定 - PinePhoneキーボード
概要
PinePhoneの専用キーボードの設定およびドライバのインストール方法を記載する。
専用キーボードの取り付け
- PinePhoneの電源を落として、バックケースを取り外す。
- 専用キーボードを開いて、ヒンジを完全に伸ばした状態で、硬い表面に平らに置く。
- PinePhoneをキーボードに約15度傾けて挿入する。
この時、PinePhoneのPogoピンと専用キーボードの対応するパッドの位置が合っていることを確認する。 - PinePhoneを所定の位置にしっかりと押し込む。
この時、カチッという音がして固定される。 - PinePhoneは、バックケースにあるような切り欠きを使用して、専用キーボードから簡単に取り外すことができる。(電源ボタンや音量ボタンがある先端部の下部にある)
専用キーボードと内蔵電池の動作
専用キーボードは、対応OSを搭載したPinePhoneを取り付けると自動的に機能する。
物理的なレイアウトやファームウェアの変更については、それぞれ4.1節と5.1節を参照すること。
専用キーボードには、6000[mAh]のバッテリーが内蔵されている。
キーボードの右端にあるボタンを押下することにより、内蔵バッテリーのON / OFFが可能となる。
ボタンを短く押下する場合は内蔵バッテリーが作動して、長く押下(15秒)する場合は内蔵バッテリーの動作が解除される。
専用キーボードに対応しているLinuxディストリビューションでは、PinePhoneとキーボードの両方のバッテリーの状態が表示される。
PinePhoneと専用キーボードの充電は、キーボードのUSB typeCポートを使用して行う必要がある。
また、専用キーボードのUSB typeCポートは周辺機器には使用できないため、PinePhoneのUSB typeCポートを使用して周辺機器に使用する。
専用キーボードのドライバのインストール
※注意
2023年5月現在、ppkb-i2c-inputdは使用できないため、パッケージ管理システムからppkb-toolsをインストールする必要がある。
専用キーボードのドライバのインストールに必要なライブラリをインストールする。
# Mobian sudo apt install gputils gputils-common gputils-doc sdcc sdcc-doc sdcc-libraries php php-common ssl-cert # Manjaro sudo pacman -S make gcc sdcc php
専用キーボードのドライバのGithubから、ソースコードをダウンロードする。
git clone https://megous.com/git/pinephone-keyboard -b master または git clone https://xff.cz/git/pinephone-keyboard cd pinephone-keyboard
ドライバのMakeファイルを編集する。
必要であれば、Makeファイルの下部にある$(OUT)ppkb-i2c-selftestのコメントを外す。
# 編集前 all:$(OUT)ppkb-i2c-inputd $(OUT)ppkb-usb-flasher $(OUT)ppkb-usb-debugger $(OUT)fw-stock.bin $(OUT)ppkb-i2c-debugger $(OUT)ppkb-i2c-charger-ctl $(OUT)ppkb-i2c-flasher $(OUT)ppkb-i2c-selftest # 編集後 all:$(OUT)ppkb-usb-flasher $(OUT)ppkb-usb-debugger $(OUT)fw-stock.bin $(OUT)ppkb-i2c-debugger $(OUT)ppkb-i2c-charger-ctl $(OUT)ppkb-i2c-flasher $(OUT)ppkb-i2c-inputd $(OUT)ppkb-i2c-selftest
専用キーボードのドライバをビルドおよびインストールする。
※インストールディレクトリの最後に/(スラッシュ)を必ず付加すること。
make -j $(nproc) OUT=/<専用キーボードのドライバのインストールディレクトリ>/ all
もし、ppkb-i2c-inputdがインストールされない場合は、以下のコマンドを実行する。
※同様に、インストールディレクトリの最後に/(スラッシュ)を必ず付加すること。
make -j $(nproc) OUT=/<専用キーボードのドライバのインストールディレクトリ>/ $(OUT)ppkb-i2c-inputd
専用キーボードのファームウェアの更新
専用キーボードのドライバをインストールした時、インストールディレクトリに最新のファームウェアが配置される。
このファイルを使用して、専用キーボードを最新のファームウェアへ更新することができる。
まず、専用キーボードのドライバのインストールディレクトリに移動する。
cd <専用キーボードのドライバのインストールディレクトリ>
現在のキーボードの情報およびファームウェアを保存する。
sudo ./ppkb-i2c-flasher info > saved-info.txt sudo ./ppkb-i2c-flasher --rom-out saved-rom.bin read
最新のファームウェアへ更新する。
sudo ./ppkb-i2c-flasher --rom-in ./fw-user.bin write または sudo ./ppkb-i2c-flasher -e i2c -i fw-user.bin write reset
PinePhoneを再起動する。
sudo systemctl reboot
もし、専用キーボードのファームウェアを初期状態に戻す場合、以下のコマンドを実行する。
cd <専用キーボードのドライバのインストールディレクトリ> sudo ./ppkb-i2c-flasher --rom-in ./fw-stock.bin write sudo systemctl reboot
専用キーボードの有効化
※注意
2023年5月現在、ppkb-i2c-inputdは使用できないため、パッケージ管理システムからppkb-toolsをインストールする必要がある。
cd <専用キーボードのドライバのインストールディレクトリ> sudo ./ppkb-i2c-inputd
また、~/.config/autostartディレクトリに、専用キーボードを自動的に有効化するデスクトップエントリファイルを作成することを推奨する。
vi ~/.config/autostart/PPKeyBoardStart.desktop
# ~/.config/autostart/PPKeyBoardStart.desktopファイル [Desktop Entry] Type=Application Name=Keyboard Icon=/<専用キーボードのドライバのインストールディレクトリ>/PPKeyBoardStart.png Exec=/<専用キーボードのドライバのインストールディレクトリ>/PPKeyBoardStart.sh Categories=Utility; NoDisplay=true
シェルスクリプトを作成する。
vi /<専用キーボードのドライバのインストールディレクトリ>/PPKeyBoardStart.sh
# /<専用キーボードのドライバのインストールディレクトリ>/PPKeyBoardStart.shファイル
#!/usr/bin/env bash
appname="ppkb-i2c-inputd"
# use -f to make the readlink path absolute
dirname="$(dirname -- "$(readlink -f -- "${0}")" )"
if [ "$dirname" = "." ]; then
dirname="$PWD/$dirname"
fi
cd $dirname
# Run ppkb-i2c-inputd binary
echo "<パスワード>" | sudo -S "$dirname/$appname"
シェルスクリプトに実行権限を付加する。
chmod u+x /<専用キーボードのドライバのインストールディレクトリ>/PPKeyBoardStart.sh
スクリーンキーボードの有効化および無効化
スクリーンキーボードが不要な場合は、以下のコマンドを実行する。
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false
スクリーンキーボードが必要な場合は、以下のコマンドを実行する。
gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true
専用キーボードの充電
PinePhoneの専用キーボードは、初期設定では500[mA]でPinePhoneを充電する。
例えば、1500[mA]に変更するには、以下のように編集する。
su vi /sys/class/power_supply/axp20x-usb/input_current_limit
# /sys/class/power_supply/axp20x-usb/input_current_limitファイル 1500000