跳至主內容
  1. 文章/

Gentoo Linux 安裝指南(桌面配置)

··約 12 分鐘· loading · ·
Zakk
作者
Zakk
在澳洲念藝術,和 Paper 一起(她後來也到澳洲念大學),家裡一窩天竺鼠,同時寫 Linux 與日常隨筆。
本頁導覽

文章說明
#

本文是 Gentoo Linux 安裝指南系列的第二部分:桌面配置

系列導覽:

  1. 基礎安裝:從零開始安裝 Gentoo 基礎系統
  2. 桌面配置(本文):顯示卡驅動、桌面環境和輸入法

上一篇:基礎安裝

12. 重新啟動後的配置
#

你已完成 Gentoo 基礎安裝,並進入新系統的 TTY。

以下配置按需進行。請依伺服器、桌面辦公或遊戲等用途選擇配置和安裝項目。

重要:必須以正確的使用者身分執行命令

本文的系統管理命令必須以 root 身分執行,包括 Portage、服務設定和所有 /etc 操作。請從一般使用者切換至 root shell:

su -

--user 的命令(包括 flatpak --usersystemctl --user)必須以希望使用桌面的非特權使用者身分執行。

重要:檢查 Profile 並更新系統

開始配置前,確認 Profile 設定正確,並更新系統:

eselect profile list          # 列出所有可用 Profile
eselect profile set <編號>    # 設定選定的 Profile (例如 desktop/plasma/systemd)
emerge -avuDN @world          # 更新系統

配置圖形介面和多媒體功能。

12.0 網路檢查 [必需]
#

登入後,確認網路連線正常。

  • **有線網路:**通常會自動連線。
  • **無線網路:**使用 nmtui(NetworkManager)或 iwctl(iwd)連線 Wi-Fi。

12.1 全域配置(make.conf)[必需]
#

參考:make.conf

/etc/portage/make.conf 是 Gentoo 的全域配置檔案。此時僅配置顯示卡、輸入裝置和本地化選項;desktop profile 預設提供桌面環境所需的 waylandXpipewirepulseaudioalsa,不需要寫入 make.conf

vim /etc/portage/make.conf

新增或修改以下內容:

# 顯示卡驅動 (根據硬體選擇)
VIDEO_CARDS="nvidia"        # NVIDIA
# VIDEO_CARDS="amdgpu radeonsi" # AMD
# VIDEO_CARDS="intel" # Intel
# 輸入裝置
INPUT_DEVICES="libinput"
# 本地化設定
L10N="en zh zh-CN zh-TW"
LINGUAS="en zh_CN zh_TW"

12.2 套用配置並更新系統 [必需]
#

套用新的 USE 標記:

emerge --ask --newuse --deep @world

12.3 顯示卡驅動 [必需]
#

  • NVIDIA 專有驅動emerge --ask x11-drivers/nvidia-drivers
  • AMD:設定 VIDEO_CARDS="amdgpu radeonsi"
  • Intel:設定 VIDEO_CARDS="intel"。現代 Intel 顯示卡只需 intel,Mesa 會據此建置對應的驅動程式;僅非常舊的世代需要 i915

配置 VAAPI 影片硬體加速

  1. 全域啟用 VAAPI:/etc/portage/make.confUSE 變數中新增 vaapi

    # 重新編譯受影響的套件
    emerge --ask --changed-use --deep @world
  2. 安裝驅動和工具:

    emerge --ask media-video/libva-utils # 安裝 vainfo 用於驗證

    NVIDIA 使用者安裝驅動前還必須接受其 testing keyword:

    mkdir -p /etc/portage/package.accept_keywords
    echo 'media-libs/nvidia-vaapi-driver ~amd64' > /etc/portage/package.accept_keywords/nvidia-vaapi-driver
    emerge --ask media-libs/nvidia-vaapi-driver

注意

nvidia-vaapi-driver 在 Wayland 下可能不穩定,例如出現 CUDA/OpenGL 互通問題。 詳見:NVIDIA ForumsRedditGitHub Issue

