2018年11月11日 星期日

在 Acer One 10 (S1003) 上安裝 ezgo

上週拿到一台類變型金剛的小筆電,主人請我在上面裝 ezgo,因為他「受不了 win10 了」,一整個慢到爆。

(啊,不小心露點了~)

宏碁的 Acer Switch One 10 (S1003),外觀看不到 S1003 的型號,是進入原本 Win10 環境中才看到的。我花了一週左右研究,走了很多冤枉路之後,終於把它搞定了。



這裡紀錄一下發現與做法。

首先引用底下這篇文章裡的一句話:

Recommendations

Don't buy this tablet! It's not a good purchase. This post is for the users that made the same mistake as me.

如果你還在思考的話,不要買這一台!!
研究了一週之後,發現這類特規筆電,即使原生的 Win10 看起來也不是用最佳的效能在跑。

而且要試其他作業系統的話真的會變超難搞...

1. 開機

這台的開機用的是 32 位元 UEFI + Secure Boot。剛拿到這台筆電時,先用自己做的 ezgo 隨身碟試開機,結果發現系統連認都認不到。爬了文後才發現這台用的是 32 bit UEFI。Ouch! 原先的認知是 32 bit 沒有 UEFI,後來才知道便宜的平板多半使用這種模式

所幸 $4 大大先前做過類似的事,留下了這篇文。所以先在我自己的系統上安裝 grub-efi-ia32-bin 套件,然後對著做好的 ezgo 隨身碟做

$ sudo grub-install --removable --target=i386-efi --root-directory=<path_to_USB> /dev/<sdb>

就可以開到 ezgo live 模式了。

值得一提的是,我的 live 是跑 64 bit,原來的 win10 是 32 bit。雖然 UEFI 是 32 bit 但實際上跑 64 bit 的 Lubuntu/Kubuntu 都沒有什麼問題。換句話說原來 win10 用 32bit 其實是便宜行事... CPU 本身是支援 64 位元作業系統的。

然後,Acer 筆電最討厭的就是 Secure Boot 往往找不到如何關掉。Secure Boot 對 Ubuntu 影響很大,如果沒有關掉,連安裝 driver 時跑 dkms 都會卡住。

這次倒是誤打誤撞,在我不小心打開 Erase all Secure Boot Settings 後,它居然被我關掉了。


印象中之前處理的 Acer 筆電並沒有這個選項。無論如何,光是這個 BIOS 跟 Secure Boot 就已經讓我把 Acer 列在黑名單中了。

2. 硬碟

這台筆電裡沒有硬碟
什麼?沒有硬碟?
是的,沒有硬碟。因為它也是平板啊!實際上整個主機都藏在螢幕下,裡面只有兩張 SD 卡,沒有硬碟。這可能也是它跑 Win10 的效能更加杯具的原因之一。

不過,這裡衍生出一個問題。原先我試著把第一個 SD 卡的 Windows 保留下來,把系統安裝在第二張 SD 卡。結果順利安裝完成之後,卻發現開不了機。grub 的錯誤訊息顯示它找不到我的根分割區。

後來推斷,應該是第二張 SD 卡是外插。grub 啟動時,driver 還沒載入,對它而言第二張 SD 卡是不存在的。所以要把兩個系統都裝在第一個 SD 卡 (mmcblk0) 中才行。

(不過後來發生了一些意外,所以我很高興地別無選擇把 Win10 清掉惹。)

3. 無線網路

這是個有點悲情的部份。它的 wifi 是 Broadcom BCM43430 (14e4:43e2),但走的不是 PCI,而是 SDIO。

在第 N 次安裝時,我在 live 系統上照著這一篇說明把內建的無線網路啟動成功了(當然還有安裝像是 bcmwl-kernel-source 這類必要套件)。不過這第 N 次安裝也就是上述裝在第二張 SD 卡的那一次。

結果發現 SD 卡問題後,我要回到 win10 切割磁區,卻發現進不去了。推測可能是第 N-M 次安裝時不小心把開機磁區寫到 /dev/mmcblk0 去了。所以連 windows 也開不了了。

