KindleBanana Pi-把Kindle作為香蕉(樹莓)派的顯示幕

網路上已有些 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 為 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

    1. 需先安裝 Mobileread Kindlet Kit (MKK) 套件

      下載解壓縮後需把對應 Kindle 機種的檔案複製至根目錄下;以 Paperwhite 來說,其對應的檔名 (MKK v2.4)為: Update_mkk-20140214-k5-ALL_install.bin。

    2. 安裝 KUAL,參考此篇-KUAL: Kindle Unified Application Launcher

      下載與解壓縮,將其中 KindleLauncher-2.0.azw2 檔案複製到 Kindle 的/documents 目錄。

      將 USB 連線斷開後 Kindle 顯示會多了一本《Kindle Launcher》的書,點開有一排可以啟動的應用列表,參考如下圖:
      Kindle Paperwhite JB

      觸擊該書本啟動 KUAL 後,即會出現可執行的第三方應用程式列表。
      Kindle Paperwhite JB

      Kindle Paperwhite JB

  • 安裝 Extend 工具
    Extend 是一組擴展已預先編譯好的 linux 命令行工具,讓 Kindle 可以運行一些常用的 linux 命令,如:openssh、nano、screen、irssi、php、bash、rsync等指令。

    1. 參考此篇-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。)

    2. 將 kindle_extend-1.1 目錄下的 extend 和 extensions 子目錄複製到 Kindle 根目錄。
    3. 透過 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
  • 安裝 kterm
    Kterm 是一個內置虛擬鍵盤的 GTK+ 的 Kindle 終端器 (Terminal);爾後就是利用 Kterm 然後透過 USBNetwork 連接香蕉 (樹莓)派,並得以顯示操作終端指令。

    1. 下載 kterm 0.7 並解壓縮;同時需另下載 kterm-landscape-enabled.zip,解壓縮並複製覆蓋掉原 kterm 目錄內的 /bin/kterm 檔案 (好像原 kterm 目錄內該檔有 bug)。
    2. 將 kterm 目錄複製至 Kindle 的 /extension/ 目錄下。
    3. 移除 Kindle 硬體裝置,然後在 Kindle 點選 KULA,然後可以先執行 kterm 看看,利用 ping 指令測試是否可以 ping 到其它電腦的 IP 位址。

以上是完成 Kindle 的安裝暨相關工具的設定配置;再來還需要設定香蕉/樹莓派的網路部份,先確實連接好 Kindle 與 香蕉/樹莓派。
Kindle Paperwhite 當成樹莓派的顯示器

  • 先在 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 香蕉/樹莓派)
    1. 使用 USB 線連接 Kindle 與 香蕉/樹莓派。
    2. 開啟 USBNetwork 模式。可在 Kindle 的搜索框內,輸入「;un」,或是透過 KUAL,執行 USBNetowrk 內的「Toggle USBNetworking mode」。
    3. 透過 KUAL 執行 Kterm (是在 Kindle 內),輸入:
      $ ssh pi@192.168.15.1

      出現提示輸入密碼後登入,成功完成連接!可以利用雙指在 Kindle Paperwhite 螢幕上滑動,就會出現 kterm 的設定選單 (可設定字體大小/背景反白/Quit/Reset 等)。
      Kindle Paperwhite 當成樹莓派的顯示器

      ** 要操控 kterm,可以先把 Kindle 螢幕保護關閉;在搜尋框內輸入「;ns」即可關閉。

再來剩下兩個問題待克服:

  1. 讓字體可依 Kindle 螢幕橫放而跟著顯示正確方向。
  2. 可以透過連接於 香蕉/樹莓派的實體鍵盤 (無線、藍芽)輸入並顯示於 Kindle 螢幕上。(這應該是透過兩邊系統共用一個 Screen 的原理來達成的)

文章導覽

   

共有 2 則迴響

  1. 克明大:
    我是先telnet進去改密碼,再來ssh就可以用新密碼登入了
    mntroot rw
    passwd

發佈回覆給「Kenming Wang」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *