引言

Manjaro Linux是一款基于Arch Linux的流行发行版,以其用户友好的特性和滚动更新模型而闻名。在现代笔记本电脑和部分台式机上,双显卡配置(通常是集成显卡+独立显卡的组合)变得越来越普遍。这种配置旨在平衡性能和电池续航,但在Linux系统下,特别是Manjaro中,正确配置双显卡可能会遇到一些挑战。

本指南将详细介绍如何在Manjaro系统上配置双显卡,从初始安装到最终优化,帮助您解决常见问题,确保双显卡系统能够稳定高效地运行。无论您是拥有Intel+NVIDIA、AMD+NVIDIA还是Intel+AMD的配置组合,本指南都将提供实用的步骤和解决方案。

硬件准备与兼容性检查

在开始安装和配置之前,首先需要确认您的硬件配置和兼容性。

检查显卡型号

打开终端,运行以下命令来检查您的显卡型号:

lspci | grep -E "VGA|3D" 

您应该能看到类似如下的输出:

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile) 01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1) 

这表示您的系统配备了Intel集成显卡和NVIDIA独立显卡。

检查内核支持

确认当前内核是否支持您的显卡:

uname -r 

Manjaro默认提供的内核通常对主流显卡有良好的支持,但某些新型号可能需要更新内核:

mhwd-kernel -l 

列出可用的内核,然后根据需要安装更新的内核:

sudo mhwd-kernel -i linux515 

(以上命令安装5.15内核,您可以根据需要选择其他版本)

Manjaro系统安装注意事项

在安装Manjaro时,有几个关键点需要注意,以确保后续双显卡配置的顺利进行。

安装前的准备

  1. 备份重要数据
  2. 确保有稳定的网络连接
  3. 准备好安装介质(USB安装盘)

安装过程中的设置

  1. 在启动安装盘时,可能需要添加启动参数以解决某些显卡兼容性问题。例如,对于NVIDIA显卡,可能需要添加 nomodeset 参数:
 linux /boot/vmlinuz-x86_64 ... nomodeset 
  1. 在分区阶段,确保为系统分配足够的空间(建议至少25GB用于根分区)

  2. 在安装过程中,选择”非自由驱动”选项,这将在安装后自动尝试安装专有驱动程序

安装后的初始设置

安装完成后,首次启动系统前,再次检查是否需要添加启动参数:

  1. 重启系统,在GRUB菜单出现时,按 ‘e’ 键编辑启动选项
  2. 在linux行末尾添加 nomodeset 参数
  3. 按 Ctrl+X 或 F10 启动

如果系统正常启动,则可以永久添加此参数:

sudo nano /etc/default/grub 

找到 GRUB_CMDLINE_LINUX_DEFAULT 行,修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset" 

然后更新GRUB:

sudo update-grub 

双显卡驱动安装

Manjaro提供了MHWD(Manjaro Hardware Detection)工具,可以简化驱动安装过程。

使用MHWD安装驱动

  1. 首先更新系统:
sudo pacman -Syu 
  1. 检查可用的驱动配置:
mhwd -l 

您可能会看到类似如下的输出:

> 0000:01:00.0 (0300:10de:1c8d) Display controller nVidia Corporation GP107M [GeForce GTX 1050 Mobile] NAME VERSION FREEDRIVER TYPE video-hybrid-intel-nvidia-prime 2019.11.04 false PCI video-linux 2018.05.04 true PCI video-nvidia 2019.11.04 false PCI video-nvidia-340xx 2018.05.04 false PCI 
  1. 对于Intel+NVIDIA配置,推荐安装hybrid驱动:
sudo mhwd -i pci video-hybrid-intel-nvidia-prime 
  1. 对于AMD+NVIDIA配置:
sudo mhwd -i pci video-hybrid-amd-nvidia-prime 
  1. 安装完成后,重启系统:
sudo reboot 

手动安装NVIDIA驱动

如果MHWD方法不适用或您希望手动安装NVIDIA驱动,可以按照以下步骤操作:

  1. 确定您的NVIDIA显卡型号:
