網路上已有些 Hack 玩家,把 Kindle JB 後,就可以透過 USB 線連接樹莓派 (Raspberry Pi),並透過 SSH 把 Kindle 當成終端顯示器 (terminal),但又可以連接實體鍵盤 (藍芽、無線均可)直接輸入指令,實在酷斃了。
爬文找了許多篇文章,其中這篇中文分享文-Kindle PaperWhite作為樹莓派的命令終端,最為完整;昨晚就依照文內教導的步驟,還有修正一些實作方式,總算也成功的把我的香蕉派 (Banana Pi)透過 USB 線連接 Kindle Paperwhite,將之當成終端顯示器。
所以這樣就可以同時帶著我的香蕉派與 Kindle,然後使用行動電源 (Kindle 使用電子紙顯示器,所以又是低耗電),並使用無線迷你鼠鍵,在咖啡廳玩轉 Raspbian Linux 系統囉。
這裡所使用的設備及線材:
- 香蕉派 (Banana Pi);樹莓派 (Raspberry Pi) 當然也同樣相容。
- 無線網卡 for 香蕉/樹莓派。
- Kindle Paperwhite。
- 4-port USB Hub。
- 兩條 Micro-USB to USB 線。一條連接香蕉派 與 USB Hub;另一條連接香蕉派 與 Kindle Paperwhite。
這裡就把上述的教學文以及自己的一些補充心得註記下來;我使用的是山寨的樹莓派-香蕉派,所以香蕉與樹莓電腦均可適用,Kindle 為 Paperwhite,Kindle 3, Paperwhite 2 也可適用 (但要注意對應的更新版本)。
- Kindle 越獄 (JailBreak)以及安裝 USBNetwork
Kindle 的越獄超簡單的,就是與更新系統一樣,把所下載的越獄檔案儲存到 Kindle 的根目錄下,然後透過 選單→設置→更新Kindle系統 即可。完整的越獄與 USBNetwork 安裝方式以及檔案下載參考此篇原文- Kindle Touch/PaperWhite 5.0.x - 5.4.4.2 JailBreak. Plus K5/PW USBNetwork。
注意 kindle-jailbreak-1.10.N 要求的 Kindle 韌體版本為 5.4.5 以下。還好我的版本為 5.4.4.2,可以越獄;若大於等於 5.4.5,則需降級再越獄,完成後再升級即可。
至於 USBNetwork 的作用:
As for USBNetwork, besides bundling a couple of useful tools, it will grant you remote shell access to your Kindle, be it over USB or WiFi. - 設定 USBNetwork
安裝完 USBNetwork 後,Kindle 根目錄會多出一個 /usbnet 目錄和 /extensions/usbnet 目錄。編輯 /usbnet/etc/config 檔,其中兩列修改如下:
USE_WIFI="true" USE_OPENSSH="true"
可以在 Kindle 的搜索框內,輸入:
- 「;usbnetwork」或「「;un」,然後再輸入一次可以切換 (toggle) USBNetwork 的開啟/關閉狀態。
- 「;711」,可以查到 Kindle 無線網卡的IP位址。
** 安裝完後續的 KUAL,則也可以透過選單切換與檢視 USBNetwork 的狀態;另若不關閉 USBNetwork 狀態,則當 Windows 7 安裝了 RNDIS 網卡驅動程式,USB 線連接時會成為 USB 網路而非儲存裝置。
- 安裝 RNDIS 遠端網路驅動程式@Windows 7 系統。
安裝該驅動程式目的是為了可以透過 USBNetowrk 直接連線至 Kindle 而不需登入密碼。安裝前先把 Kindle 連接至 Windows 7,此時系統會把 Kindle 當成儲存裝置;然後再點選安全移除該硬體裝置,並確定 Kindle 的 USBNetwork 為開啟,再安裝 RNDIS 驅動程式。
可以參考該篇-How to install Microsoft RNDIS driver for Windows 7,執行安裝。
安裝完成後,需要更改 RNDIS 網卡內的 IP4 位址。預設 Kindle 的位址為 192.168.15.244,RNDIS 內位址需位於同一區段;可以設定如為 192.168.15.201
可以參考這篇-Kindle Touch Hacking::USBNetworking Wiki 說明。
此時就可以透過 Putty 輸入 192.168.1.244 登入;不過個人的實測時只能選透過 Telnet(BBS) 登入,而不能選擇 SSH,否則就需要登入密碼。
** Kindle 的登入密碼好像是伴隨著裝置序號來決定的;可以透過-Amazon Kindle root password tool,輸入序號後可以查詢登入的密碼為何。
** 可惜我試過傳入序號,但輸入所給的密碼卻仍無法驗證。
- 安裝與設定 KUAL
KUAL = Kindle Unified Application Launcher,其作用是為越獄的 Kindle 啟動第三方 (3rd party)應用程式;具體的作法是通過一本特殊的書籍,來統一實現啟動觸發器 (launcher)。目前支援 KAUL 的第三方工具程式列表可參考-
A helpful list of Extensions for KUAL。- 需先安裝 Mobileread Kindlet Kit (MKK) 套件。
下載解壓縮後需把對應 Kindle 機種的檔案複製至根目錄下;以 Paperwhite 來說,其對應的檔名 (MKK v2.4)為: Update_mkk-20140214-k5-ALL_install.bin。
- 安裝 KUAL,參考此篇-KUAL: Kindle Unified Application Launcher。
下載與解壓縮,將其中 KindleLauncher-2.0.azw2 檔案複製到 Kindle 的/documents 目錄。
將 USB 連線斷開後 Kindle 顯示會多了一本《Kindle Launcher》的書,點開有一排可以啟動的應用列表,參考如下圖:
觸擊該書本啟動 KUAL 後,即會出現可執行的第三方應用程式列表。
- 需先安裝 Mobileread Kindlet Kit (MKK) 套件。
- 安裝 Extend 工具
Extend 是一組擴展已預先編譯好的 linux 命令行工具,讓 Kindle 可以運行一些常用的 linux 命令,如:openssh、nano、screen、irssi、php、bash、rsync等指令。- 參考此篇-Kindle Touch Hacking::Additional command-line tools: "Extend"。
下載與解壓縮 kindle_extend-1.1.zip;下載與解壓縮 optware_img_60m.zip。
將從 optware_img_60m.zip 解壓縮後的檔案 optware.img 複製並覆蓋位於 kindle_extend-1.1/extend/optware.img 檔案。(覆蓋的目的是精簡原來 extend-1.1 內的 optware 工具,從原來 500多Mb 精簡為 60Mb。)
- 將 kindle_extend-1.1 目錄下的 extend 和 extensions 子目錄複製到 Kindle 根目錄。
-
透過 Putty 連線至 Kindle,然後執行下列指令;目的是可以讓 Kindle 爾後開機後可以執行 optware 工具。
$ mntroot rw $ mkdir /mnt/us/circles $ cp /mnt/us/extend/mountd /mnt/us/circles $ ln -s /mnt/us/circles/mountd /etc/rc5.d/S101mountd $ mntroot ro $ /mnt/us/extend/install.sh $ /mnt/us/extend/mount.sh
- 參考此篇-Kindle Touch Hacking::Additional command-line tools: "Extend"。
- 安裝 kterm
Kterm 是一個內置虛擬鍵盤的 GTK+ 的 Kindle 終端器 (Terminal);爾後就是利用 Kterm 然後透過 USBNetwork 連接香蕉 (樹莓)派,並得以顯示操作終端指令。- 下載 kterm 0.7 並解壓縮;同時需另下載 kterm-landscape-enabled.zip,解壓縮並複製覆蓋掉原 kterm 目錄內的 /bin/kterm 檔案 (好像原 kterm 目錄內該檔有 bug)。
- 將 kterm 目錄複製至 Kindle 的 /extension/ 目錄下。
- 移除 Kindle 硬體裝置,然後在 Kindle 點選 KULA,然後可以先執行 kterm 看看,利用 ping 指令測試是否可以 ping 到其它電腦的 IP 位址。
以上是完成 Kindle 的安裝暨相關工具的設定配置;再來還需要設定香蕉/樹莓派的網路部份,先確實連接好 Kindle 與 香蕉/樹莓派。
- 先在 Windows 系統利用 Putty 連線至香蕉/樹莓派,然後利用編輯網路介面:
$ sudo nano /etc/network/interfaces
在該檔案內新增下列內容:
# USB tethering. allow-hotplug usb0 iface usb0 inet static address 192.168.15.1 netmask 255.255.255.0 broadcast 192.168.15.255 up iptables -I INPUT 1 -s 192.168.15.1 -j ACCEPT up eject /dev/sda1
** allow-hotplug usb0 表示插入 USB 後自動加載網絡配置
** up eject /dev/sda1 表示彈出 Kindle 自動掛載的磁盤分區重啟網絡:
$ sudo service networking reload
如此就完成當透過 USB 線連接 Kindle 與 香蕉/樹莓派後,在 Kindle 執行 kterm 就可以透過 USBNetwork 顯示操作界面了。
- 實際連線測試 (Kindle and 香蕉/樹莓派)
- 使用 USB 線連接 Kindle 與 香蕉/樹莓派。
- 開啟 USBNetwork 模式。可在 Kindle 的搜索框內,輸入「;un」,或是透過 KUAL,執行 USBNetowrk 內的「Toggle USBNetworking mode」。
- 透過 KUAL 執行 Kterm (是在 Kindle 內),輸入:
$ ssh pi@192.168.15.1
出現提示輸入密碼後登入,成功完成連接!可以利用雙指在 Kindle Paperwhite 螢幕上滑動,就會出現 kterm 的設定選單 (可設定字體大小/背景反白/Quit/Reset 等)。
** 要操控 kterm,可以先把 Kindle 螢幕保護關閉;在搜尋框內輸入「;ns」即可關閉。
再來剩下兩個問題待克服:
- 讓字體可依 Kindle 螢幕橫放而跟著顯示正確方向。
- 可以透過連接於 香蕉/樹莓派的實體鍵盤 (無線、藍芽)輸入並顯示於 Kindle 螢幕上。(這應該是透過兩邊系統共用一個 Screen 的原理來達成的)
克明大:
我是先telnet進去改密碼,再來ssh就可以用新密碼登入了
mntroot rw
passwd
是的,後來我知道用這方式。 ^^