安裝 PopOS 20.04 至 Zephyrus G14,並且搞定 A+N 顯卡問題!

Pedro Sheng (沈P)
the Lab.
Published in
14 min readMay 29, 2020

--

What? This article is in Chinese? How can I read this?

OK OK, In the easiest way to install Linux on this device, and solve the iGPU & dGPU problem, is to update the kernel to the recent version than install the Nvidia driver.

Here are the steps:

  1. Install PopOS with Intel/AMD ISO, and make sure every time you boot linux with “nouveau.modeset=0”prompt. (Press E on booting, in the installer, add the prompt on the end of “linux” line. After installation, add the prompt on the “init.d” line.)
  2. Do a system update (sudo apt update). It will install the newest version of “ubuntu-common-drivers” and “system76-power” drivers. (According to their GitHub Page, Thay add the AMD+NVidia support after the PopOS 20.04 launch, so you have to install it manually.)
  3. Update the Linux Kernel to the recent version with tool Ubuntu Mainline Kernel Installer. (In my case, the kernel comes with the os is 5.4, so I updated it to 5.6) After reboot, you will found that the os can be recognized AMD iGPU in the About Page.
  4. Install the recent version of Nvidia proprietary driver, you can install it from PopShop. After driver installed, install the “system76-driver-nvidia” package in the terminal.
  5. Turn on the “Hybrid Graphics” mode in the power (battery) setting (In the right corner of the notification bar), then reboot.
  6. After reboot, you can fount that the Nvidia card can be recognized in the X Server app and the About Page.

I've using this computer for 1 day without encounter any problem or hardware issue. HDMI output works, but I haven’t figured out how to make the USB-C (DisplayPort) output work, it needs to take more time for research.

前言

上一篇的延續

有看到我前陣子的發的文就會知道我近期滿苦惱安裝 Linux 在這個難稿的機器上,處理了好幾個星期都沒有結果。直到我實驗性的升級 Kernel,所有的問題都瞬間解決了。

所以我們就來進入實際的程序吧。

安裝 Linux

大家都知道 PopOS 有分兩個版本,一個是 Intel/AMD 和 NVidia 版的

這台電腦是 AMD Ryzen + NVidia 的配置,所以事情會變得有點複雜。

  • 如果你是下載 NVIDIA 的 ISO,你會因為抓不到這張顯卡(GTX1660ti with MaxQ),直接給你閃個底線,Gnome 會永遠都打不開。
  • 如果你是下載 Intel/AMD 的 ISO,你會因為 Nouveau(開源 NVidia 驅動程式)抓不到顯卡,所以會跑一跑 Kernel Panic 永遠卡在那邊。

所以在現階段 N 卡的問題是無解的,我們必須要透過 Vega 8 內顯來進行安裝。但是在 BIOS 無法把獨顯關閉的情況下,我們只能利用禁用 Nouveau 載入的方式來強制使用內顯來進行安裝。

STEP 1. ESC 開啟 Boot Menu,透過隨身碟開機

STEP 2. 跳出 PopOS 的開機選單,按下 e 進入啟動設定

STEP 3. 跳出 GRUB 的啟動設定,將游標移到 linux 那行的最後面

STEP 4. 輸入內容,並且按下 F10 啟動

nouveau.modeset=0

STEP 5. 成功開啟安裝程式

做到這邊,你就可以直接進行安裝。

磁碟分割

這個算是附註給希望跟 Windows 雙重開機的人看的,如果不需要請直接往下拉。

首先你先在 Windows 進行壓縮磁碟機的動作再來安裝。(這邊就不多做解釋)

STEP 1. 到了自訂安裝的頁面,找到先前壓縮出來的空間,進行磁碟的調整

STEP 2.首先,先建一個 EFI 磁區。PopOS EFI 磁區需要至少 512MB 以上的空間,格式化為 FAT32。

STEP 3. 建立一個 root 磁區,直接套用剩下的空間,格式化為 ext4。

STEP 4. 確定沒問題後按下勾勾

STEP 5. 確認沒問題,按下套用

STEP 6. 回去之後,把剛剛切出來的小 FAT32 磁區設定為 boot

STEP 7. 把 ext4 大磁區 設定為 root

STEP 8. 確認後,點擊清除及安裝

安裝完設定

別忘了,由於我們都還沒設定顯卡,所以不關閉 Nouveau 是進不去的。
所以重新開機之後我們仍然要手動加入參數。

STEP 1. 安裝中…

STEP 2. 安裝完成,重新開機

STEP 3. 重開機剛過 Logo 狂按 E,進入啟動設定

STEP 4. 輸入內容,並且按下 Enter 啟動

nouveau.modeset=0

STEP 5. 成功進到圖形介面

顯卡修正

從剛剛的多災多難,一直到現在。顯卡修正的關鍵就在於 Linux Kernel 太舊造成的。

避免有人不知道,其實在 Linux 的世界有很大多數的主要硬體支援都是先在 Kernel 就處理好的,然後各家發行版就會使用其中的一版 Kernel 來當作自己系統的基礎來建構。