lspci | grep -E "VGA|3D" | grep NVIDIA 
  1. 安装合适的NVIDIA驱动:
sudo pacman -S nvidia nvidia-utils nvidia-settings 
  1. 对于某些较新的显卡,可能需要安装beta驱动:
sudo pacman -S nvidia-dkms 
  1. 禁用NVIDIA卡的nouveau开源驱动:
sudo nano /etc/modprobe.d/nouveau.conf 

添加以下内容:

blacklist nouveau options nouveau modeset=0 
  1. 更新initramfs:
sudo mkinitcpio -P 
  1. 重启系统:
sudo reboot 

安装AMD驱动

对于AMD显卡,Manjaro通常使用开源驱动,它们已经包含在内核中。如果需要更新或手动安装:

  1. 安装最新的AMD驱动:
sudo pacman -S mesa xf86-video-amdgpu 
  1. 对于较新的AMD显卡,可能需要安装额外的驱动:
sudo pacman -S vulkan-radeon libva-mesa-driver 
  1. 重启系统:
sudo reboot 

双显卡切换工具配置

Prime Render Offload

对于较新的NVIDIA驱动(435.17或更高),可以使用Prime Render Offload功能,允许应用程序在需要时使用NVIDIA显卡,而默认使用集成显卡。

  1. 确认Prime Render Offload是否可用:
xrandr --listproviders 

您应该看到类似如下的输出:

Providers: number : 2 Provider 0: id: 0x45 cap: 0x9, Source Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:modesetting Provider 1: id: 0x237 cap: 0x6, Sink Output, Source Offload crtcs: 0 outputs: 0 associated providers: 1 name:NVIDIA-G0 
  1. 要使用NVIDIA运行特定应用程序:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia 应用程序名称 

例如,使用NVIDIA运行glxgears:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears 
  1. 要创建一个永久的环境变量,编辑 ~/.bashrc~/.zshrc(取决于您使用的shell):
nano ~/.bashrc 

添加以下别名:

alias nvidia-run="__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia" 

然后,您可以使用 nvidia-run 应用程序名称 来使用NVIDIA运行应用程序。

使用optimus-manager

Optimus-manager是一个更方便的工具,允许您在集成显卡和独立显卡之间切换。

  1. 安装optimus-manager:
sudo pacman -S optimus-manager 
  1. 启用并启动服务:
sudo systemctl enable optimus-manager sudo systemctl start optimus-manager 
  1. 重启系统:
sudo reboot 
  1. 切换显卡模式:
# 切换到NVIDIA模式 sudo optimus-manager --switch nvidia # 切换到集成显卡模式 sudo optimus-manager --switch integrated # 切换到混合模式(使用Prime Render Offload) sudo optimus-manager --switch hybrid 
  1. 安装图形界面(可选):
sudo pacman -S optimus-manager-qt 

这将在系统设置中添加一个图形界面,方便切换显卡模式。

Bumblebee(旧方法)

Bumblebee是一个较老的解决方案,适用于不支持Prime Render Offload的系统。除非您的硬件非常旧,否则建议使用上述方法。

  1. 安装Bumblebee:
sudo pacman -S bumblebee nvidia bbswitch 
  1. 将用户添加到bumblebee组:
sudo gpasswd -a $USER bumblebee 
  1. 启用并启动服务:
sudo systemctl enable bumblebeed sudo systemctl start bumblebeed 
  1. 测试Bumblebee:
optirun glxgears 

优化设置

电源管理

正确配置电源管理可以显著延长电池寿命,同时保持良好的性能。

NVIDIA显卡电源管理

  1. 编辑Xorg配置文件:
sudo nano /etc/X11/xorg.conf.d/10-nvidia.conf 
  1. 添加以下内容:
Section "Device" Identifier "nvidia" Driver "nvidia" Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x3; PowerMizerDefaultAC=0x3" Option "Coolbits" "4" EndSection 
  1. 保存文件并重启X服务器(或重启系统)

使用TLP进行高级电源管理

  1. 安装TLP:
sudo pacman -S tlp 
  1. 启用并启动TLP:
