1. 程式人生 > >舊手機改裝伺服器——Android上的Linux(linux deploy)

舊手機改裝伺服器——Android上的Linux(linux deploy)

關於舊手機和Linux deploy

我在大一買的舊手機——紅米note1移動增強版本,終於光榮退役了。手機雖然很老,但2G的記憶體和還能正常使用的CPU,當然不能100塊錢回收便宜了淘寶,所以我就開始了改造紅米note舊手機計劃。
至於為什麼選擇linux deploy,是在我對比了主流的解決方案之後做出的決定。
Android手機執行Linux系統主流方案為:

  1. 手機無root,使用termux;
  2. 手機root,使用Linux deploy或者termux;

由於手機不再打算使用,所以root也沒有什麼問題,而且會更方便的操作linux系統,不會出現許可權問題。所以我選擇了root+linux deploy。

關於紅米note手機root

紅米note的型號是小米gucci,這一部分比較複雜,最主要的就是刷了一個MIUI的開發版,具有root許可權。其餘之後再補充…

關於Busybox

BusyBox 是一個集成了三百多個最常用Linux命令和工具的軟體。這是百度百科上的話,目前的接觸來看,Busybox是一個linux的函式庫,裡面有很多Android本身沒有的,但linux需要的工具和函式。
從百度應用或者其他途徑下載Busybox的apk,直接安裝,然後開啟該app,點選install即可,該app需要root。
busybox

安裝linux deploy

下載linux deploy的apk(我是從百度應用),安裝之後授權root。之後開啟linux deploy的介面大概是這樣的:
在這裡插入圖片描述


點選下面的那個下載的按鈕,之後進入配置,我的具體配置是:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
對,沒錯,我安裝的是debian系統,並且安裝了桌面版本。
其中,一定要允許ssh啟動(勾選),我的目錄是自定的/data/local/linux;一定要在相應目錄下建立好資料夾,不然就會出現分割槽錯誤。
使用者名稱和密碼自己設定吧,別直接抄了,當然直接抄也行。。。
然後點選最上方的安裝。等待安裝,一般來說,等待就會好,當然也有可能會遇到坑,可以在下方留言。

安裝connctBox

當然,你有其他的ssh連線方式也可以,我選擇了一個免費的ssh連線應用,也是在百度應用中下的apk。
安裝成功後配置:
在這裡插入圖片描述
其實最主要的就是(使用者名稱@主機名:埠),主機名一般是localhost,埠是22;其他的自己看著填吧。
之後就可以輸入設定好的linux密碼,就可以愉快地玩耍Linux了。
當然你要使用圖形介面的話,就下載一個VNCViewer(手機、電腦都行),埠是5900

區域網內控制Linux

如果想要在電腦上直接控制手機端的linux時,可以在電腦上下載putty和VNCViewer,可以分別用命令列和圖形介面控制Linux。
要在區域網外控制linux的話,需要內網穿透,可以網上查詢相關資料。
而想要的區域網中控制linux的話,首先要保證電腦和手機在同一個區域網中(可以在同一個wifi下,也可以開啟手機熱點,讓電腦連上)。
現在手機端開啟connectBox,登入linux,檢視手機在區域網中的ip:

ifconfig

這是輸出:
在這裡插入圖片描述
其中以192.168開頭的ip,很有可能是該手機的內網ip,可以試試,一般是(wlan0)。
比如我現在是192.168.43.171,在電腦的putty中輸入:
在這裡插入圖片描述
成功:
在這裡插入圖片描述

而在VNCViewer(電腦)中輸入一樣的ip,則會出現:
在這裡插入圖片描述
成功!

關於python的pip源問題

我使用的debian自帶apt-get,同時自帶python2.7,由於嘗試了很多次只能安裝python3.2,遂放棄python3系列,專心python2.7。
首先是安裝pip:

sudo apt-get install python-pip

安裝成功後可以用pip安裝各種package,比如:requests,lxml等。下面以requests為例:

sudo pip install requests

然而在我的系統上出現了:Cannot fetch index base URL http://pypi.python.org/simple/ 錯誤提示。
這時候我的解決方式是修改源:

 sudo pip install requests -i http://pypi.douban.com/simple

或者

sudo pip install requests -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

關於VNCViewer無法登入的問題

這個時候有兩種可能:

  1. 沒有開啟vncserver(我保持懷疑?大家可以先嚐試2)
  2. vnc的password輸入錯誤。

解決1的問題可以參考:
https://mlapp.cn/337.html
這位大佬的部落格,我參考了,但沒有真正解決,但至於它對我後續的成功是否有鋪墊,這確實不知道了,大家可以先檢視2的問題解決。

解決2的問題可以通過重設vnc的password:

cd /root/.vnc/
rm -rf passwd

然後它就會讓你重設password。