惠普暗影精靈2上安裝 Gentoo 並自己編譯內核
© CC BY-SA 4.0 International License
署名:oldk1331@gmail.com
註: 本文投稿於2016年,所以 「今年」 指的是2016年。
一個月前剛換了新的筆記本,惠普暗影精靈2, i5 6300HQ + Nvidia 960M + Intel 7265 無線網卡。
作為一個長期 Gentoo 用戶,當然要自己編譯內核了。當年自己編譯內核很痛苦,經常遇到 kernel panic ,但現在有經驗了,這次只編譯一次就成功跑起來了,當然在後續幾天使用的過程中逐步完善了全部硬體的完美驅動。下面從頭道來。
關閉 Secure Boot
面對新筆記本,第一步是關閉 Secure Boot ,使用 liveDVD 進入系統。新電腦,一定要用最新的 liveDVD (擁有最新的 Linux 內核),這樣才能更好地識別硬體,方便後續編譯內核。碰巧 Gentoo 官方最近發布了年度 liveDVD 20160704 。當然由於 liveDVD 不能帶閉源驅動,所以散熱噪音大。
裝系統
chroot 進新系統編譯內核。自已編譯內核有很多好處:
- 指定 boot 參數 CONFIG_CMDLINE ,在 UEFI 系統上可以直接啟動,無需 grub 。
- 根據自己的硬體定製內核,無需 initrd 。
- 直接將某些硬體的 firmware 編入內核,有些硬體的 firmware 在初始化後無法再載入。
- 對於 Intel 的 GPU 來說,尤其是新的,可以開啟 CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT ,可能有性能和功耗上的優化。而且可以通過 i915.fastboot=1 使屏幕早早顯示內容,不會黑屏。
- 更加美化:面對高解析度的屏幕,默認情況下終端的字體小到不能直視了吧?開啟 CONFIG_FONT_SUN12x22 獲得大字體,以及開機時的企鵝 logo : LOGO_LINUX_CLUT224 。
- 自己編譯,更小的內核,更高的性能,更短的開機時間,更好的硬體支持。比如 HP 的硬碟摔落保護驅動 CONFIG_HP_ACCEL ( windows 下叫 3D DriveGuard ), Intel 的 Rapid Start Technology Driver CONFIG_INTEL_RST ,筆記本的功能鍵 WMI 等等。
編譯驅動是編譯內核的很主要的一部分,也是最煩的一部分,面對浩如煙海的各類硬體驅動,該如何找到適合自己硬體的呢?當然編譯內核需要一定的軟硬體知識以及英語水平,要能讀得懂 F2 給出的基本幫助。
編譯驅動最重要的有幾點
- 硬碟驅動,沒有它就會 kernel panic 。
- 顯卡驅動, Intel 用戶的話配置好 i915 集成顯卡驅動。
- 網卡驅動,沒有它上不了網。
- 音效卡驅動。
- 外設驅動。
如何找到它們對應的型號?隆重介紹" lspci -k "。在 liveDVD 上運行它,能列出檢測到的驅動和使用的內核模塊名稱,比如 r8169 (有線網卡)、 iwlwifi (無線網卡)、 rtsx_pci (讀卡器)、 snd_hda_intel (音效卡)、 ahci (硬碟)、 xhci_hcd ( USB3.0 )、 proc_thermal (溫度感測器)等,有了內核模塊的名字,再找對應內核配置的名稱就快多了。
新系統啟動後檢查 dmesg 來看哪些硬體有問題,再進行進一步修改。
現在我的 4.6.5 內核大小是 7.2MB , /lib/modules 24MB(其中 16MB 是 Nvidia 閉源驅動),開機時內核3秒鐘載入完全部驅動,進入用戶空間( /bin/init 開始運行)。
Firmware
新的 Intel GPU 也需要固件了,和功耗控制有關;其它的網卡也要固件, CPU 要 microcode 。這是我用到的固件文件。
i915/skl_dmc_ver1.bin
i915/skl_guc_ver6.bin
iwlwifi-7265D-21.ucode
rtl_nic/rtl8168h-2.fw
功耗控制
在全部硬體完美識別並驅動後,做好功耗控制。 Linux 的功耗控制可以完全不輸 Windows 。在最低屏幕亮度下, powertop 給出的待機功耗可低至 9W (在無線網卡開啟的情況下), 60Wh 的電池可待機約7小時,實際輕度使用中不到 15W ,可用4小時。正常待機情況下噪音不到 30dB (手機粗略測的),最低待機溫度38度(室溫30度左右),輕度使用時43度。並且完美配置睡眠(我不太喜歡休眠)。
Nvidia 閉源驅動及雙顯卡配置
對於筆記本來說,出於散熱的考慮,也只能選擇閉源驅動了。其實我想買不帶獨顯的4核標壓筆記本,但根本沒有賣的(極少)。安裝 Nvidia 的閉源驅動應該各個發行版都有自己的解決辦法, Gentoo 在命令行里直接運行
emerge nvidia-drivers
雙顯卡配置說明
- 首先有的筆記本硬體支持「真」雙顯卡,配置內核 CONFIG_VGA_SWITCHEROO 就行了。
- 但大部分筆記本不是這樣的。 Nvidia 官方也在試圖解決這個問題,使用較新的 Nvidia 閉源驅動,配置 Xorg 使用 modesetting 驅動輸出(而不是 intel 的 X11 驅動!),結合
xrandr --setprovideroutputsource modesetting NVIDIA-0
以及配置 mesa 的 OpenGL 庫為 Nvidia 的(Gentoo上使用eselect opengl set nvidia
實現,其它發行版可能是更改環境變數),就能使整個 X 桌面使用獨顯。詳見http://us.download.nvidia.com/XFree86/Linux-x86_64/367.35/README/randr14.html - bumblebee ,我不是很熟。但它很久沒有更新了,但它支持對個別應用程序開啟獨顯(而不是全局開啟),但是開源驅動下的獨顯有可能性能還不如集顯。
當然啦,最新的 Intel 集顯的 mesa 驅動實現了 OpenGL 4.4 ,所以大部分(所有?)的 3D 應用都能打開,基本上 HD530 集顯的性能很夠用,所以我幾乎不用獨顯。
其它
很多硬體相關的程序會要求內核開啟某些特性,使用 git 把內核配置 .config 管理起來很有必要,不斷更新不斷進步。
簡單總結一下:今年六月剛發布的新筆記本,網上沒有任何相關的安裝 Linux 的教程,使用新一代 CPU 和顯卡,沒有關係, Linux 內核中的驅動更新很快,這就是開源的力量!只要有經驗,將 Linux 在全新的電腦上跑起來完全不是問題!如果沒有經驗,編譯自己的內核來開啟全新的體驗!最後告訴你一個小秘密:你想變得比 Knuth 更強嗎?他不會自己編譯內核!
I did once recompile the Linux kernel --- but only when a wizard was holding my hand. http://www.ituring.com.cn/article/742
使用半年後新體驗
- 不安裝Nvidia顯卡驅動能進一步降低功耗和散熱;
極限情況下(關掉一切不必要的東西)整機待機功耗僅為3W,
可待機20小時。 -
我的各個分區都在SSD上,並使用 sudo hdparm -y /dev/sdb
來使機械硬碟停轉,既節能又靜音。(這個筆記本的風扇可以在
BIOS里設置默認關閉。) -
由於是Gentoo系統,自然少不了編譯啦。我把 /tmp 設置為 5GB
的內存檔,編譯的臨時文件夾放在這裡,減少對SSD的讀寫。
i5 6300HQ的性能足夠好,編譯FireFox僅需20分鐘。 -
關於功耗控制,切斷充電器後可以達到PC3狀態(powertop中的Idle stats),
睡眠再喚醒之後能達到PC7狀態,功耗能比PC3降低1W多(在powertop中
Tunables都開啟的情況下)。更深的節能模式應該達不到了。 -
還是關於功耗控制,Intel開發的自家專用pstate調度器比其它的好,
我可以通過
echo 25 | sudo tee /sys/devices/system/cpu/intel_pstate/min_perf_pct
echo 60 | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
將CPU的頻率強行降到60%,這樣即使長期瀏覽網頁,既不卡頓,
風扇也不會轉動。Intel自家的thermald應該更智能,但我不會用。
此外還有一點不完美的地方:觸控觸摸板時會有輕微的電流聲,
但不影響使用。
本文是LinuxStory柴米油鹽計劃的投稿文章,由 LinuxStory 整理髮布。原作者署名為:oldk1331@gmail.com 。轉載請註明出處,否則必究相關責任。
本文鏈接: https://linuxstory.org/hp-wasd2-install-gentoo
這需要了解內核模塊,還有筆記本溫度還會是燙的