[調教學姐] Gentoo Linux on Aspire Aspire 3820TG.

話說年初的時候買了一台 Acer Aspire TimelineX 3820TG ,也就是我現在用的這台學姐機。

當初看到這台機器的消息時就很高興,雖然並不像 MacBook AIR 那麼輕,但價錢、重量、效能等等,都在我能夠接受的範圍內,而那時候買這台機器,主要的目的就是以下三點。

  • 在 Windows 下用獨立顯卡玩遊戲(雖然最後都沒時間玩)
  • 平時工作時在 Linux 下當開發程式桌機
  • 出門到咖啡廳或研討會時可以用 Linux 上網

當然第一點是沒有什麼大問題的,但問是在第二三項的 Linux,而說到 Linux 的話,對我而言似乎沒有什麼選擇,第一個想到的就是已經用到習慣的 Gentoo 。

但是買了好幾個月,雖然在上面灌了 Gentoo ,但感覺上用下來還是有好幾個不滿意的地方,列舉如下:

  • 我的 ATI 官方 Driver 跑不起來
  • Xorg 的 ATI Driver 外接螢幕無法工作
  • 電池續航力大約只有 2 到 2.5 個小時左右

老實說這些並不是什麼大問題,但用起來很不爽,因為如果外接螢幕無法工作,那麼簡報時就很麻煩,而電池續航力在像 COSCUP 等研討會上更是勝負的重點!

而在 COSCUP 會後在噗浪上看到有人聲稱這台 3820TG 在 Linux 下面的續航力是可以到五個小時的,所以我就下定決心要研究出來要怎麼調教我的 Gentoo 也能達到類似的續航力。

所以這一篇就是來講我的調教方式(誤),呃,我是說,我的驅動程設定,所使用的核心版本是 gentoo-source-2.6.35-r1。

基本上下面是目前我的學姐機上面可以正常工作的硬體以及驅動程式核心設定名稱,你可以在 Kernel Menu Config 裡面按下 / 後輸入設定名稱尋找他的位置以及相依性。

  • 音效卡 Intel HD Audio (CONFIG_SND_HDA_INTEL=m)
  • 乙太網路卡 Atheros L1C (CONFIG_ATL1C=m)
  • 無線網路卡 Atheros 802.11n (CONFIG_ATH9K=m)
  • 讀卡機(理論上是 USB Mass Storage 打開就行了)

至於 WebCam 因為沒有在用,所以不確定要用哪個 Driver。

以上都是一些基本的設定,也就是我之前用得很高興的部份,而接下來要解決的就是顯示卡和電池續航力的問題了。

經過一些思考後,可以歸納出其實上述的三個問題,本質上都是相同的--如何把獨立顯卡給關掉,完全使用內建的 Intel 顯示晶片。

經過許多試誤後,我終於找出正確的 Kernel Configuration 了,請注意,這裡的設定請盡量一模一樣,不然螢幕可能會完全出不來。

  • 首先是把基本的顯卡設定打開
  • CONFIG_AGP=y
  • CONFIG_AGP_INTEL=y

  • 打開 DRM 以及 ATI Driver,但不要打開 ATI 的 KMS

  • CONFIG_DRM=y
  • CONFIG_DRM_RADEON=y
  • CONFIG_DRM_RADEON_KMS=n

  • 打開 Intel i915 Driver 以及 KMS

  • CONFIG_DRM_I915=y
  • CONFIG_DRM_I915_KMS=y

基本上有了上面這些設定,你的 Gentoo 現在應該可以正確的在開機的時候抓到 Intel 的顯示晶片,並且在啟動 X 視窗的時候,也自動使用 Intel 顯示晶片。

而因為 i951 的顯示晶片驅動程式已經算挺成熟,外接螢幕也可以很順,用 xrandr --auto 就會自己設定了。

但這個時候如果使用 acpitool 觀看電池續航力,會發現和使用獨立顯卡時並沒有太大的差距,這是因為我們並沒有把獨立顯卡的電源給切斷。

這個時候需要以下這個核心模組來幫忙。

  • git clone git://github.com/brianhsu/timelinex_acpi.git

  • cd timelinex_acpi

  • make install

然後在 X Server 關閉的情況下,用 modprobe timelinex_acpi 來載入這個模組,這個時候核心會顯示 timelinex_acpi: disabled the discrete graphics card 的訊息,可以用 dmesg 觀看。

這個時候再使用 acpitool 看電池續航力,應該會發現可用時間會漸漸地往上飄,這就代表確實把獨立顯卡的電源給觀掉了。

當然,如果你想要讓電池續航力達到四小時左右的話,光是關掉顯示卡可能不夠,還是需要一些額外的設定幫忙,以下是我的設定。

  • 打開 ACPI CPU 變頻功能
  • CONFIG_CPU_FREQ=y
  • CONFIG_CPU_FREQ_GOV_PERFORMANCE=m
  • CONFIG_CPU_FREQ_GOV_POWERSAVE=m
  • CONFIG_CPU_FREQ_GOV_USERSPACE=y
  • CONFIG_CPU_FREQ_GOV_ONDEMAND=m
  • CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
  • CONFIG_X86_ACPI_CPUFREQ=m
  • CONFIG_INTEL_IDLE=m

  • 安裝 sys-power/cpufreqd,並且在電池模式時使用 powersave

  • 下面是 sys-power/powertop 建議的,但我不知道是不是真的有用

  • CONFIG_PM_RUNTIME=y
  • CONFIG_PCIEASPM=y

  • 據說 sys-power/powertop 會給很多建議,不過我自己覺得我的學姐機現在的表現已經很不錯了。

經過以上的設定,基本上我的學姐機總算是可以發揮出他應有的工能了,只是……為什麼我是在 COSCUP 之後才找出這個設定啊!害我兩天下午在 Room 3 只能看著一片黑的螢幕……

最後順道一提,其實這樣的設定還有兩個問題我還沒解決。

  • 設成內建顯卡後,螢幕亮度不能調了,囧。

  • 有的時候很明顯會一頓一頓的,看燈後是在讀硬碟,但我不知道是為什麼,有的人說是因為 AHCI 的關係,在 Windows 下也會發生,在 BIOS 調成 IDE 模式就會好,但我還沒試。

回響