NVIDIA 使用者還須在核心參數中啟用 DRM KMS: 編輯 /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT 中加入 nvidia_drm.modeset=1

grub-mkconfig -o /boot/grub/grub.cfg

Intel/AMD 使用者: 安裝顯示卡驅動後通常會直接獲得支援。

  1. 驗證: 執行 vainfo。如果沒有錯誤且列出支援的 Profile,表示配置已生效。

Firefox 硬體加速

  • 系統中的 ffmpeg 主要提供 H.264、AAC、HEVC、MP3 等格式的軟體解碼支援。
  • Firefox,尤其是 firefox-bin,內含 FFmpeg 程式庫,不會自動使用系統 FFmpeg 提供的 NVDEC/NVENC 進行硬體解碼。
  • 存取 about:support 檢查 Firefox 的實際硬體加速狀態。
NVIDIA Chromium 硬體加速配置(推薦,無需 VAAPI)

以下配置適用於 Chromium、Chrome、Edge 和 Electron 應用程式,例如 VSCode。

方法一:使用 Flags 配置檔案(推薦)

此方法無需修改 .desktop 檔案,瀏覽器仍可正確識別為預設瀏覽器。

1. 環境變數

建立 ~/.config/environment.d/chromium-nvidia.conf

# NVIDIA 環境變數
__GLX_VENDOR_LIBRARY_NAME=nvidia
__VK_LAYER_NV_optimus=NVIDIA_only
GBM_BACKEND=nvidia-drm

2. Chromium/Chrome Flags 配置

建立相應的 flags 檔案:

  • Chrome Stable:~/.config/chrome-flags.conf
  • Chrome Unstable:~/.config/chrome-dev-flags.conf
  • Chromium:~/.config/chromium-flags.conf
  • Edge Beta:~/.config/microsoft-edge-beta-flags.conf
  • Edge Dev:~/.config/microsoft-edge-dev-flags.conf

內容:

# Vulkan 影片加速配置
# NVIDIA 硬體加速最佳化
--enable-features=Vulkan,DefaultANGLEVulkan,VulkanFromANGLE
--enable-unsafe-webgpu
--ozone-platform=x11

**注意:**如果遇到以下錯誤:

'--ozone-platform=wayland' is not compatible with Vulkan.
Consider switching to '--ozone-platform=x11' or disabling Vulkan

請使用 --ozone-platform=x11。Wayland 目前不相容 Vulkan 硬體加速。

3. 套用配置

重新登入後生效。

**驗證:**開啟 chrome://gpu/edge://gpu/,確認 Vulkan 是否顯示為 Enabled

Chromium GPU Vulkan

12.4 音訊和藍牙 [可選]
#

參考:PipeWire · Bluetooth

# 安裝 PipeWire 音訊系統與 WirePlumber 工作階段管理員
emerge --ask media-video/pipewire media-video/wireplumber
# 安裝藍牙協定堆疊、工具和管理員 (Blueman 為 GUI 管理員)
emerge --ask net-wireless/bluez net-wireless/bluez-tools net-wireless/blueman

啟動服務(OpenRC)

# 以桌面一般使用者身分啟用 PipeWire 和 WirePlumber
rc-update add -U pipewire default
rc-update add -U pipewire-pulse default
rc-update --user add wireplumber default
# 啟用並啟動 Bluetooth 系統服務
rc-update add bluetooth default
/etc/init.d/bluetooth start

啟動服務(systemd)

# 設定藍牙服務(系統層級):
sudo systemctl enable --now bluetooth
# 啟用 WirePlumber 的 systemd USE flag
echo "media-video/wireplumber systemd" >> /etc/portage/package.use/pipewire
# 依新的 USE flag 重建 PipeWire 和 WirePlumber
emerge --ask --changed-use media-video/pipewire media-video/wireplumber
# 啟用 PipeWire 的 PulseAudio 相容層 socket
systemctl --user enable --now pipewire-pulse.socket
# 啟用 WirePlumber 工作階段管理員
systemctl --user enable --now wireplumber.service

