2016/08/26

GNURoot Debian 的安裝與設定 -- 自製 Android IceDebian

Installation and Setup of GNURoot Debian


【前言】

Android OS 中的 Debian OS -- Linux 中的 Linux。

本文敘述在 Android 系統安裝 GNURoot Debian 的方法。是將 Debian 安裝在 Android 裡面而非平行並排,所以手機不須有管理員權限(non-rooted)。

GNURoot Debian 預裝的視窗管理員是 TWM,功能稍感簡略,此處改用也是輕量級的 IceWM,所以稱之為 Android IceDebian。

使用的手機是 Asus Zenfone 2 Laser。預裝的軟鍵盤 "ZenUI 鍵盤"不夠用,本例另安裝 Android 鍵盤(NextApp)。

安裝程式速度很慢,要有點耐心。

以下先談英文界面,後提中文環境。



【英文界面的安裝與設定】

0. 由 Google Play 安裝 GNURoot Debian 應用程式。


1. 手機連網後,啟動 GNURoot Debian。


2. 在 [INSTALL/UPDATE] 分頁依序點選:

 [Install/Reinstall]
  這只安裝最基本的文字界面,目前是 Debian 8 Jessie 版。


 [Patch Installation]
  安裝更新,目前好像沒有。

 [Install X Support]
  安裝圖形界面。安裝了以下這些程式。



3. 到 [LAUNCH] 分頁點選 [Launch] 啟動文字界面。


右上角選 [設定],[字型大小] 改為 16。


4. 更新。

apt update
apt upgrade
apt dist-upgrade


5. 更改時區。

dpkg-reconfigure tzdata

先選 6 Asia,再選 70 Taipei。


6. 安裝基本工具和應用程式。

apt install x11-xserver-utils xdg-utils man-db icewm spacefm lxpanel lxterminal geany synaptic

共須 244 MB 空間。


7. 啟動圖形界面。

先點選右上方 [X] 關閉文字界面,然後選 [Launch X]。


可能是怕新手或對 TWM 不熟的人不會用,預設會開啟虛擬終端機 xterm。


8. 更改啟動檔。

就在這 xterm 輸入:

geany /root/.vnc/xstartup

會有警告訊息,先忽略。TWM 會先顯示應用程式的外框,在螢幕上點一下,即決定視窗左上角的位置。

將內容改為:

#!/bin/sh

# 為了正常顯示 qt 程式。
export QT_X11_NO_MITSHM=1
export QT_GRAPHICSSYSTEM=native

# 為使 qt5 界面的程式也有和 GTK 相同的外觀。
export QT_STYLE_OVERRIDE=GTK+

# 管理桌面。
spacefm --desktop &

# 工作列。
lxpanel &

# 將預設開啟的虛擬終端機關掉。
sleep 1 && pkill xterm

# 啟動 Xsession。
. /etc/X11/Xsession

存檔,結束。


9. 複製 IceWM 視窗管理員的設定檔。

cp -r /usr/share/icewm /root/.icewm
cp /etc/X11/icewm/programs /root/.icewm

註:programs 檔以使用者資料夾中的優先。若有手動更改,才須複製,不然用系統的即可。而且,增減應用程式會自動更新系統的,不會改使用者的。


10. 移除預裝的視窗管理員。

apt purge twm


11. 重新啟動。

結束 GNURoot Debian。

到華碩小工具的工作管理員,找到 GNURoot Debian,點按左側的 [X]。


重新執行 GNURoot Debian。

點選 [LAUNCH] > [Launch X]。

註:此法以下稱為"全新啟動"。若無華碩工作管理員,其他方法見【後語】。


12. lxpanel 的設定。

現在有兩個工作列,螢幕下方看到的是 lxpanel。另一個是 IceWM 的,被 lxpanel 覆蓋了。因 IceWM 工作列固定在下緣,所以只能將 lxpanel 移到其他邊緣。

點選螢幕下方 lxpanel,按手機 [Back] 開啟右鍵選單,選 [Panel Settings]。

[Geometry] 分頁:
 [Edge]: Top
 [Alignment]: Center
 [Width]: Dynamic
 [Height]: 34
 [Icon size]: 32

