PinePhoneをSailfish OSで使う


PinePhoneをNOKIA/Intelが作ったMeeGoの末裔であるSailfish OSで使うためのまとめ。

なお、Sailfish OSはjolla社の商用OSです。フルOSS版はNemo Mobileです。

起動用microSDの作り方

Linux環境でPinePhone Software ReleaseのSailfish OSの項目にある flash-it.sh スクリプトを実行して作成する。実行するとファイルのダウンロードを開始するので、実際のmicroSD書き込みが始まるまでには若干時間がかかる。

osakanataro@ubuntuserver:~$ ./flash-it.sh 
Sailfish OS Pine64 device flasher V0.2.0
======================================

Which image do you want to flash?
1) PinePhone device
2) PineTab device
3) Dont Be Evil devkit
#? 1
Downloading images...
<ファイルのダウンロード>
Which SD card do you want to flash?
<いまマウントしているデバイス一覧表示>
Device node (/dev/sdX): /dev/sdb
Flashing image to: /dev/sdb
WARNING: All data will be erased! You have been warned!
Some commands require root permissions, you might be asked to enter your sudo password.
Creating EXT4 file system...
Unmounting /dev/sdb
[sudo] osakanataro のパスワード: 
umount: /dev/sdb: not mounted.
Unmounting /dev/sdb1
umount: /dev/sdb1: not mounted.
Unmounting /dev/sdb2
umount: /dev/sdb2: not mounted.
mke2fs 1.44.1 (24-Mar-2018)
/dev/sdb1 contains a ext4 file system labelled 'boot'
	last mounted on /home/osakanataro/boot on Thu Jan  1 09:00:19 1970
Creating filesystem with 242688 1k blocks and 60720 inodes
Filesystem UUID: 6c3c5d0c-98bf-4149-a78a-10613da0e8ef
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185

Allocating group tables:  0/30     done                            
Writing inode tables:  0/30     done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information:  0/30     done

mke2fs 1.44.1 (24-Mar-2018)
/dev/sdb2 contains a ext4 file system labelled 'data'
	last mounted on / on Thu Jan  1 09:00:15 1970
Creating filesystem with 7754240 4k blocks and 1941504 inodes
Filesystem UUID: b45e4f0b-a36e-4b8a-8f89-3ba4b63219a2
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables:   0/237       done                            
Writing inode tables:   0/237       done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:   0/237       done

Flashing U-boot...
Archive:  u-boot.zip
  inflating: u-boot-bootloader/devkit/boot.scr  
  inflating: u-boot-bootloader/pinephone/boot.scr  
  inflating: u-boot-bootloader/pinetab/boot.scr  
  inflating: u-boot-bootloader/u-boot/u-boot-sunxi-with-spl.bin  
81+1 レコード入力
81+1 レコード出力
663992 bytes (664 kB, 648 KiB) copied, 0.029419 s, 22.6 MB/s
Flashing rootFS...
Archive:  pinephone-rootfs.zip
  inflating: pinephone/sfe-pinephone-3.2.1.20-devel-20200202/Jolla-3.2.1.20-pinephone-armv7hl.ks  
  inflating: pinephone/sfe-pinephone-3.2.1.20-devel-20200202/Jolla-3.2.1.20-pinephone-armv7hl.packages  
  inflating: pinephone/sfe-pinephone-3.2.1.20-devel-20200202/Jolla-3.2.1.20-pinephone-armv7hl.urls  
  inflating: pinephone/sfe-pinephone-3.2.1.20-devel-20200202/sfe-pinephone-3.2.1.20-devel-20200202.tar.bz2  
pinephone/sfe-pinephone-3.2.1.20-devel-20200202/sfe-pinephone-3.2.1.20-devel-20200202.tar.bz2
Copying kernel to boot partition...
Cleaning up!
Unmounting /dev/sdb
umount: /dev/sdb: not mounted.
Unmounting /dev/sdb1
Unmounting /dev/sdb2
Flashing /dev/sdb OK!
You may now remove the SD card and insert it in your Pine64 device!
osakanataro@ubuntuserver:~$

初回起動について

まず、2020年2月12日現在、言語に日本語はない。英語でセットアップする。

jollaアカウントの作成が求められる。

また、使い方説明のチュートリアルがあり、これが結構長い。とはいえ、Androidからだとすぐにわからない操作もあるので1回は受けておくこと。

なお、チュートリアルは、画面の 左上隅、右上隅、右下隅、左下隅の順にクリック すると飛ばすことができる。(jolla Q&A「How do I cancel tutorial? [answered]」)

LTEの使用方法

2020年2月12日現在、オフィシャルレポジトリだけではLTEが利用可能にならなかった。

