機(jī)上安裝原生的Linux系統(tǒng),目前最成熟的兩個(gè)方案:一個(gè)是Ubuntu Touch,另一個(gè)就是PostmarketOS。
PostmarketOS基于Alpine Linux,官方支持的手機(jī)型號(hào)比較多,最佳設(shè)備是紅米2:功能支持最全;沒有BootLoader鎖刷機(jī)簡單;價(jià)格便宜刷壞不心疼。
PostmarketOS刷機(jī)難度比Ubuntu Touch稍稍復(fù)雜一點(diǎn),可以選擇純fastboot刷機(jī)方案或者官方pmbootstrap方案(pmbootstrap需要在Linux環(huán)境下運(yùn)行)。
首先說一下作為原生的完整Linux系統(tǒng),其可玩性還是很不錯(cuò)的喲。
刷機(jī)往往有非常多的坑,可能網(wǎng)上別人介紹了刷機(jī)過程但是你怎么刷怎么失敗。我就是這么經(jīng)歷過來的,就來看看我的經(jīng)歷吧:
第一個(gè)坑是小黃魚的奸商太多,防不勝防。作為老手最近次次跳坑,可見小黃魚現(xiàn)在的氛圍有多惡劣。我總共買了3臺(tái)紅米2,第一臺(tái)商家把是紅米2a當(dāng)紅米2賣,第二臺(tái)屏幕觸控出了問題,于是我把這兩臺(tái)主板換了一下,修改了其中一臺(tái)開始刷機(jī),配置是1+8G版,也別太瞧不起這配置,比樹莓派3性價(jià)比起碼高了三四倍。第三臺(tái)買的2+16G的高配版想玩一玩Docker。
我用的是官方推薦的pmbootstrap來安裝,而postmarketOS僅支持Linux系統(tǒng)刷機(jī),所以你需要一臺(tái)Linux系統(tǒng)的電腦。我用的是Ubuntu系統(tǒng)來安裝pmbootstrap。
刷機(jī)之前,還有一個(gè)坑。就是手機(jī)需要安裝一個(gè)ln2nd的偽fastboot,原生的fastboot無法引導(dǎo)到Linux系統(tǒng),而這個(gè)ln2nd就是在原生fastboot模式之后引導(dǎo)進(jìn)入PostmarketOS的,所以必須安裝。安裝文件去GitHub上找。
手機(jī)進(jìn)入fastboot模式(關(guān)機(jī)后,音量減and關(guān)機(jī)鍵)
#fastboot flash:raw boot ln2nd.img
如果你買的是2+16G就不會(huì)遇到這個(gè)問題,如果你買的是1+8G的紅米,默認(rèn)系統(tǒng)是安卓4.4的,刷不進(jìn)ln2nd。所以如果你的手機(jī)是1+8G的紅米2,需要刷一次高配版的ROM(可以正常開機(jī),安卓版本升級(jí)到了5.1)。這里提醒一下,新手建議買聯(lián)通和電信版刷機(jī)(算是第四個(gè)坑把,雖然移動(dòng)版的紅米2也能刷機(jī),但是想用電話卡的驅(qū)動(dòng)問題對(duì)新手而言有點(diǎn)難解決)
#安裝必備軟件
sudo apt install python3 git fastboot python3-pip
#安裝pmbootstrap
pip3 install --user pmbootstrap
接下來是最重要的過程了,配置pmbootstrap。建議看一下官方的文檔,我這里做一個(gè)簡單介紹開啟配置過程:
pmbootstrap init
#安裝文件保存路徑,默認(rèn)即可
Work path
#postmarketOS發(fā)行版,默認(rèn)是滾動(dòng)更新版,可以選穩(wěn)定版
Choose the postmarketOS release channel.
#選擇手機(jī)品牌,全英文,可以在官方wiki查詢
Choose your target device vendor
#選擇手機(jī)型號(hào),官方wiki查詢
Available codenames
#是否安裝驅(qū)動(dòng),默認(rèn)選是
Enable this package?
#設(shè)置用戶名
Username
#選擇操作界面,如果是純命令行選fbkeyboard,其余可以gnome、sxmo等
Available user interfaces
#后續(xù)的配置選擇默認(rèn)即可
配置完畢,輸入下面的命令開始下載和打包:
pmbootstrap install
整個(gè)下載打包配置過程大概會(huì)用到1個(gè)小時(shí)左右。打包完成后,手機(jī)進(jìn)入ln2nd的偽fastboot模式開始準(zhǔn)備安裝(開機(jī)震動(dòng)后按音量減)
#查看是否正常連接
fastboot devices
#開始刷機(jī)
pmbootstrap flasher flash_rootfs
pmbootstrap flasher boot
#刷機(jī)完成
fastboot reboot
值得一提的是,別看PostmarketOS界面簡單,但是比Ubuntu Touch好玩多了。SSH、Docker都可以玩起來。我做了個(gè)簡單的跑分,不知道為什么只能跑出單核的分?jǐn)?shù)(樹莓派4B單核跑分也就290左右)
如果是圖形化界面其實(shí)并不是很流暢,但是玩Linux系統(tǒng)的人都知道SSH才最重要,看一下PostmarketOS的系統(tǒng)顯示,CPU只顯示了單核這個(gè)就很難受了。內(nèi)存太小也是個(gè)瓶頸,要是有一加6T來測(cè)試一下就好了。
暫且介紹到這里,說實(shí)話體驗(yàn)過了PostmarketOS之后馬上就明白UbuntuTouch確實(shí)不如。而且UbuntuTouch刷機(jī)后boot、recovery、分區(qū)全改了,一不小心就能刷成板磚其實(shí)非常不友好。像PostmarketOS該有的都有,不僅支持wifiUSB連接電腦還可以直接共享電腦網(wǎng)絡(luò)(隨身攜帶的服務(wù)器有木有)
當(dāng)然PostmarketOS也有缺點(diǎn),比如關(guān)機(jī)麻煩(電源鍵關(guān)不了),后續(xù)我還會(huì)刷個(gè)Modian系統(tǒng),這個(gè)也是基于PostmarketOS的驅(qū)動(dòng)完成的項(xiàng)目。
.可進(jìn)入系統(tǒng)更新,按菜單鍵選擇盤里的rom包。
2.找到完整刷機(jī)包,點(diǎn)擊開始更新,手機(jī)進(jìn)入自動(dòng)刷機(jī)模式。
3.刷機(jī)前,備份好手機(jī)里面的資料。(比如聯(lián)系人、通話記錄、安裝的軟件等、放到儲(chǔ)存卡的不用備份不會(huì)清除)。
方式2:
1.關(guān)機(jī),然后按住“音量向上鍵”+“電源鍵”開機(jī),則可看到recovery界面,選擇“簡體中文”。
2.進(jìn)入主菜單,點(diǎn)擊清除數(shù)據(jù),包括清空緩存,清空用戶數(shù)據(jù),清除所有數(shù)據(jù)。
3.三清完數(shù)據(jù)之后,回到主頁面,選擇安裝update.zip至系統(tǒng)一,等待進(jìn)度條走完,返回重啟手機(jī),選擇重啟到(最近)的那個(gè)系統(tǒng)即可。
在此狀態(tài)下按“音量下鍵”選擇 Recovery 然后再按“音量上鍵”確認(rèn)
然后屏幕會(huì)有如下提示,別慌,按一下“電源鍵”進(jìn)入菜單
按“音量下鍵”選擇“wipe data/factory reset”然后按“音量上鍵”確認(rèn)
選擇“yes”確認(rèn),等待清除完成
用“音量下鍵”選擇“wipe cache partition” 然后按”音量上鍵”確認(rèn)
用“音量下鍵”選擇“apply update from sdcard” 然后按”音量上鍵確認(rèn)“(注:如果刷機(jī)包存儲(chǔ)到了SD卡根目錄那么請(qǐng)選擇“apply update from sdcard2”
進(jìn)入之后,找到剛才復(fù)制過來的刷機(jī)包,按”音量上鍵“執(zhí)行刷機(jī)
完成后自動(dòng)跳轉(zhuǎn)到主界面選擇”reboot system now“重啟即可!
2.點(diǎn)擊【一鍵刷機(jī)】,可以選擇你要刷 ROM包,如果你還沒有下載手機(jī)的刷機(jī)ROM包,可以在奇兔刷機(jī)ROM市場(chǎng)下載。選擇好手機(jī)的刷機(jī)ROM包之后,進(jìn)入資料備份界面,刷機(jī)會(huì)清除聯(lián)系人, 短信, 通話記錄和應(yīng)用程序,建議大家備份,刷機(jī)后可以還原。
3.資料備份完之后,就開始刷機(jī)啦。
4.等操作完成后,手機(jī)進(jìn)入自動(dòng)刷機(jī)模式啦,這時(shí)候只要耐心等待手機(jī)自動(dòng)重啟就行了。
之前把紅米2刷了postmarketOS,用來學(xué)習(xí)搭建網(wǎng)站。有朋友說有沒有可以既充電又支持OTG的解決方案,這樣就可以作一個(gè)NAS或者作為一個(gè)下載機(jī)。于是我找了找還真找到一個(gè)完美解決方案。
首先參考我之前的文章,紅米2已經(jīng)刷了postmarketOS可以作為一臺(tái)ARM處理器的Linux小主機(jī)用。然后我推薦一個(gè)支持充電的OTG線,雖然店家的說明僅支持平板電腦不支持安卓手機(jī)。但是事實(shí)上我的紅米2刷機(jī)后可正常使用,而且價(jià)格相比同類產(chǎn)品確實(shí)便宜就14元,我買的是3口OTG線(另外帶一個(gè)充電口)。為了測(cè)試又花了50元買了個(gè)二手西部數(shù)據(jù)500G的2.5寸黑盤,通電時(shí)長1000小時(shí)看著還挺新的。
將充電線插入充電口,檔位調(diào)到charge。然后插上硬盤500G的2.5寸西數(shù)黑盤(3.5寸的電量應(yīng)該帶不動(dòng))和一個(gè)64GU盤。然后連接到紅米手機(jī)。
首先手機(jī)顯示充電狀態(tài),然后SSH連接紅米2。
注意由于postmarketOS不會(huì)自動(dòng)掛載硬盤所以,一開始使用df -h命令是看不到磁盤的,需要用到lsblk命令:
可以看到500G的硬盤和64G的U盤都正常識(shí)別,接下來需要掛載才能使用。
一次性的掛載可以使用mount命令,首先記下硬盤的名字,然后根據(jù)名字查看對(duì)應(yīng)的UUID:
#查看所有硬盤可以用lsblk或者fdisk -l
lsblk
sudo fdisk -l
#查看硬盤UUID
sudo blkid
創(chuàng)建一個(gè)目錄用于掛載硬盤,然后把掛載命令寫入/etc/fstab:
#創(chuàng)建掛載文件夾
sudo mkdir /media/twindows
#設(shè)置自動(dòng)掛載
sudo vim /etc/fstab
UUID="00BC-614E" /home/sd ext4 defaults 0 0
#讓掛載命令生效
sudo mount -a
注意分區(qū)格式一定要正確,如果你的硬盤如果是ntfs等Windows格式要考慮是否支持(需要安裝ntfs-3g軟件)。如果安裝了ntfs-3g掛載命令如下:
UUID="00BC-614E" /home/sd ntfs-3g rw 0 0
掛載硬盤之后就可以安裝aria2搭建下載機(jī),或者作為一個(gè)文件服務(wù)器了。不過由于手機(jī)功耗很低,帶動(dòng)硬盤是否會(huì)出現(xiàn)電壓問題我暫時(shí)還沒有測(cè)試。不過沒有硬盤容量的限制,CPU性能又還不錯(cuò)(至少能打樹莓派3B),這下是臺(tái)貨真價(jià)實(shí)的小主機(jī)了。只是遺憾我的紅米2是1G內(nèi)存的。不過本來就是為了測(cè)試小內(nèi)存環(huán)境的服務(wù)器搭建,所以也沒有想著去換了。
之前通過USB連網(wǎng)網(wǎng)上可以達(dá)到100M,但是wifi下就只有15M左右,網(wǎng)速比較低所以還是有問題需要解決,如果可以實(shí)現(xiàn)網(wǎng)線直連基本可以長期掛機(jī)了。之前OTG線可以通過USB連接網(wǎng)線,但是我不知道是否有支持的驅(qū)動(dòng)就沒有買USB轉(zhuǎn)網(wǎng)線去測(cè)試了,有測(cè)試過的朋友可以分享一下結(jié)果。