reMarkable Paper Pro: 電子ペーパー端末の軽い紹介と少しHacking
ePaperタブレット + SSH
カラーな電子ペーパー端末「reMarkable Paper Pro」の登場を知り、タブレット欲しい病が再発した。紹介動画を見ていると、ペンの反応性は良さそうで気ままに落書きができそうだし、11.8インチならばA4サイズのPDFファイルを等倍近くで閲覧できることは確実。数日間の悩みを経て2024-10-03に発注し、2024-10-11に着荷した。
タブレット選びの際、比較対象として常に心に引っかかるのは絶対王者「iPad」だ。しかしながら私は、非常に偏った端末に惹かれる性の導きに従い、無難を志向する理性を捨てて変態シンプルなほうを選んだわけである。さらにreMarkableタブレットは、Developer Modeに切り替えるとSSHログインが可能になるという。この端末は面白そうとしか思えぬ。
- 紹介動画:
購入したもの
種別 | 商品名 | 金額(円) | 購入店 |
---|---|---|---|
電子ペーパータブレット | reMarkable Paper Pro | 86,000 | remarkable.com |
カバー | Book Folio (Mosaic weave, Cobalt) | 23,880 | remarkable.com |
セット割引 | Folio discount | -1,880 | |
専用ペン | Marker Plus | 21,800 | remarkable.com |
合計 | (3点) | 129,800 |
すべてを純正品で揃えた状態。私の発注時にはreMarkable Paper Proのカバーは上記の純正品しか見当たらなかったため、選択の余地無しだった。しかし現在 (記事執筆時点) ではサードパーティ製の下記のような安価なカバーも存在していそうだ。出費を抑えるための選択としてありと思われる。
Miimall 対応 Remarkable Paper Pro 保護ケース クリア ペン収納付き 耐衝撃 落下防止 傷防止 reMarkable 2024年発売 電子ペーパータブレット用 TPU製 スリム軽量 透明 指紋防止 滑り止め ペンホルダー付き 薄型 リマーカブル プロ全面保護カバー
Miimall
セットアップ〜使い方
電子ペーパータブレットとしての一般的なレビューは、他の方々の詳細な記事や動画に任せて、ここでは簡単に。
- reMarkable Paper Proの開封時の画面。ここから電源をONしてセットアップを進めていく。UIは全体的にモノクロームで統一されていて、これがカラーの電子ペーパー搭載端末であることを思い起こさせない。ミニマム感が渋い
- Wi-Fiを設定してインターネットと接続後、本体ソフトウェアを最新のVersion 3.14.4.0へ更新した
- 重量は本体+カバー+専用ペンの合計で実測「777g」。本体の金属フレーム部分やペンの質感はとても良い
- 使い方については全般を網羅している公式動画を一通り眺めるのが良い。たとえば03:50からは「2本指タップでUndo」といったジェスチャーによる操作方法が紹介されており、百聞は一見に如かずで必見だ
ジェスチャーによる操作方法
ジェスチャーによるreMarkable Paper Proの操作方法を、上記の動画から抜き出して表にまとめた。
操作 | 内容 |
---|---|
画面上端から下へスワイプ | ファイルを閉じる |
右へスワイプ | 前のページに戻る |
左へスワイプ | 次のページに進む |
最後のページでの「+」ボタン | 新規ページを追加する |
上下のスワイプ | ページのスクロール |
2本指でパン | ページ内の移動 |
2本指のピンチ | ページの拡大 |
2本指のタップ | Undo |
3本指のタップ | Redo |
2本指で画面上端から下へスワイプ | ドロワーを開く (Recent, Favorites) |
画面右上から下へスワイプ | クイック設定を開く |
画面下端から上へスワイプ | スライドバーにてファイル内のページ切り替え |
注意点, Tips
- ソフトウェアキーボードで打つことができるのはアルファベット圏の文字のみで、日本語変換は現時点では実装されていない。この仕様を私は購入前には把握済みで、キーボードはほとんど使わないつもりなので特に問題なし
- 内蔵の読書灯 (リーディングライト) の明るさは、おそらく大部分の人が抱く期待値よりも暗いだろう。はっきり言って手元にあるKindle Paperwhite (M2L4EK) よりも暗い
- ウェブ上のHTMLコンテンツは、Read on reMarkable - Google Chrome ExtensionというChrome拡張を使うとreMarkable端末へ持ち出して読むことができる。「Send as text (EPUB形式への変換と思われる)」と「Send as PDF (PDF印刷と同じ?)」の2つのモードがある
- ペンで2点間の直線を描こうとするとき、1点目から線を引き始めて2点目でペンをしばらく画面上に置いたままにしておくと、フリーハンドの軌跡が完全な直線へと変換されて、かつペン先の動きに直線の終端が追従してくるので、直線の角度を調整してから確定することができる。下記動画の26:50から実演されている
少しHacking
Linux端末としてはどうか。ここからはreMarkable Paper ProへのSSHアクセスを用いるので、公式ページの次の手順でSSHログイン可能なように設定変更しておく。
- Developer mode for the reMarkable Paper Pro > Accessing your reMarkable Paper Pro via SSH
日本語フォントの導入
初期状態では、PDF/EPUBファイルのファイル名の日本語部分、EPUBファイル本文の日本語部分が文字化けするので、日本語フォントを導入する。私はNoto Sans JapaneseとNoto Serif Japaneseを次のように保存した。保存後、フォントキャッシュの再作成または本体再起動を行う。
root@imx8mm-ferrari:~# ls -al ~/.local/share/fonts/ttf/noto/
drwxr-xr-x 2 root root 4096 Oct 11 17:15 .
drwxr-xr-x 3 root root 4096 Oct 11 17:25 ..
-rw-r--r-- 1 root root 36 Oct 11 17:05 .uuid
-rw-rw-r-- 1 root root 5722924 Aug 7 17:27 NotoSansJP-Black.ttf
-rw-rw-r-- 1 root root 5728064 Aug 7 17:27 NotoSansJP-Bold.ttf
-rw-rw-r-- 1 root root 5725300 Aug 7 17:27 NotoSansJP-ExtraBold.ttf
-rw-rw-r-- 1 root root 5737436 Aug 7 17:27 NotoSansJP-ExtraLight.ttf
-rw-rw-r-- 1 root root 5736988 Aug 7 17:27 NotoSansJP-Light.ttf
-rw-rw-r-- 1 root root 5729568 Aug 7 17:27 NotoSansJP-Medium.ttf
-rw-rw-r-- 1 root root 5733060 Aug 7 17:27 NotoSansJP-Regular.ttf
-rw-rw-r-- 1 root root 5726852 Aug 7 17:27 NotoSansJP-SemiBold.ttf
-rw-rw-r-- 1 root root 5736120 Aug 7 17:27 NotoSansJP-Thin.ttf
-rw-rw-r-- 1 root root 8031052 Sep 23 22:44 NotoSerifJP-Black.ttf
-rw-rw-r-- 1 root root 8033348 Sep 23 22:44 NotoSerifJP-Bold.ttf
-rw-rw-r-- 1 root root 8032452 Sep 23 22:44 NotoSerifJP-ExtraBold.ttf
-rw-rw-r-- 1 root root 8037984 Sep 23 22:44 NotoSerifJP-ExtraLight.ttf
-rw-rw-r-- 1 root root 8039096 Sep 23 22:44 NotoSerifJP-Light.ttf
-rw-rw-r-- 1 root root 8037964 Sep 23 22:44 NotoSerifJP-Medium.ttf
-rw-rw-r-- 1 root root 8039120 Sep 23 22:44 NotoSerifJP-Regular.ttf
-rw-rw-r-- 1 root root 8036184 Sep 23 22:44 NotoSerifJP-SemiBold.ttf
パッケージ管理のToltec →現時点は未対応
カスタムLinuxで動作しているreMarkableタブレット向けに、Toltecというパッケージ管理システムがコミュニティによって開発されているらしい。これがreMarkable Paper Proでも利用できるのだろうと、購入前の調査時には安直に考えていたのだが、話はそう簡単ではないと後に分かった。下記のIssueによると、reMarkable Paper Proの本体ソフトウェアのVersion 3.14系に、Toltecが対応する見通しはまだ無いとのこと。現時点では仕方がない……。
Tailscaleに挑戦 →とりあえずは動かせる
Toltecが使えればTailscaleはパッケージ導入できるそうだが、とりあえずここではTailscaleを自力でビルドして動かしてみることにする。先代の端末reMarkable 2へTailscaleを導入している下記ページの方法を参考にしている。
なお、今回の試みにおいて完全には解決できていない問題が1つあり、Step-4で暫定的な対策をしている。
Step-1. 手元PCにて準備
- 手元PC (今回はUbuntuを使用) にhttps://github.com/cceckman/homelab/blob/main/remarkable/tailscale.shのソースコードをダウンロードする
- ダウンロードした
tailscale.sh
のバックアップを作成する:cp -a ./tailscale.sh{,.original}
- tailscale.shを次のように編集する:
vim ./tailscale.sh
- TSPATH: 単に好みのPATHへ変更
- GOARCH: reMarkable Paper Proは「arm64」っぽいので変更
- ln -sf…: Tailscaleのstateを本体再起動時も保持するための変更
- tailscale up -ssh: TailscaleのSSH機能を使うためオプション追加
- rsync … root@: 実験環境のreMarkable端末の状態に合わせて変更
$ diff -p tailscale.sh{.original,}
*** tailscale.sh.original 2024-12-19 13:50:37.949660590 +0900
--- tailscale.sh 2024-12-19 13:59:20.205513025 +0900
*************** build_tailscale() {
*** 31,37 ****
# Build Tailscale:
# https://github.com/fako1024/go-remarkable
# This is where I usually download things - not necessarily GOMODCACHE.
! TSPATH="$HOME"/r/github.com/tailscale/tailscale
if ! test -d "$TSPATH"
then
echo >&2 "Downloading tailscale source..."
--- 31,38 ----
# Build Tailscale:
# https://github.com/fako1024/go-remarkable
# This is where I usually download things - not necessarily GOMODCACHE.
! # TSPATH="$HOME"/r/github.com/tailscale/tailscale
! TSPATH="$HOME"/tmp/src/github.com/tailscale/tailscale
if ! test -d "$TSPATH"
then
echo >&2 "Downloading tailscale source..."
*************** build_tailscale() {
*** 50,56 ****
# Use https://tailscale.com/kb/1207/small-tailscale,
# and tags+flags pulled from build_dist.
echo >&2 "Building tailscale..."
! GOOS=linux GOARCH=arm GOARM=7 \
go build \
-C "$TSPATH" \
-o "$CONTENT"/tailscale.combined \
--- 51,58 ----
# Use https://tailscale.com/kb/1207/small-tailscale,
# and tags+flags pulled from build_dist.
echo >&2 "Building tailscale..."
! # GOOS=linux GOARCH=arm GOARM=7 \
! GOOS=linux GOARCH=arm64 \
go build \
-C "$TSPATH" \
-o "$CONTENT"/tailscale.combined \
*************** systemctl daemon-reload
*** 104,117 ****
echo >&2 "Starting tailscale..."
systemctl enable tailscaled
systemctl restart tailscaled
! tailscale up
EOF
chmod +x "$CONTENT/setup.sh"
echo >&2 "Connecting and uploading..."
ssh -o ConnectTimeout=5 root@"$TARGET" \
"echo >&2 'Connected to reMarkable!'; rm -rf $TSINSTALLPATH; mkdir -p $TSINSTALLPATH" >&2
! rsync -avz "$CONTENT" "$TARGET:$TSINSTALLPATH"
echo >&2 "Running setup script..."
# Execute under systemd-run, so even if our network connection hangs up due to
--- 106,122 ----
echo >&2 "Starting tailscale..."
systemctl enable tailscaled
systemctl restart tailscaled
! #tailscale up
! tailscale up -ssh
! ln -sf $TSINSTALLPATH/tailscaled.state /var/lib/tailscale/tailscaled.state
EOF
chmod +x "$CONTENT/setup.sh"
echo >&2 "Connecting and uploading..."
ssh -o ConnectTimeout=5 root@"$TARGET" \
"echo >&2 'Connected to reMarkable!'; rm -rf $TSINSTALLPATH; mkdir -p $TSINSTALLPATH" >&2
! # rsync -avz "$CONTENT" "$TARGET:$TSINSTALLPATH"
! rsync -avz "$CONTENT" "root@$TARGET:$TSINSTALLPATH"
echo >&2 "Running setup script..."
# Execute under systemd-run, so even if our network connection hangs up due to
- 実行権限を付与する:
chmod +x ./tailscale.sh
Step-2. tailscaleを起動
- reMarkable端末へSSHログインする:
ssh -l root <reMarkable端末> # USB接続なら10.11.99.1
- デフォルトでのmount状態を確認する
# mount -v | grep 'on / '
/dev/mmcblk0p2 on / type ext4 (ro,relatime)
# mount -v | grep 'on /etc '
overlay on /etc type overlay (rw,relatime,lowerdir=/etc,upperdir=/var/volatile/etc,workdir=/var/volatile/.etc-work)
- ストレージの書き換えが行えるようにmount状態を変更する
# umount -l /etc
# mount -o remount,rw /
- 手元PCでtailscale.shを実行する:
./tailscale.sh <reMarkable端末> # 10.11.99.1
$ ./tailscale.sh <reMarkable端末>
(途中省略)
Running setup script...
Running as unit: run-r50e661dcf08b40999cb907ee5f751e99.service
- reMarkable Paper ProにSSHログインして、上記実行の最後に表示されたサービス名のstatusを確認する
$ ssh -l root <reMarkable端末> # 10.11.99.1
# systemctl status run-r50e661dcf08b40999cb907ee5f751e99.service
(途中省略)
Oct 20 14:42:16 imx8mm-ferrari setup.sh[1298]: To authenticate, visit:
Oct 20 14:42:16 imx8mm-ferrari setup.sh[1298]: https://login.tailscale.com/a/**************
- 表示されているURLへ手元PCのブラウザでアクセスする:
open https://login.tailscale.com/a/**************
- tailscaledサービスの状態を確認する
# systemctl status tailscaled.service
● tailscaled.service - Tailscale node agent
Loaded: loaded (/etc/systemd/system/tailscaled.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2024-10-20 14:42:12 UTC; 4min 20s ago
Step-3. Tailscaleの動作確認
- 手元PCからpingを打ってみる:
tailscale ping <reMarkable端末のTailscale IPアドレス>
- 手元PCからTailscale SSHでログインしてみる
$ ssh -l root <reMarkable端末のTailscale IPアドレス>
# Tailscale SSH requires an additional check.
# To authenticate, visit: https://login.tailscale.com/a/************** # 別ブラウザで認証を行う
(途中省略)
root@imx8mm-ferrari:~#
Step-4. 本体再起動後の対応
- reMarkble Paper Pro本体を再起動してしまうと、Tailscaleをサービス化しているファイルが削除された状態になる。そこで、Tailscaleを再びサービスとして動作させる次のスクリプトをreMarkable端末で実行する (私は
~/after-reboot.sh
として保存している)。
#!/bin/bash
set -eux -o pipefail
# after-reboot.sh (Ver.20241022)
ln -sf ~/tailscale/tailscaled.service /etc/systemd/system/tailscaled.service
mkdir -p /var/lib/tailscale/ ; ln -sf ~/tailscale/tailscaled.state /var/lib/tailscale/tailscaled.state
systemctl daemon-reload
systemctl start tailscaled.service
systemctl status tailscaled.service
追記 [2024-10-24]: スリープ時の壁紙を変更
次のページに、スリープ時に表示される壁紙を差し替える方法が紹介されていた。簡単なのでさっそくやってみた。
- お好みの画像を横1620x縦2160pxのPNG形式で保存する (たとえば上記ページで紹介されている、reMarkableが布団に潜っている画像は1404x1872のようなので拡大しておく)
- reMarkble Paper Proで
mount -o remount,rw /
してから、用意した画像を/usr/share/remarkable/suspended.png
へ上書きする
仮の結論
reMarkable Paper Proは最新ハードウェアだけあって、落書き用の電子ペーパー端末としてかなり優れていると思う。直感的に操作できて、使っていてストレスの少ない、素朴で素敵な道具だ。しかし本記事ではその感触にはあえて触れず、むしろhackableかどうかを確認してみようとした。
reMarkable Paper ProをLinux端末としてみた場合の現段階の結論としては、やはりパッケージ管理システムを利用できる状態が待ち遠しい。先代の機種と同様にOSやファイルシステムの解析が進んでいけば、それは間違いなく成し遂げられるだろうと予想する。なお、私の環境ではTailscaleはとりあえず開通できたので、たとえば自前のサーバからファイルの定期的なrsyncを行うような仕組みは作れそうな気がする。