12.5 桌面環境與顯示管理器 [可選]
#

KDE Plasma(Wayland)
#

參考:KDE

# 安裝 Plasma 桌面
emerge --ask kde-plasma/plasma-meta
# (可選) 安裝全套 KDE 應用
emerge --ask kde-apps/kde-apps-meta
# 安裝 SDDM 顯示管理器
emerge --ask x11-misc/sddm
OpenRC 配置
# 安裝通用顯示管理器 init 指令碼
emerge --ask gui-libs/display-manager-init
# 配置 SDDM
sed -i 's/^DISPLAYMANAGER=.*/DISPLAYMANAGER="sddm"/' /etc/conf.d/display-manager
sed -i 's/^CHECKVT=.*/CHECKVT=7/' /etc/conf.d/display-manager
# 啟用 SDDM
rc-update add display-manager default
rc-service display-manager start
systemd 配置
# 啟用 SDDM
systemctl enable sddm
systemctl start sddm

GNOME
#

參考:GNOME

emerge --ask gnome-base/gnome # 安裝 GNOME 核心元件
emerge --ask gnome-base/gdm # 安裝 GDM 顯示管理器
# OpenRC:安裝通用顯示管理器 init 指令碼
emerge --ask gui-libs/display-manager-init
# OpenRC:設定 GDM
sed -i 's/^DISPLAYMANAGER=.*/DISPLAYMANAGER="gdm"/' /etc/conf.d/display-manager
# OpenRC:啟用並啟動 GDM
rc-update add display-manager default
rc-service display-manager start
systemctl enable gdm # 啟用 GDM 顯示管理器 (systemd)

Hyprland(Wayland 動態平鋪視窗管理員)
#

參考:Hyprland

Hyprland 位於 hyproverlay overlay,不在主 Portage 樹中。啟用該 overlay,接受相應 keyword 後安裝:

emerge --ask app-eselect/eselect-repository
eselect repository enable hyproverlay
emaint sync -r hyproverlay
# Hyprland 及其依賴在 ~amd64 keyword,接受該 overlay 的 keyword:
mkdir -p /etc/portage/package.accept_keywords
echo '*/*::hyproverlay' > /etc/portage/package.accept_keywords/hyproverlay
emerge --ask gui-wm/hyprland

Hyprland 依賴較新的 Wayland 和顯示卡驅動版本。詳細配置見 Gentoo Wiki

其他桌面環境
#

輕量級桌面環境可考慮 Xfce 或 LXQt:

  • Xfce:emerge --ask xfce-base/xfce4-metaWiki
  • LXQt:emerge --ask lxqt-base/lxqt-metaWiki

更多桌面環境

其他桌面環境見 Desktop environment

12.6 本地化和字型 [可選]
#

安裝中文字型以正確顯示中文。

# 安裝 Noto CJK (思源) 字型
emerge --ask media-fonts/noto-cjk
# 安裝 Emoji 字型
emerge --ask media-fonts/noto-emoji
# (可選) 文泉驛微米黑
emerge --ask media-fonts/wqy-microhei

如需支援更多文字系統和程式設計字型,安裝下列字型套件:

# Noto 字型,涵蓋阿拉伯文、希伯來文、西里爾文、印度文字和泰文等多種語言
emerge --ask media-fonts/noto
# 程式設計字型
emerge --ask media-fonts/jetbrains-mono
# DejaVu,廣泛用於希伯來文、阿拉伯文和西里爾文
emerge --ask media-fonts/dejavu

更新字型快取:

fc-cache -fv

12.7 輸入法配置(Fcitx5 和 Rime)[可選]
#

參考:Fcitx5

Rime 是輸入法引擎,支援朙月拼音(簡體/繁體)、注音、地球拼音等輸入方案。

