柴米油鹽計劃

惠普暗影精靈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

使用半年後新體驗

  1. 不安裝Nvidia顯卡驅動能進一步降低功耗和散熱;
    極限情況下(關掉一切不必要的東西)整機待機功耗僅為3W,
    可待機20小時。

  2. 我的各個分區都在SSD上,並使用 sudo hdparm -y /dev/sdb
    來使機械硬碟停轉,既節能又靜音。(這個筆記本的風扇可以在
    BIOS里設置默認關閉。)

  3. 由於是Gentoo系統,自然少不了編譯啦。我把 /tmp 設置為 5GB
    的內存檔,編譯的臨時文件夾放在這裡,減少對SSD的讀寫。
    i5 6300HQ的性能足夠好,編譯FireFox僅需20分鐘。

  4. 關於功耗控制,切斷充電器後可以達到PC3狀態(powertop中的Idle stats),
    睡眠再喚醒之後能達到PC7狀態,功耗能比PC3降低1W多(在powertop中
    Tunables都開啟的情況下)。更深的節能模式應該達不到了。

  5. 還是關於功耗控制,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

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
這裡是柴米油鹽計劃投稿的發布賬號。

    You may also like

    1 Comment

    1. 這需要了解內核模塊,還有筆記本溫度還會是燙的

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    柴米油鹽計劃

    C 語言總結

    本文來自 wybuhui 的投稿截圖,原稿是 PDF 格式,如果不想看圖片,可以到文末地址下載原文 PDF 文件。 下面讓我們一起欣賞這篇佳作吧。 原文鏈接:PDF 文件地址 本文鏈接:https:/ […]
    柴米油鹽計劃

    文件兄,我find到你了

    文件找不到了,**window**上,大家習慣了右上角直接搜索,分分鐘就找回來了,但這樣操作真的安全嗎? 反正,這樣的「便宜」事就別想對**Linux**做了。 其實,**Linux**上的文件查找也並不難啦,而且安全性十足噠(特別花樣多,比格高),就小小的find的就能做到。