那好吧,我很高興地別無選擇把 Win10 清掉,重新分割再安裝 ezgo,mmcblk0 上切一個 efi 磁區跟根分割區,把第二張的空間都給了 home。

結果發現,此時我再也無法喚醒 bcm43430 了。開機時完全不會去找 sdio,firmware 也無法載入,安裝模組也沒有作用。試了一個早上之後決定放棄,直接接 USB wifi adaptor。

(李組長眉頭一皺,發覺案情並不單純。難道在原來 Windows 的分割區中藏了什麼嗎?為何清掉原來的分割區後會連 SDIO 都找不到呢?)

4. 顯示

這部份是花我最多時間的。一個禮拜大概有一半以上都在這個問題上打轉。因為這台平板筆電的解析度:1280x800,並不在 VBE (Vesa Bios Extension) 規範內。

在前面發現 32 bit UEFI 問題,並看過 $4 大大的文章後,想說既然 grub 檔要從 debian 拿,都要下載 debian-9.5-i386 的 iso 檔,那就乾脆裝 debian 吧!反正一樣可以裝 KDE 或 LXDE 等桌面系統。

用 unetbootin 把 debian-i386 裝進隨身碟,果然可以順利開機!可是......


哇咧,奇妙地躺了 90 度。我猜是因為平板預設模式的關係吧!進去隨身碟中的 boot/grub/grub.cfg 看看。


gfxmode=800x600,應該是它在作怪?不過解析度要怎麼設定呢?

grub 的手冊中有說明。於是我把它調整成 auto。


成功了!試了兩天以來繼 32 bit UEFI 後的第二個進展!按下去準備安裝!


解析度還是不對!再繼續啃 Manual,找到 gfxpayload 這個參數。所以在開機裡加上


答案是一點用處也沒有。

這裡應該卡了我三天吧!嘗試著找 vga= 的值所代表的意義(VBEsvga.txtvesafb.txt),不用 vga= 改用 video=1280x800x32 等,各種組合都嘗試了,但始終沒有成功。

這中間發現了一些好玩的功能,例如在 grub command line 中的 videoinfo 跟 videotest。要先 insmod videoinfo,所有 grub 可用的模組都放在隨身碟系統中的 boot/grub/i386-efi/ 中。

試了幾天準備放棄時,再回頭看 $4 大大的文章,最下面那一段發現原來用系統上的工具就可以加上 i386-efi ,決定再試一次。這次如第一段所述,直接對著 ezgo 做 grub-install,竟然就順利開到 live 模式了。

啊諾~


(此時狀態顯示為:想殺人)

嘗試用 xrandr 來解決。 xrandr -o right 向右轉 90 度。


成功了!終於可以好好安裝。

不過安裝完後,它預設抓的模式仍然是 800x1280,嘗試著改成 1280x800 結果是亂七八糟。所以只能讓它用 800x1280 再轉 90 度。但總也不能每次登入都手動調整吧!於是繼續爬文。透過 cvt 把 800x1280 的 Modeline 紀錄下來,再寫到 /usr/share/X11/xorg.conf.d/10-monitor.conf 中:

Section "Monitor"
        Identifier "DIP-1"
        Modeline "800x1280_60.00"   85.25  800 856 936 1072  1280 1283 1293 1327
 -hsync +vsync
        Option "Rotate" "right"
EndSection

Section "Screen"
        Identifier "Default"
        Monitor "DIP-1"
        SubSection "Display"
                Modes "800x1280_60.00"
        EndSubSection
EndSection

開機進入就自動轉過來了!

當然這樣做其實還有些問題,例如切到 console 時看到的還是倒過來的模式。不過一般使用至少正常了!

5. 結論

印象中之前有幾台 Transformer 要裝 ezgo 都裝不起來,我猜 32-bit UEFI 作梗的機率最高。不過這類筆電與平板二合一的,都是特規中的特規,然後看起來筆電模式其實都並沒有很好地運用硬體效能。目前這一台 Acer One 10 跑起 ezgo 來,我測是除了 wifi 要用 USB dongle 以外沒什麼其他問題,音效也正常。等筆電主人試過再評價囉!

沒有留言:

張貼留言