在 Wayland 下使用時,設定下列環境變數。

方案 A:Fcitx5 + Rime(推薦用於 KDE 和通用環境)

適用於 KDE Plasma、Hyprland 等環境。

  1. 安裝

    emerge --ask app-i18n/fcitx app-i18n/fcitx-rime app-i18n/fcitx-configtool app-i18n/fcitx-gtk app-i18n/fcitx-qt
  2. 設定環境變數(Wayland)

編輯 /etc/environment

vim /etc/environment

新增下列內容:

# 強制 XWayland 程式使用 Fcitx5
XMODIFIERS=@im=fcitx
# (可選) 針對非 KDE 環境或特定程式
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx

KDE 使用者

在 KDE Plasma 5.27+ 中,建議在系統設定的鍵盤→虛擬鍵盤中直接選擇 Fcitx 5。除了 XMODIFIERS 外,無需手動設定上述環境變數。

  1. 啟動

    • KDE 和 GNOME 通常會自動啟動。
    • Hyprland:在 ~/.config/hypr/hyprland.lua 中新增 hl.on("hyprland.start", function() hl.exec_cmd("fcitx5 -d") end)
    • Sway:在設定檔中新增 exec fcitx5 -d

方案 B:IBus + Rime(推薦用於 GNOME)

參考:IBus

GNOME 與 IBus 的整合最佳。使用 GNOME 時,建議優先使用 IBus。

  1. 安裝

    emerge --ask app-i18n/ibus-rime
  2. 啟用

    依序開啟 GNOME 設定→鍵盤→新增輸入來源,選擇 "Chinese (Rime)"。若選單未直接顯示該項,選擇「其他」,再搜尋 Rime。

Rime 配置提示

  • **切換方案:**按 F4 鍵。
  • **支援方案:**朙月拼音(簡體/繁體)、注音、地球拼音等。
  • 使用者配置目錄:~/.local/share/fcitx5/rime(Fcitx5)或 ~/.config/ibus/rime(IBus)。

12.8 安全啟動(Secure Boot)[可選]
#

參考:Secure Boot

需要 Secure Boot 時,Gentoo 建議使用 sbctl 簡化配置。

  1. 安裝 sbctl 和 efitools:
    emerge --ask app-crypt/sbctl app-crypt/efitools
  2. 進入 Setup Mode 前備份現有 Secure Boot 金鑰:Setup Mode 會清除現有的 PKKEKdbdbx 金鑰。執行:
    mkdir -p /root/secure-boot-key-backup
    efi-readvar -v PK -o /root/secure-boot-key-backup/PK.esl
    efi-readvar -v KEK -o /root/secure-boot-key-backup/KEK.esl
    efi-readvar -v db -o /root/secure-boot-key-backup/db.esl
    efi-readvar -v dbx -o /root/secure-boot-key-backup/dbx.esl
    /root/secure-boot-key-backup 複製到離線儲存裝置,並確認其中包含四個 .esl 檔案。備份未驗證前不要進入 Setup Mode。移除製造商或 Microsoft 金鑰可能導致部分硬體沒有視訊輸出。
  3. **進入 BIOS 設定:**重新啟動進入 BIOS。將 Secure Boot 模式設為 "Setup Mode"(清除原有金鑰),並啟用 Secure Boot。
  4. 確認 Setup Mode 已啟用:
    sbctl status
    輸出應包含 Setup Mode: Enabled。如果顯示 Disabled,返回第 3 步。
  5. 建立金鑰:
    sbctl create-keys
  6. 設定 Secure Boot 和核心模組簽名: 編輯 /etc/portage/make.conf
    vim /etc/portage/make.conf
    新增下列內容:
    USE="${USE} secureboot modules-sign"
    MODULES_SIGN_KEY="/var/lib/sbctl/keys/db/db.key"
    MODULES_SIGN_CERT="/var/lib/sbctl/keys/db/db.pem"
    SECUREBOOT_SIGN_KEY="/var/lib/sbctl/keys/db/db.key"
    SECUREBOOT_SIGN_CERT="/var/lib/sbctl/keys/db/db.pem"
    確認核心啟用了 CONFIG_MODULE_SIG=y,再執行:
    emerge --ask --newuse --deep @world
  7. 註冊金鑰:
    sbctl enroll-keys -m # -m 包含 Microsoft 金鑰(推薦,否則可能無法引導 Windows 或載入某些韌體)
  8. 簽署核心和引導程式: 使用 sbctl sign-all 簽署所有已註冊的檔案:
    sbctl sign-all
  9. 驗證所有檔案的簽名狀態:
    sbctl verify
  10. 重新啟動後確認 Secure Boot 已啟用:
    sbctl status
    輸出應包含 Secure Boot: EnabledSetup Mode: Disabled

