pretty code

2022年1月9日 星期日

KoboFileServer 開發記錄

上個星期在釐清了我的需求後,覺得自己比較需要的是 Wi-Fi 傳檔的軟體,而不是 GUI App for Google Drive,故利用了幾天晚上的時間,把 Wi-Fi 傳檔的軟體開發出來,也順利的執行在 Kobo Elipsa 上。

過程中有遇到一些問題,也看了很多國外討論網站,故已經把相關資訊都獨立寫成一篇文章了。但有些是針對 KoboFileServer 的注意事項,想了想還是另寫一篇專文,之後要增添新功能時就比較方便了。

01. 觸發 Import Book,目前是用 NickelMenu 的方法,雖然已經知道掛載 SD 會重複檔案的原因,但暫時是先用 NickelMenu 的方式解決,如果想要減少此操作步驟,可能是想辦法 command line 觸發 action,就像原本呼叫 refresh.sh 的方法一樣,應該是去參考 NickelDbus,似乎在安裝完後有一支 /usr/bin/qndb 可以被呼叫做一些事,我想這樣就可以解決了,可以參考 KoboMail 專案。

02. Form 上傳時,如果超過設定的 32M 會改用 disk 暫存,在 /tmp 下,會看到有一個類似 multipart-xxxxxxxxxx 的檔案。既然是 disk 速度就會慢,故可以考慮視情況微調,以 Elipsa 來說,我覺得可以使用到 200 MB。

03. 使用 Wi-Fi 雖然很方便,但網路速度影響很大,同樣一本 70 MB 的書,從 11 min 到 38 秒都有可能,後者的數據反而是用手機傳的(手機分享網路給 device),可見我家的無線基地台有點爛。


04. 原本已經架好 cross-compiler 的環境,以為可以比照辦理呼叫 libnickel.so 來 import books,沒想到該函數有用到其他 Qt Lib,除了設定 LD_LIBRARY_PATH 外,還必須寫成 QApplication 才行。不過至少確定 x-tools 可以跑在 Windows 10 的 Linux subsytem 裡。


後來發現,如果是寫成 QApplication,會遇到無法執行的問題,會缺少 xcb 的 PLUGIN,找了一下,不論是開發環境或者是 Kobo 系統裡面都找不到相關檔案,目前暫時無解。

Warning:想要在 Kobo 上使用 Qt,要使用 QPA。

沒有留言: