上週拿到一台類變型金剛的小筆電,主人請我在上面裝 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= 的值所代表的意義(
VBE、
svga.txt、
vesafb.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 以外沒什麼其他問題,音效也正常。等筆電主人試過再評價囉!