sudo systemctl enable tlp sudo systemctl start tlp 
  1. 编辑TLP配置:
sudo nano /etc/tlp.conf 
  1. 根据需要调整以下参数:
# 启用节能功能 SATA_LINKPWR_ON_BAT=max_power SATA_LINKPWR_ON_AC=max_performance # CPU节能 CPU_SCALING_GOVERNOR_ON_BAT=powersave CPU_SCALING_GOVERNOR_ON_AC=performance # 无线电设备节能 WIFI_PWR_ON_BAT=Y WIFI_PWR_ON_AC=N 
  1. 重启TLP服务:
sudo systemctl restart tlp 

性能调优

使用GPU性能分析工具

  1. 安装GPU性能监控工具:
sudo pacman -S nvtop 
  1. 运行nvtop监控GPU使用情况:
nvtop 

针对特定应用程序的优化

  1. 对于游戏,可以创建启动脚本:
nano ~/游戏启动脚本.sh 
  1. 添加以下内容:
#!/bin/bash # 使用NVIDIA运行游戏 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __GL_THREADED_OPTIMIZATIONS=1 vblank_mode=0 游戏启动命令 
  1. 使脚本可执行:
chmod +x ~/游戏启动脚本.sh 

省电模式配置

  1. 创建脚本以在电池供电时自动切换到集成显卡:
sudo nano /usr/local/bin/gpu-power-save 
  1. 添加以下内容:
#!/bin/bash # 检查是否使用电池 if on_ac_power; then # 使用AC电源,可以启用高性能模式 sudo optimus-manager --switch nvidia --no-confirm else # 使用电池,切换到集成显卡以节省电力 sudo optimus-manager --switch integrated --no-confirm fi 
  1. 使脚本可执行:
sudo chmod +x /usr/local/bin/gpu-power-save 
  1. 创建systemd服务:
sudo nano /etc/systemd/system/gpu-power-save.service 
  1. 添加以下内容:
[Unit] Description=GPU Power Save After=multi-user.target [Service] Type=oneshot ExecStart=/usr/local/bin/gpu-power-save [Install] WantedBy=multi-user.target 
  1. 启用服务:
sudo systemctl enable gpu-power-save.service 

常见问题及解决方案

无法识别第二张显卡

问题描述

系统无法检测到独立显卡,或者 lspci 命令只显示一张显卡。

解决方案

  1. 检查BIOS/UEFI设置:

    • 重启计算机并进入BIOS/UEFI设置
    • 查找与显卡相关的选项,如”Graphics Mode”、”Switchable Graphics”等
    • 确保设置为”Auto”或”Switchable”而不是”Discrete”或”Integrated”
    • 保存设置并重启
  2. 检查内核模块:

lsmod | grep -E "nvidia|amdgpu|radeon" 

如果没有输出,可能需要手动加载模块:

sudo modprobe nvidia # 或 sudo modprobe amdgpu 
  1. 更新系统:
sudo pacman -Syu 
  1. 尝试安装最新的内核:
sudo mhwd-kernel -i linux515 

性能不佳

问题描述

即使使用独立显卡,性能也不如预期,或者应用程序运行缓慢。

解决方案

  1. 确认应用程序正在使用正确的显卡:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep "OpenGL renderer" 

输出应显示NVIDIA显卡。

  1. 检查电源模式:
nvidia-smi -q | grep "Power Mode" 

如果不是最大性能模式,可以尝试:

sudo nvidia-smi -pl 100 
  1. 调整NVIDIA设置:
nvidia-settings 

在”PowerMizer”部分,设置为”Prefer Maximum Performance”。

  1. 对于AMD显卡,可以使用以下命令检查性能级别:
cat /sys/class/drm/card0/device/power_dpm_state 

如果不是”performance”,可以尝试:

echo performance | sudo tee /sys/class/drm/card0/device/power_dpm_state 

系统崩溃或冻结

问题描述

在使用独立显卡或切换显卡时,系统崩溃或冻结。

解决方案

  1. 检查系统日志:
journalctl -b -p err 