PinePhone向けに積極的な開発を行っているneochapayさんが公開している開発用レポジトリ http://repo.merproject.org/obs/home:/neochapay:/mer:/build_test/sailfishos_3.2.1.20/ を追加することで利用可能になる。

追加はterminalからコマンドを実行して行う。パソコンからsshでログインして操作すると良い。sshでログインする際のユーザ名は「nemo」となる。(パスワードはSetting画面で設定する)

最初にrootユーザになるため「devel-su」コマンドを実行する。

[nemo@PinePhone ~]$ devel-su
Password: 
[root@PinePhone nemo]#

次に現在のレポジトリを確認するため「ssu lr」を実行する。

[root@PinePhone nemo]# ssu lr
Enabled repositories (global): 
 - adaptation-community        ... http://repo.merproject.org/obs/nemo:/devel:/hw:/pine:/pinephone/sailfish_latest_armv7hl/
 - adaptation-community-common ... http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_armv7hl/
 - adaptation-dontbeevil       ... http://repo.merproject.org/obs/nemo:/devel:/hw:/pine:/dontbeevil/sailfish_latest_armv7hl/
 - adaptation-pinephone        ... http://repo.merproject.org/obs/nemo:/devel:/hw:/pine:/dontbeevil:/pinephone/sailfish_latest_armv7hl/
 - apps                        ... https://releases.jolla.com/jolla-apps/3.2.1.20/armv7hl/
 - hotfixes                    ... https://releases.jolla.com/releases/3.2.1.20/hotfixes/armv7hl/
 - hw-native-common            ... http://repo.merproject.org/obs/nemo:/devel:/hw:/native-common/sailfish_latest_armv7hl/
 - jolla                       ... https://releases.jolla.com/releases/3.2.1.20/jolla/armv7hl/

Enabled repositories (user): 
 - store ... https://store-repository.jolla.com/pinephone/armv7hl/?version=3.2.1.20

Disabled repositories (global, might be overridden by user config): 

Disabled repositories (user): 
 - home ... https://download.jollamobile.com/home:/honeybadger/latest_armv7hl/
[root@PinePhone nemo]#

ここに、レポジトリを追加するため「ssu addrepo neochapay-repo http://repo.merproject.org/obs/home:/neochapay:/mer:/build_test/sailfishos_3.2.1.20/」と実行します。

[root@PinePhone nemo]# ssu addrepo neochapay-repo http://repo.merproject.org/obs/home:/neochapay:/mer:/build_test/sailfishos_3.2.1.20/
[root@PinePhone nemo]# 

追加されたことを「ssu lr」で確認します。

[root@PinePhone nemo]# ssu lr
Enabled repositories (global): 
 - adaptation-community        ... http://repo.merproject.org/obs/nemo:/devel:/hw:/pine:/pinephone/sailfish_latest_armv7hl/
 - adaptation-community-common ... http://repo.merproject.org/obs/nemo:/devel:/hw:/common/sailfish_latest_armv7hl/
 - adaptation-dontbeevil       ... http://repo.merproject.org/obs/nemo:/devel:/hw:/pine:/dontbeevil/sailfish_latest_armv7hl/
 - adaptation-pinephone        ... http://repo.merproject.org/obs/nemo:/devel:/hw:/pine:/dontbeevil:/pinephone/sailfish_latest_armv7hl/
 - apps                        ... https://releases.jolla.com/jolla-apps/3.2.1.20/armv7hl/
 - hotfixes                    ... https://releases.jolla.com/releases/3.2.1.20/hotfixes/armv7hl/
 - hw-native-common            ... http://repo.merproject.org/obs/nemo:/devel:/hw:/native-common/sailfish_latest_armv7hl/
 - jolla                       ... https://releases.jolla.com/releases/3.2.1.20/jolla/armv7hl/

Enabled repositories (user): 
 - neochapay-repo ... http://repo.merproject.org/obs/home:/neochapay:/mer:/build_test/sailfishos_3.2.1.20/
 - store          ... https://store-repository.jolla.com/pinephone/armv7hl/?version=3.2.1.20

Disabled repositories (global, might be overridden by user config): 

Disabled repositories (user): 
 - home ... https://download.jollamobile.com/home:/honeybadger/latest_armv7hl/
[root@PinePhone nemo]#

この後、「zypper refresh」でレポジトリ更新、「zypper list-updates」でアップデートできるファイル確認、「zypper update」でパッケージアップデートの実行を行い、最後、「reboot」コマンドで再起動します。

再起動後からはLTEが使える様になります。

アップデート手法について

通常のOSアップデートはTerminalを開いて「version –dup」コマンドを実行するとアップデートできます。

パッケージの細かいあたりまで制御したい場合はzypperコマンドを使用する必要がありますが、こちらのコマンドはdevel-suコマンドでrootユーザになってから実行する必要があります。