12.9 Portage Git 同步和 Overlay [可選]
#

為何需要此步驟?

預設的 rsync 同步較慢。Git 同步更快,也便於管理。

1. 安裝 Git

emerge --ask dev-vcs/git

2. 配置 Git 同步

mkdir -p /etc/portage/repos.conf
cp /usr/share/portage/config/repos.conf /etc/portage/repos.conf/gentoo.conf

在已複製的範本中就地替換同步類型和 URI:

sed -i -e 's/^sync-type = .*/sync-type = git/' -e 's|^sync-uri = .*|sync-uri = https://github.com/gentoo-mirror/gentoo.git|' /etc/portage/repos.conf/gentoo.conf

可用的 Git 鏡像:

  • 北京外國語大學https://mirrors.bfsu.edu.cn/git/gentoo-portage.git
  • 清華大學https://mirrors.tuna.tsinghua.edu.cn/git/gentoo-portage.git
  • GitHub(國外)https://github.com/gentoo-mirror/gentoo.git

3. 新增 Gentoo-zh Overlay

/etc/portage/repos.conf/ 中建立 gentoo-zh.conf,內容如下:

[gentoo-zh]
location = /var/db/repos/gentoo-zh
sync-type = git
sync-uri = https://github.com/microcai/gentoo-zh.git
auto-sync = yes

可用的 gentoo-zh Git 鏡像(可選):

  • 原始來源(GitHub):https://github.com/microcai/gentoo-zh.git
  • 重慶大學:https://mirrors.cqu.edu.cn/git/gentoo-zh.git
  • 南京大學:https://mirror.nju.edu.cn/git/gentoo-zh.git

gentoo-zh distfiles 鏡像(可選):

要加快 gentoo-zh overlay 中套件的下載,可使用下列 distfiles 鏡像:

  • 原始來源:https://distfiles.gentoocn.org/
  • 重慶大學:https://mirror.cqu.edu.cn/gentoo-zh
  • 南京大學:https://mirror.nju.edu.cn/gentoo-zh

使用說明:https://t.me/gentoocn/56

重要(更新於 2025-10-07) 根據 Gentoo 官方公告,Gentoo 已停止為第三方倉庫提供快取鏡像支援。自 2025-10-30 起,所有第三方倉庫(包括 gentoo-zh)的鏡像配置將從官方倉庫清單中移除。

影響如下:

  • eselect repositorylayman 等工具仍可正常使用。
  • 官方不再提供快取鏡像,改為直接從上游來源(GitHub)同步。
  • 官方倉庫(::gentoo::guru::kde::science)不受影響,仍可使用鏡像。

若已新增 gentoo-zh overlay,請更新同步 URI:

# 檢視已安裝的倉庫
eselect repository list -i
# 移除舊配置
eselect repository remove gentoo-zh
# 重新啟用(將自動使用正確的上游源)
eselect repository enable gentoo-zh

官方公告:Cache-enabled Mirrors Removal

4. 同步

emerge --sync

5. 安裝範例

以安裝 flclash-bin 為例:

emerge -pv flclash-bin