查找与显卡相关的错误信息。

  1. 尝试使用不同的NVIDIA驱动版本:
sudo pacman -S nvidia-dkms 
  1. 如果系统在启动时崩溃,尝试添加启动参数:
sudo nano /etc/default/grub 

修改 GRUB_CMDLINE_LINUX_DEFAULT 行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi=off noapic" 

然后更新GRUB:

sudo update-grub 
  1. 对于某些特定硬件,可能需要添加以下参数:
GRUB_CMDLINE_LINUX_DEFAULT="quiet nouveau.modeset=0" 

过热问题

问题描述

使用独立显卡时,系统温度过高,导致性能下降或系统不稳定。

解决方案

  1. 安装温度监控工具:
sudo pacman -S lm_sensors sudo sensors-detect 

然后运行:

sensors 
  1. 安装并配置风扇控制工具:
sudo pacman -S fancontrol sudo pwmconfig 

按照向导配置风扇控制。

  1. 对于NVIDIA显卡,可以使用以下命令设置风扇速度:
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUTargetFanSpeed=70" 
  1. 使用冷却支架或改善通风。

电池续航短

问题描述

在使用电池时,电量消耗过快。

解决方案

  1. 确保在使用电池时使用集成显卡:
sudo optimus-manager --switch integrated 
  1. 安装并配置TLP:
sudo pacman -S tlp tlp-rdw sudo systemctl enable tlp sudo systemctl start tlp 
  1. 调整屏幕亮度:
xbacklight -set 50 
  1. 禁用不必要的设备:
# 查看设备列表 rfkill list # 禁用蓝牙 sudo rfkill block bluetooth # 禁用Wi-Fi sudo rfkill block wifi 
  1. 使用powertop分析能耗:
sudo pacman -S powertop sudo powertop --calibrate sudo powertop --auto-tune 

高级配置选项

使用Xorg配置文件进行高级设置

  1. 创建自定义Xorg配置文件:
sudo nano /etc/X11/xorg.conf.d/20-nvidia.conf 
  1. 添加以下内容:
Section "ServerLayout" Identifier "layout" Screen 0 "nvidia" Inactive "intel" EndSection Section "Device" Identifier "nvidia" Driver "nvidia" BusID "PCI:1:0:0" EndSection Section "Screen" Identifier "nvidia" Device "nvidia" Option "AllowEmptyInitialConfiguration" EndSection Section "Device" Identifier "intel" Driver "modesetting" EndSection Section "Screen" Identifier "intel" Device "intel" EndSection 

使用Vulkan进行图形加速

  1. 安装Vulkan驱动:
# 对于NVIDIA sudo pacman -S vulkan-icd-loader # 对于AMD sudo pacman -S vulkan-radeon 
  1. 测试Vulkan支持:
vulkaninfo 

使用CUDA进行计算加速

  1. 安装CUDA工具包:
sudo pacman -S cuda 
  1. 配置环境变量:
echo 'export PATH=/opt/cuda/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/opt/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc 
  1. 测试CUDA安装:
nvcc --version 

总结与维护建议

正确配置Manjaro双显卡系统可能需要一些耐心和尝试,但一旦配置完成,您将能够享受到Linux系统下双显卡带来的灵活性和性能优势。以下是一些维护建议:

  1. 定期更新系统和驱动:
sudo pacman -Syu 
  1. 在更新系统后,检查显卡功能是否正常:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears 
  1. 定期检查系统日志,查找与显卡相关的问题:
journalctl -b -p 3 | grep -i "nvidia|amdgpu" 
  1. 如果遇到问题,首先检查硬件兼容性和已知问题:
lspci -nnk | grep -iA3 vga 
  1. 备份重要的配置文件,如 /etc/X11/xorg.conf.d/ 目录下的文件,以便在系统重装或更新后快速恢复配置。

通过遵循本指南中的步骤和建议,您应该能够成功配置和优化Manjaro系统上的双显卡,解决常见问题,并确保系统稳定高效地运行。记住,每个硬件配置都有其独特性,可能需要一些调整和实验才能找到最适合您系统的配置。