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
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
# 為了正常顯示 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
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"
gtk-theme-name = "Raleigh"
gtk-icon-theme-name = "Adwaita"
14. 為使 qt 界面的程式也有和 GTK 相同的外觀:
對 qt4:在 /root/.config/Trolltech.conf 檔中加入:
[Qt]
style=GTK+
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
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
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
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
execstack -c /usr/lib/arm-linux-gnueabihf/libx264.so.142
如此即可啟動 goldendict,但又顯示如下訊息:
初始化熱鍵監視機制失敗
Failed to initialize hotkeys monitoring mechanism.
Failed to initialize hotkeys monitoring mechanism.
關掉此訊息後,[編輯/Edit] > [選項/Preferences] > [熱鍵/Hotkeys],取消勾選。
確認能正常使用後,可將 execstack 移除:
apt purge execstack
apt-get autoremove
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 還在開發中,缺很多功能,可能要等一年後再來試。
【附錄】鍵盤背景圖
使用方法:在自定背景圖步驟中,選取此圖後,將緃向選取區移至最下方,選取;然後將橫向選取區移到最上方,選取。
註一:注音符號會有兩鍵在同一處,右邊的要長按。
註二:可能不適用於別種型號的手機。
沒有留言:
張貼留言