跳至主内容
  1. 文章/

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

··约 11 分钟· 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

延伸阅读

关于我

··约 3 分钟· loading

时间轴

··约 2 分钟· loading