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 以外沒什麼其他問題,音效也正常。等筆電主人試過再評價囉!

2018年3月11日 星期日

強者我朋友的故事

最近看到一些討論,讓我想到一個強者我朋友的故事。

這個朋友從蠻久以前就是個車奴。其實說到車子,對我來說它就是個交通工具,當然我現在手上這台 TIIDA 也是我生活賺錢的重要夥伴。不過我除了一般保養,有問題時找認識的車廠維修,有時甚至自己想辦法搞定以外,我並沒有特別挑惕一定要哪個廠牌的車子,或是車子要能夠跑多快,外型有多炫,內部操作有多方便。我這台車已經為我服務了快廿七萬公里了。

而我這朋友則不一樣。他從可能二十幾年前吧,我們剛考上駕照那時,他就堅持一定要用某個廠牌的跑車。他也真的是有錢啦,而且不只是每週洗車,不管到哪裡他一定要開這台車去。隨著這台車一代又一代的推陳出新,他也真不吝嗇每出一代一定更換。

然後還有一件很妙的事。他不管到哪裡都要開車,即使是到 T 點(那裡其實有許多人三不五時都會要去那邊辦點事,不過到底是哪裡並不是重點,就讓我隱匿其名吧),他也堅持一定要開他那寶貝車。他常常跟我炫耀他開那台車只要三分鐘就可以到 T 點,然後問我幹嘛不跟他一樣弄一台跑車,多省時啊。

可是對我來說,去 T 點開車不一定好,主要是不好停車啦,我也不像他不是那麼忌誨停在非標準的停車格裡,(然後很神奇的在那邊的交警對他那款車好像也一向網開一面,我也不知道為何)所以我多半選擇坐公車去。

去那邊坐公車的話,要轉一次車,下車後再走個五分鐘吧,全程大約 30 分鐘。其實對我來說只要能到 T 點就好啦,但對強者我朋友而言怎麼到達那邊好像是件很重要的事。我有時也會跟他說坐公車也蠻有趣的啊,他偶而聽說公車換了內裝好像比較舒服,或是換了新車之類的,他也會跟我嘗試一下,但每次都是一樣的結果。他受不了三十分鐘的車程,受不了轉車加走路,有幾次幾乎要跟我翻臉。我這個人比較重視友誼(這不代表我會投票給侯友宜喔),所以後來我也就不特別邀他了,他喜歡開車就讓他開吧。我還是跟著我的老夥伴,偶而坐捷運、火車或公車去辦我的事。

然後最近出事了。原本他的車有一個很酷炫的功能,就是買車的時候必須跟原廠登錄指紋,並由原廠在車上植入一個秘鑰。這部車只能強者我朋友開,其他人開車的話,原廠就會用一個特殊暗號通知警察,好像叫海盜還是什麼的。我朋友原本也頗為自豪,但那一天這部車不知道哪裡不對勁,把我朋友認定成海盜啦!他的車不但不能開,還勞動到警察來看怎麼回事。

我朋友當然很生氣啊,他花了那麼多錢買的車,怎麼能說他是海盜呢?他打電話給原廠。原廠查看了一下,給了他一個回應:「我們這邊目前愛莫能助。有兩種可能性,一種是你的指紋跟我們這邊資料庫的對應不正確,可能是車內電腦的問題;另一種是我們這邊中控室認定你的車有問題,所以不讓任何人開。這些都不是現在可以解決的,要花上一段時間。」

我朋友很生氣地說:「我現在要去 T 點啊,我有很重要的工作,不去那邊那資料不行!現在我沒車開也不能去哪裡,你要我怎麼辦?」

原廠仍然給了他一個制式回應:"Sorry, There's nothing we can do."

他打電話來向我發洩了一頓,但我能怎麼辦呢?我說:「不然你那麼急的話就先坐公車去啊!」

不說還好,一說他好像更火大。「公車那麼 low 的東西,我才不坐!」

「好好好,不坐就不坐,不過我也不知道怎麼辦。或許你再買一台新的?」

我朋友就掛電話了。

後來我沒再追這件事。不過我內心總是祈禱著,希望我朋友不要一時衝動跑去偷別人的同款跑車,只為了去 T 點......