像 PopOS 因為採用 Ubuntu 的基底,而 Ubuntu 通常都選用很舊的 Kernel,而這次的 20.04 也很不意外的用了去年底才發的 5.4 版,因此對於今年才出的硬體就會有不支援的狀況發生。

所以,我們在這邊要做的就是做一次完整的系統更新,裝上前陣子才修好的 Ryzen + NVidia 顯卡驅動支援,並且安裝上新版的 Kernel,啟動完整的顯卡支援。

更新系統

首先呢,前陣子官方有在 GitHub 上面說有修好了 Ryzen 搭配 Nvidia 電腦的驅動 system76-power, ubuntu-drivers-common,所以我們先進行升級的動作。

開啟 Pop Shop 跑一次全部更新(相當於指令 sudo apt update),並且按下全部更新(現階段請先不要安裝 nvidia 驅動程式)

更新完畢,我們接著升級新版 Kernel。

升級 Kernel,搞定內顯支援

以往大家最愛的升級小工具 UKUU 變成付費的軟體了,因此我們這邊借助別人 fork 出來的版本進行升級的動作。

STEP 1. 新增軟體源,輸入指令

sudo add-apt-repository ppa:cappelikan/ppa

STEP 2. 更新 APT,輸入指令

sudo apt update

STEP 3. 安裝 Mainline,輸入指令

之後就能夠在應用程式選單找到 Ubuntu Mainline Kernel Installer,開啟應用程式。開啟會抓取新版 Kernel 資訊。

結束後就能夠看到整個清單的列出,並且於下方顯示當前 Kernel 版本。

STEP 4. 我們這邊直接點選最新的正式版,點擊 Install 進行安裝即可。

STEP 5. 安裝中…

STEP 6. 安裝完成,關閉視窗,並且重新啟動。

重開機之後,如果你是購買 120Hz 版 G14 的人就會明顯感受到滑順度終於回來啦!這也是代表電腦終於能抓到正確的顯卡資訊了。你可以看到繪圖寫著 AMD Renoir。

NVidia 驅動安裝

雖然說 1660ti 的硬體支援在 5.6 版的 Kernel 裡已經有了,但我們還是要安裝專有的 NVidia 驅動程式才能發揮出顯卡真正的效能。

STEP 1. 打開 PopShop,安裝 nvidia-driver

安裝完之後我們從官方網站得知,Intel/AMD 版系統還需要添加 NVidia 專用的系統硬體驅動

STEP 2. 打開終端機,輸入指令

sudo apt-get install system76-driver-nvidia

STEP 3. 安裝結束,在我們重新開機之前,將系統切換到 Hybrid Graphics 模式讓我們能同時使用內顯跟獨顯,並且能針對應用程式在兩者之間切換使用。

按下 Restart and Switch 確認並重開機

STEP 4. 你重新開機之後就會看到 NVidia X Server 終於有好好顯示我的顯卡了

並且在系統資訊也有好好顯示顯卡名稱了

後記

所以作到這邊顯卡的問題基本上都解決了,電腦用起來可說是非常順暢好用。不過由於我們換了非官方的 Kernel 的關係,所以用起來「可能」沒有原本內建得來得穩定。但我們為了顯卡支援還是得要做出妥協,這某種層面上算是必要之惡。

首先呢,由於我在家工作都是要外接螢幕的,所以來試試看 USB-C 進行 DisplayPort 輸出到底有沒有用?

答案是並沒有,螢幕只顯示無訊號。

在 X Server可說是有好好抓到螢幕跟型號,但不知道為什麼沒有好好做輸出的動作。這點有待我日後 debug,有什麼新消息再貼上來。

所以我退而求其次看看 HDMI 輸出到底行不行?

鬆了一口氣,看起來是很棒,4K 60Hz 完美運作。

在顯示器設定裡面也有確實可以對兩個螢幕進行設定。不過最近 PopOS 團隊把 fractional scaling 的功能拿掉了,連用指令強制開啟都無法,不過他們也表示這個功能在日後會以正式版的方式加回來,所以只能慢慢等吧。

會採用 PopOS 純粹就是這發行版在我的了解中是對於雙顯示卡支援和切換做最好的版本,再加上他們自己就是硬體廠(指 System76)有很積極的做相容性支援和筆電的使用體驗改善,所以我是滿建議用這個發行版的。

最後就是希望 Canonical 不要再讓 Ubuntu 採用那麼舊的 Kernel 好嗎?原本想說越來越多硬體廠願意搭載 Linux 出廠,結果你們來一個超舊 Kernel 這樣新電腦上市完全不能用啊!學學 Manjaro!(笑)

為了避免有人覺得我在這邊話唬爛,我就來跑個 Unigine Heaven 畫質設在 Extreme 看看幀數差異:

Vega 8 FPS:15上下
GTX 1660Ti with MaxQ FPS:60上下

Tips:普通應用程式可以直接右鍵以獨立顯卡啟動。如果你要讓終端機啟用的程式以獨顯運作,只要在要輸入的指令前面加上 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia 即可。

希望各位能從這邊文章學到什麼,並且享受剛買來的熱騰騰好電腦(笑)。

--

--

Pedro Sheng (沈P)
the Lab.

對未來充滿迷茫的遊戲系學生,試圖從生活找到未來人生道路的線索。