[Appearance] 分頁:
 Solid color

[Panel Applets] 分頁:
 [Application Launch Bar]
  安裝的應用程式皆可隨意加入。
 [Menu]
  因 IceWM 的程式選單不能顯示所有的應用程式。

[Advanced] 分頁:
 [Terminal Emulator]: lxterminal %s


13. 修改佈景。

新增 /root/.gtkrc-2.0,內容為:

gtk-font-name = "Sans 14"
gtk-theme-name = "Raleigh"
gtk-icon-theme-name = "Adwaita"


14. 為使 qt 界面的程式也有和 GTK 相同的外觀:

對 qt4:在 /root/.config/Trolltech.conf 檔中加入:

[Qt]
style=GTK+

對 qt5:在 /root/.vnc/xstartup 檔中加入:

export QT_STYLE_OVERRIDE=GTK+


15. IceWM 的設定。

請參考 IceWM Settings 視窗管理員的設定修改 /root/.icewm/ 中的檔案。

註:menu 和 toolbar 兩檔若無內容也要保留空白檔案,不要刪檔,不然會用系統的。或是到 /etc/X11/icewm/ 刪掉系統的也可以。


16. .desktop 檔的修改。

到 /usr/share/applications/ 修改以下檔案。

lxterminal.desktop
 Exec=su -c lxterminal
 可能是權限的關係,必須如此才能啟動。或是在 xterm 中輸入 lxterminal 啟動。
 另外 IceWM 的 /root/.icewm/programs 檔也要改。

synaptic.desktop
 NoDisplay=true

synaptic-kde.desktop
 OnlyShowIn=KDE;  刪除此行。


17. 設定 X 所附基本程式的外觀。

新增 /root/.Xresources 檔,內容如下:

XTerm*faceName: Monospace
XTerm*faceSize: 14
XTerm*background: rgb:0/6/0
XTerm*foreground: rgb:f/f/f
XTerm*cursorColor: red
XTerm*cursorBlink: true
XTerm*cursorUnderLine: true
XTerm*internalBorder: 5
XTerm*scaleHeight: 1.2
XTerm*bellOnReset: false
XTerm*geometry: 80x16

UXTerm*faceName: Monospace
UXTerm*faceSize: 14
UXTerm*background: rgb:c/f/c
UXTerm*foreground: rgb:0/2/0
UXTerm*cursorColor: red
UXTerm*cursorBlink: true
UXTerm*cursorUnderLine: true
UXTerm*internalBorder: 5
UXTerm*scaleHeight: 1.2
UXTerm*bellOnReset: false
UXTerm*geometry: 80x16

XFontSel*Font: 10x20


18. 餘項。

隨各人喜好修改各應用程式的設定。

清除:

apt-get autoremove
apt-get autoclean
apt-get clean

全新啟動。

這是全英文環境的 GNURoot IceDebian。以下先介紹可輸入中文的英文界面,再談全中文環境。



【可顯示與輸入中文的英文環境】

1. 安裝程式。

apt install locales fonts-arphic-uming gcin gcin-qt4-immodule

224 MB。


2. 新增語言。

dpkg-reconfigure locales

先選 en_US.UTF-8 和 zh_TW.UTF-8。
次選 en_US.UTF-8 為預設的系統環境。


3. 編輯 /root/.vnc/xstartup 檔。

加入:

export LC_CTYPE=zh_TW.UTF-8

# 以下基本上只要加 QT4 一項即可,其餘可不加。
export CLUTTER_IM_MODULE=xim
export GTK_IM_MODULE=gcin
export QT_IM_MODULE=gcin
export QT4_IM_MODULE=gcin
export XMODIFIERS=@im=gcin


4. 選擇輸入法。

程式選單選 [Input Method] 或執行 im-config,[OK] > [Yes] > [gcin]。


5. 全新啟動。

只有 xterm 無法輸入中文,lxterminal 和其餘程式都可以。



【全中文環境】

1. 選擇語言。

dpkg-reconfigure locales