解析結果會隨 Overlay 的同步時間變化。確認 emerge -pv flclash-bin 列出的套件、版本、相依性和下載大小符合預期。

確認無誤後,執行安裝:

emerge --ask flclash-bin

12.10 Flatpak 支援和軟體中心 [可選]
#

參考:Flatpak

需要使用 Flatpak,或透過軟體中心管理 Flatpak 應用程式時:

  1. 安裝 Flatpak

    emerge --ask sys-apps/flatpak
  2. 啟用軟體中心支援

    要讓 GNOME Software 或 KDE Discover 支援 Flatpak,需要啟用相應的 USE 標記。

    GNOME 使用者: GNOME Software 目前僅提供 ~amd64 測試關鍵字。僅在可接受此套件的測試版時加入該關鍵字。將以下內容新增至 /etc/portage/package.accept_keywords/gnome-software(如果該檔案不存在則建立):

    gnome-extra/gnome-software ~amd64

    /etc/portage/package.use/gnome(或建立新檔案)中新增:

    gnome-extra/gnome-software flatpak

    KDE 使用者:/etc/portage/package.use/kde(或建立新檔案)中新增:

    kde-plasma/discover flatpak
  3. 更新軟體中心

    # GNOME
    emerge --ask --newuse gnome-extra/gnome-software
    # KDE
    emerge --ask --newuse kde-plasma/discover

使用說明

Flatpak 可用於安裝 QQ、WeChat 等專有軟體。其沙箱機制將應用程式與主系統隔離。

下列 flatpak --user 命令必須由希望使用桌面的非特權使用者執行,不要以 root 身分執行:

# 新增 Flathub remote
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# 搜尋應用
flatpak search qq
flatpak search wechat
# 安裝 QQ 和 WeChat
flatpak --user install flathub com.qq.QQ
flatpak --user install flathub com.tencent.WeChat

12.11 系統維護(SSD TRIM 和電源管理)[可選]
#

1. SSD TRIM(延長 SSD 壽命)

參考:SSD

定期執行 TRIM 可維持 SSD 效能。

檢查支援情況

執行 lsblk --discard。如果 DISC-GRAN 欄不為 0,表示支援 TRIM。

  • systemd 使用者:

    systemctl enable --now fstrim.timer
  • OpenRC 使用者:

    建議每週手動執行一次 fstrim -av,或設定 cron 工作。

2. 電源管理(推薦用於筆記型電腦)

下列方案二選一,不要同時安裝:

方案 A:TLP(推薦,節能)

自動最佳化電池使用時間,適合多數使用者。

emerge --ask sys-power/tlp
# OpenRC
rc-update add tlp default
/etc/init.d/tlp start
# Systemd
systemctl enable --now tlp

配置

TLP 的預設配置通常足夠。如需微調,配置檔案位於 /etc/tlp.conf。修改後執行 tlp start

方案 B:power-profiles-daemon(桌面整合)

GNOME 和 KDE 使用者可在系統選單中切換「效能 / 平衡 / 省電」模式。

emerge --ask sys-power/power-profiles-daemon
# OpenRC
rc-update add power-profiles-daemon default
/etc/init.d/power-profiles-daemon start
# Systemd
systemctl enable --now power-profiles-daemon

3. Zram(記憶體壓縮)

Zram

Zram 建立壓縮的記憶體交換分割區,可在編譯大型軟體時降低記憶體不足(OOM)的風險。

OpenRC 使用者:

emerge --ask sys-block/zram-init
rc-update add zram-init default

配置位於 /etc/conf.d/zram-init

systemd 使用者: 使用 zram-generator

emerge --ask sys-apps/zram-generator
# 建立使用 50% 記憶體作為交換空間的設定
cat <<'EOF' > /etc/systemd/zram-generator.conf
[zram0]
zram-size = ram / 2
EOF
systemctl daemon-reload
systemctl start dev-zram0.swap

延伸閱讀

時間軸

··約 2 分鐘· loading

關於我

··約 3 分鐘· loading