「zypper refresh」で情報更新して、「zypper list-updates」でアップデートされるパッケージを確認、「zypper update」でアップデート適用、です。(version –dupはこれをまとめてやっている感じ)

PinePhoneをpostmarketOSで使う


PinePhoneをpostmarketOSで使うためのまとめ

使うイメージについて

Images for the PinePhone」からimgファイルをダウンロードして、microSDに書き込むことで使える様になるが、使ったmicroSDのサイズにあわせてパーテーションを調整してくれないのが微妙なところです。

上記サイトからダウンロードする際は「-plasma.img.xz」となっているKDE Plasma Mobileベースのものを利用するのがお勧めです。

なお、「-phosh.img.xz」はGNOMEベースのLinuxフォンLibrem 5用に開発されているものを使用しています。

使うmicroSDの容量にあったパーテーション割りを希望する場合は、Linux上でpostmarketOSのOS用microSD書き込み環境を作成して書き込む必要があります。

pmbootstrapによるmicroSD作成

まず「Installing pmbootstrap」にある手順を実施します。

ベースOSを何にしろ、と特に書いてなかったので、とりあえずUbuntu 18.04LTSでインストールして構築しました。

次に、「Installation guide」の手順でカスタマイズと書き込みを行います。

注意点として「pmbootstrap init時の User interface 設定」があります。

これをデフォルトの「watson」で設定してしまうと、タッチインタフェースだけでは操作できない環境となってしまいます。 「User interface [weston]: plasma-mobile-extras」 で設定しましょう。

また、途中にパスワードについては、2020年2月10日現在、数字パスワードである必要があります。これは現時点でのロック解除画面が数字入力のみ対応であるためです。(PinePhone Software Release より)

画像

LTEの使用方法

GUIのSettingにある「Mobile Broadband」項目は正常に動作しません。

現時点では、Terminalを開いてコマンドを入力する必要があります。

$ sudo ofonoctl poweron
10秒ぐらい待つ
$ sudo ofonoctl wan --connect --append-dns

楽天モバイルの無料サポータープログラムの楽天回線SIMだとAPN設定をいれなくても使えました。

ただし、postmarketOSは標準設定でusb0に172.16.24.0/16のIPアドレスを割り当てています。このIPアドレス帯を楽天モバイルでは使っていて、特にDNSサーバが172.16.206.0/24にあったりするので、名前解決ができないという事態になりました。

このためterminalから「sudo ip link set usb0 down」を実行し、usb0を使えなくすることで対処しています。

ofonoctlコマンドの覚え書き

回線の接続状況確認「ofonoctl」

データ通信の接続状況確認「ofonoctl wan」

WiFiの使用方法

GUIのSettingにある「Wi-Fi」から接続設定はできます。

わかりにくいのですが、各SSIDを選択し、パスフレーズを入力した後に、なにやらパスワード入力を求められます。

これは、パスフレーズを保存するためのパスワードなので、適当に何かを設定します。

WiFi選択画面の下記ボタンをクリックすると、WiFiがOFFになります。

アップデートとインストール

postmarketOSのアップデートは「sudo apk update」と「sudo apk upgrade」で行います。

パッケージ検索は「sudo apk search 検索ワード」、パッケージインストールは「sudo apk add パッケージ名」でインストールできます。

うちの環境では標準のAngelfish Web Browserが全然動作してくれません。

「sudo apk add font-noto-cjk」 「sudo apk add firefox」 で日本語表示対応のFirefoxをインストールすることができます。

画像

PinePhone 人柱エディション(Braveheart Edition)を使うにあたり初期情報集め


PinePhoneが届いたようなので、使うための情報をつらつらと・・・

2020/02/06追記:届いていろいろやってますが、なんというか気軽に紹介記事を作れるような状態ではないので、togetterでまとめた「PinePhone Braveheart Editionを手に入れた」を参照してください。

情報源

PinePhoneの基本情報:PINE64 wikiの「PinePhone
今回出荷のPinePhone BraveHeart Editionのハードウェア情報: PINE64 wikiの「PinePhone v1.1 – Braveheart

PinePhoneで使えるOSについての情報:PINE64 wikiの「PinePhone Software Release

重要情報

Braveheart Editionは、バッテリー組み込み済みで出荷しているが、絶縁のためプラスチックシートが入っている。使用する際には取り除くこと。

また、携帯モデム部(EG25-G)とWiFi/Bluetooth部(RTL8723CS)は、バッテリー接続状態でないと使えないとのこと。(It’s also important to note that the EG25 modem and RTL8723CS wifi/bluetooth do not work without the battery plugged in, even if you are supplying enough power to the Pinephone with USB-C)

USB Type-Cで電源供給しているのにネットワークにつながらない、というような場合、バッテリーがきちんと接続されているかを確認すること。