先若已選 en_US.UTF-8 和 zh_TW.UTF-8,可直接點選 [OK/確認]。
次選 zh_TW.UTF-8 為預設的系統環境。


2. 設定變數。

若有的話,/root/.vnc/xstartup 檔中的

export LC_CTYPE=zh_TW.UTF-8

改成

export LC_ALL=zh_TW.UTF-8

全新啟動。



【後語】

1. 經試驗,應用程式若要用到手機硬體者,大概都不能用;譬如網路(要用網路卡)和影音(要用音效卡)都無法使用。文書處理和繪圖則可用,舉例如下:
 工具類:lxtask, xarchiver
 辦公類:goldendict, abiword, gnumeric, clipit
 圖像類:gimp, inkscape, gpicview

有些程式要從虛擬終端機啟動,有些要加 "su -c " 才能用。



2. 輸入中文要用 OTG 外接鍵盤、滑鼠才方便。用手機的軟鍵盤,在輸入中文時,只有英文界面才能輸入,但此時並無注音符號和倉頡字根,很不方便。若用注音鍵盤界面或倉頡,都無法輸入中文。這可能是 GNURoot 和 Android 溝通不良所致。

有一個變通的方法,但有些麻煩。就是利用華碩鍵盤可自定背景的功能,將注音符號和倉頡字根做成背景圖。此法的問題是在不同輸入界面都會顯示此背景。當切換到其他鍵盤或手寫輸入界面時,仍看到此背景,會有干擾。下圖是一實例,所用背景圖片在【附錄】供大家參考。



註:橫向背景較模糊是因為經過縮放的關係。


3. 訊息。

都會有以下訊息:

Xlib:  extension "RANDR" missing on display

Gdk-WARNING **: shmget failed: error 13 (Permission denied)

這些只是警告,並無任何影響。


4. 啟動虛擬終端機有無加 "su -c ",結果不同,雖然 $USER 都是 root。若未加,不含 /etc/environment 的設定。這可由執行 export 指令得知。因此,從這兩個不同的狀態啟動同一應用程式,可能會有不同的結果。所以,環境變數不要在 /etc/environment 中設定。


5. $HOME 可能是 /home 或 /root,決定在如何啟動系統。若在 [LAUNCH] 分頁點選 [Launch] 啟動文字界面,$HOME=/home;若全新啟動選 [Launch X] 進入圖形界面,$HOME=/root


6. goldendict 相關事項。

goldendict 一開始無法執行,虛擬終端機顯示如下訊息:

error while loading shared libraries: libx264.so.142: cannot enable executable stack as shared object requires: Permission denied

這是系統的錯誤,誤將 libx264.so.142 列為須要 execstack。

解決方法:

apt install execstack
execstack -c /usr/lib/arm-linux-gnueabihf/libx264.so.142

如此即可啟動 goldendict,但又顯示如下訊息:

初始化熱鍵監視機制失敗
Failed to initialize hotkeys monitoring mechanism.

關掉此訊息後,[編輯/Edit] > [選項/Preferences] > [熱鍵/Hotkeys],取消勾選。

確認能正常使用後,可將 execstack 移除:

apt purge execstack
apt-get autoremove


7. 全新啟動時,中止運行中的 GNURoot:

!!!先儲存/結束所有工作!!!

 在 GNURoot 圖形界面自殺:

  開啟 lxtask,點選 com.gnuroot.debian,按 [Back] 開啟右鍵選單,選 [強行終止/Kill]。

  開啟虛擬終端機,執行 pkill .gunroot.debian

 在 GNURoot 文字界面自盡:

  執行 pkill .gunroot.debian

 在手機桌面:

  開啟 Clean Master,選 [手機加速],勾選 GNURoot Debian,執行。


8. GNURoot 還在開發中,缺很多功能,可能要等一年後再來試。



【附錄】鍵盤背景圖


使用方法:在自定背景圖步驟中,選取此圖後,將緃向選取區移至最下方,選取;然後將橫向選取區移到最上方,選取。

註一:注音符號會有兩鍵在同一處,右邊的要長按。

註二:可能不適用於別種型號的手機。

沒有留言:

張貼留言