Try   HackMD

reMarkable 電子書閱讀器中文支援問題規避教學

說明如何使您的 reMarkable 電子書閱讀器支援顯示中文文字

https://hackmd.io/@brlin/remarkable-chinese-support-tutorial

內容大綱Table of contents

問題Problem

reMarkable 電子書閱讀器預設沒有內建中文字型,故除有內嵌字型之 PDF 文件外所有的中文字元都會顯示為方塊字形glyph(俗稱豆腐tofu):

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

問題規避方案Workaround

使用原廠系統軟體提供之 SSH 服務與 root 管理者密碼透過 SFTP 客戶端軟體將中文字型安裝進去之後使用 SSH 客戶端軟體取得 reMarkable 的命令列操作介面command-line interface進行進一步設定使 reMarkable 的主應用程式可以讀得到中文字型。

先決條件Prerequisites

以下為完成本教學所需要滿足之先決條件:

  • 您需要有一台電腦(支援 USB OTG 功能之手機或平板電腦應該也可以)
  • 您需要已安裝一個:
    • SSH 客戶端軟體(如 OpenSSHMobaXtermRemmina 或是 PuTTY
    • SFTP 客戶端軟體(如 OpenSSHFileZilla

      注意: SFTP 是指「SSH 文件傳輸協議(SSH File Transfer Protocol)」,非「過 TLS/SSL 加密的 FTP 傳輸協議(FTPS)」。

  • (如果是 reMarkable Paper Pro 產品)需要啟用開發者模式Developer mode

    警告: 啟用開發者模式有可能會影響您的產品硬體保固權利,請在評估利弊得失後才進行。

設定流程Setup process

以下說明設定問題規避方案的具體流程:

將 reMarkable 連接至電腦(或相容的裝置)

為了您的資訊安全 reMarkable 的 SSH 服務預設僅對其透過 USB 模擬之乙太網路Ethernet網路介面network interface提供服務,故需要先將其透過 USB 傳輸線連接至電腦。

(如您已經啟用 SSH 服務監聽 Wi-Fi 網路介面支援的話可以跳過此步驟)

將 reMarkable 連接至電腦後您應可以在電腦的網路介面查詢/列舉介面中發現一個新的乙太網路介面:

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

(其他作業系統之操作步驟參考這篇 ChatGPT 大語言模型回應的說明

此網路介面應會自動完成連線設定但沒有網際網路Internet存取能力,它僅是讓您能夠存取 reMarkable 電子書閱讀器預設禁用之 Web 操作介面與 SSH 服務用的。

查詢登入 reMarkable 的 SSH 服務所需的必要資訊

於 reMarkable 主選單 > Settings > General > Help > About > Copyrights and licenses 頁面中的 GPLv3 Compliance 節中獲取 reMarkable 電子書閱讀器的 root 管理者帳號的身份驗證密碼:

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

注意: 請避免任意地公開此密碼(尤其是在您啟用了 SSH 服務 Wi-Fi 網路介面監聽設定之後),避免您的裝置遭到同網路的攻擊者入侵。

提示: 如您有啟用 SSH 服務 Wi-Fi 網路介面監聽設定您亦可於此章節獲取登入 reMarkable 的 SSH 服務所需之裝置 IP 地址。

存取 reMarkable 裝置的 SFTP 服務

接下來啟動您的 SFTP 客戶端軟體,輸入下列資訊後登入您的 reMarkable 電子書閱讀器:

  • 通訊協議Protocol:SFTP
  • 主機地址Host address10.11.99.1 (或是如您已經啟用 SSH 服務監聽 Wi-Fi 網路介面支援時,您於先前步驟中查詢到的 reMarkable 裝置 IP 地址)
  • 通訊埠號Port22
  • 使用者名稱Usernameroot
  • 密碼Password:(您於先前步驟中查詢到的 root 管理者帳號密碼)

參考操作畫面(以 FileZilla 為例):

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

如果您的 SFTP 客戶端軟體彈出類似像是下列這樣的警告視窗代表您的 reMarkable 裝置 SSH 服務的公鑰public key尚未被您的 SSH 客戶端設定為可信任:

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

如您為透過 10.11.99.1 IP 地址進行登入因該連線沒有遭受中間人攻擊MitM attack的疑慮則可以直接選擇「(永遠)信任」;如果您為透過 Wi-Fi 網路連線建議先取消登入,透過 USB 連線登入 SSH 服務後參閱查詢 SSH 服務的公鑰指紋 | 維運猿的共同筆記文章的說明查詢並紀錄 SSH 服務的公鑰指紋以供未來比對使用。

警告: 如果未比對公鑰指紋就登入 SSH 服務則有機會遭受到中間人攻擊(Man-in-the-middle(MitM) attack),即您與 SSH 服務的通訊(包含但不限於裝置登入的密碼與傳輸的文件等)將會被攻擊者竊聽,且攻擊者有機會竊取裝置的完整權限於日後遠端存取該裝置之資料。

登入後您應可於 SFTP 客戶端之「遠端站台」面板看到 reMarkable 裝置內的檔案:

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

安裝中文字型至 reMarkable

於 SFTP 客戶端之「遠端站台」面板繼續進行下列操作:

  1. 確保 /home/root/.local/share/fonts 資料夾已建立。

  2. 將要安裝的字型檔案拖曳到 /home/root/.local/share/fonts 資料夾中。

    如果沒有想裝的字型推薦使用 Noto Sans Traditional Chinese 字型中的 NotoSansTC-Regular.ttf 字型檔案。

登入 reMarkable 的命令列操作介面

接下來啟動您的 SSH 客戶端軟體,輸入下列資訊後登入並取得 reMarkable 的命令列操作介面:

  • 通訊協議Protocol:SSH
  • 主機地址Host address10.11.99.1 (或是如您已經啟用 SSH 服務監聽 Wi-Fi 網路介面支援時,您於先前步驟中查詢到的 reMarkable 裝置 IP 地址)
  • 通訊埠號Port22
  • 使用者名稱Usernameroot
  • 密碼Password:(您於先前步驟中查詢到的 root 管理者帳號密碼)

參考操作畫面(以 Putty 為例):

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

參考操作畫面(以 Remmina 為例):

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

如果您的 SSH 客戶端軟體彈出類似像是下列這樣的警告視窗代表您的 reMarkable 裝置 SSH 服務的公鑰public key尚未被您的 SSH 客戶端設定為可信任:

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

如您為透過 10.11.99.1 IP 地址進行登入因該連線沒有遭受中間人攻擊MitM attack的疑慮則直接選擇「(永遠)允許」即可;如果您為透過 Wi-Fi 網路連線建議先取消登入,透過 USB 連線取得命令列操作介面後參閱查詢 SSH 服務的公鑰指紋 | 維運猿的共同筆記文章的說明查詢並紀錄 SSH 服務的公鑰指紋以供未來比對使用。

警告: 如果未比對公鑰指紋就登入 SSH 服務則有機會遭受到中間人攻擊(Man-in-the-middle(MitM) attack),即您與 SSH 服務的通訊(包含但不限於裝置登入的密碼與傳輸的文件等)將會被攻擊者竊聽,且攻擊者有機會竊取裝置的完整權限於日後遠端存取該裝置之資料。

當您看到類似像是下列這樣的畫面時代表您已成功登入並取得 reMarkable 的命令列操作介面:

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →
Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

確認字型可以正常使用

於 reMarkable 的命令列操作介面中執行下列命令重新啟動 reMarkable 主應用程式(xochitl)服務:

systemctl restart xochitl.service

重新啟動之後您應會發現此時中文文字已能正常顯示:

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

但先別高興得太早,此時若您在主選單 > General 頁面中點擊下方的 Restart 按鈕重新啟動裝置則會注意到中文文字又被顯示為方塊:

重新啟動 reMarkable 裝置後的主畫面範例畫面截圖

這是因為我們的中文字型是安裝在 /home 檔案系統中,而新版 reMarkable 系統軟體為了實作儲存空間加密volume encryption功能將 reMarkable 主應用程式(xochitl)服務於掛載mount /home 檔案系統前就啟動(以顯示解密儲存空間用之「Enter passkey」畫面)故 reMarkable 主應用程式讀不到中文字型的緣故。

(reMarkable Paper Pro 限定)允許一次性地修改 /etc 目錄中的系統設定檔

reMarkable Paper Pro 產品於系統啟動期間會將:

  • 根目錄檔案系統(/)掛載為唯讀模式
  • 系統全域設定目錄(/etc)掛載為揮發性檔案系統(/var/volatile)

這使得我們在 /etc 目錄下的修改在重新開機後會被丟棄,造成設定失效故在進行接下來的設定前我們要先將其暫時禁用。

於 SSH 客戶端軟體中執行下列命令將根目錄檔案系統改掛載為可寫模式:

mount -o remount,rw /

然後執行下列命令將揮發性檔案系統自 /etc 目錄解除掛載:

umount -R /etc

使 reMarkable 主應用程式可以讀得到中文字型

為了使 reMarkable 主應用程式(xochitl)服務得以讀取存放在 /home 檔案系統中的中文字型,我們要修改 systemd 服務管理器的設定使 reMarkable 主應用程式服務在 /home 檔案系統掛載後 再重新啟動一次以使其得以真正地載入到中文字型。

首先於 SFTP 客戶端「遠端站台」面板中的 /etc/systemd/system 目錄中建立一個叫做 restart-xochitl-after-home.service 的檔案,然後編輯該檔案並新增下列內容:

# Copyright 2025 林博仁(Buo-ren Lin) <buo.ren.lin@gmail.com>
# SPDX-License-Identifier: CC-BY-SA-4.0
[Unit]
Description=Restart the Xochitl service after the /home filesystem is mounted.
Documentation=https://hackmd.io/@brlin/remarkable-chinese-support-tutorial
Documentation=https://gitlab.com/brlin/remarkable-chinese-text-rendering-workaround
After=home.mount
Requires=home.mount
BindsTo=home.mount

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart xochitl.service
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

附註: 於 FileZilla SFTP 客戶端軟體的具體操作流程:

  1. 點擊「遠端站台」面板上側的文字輸入框,輸入 /etc/systemd/system 後按下 Enter 鍵進到該目錄。
  2. 於下方檔案列表子面板開啟任一檔案的情境(右鍵)選單context menu,然後選取「建立新檔案(T)」選項建立新的檔案。
    FileZilla 建立新檔案操作示意畫面截圖
  3. 於「建立空檔案」對話框的文字輸入框輸入 restart-xochitl-after-home.service 然後點擊下方的「確定(O)」按鈕完成建立檔案操作。
    FileZilla 建立新檔案操作示意畫面(2)截圖
  4. 開啟 restart-xochitl-after-home.service 檔案的情境(右鍵)選單context menu,然後選取「檢視/編輯(V)」選項於純文字文件編輯器開啟該檔案。
  5. 於純文字文件編輯器中貼上先前所述之檔案內容然後於存檔後關掉編輯器。
  6. 過幾秒之後 FileZilla 應會彈出「檔案已改變」對話框,點擊下方的「完成編輯並且刪除本地檔案(F)」勾選框以及「是(Y)」按鈕重新上傳變更後的檔案。
    FileZilla 重新上傳檔案示意畫面截圖

附註: 如果使用 Vim 命令列界面文字編輯器編輯檔案時亂碼可以使用下列方式規避問題:

TERM=xterm vim restart-xochitl-after-home.service

然後於 SSH 客戶端中執行下列命令重新載入 systemd 服務管理器設定:

systemctl daemon-reload

接著執行下列命令確認 systemd 有讀到新的設定檔:

systemctl status restart-xochitl-after-home.service

其應該要有類似下面這樣的輸出:

○ restart-xochitl-after-home.service - Restart the Xochitl service after the /home filesystem is mounted.
     Loaded: loaded (/etc/systemd/system/restart-xochitl-after-home.service; disabled; vendor preset: disabled)
     Active: inactive (dead)
       Docs: https://hackmd.io/@brlin/remarkable-chinese-support-tutorial
             https://gitlab.com/brlin/remarkable-chinese-text-rendering-workaround

接著執行下列命令測試設定:

systemctl start restart-xochitl-after-home.service

此時 reMarkable 主應用程式應會重新啟動、顯示鎖定畫面(如果有),並在解除鎖定一分鐘內正常回到主畫面。

然後於 SSH 客戶端軟體中執行下列命令設定於裝置啟動、掛載 /home 檔案系統後自動啟動 restart-xochitl-after-home.service 這個服務:

systemctl enable restart-xochitl-after-home.service

最後於 reMarkable 主選單 > General 頁面點擊下方的「Restart」按鈕重新啟動裝置,此時中文文字應能持續正常顯示。

禁用系統軟體的自動更新功能

我們先前所作的修改會於系統軟體更新時被覆寫,為避免哪一天中文文字顯示因為系統軟體更新意外失效故我們要禁用系統軟體的自動更新功能。

注意: 為修正安全漏洞與軟體缺陷您仍應定期更新系統軟體,並在完成系統軟體更新後依照本教學的操作重新設定。

於 reMarkable 主選單 > General > Paper tablet > Software 頁面的 Updates 區段將自動更新系統軟體的勾選框取消勾選即可完成設定,日後要更新系統軟體可以點擊頁面上方的「Check for updates」按鈕手動檢查與進行系統軟體更新。

參考資料

撰寫本文件期間參考了下列資料:

授權條款

除特別註明之內容外,本文件採用 4.0 國際版或其任意更近期版本之 Creative Commons BY-SA 授權條款發布供大眾於 授權範圍內 自由使用。

如有授權範圍外之使用需求請洽詢 buo.ren.lin+legal@gmail.com