当初、Braveheart Editionの内蔵ストレージ(eMMC)にはOSが入ってない、という話でしたが、動作テスト用に postmarketOS の特別版が入っているとのこと。ただし、いろいろと機能がかけているようなのでテスト利用にとどめること。

PinePhoneのOSは内蔵ストレージeMMCとmicroSDのどちらにもインストールできる。標準設定ではmicroSD側を優先してOSを起動する。

使えるOSについて

PINE64 wikiの「PinePhone Software Release」を参照し、img.gzとなっているイメージをダウンロードして、microSDに書き込む。

現状、SailfishOSはmicroSDにパーテーション分けが必要なようで、Linux環境向けのブート用microSD作成スクリプトの提供となっている。

webOSベースのLunaOSの場合は、bmaptoolコマンドを使いブート用microSDを作ることを推奨している。 使わなくても普通にdd相当で書き込みはできた(Windows上でrufusを使った)

PinePhone BraveHeart Limited Edition購入申し込み


Allwinner A64搭載のオープンハードウェア「PinePhone BraveHeart Limited Edition」の申し込みが始まったので手続きしてみた。

「BraveHeart Limited Edition」 とは「勇者の心」、意訳すると「人柱エディション」ですね。

どう人柱なのかというと、まず、発送時のハードウェアにはOSが入っていない。

先行してOS開発者向けにPinePhone Developer kitというのが2019年初頭から出回っていて、いろんなOSが開発中。

どんなOSがあるかと「Project Don’t be evil」のページを確認してみると・・・

OS名称ベース
Postmarket OSAlpine Linux
UBPortsUbuntu Touch
KDE Plasma MobileUbuntu Touch+Lineage OS/KDE
Sailfish OSMeeGo OSだけどAndroid寄りの商用
Maemo LesteMeeGo OS 
NixOSLinuxベースの関数型ディストリビューション
LunaOSpalmOSの末裔webOS
Nemo MobileSailfish OSの全てをOSS実装に?

Allwinner SoCなだけあってLinux kernelベースのものがずらりと並んでいます。

現状は基本的にUbuntuなどが稼働しているマシンにUSB接続してfirmwareを書き込むという感じになっている。

人柱エディションを卒業するまではこの初期導入の高さは抜けられないでしょう。

次に、メモリスペックが2GBというところが難点といえば難点ですが、そもそも↑であがっているOSが動くハードウェアでメモリ2GBって普通なので、まぁ・・・

PinePhoneの通信関連のスペックは下記の様になっている。

  • Worldwide, Global LTE bands
  • LTE-FDD: B1/ B2/ B3/ B4/ B5/ B7/ B8/ B12/ B13/ B18/ B19/ B20/ B25/ B26/ B28
  • LTE-TDD: B38/ B39/ B40/ B41
  • WCDMA: B1/ B2/ B4/ B5/ B6/ B8/ B19
  • GSM: 850/900/1800/1900MHz
  • WLAN: Wi-Fi 802.11 b/g/n, single-band, hotspot
  • Bluetooth: 4.0, A2DP
  • GPS: Yes, with A-GPS, GLONASS

使用されるモジュールは「Quectel Wireless EG25-G」で、メーカ製品ページには「JATE/TELEC」と技適などが取得されているような記述が・・・まぁ、アンテナ込みでの認証になるところチップのみ提供っぽいから無理なような気が・・・

ともかく到着が楽しみです

SH-04Hで急速充電ができない原因


ジャンクのSH-04Hを約6千円で購入

安さの理由は左上の割れと、液晶の右端中央付近の色変化だけだと思っていました。

で・・・充電をしてみると、どうやっても低速充電表示となり、急速充電になりません。

よくわからないなぁ・・・と思いつつ、パソコンからデータ転送するか、と繋いでみると、パソコン側でデバイス認識してくれません。

microUSB端子を掃除して、ケーブルとケーブルの差し方をいろいろ試してみるとパソコンで認識できる状態に持って行くことに成功。

そして、その状態のまま先ほどは低速充電となった電源に繋いでみると、急速充電となることを確認出来ました。

SH-04Hの急速充電はQuick Chargeという仕組みを使って行われていますが、これはmicroUSB端子の「Vbus」「GND」と「D+」「D-」の4つの端子を使い5Vで0.5Aを超える充電や9Vでの充電を行うようになっています。

それに対して低速充電と表示される通常USB充電は「Vbus」と「GND」を使い5V 0.5A以内で充電を行います。

つまり、SH-04Hで急速充電できず、低速充電となるという状況は、microUSBの「D+」端子と「D-」端子の接触が悪く、きちんと認識されていない状況にある、ということになります。

miroUSB端子は小さく、金属端子部分も奥まった場所にあるため確認が難しいため、対処が難しいために、通常は本体交換という対処になってしまうんでしょうね。