5.5.配置 X.org

摘要:如果显示器或输入设备的默认设置不符合要求,桌面 提供了图形界面进行配置,或者也可以手动配置。

X.org 服务器支持大多数常见的图形处理器、显示器和输入设备。首先应尝试使用默认设置。本小节概述其配置方法。

5.5.1. X.org 配置文件

过去,X.org 服务器通过 /usr/local/etc/X11/ 下的文件进行配置。这种方式仍然被支持用于特殊情况,但可能与动态自动配置冲突。

除非自动配置失败,否则不要在 xorg.conf 中创建配置,也不要运行 Xorg -configure

X.org 服务器会在多个目录中查找配置文件。/usr/local/etc/X11/ 是 FreeBSD 上推荐的配置文件目录。使用此目录有助于将应用程序文件与操作系统文件分开管理。

使用多个文件分别配置具体设置,比传统的单一 xorg.conf 更加方便。这些文件存储在子目录 /usr/local/etc/X11/xorg.conf.d/ 中。

5.5.2. 配置显卡

直接渲染允许同时无缝使用独立显卡(dGPU)和集成显卡(iGPU),称为 PRIME。驱动程序会在需要时自动将高强度任务卸载到 dGPU,并在可能时关闭其电源。

在 PRIME 中使用更强大的 GPU 启动应用程序时,使用环境变量 DRI_PRIME=1

如果多个图形驱动冲突,可在 /usr/local/etc/X11/xorg.conf.d/ 目录中指定图形处理器的驱动。

Intel® 驱动配置示例:

/usr/local/etc/X11/xorg.conf.d/20-intel.conf

Section "Device"
	Identifier "Card0"
	Driver     "intel"
EndSection

AMD® 驱动配置示例:

/usr/local/etc/X11/xorg.conf.d/20-radeon.conf

Section "Device"
	Identifier "Card0"
	Driver     "radeon"
EndSection

NVIDIA® 驱动配置示例:

/usr/local/etc/X11/xorg.conf.d/20-nvidia.conf

Section "Device"
	Identifier "Card0"
	Driver     "nvidia-modeset"
EndSection

技巧

x11/nvidia-xconfig 也可用于对 NVIDIA 驱动的配置选项进行基本控制。

SCFB 驱动配置示例:

/usr/local/etc/X11/xorg.conf.d/20-scfb.conf

Section "Device"
	Identifier "Card0"
	Driver     "scfb"
EndSection

VESA 驱动配置示例:

/usr/local/etc/X11/xorg.conf.d/20-vesa.conf

Section "Device"
	Identifier "Card0"
	Driver     "vesa"
EndSection

配置多显卡时,可添加 BusID。执行以下命令显示显卡总线 ID 列表:

% pciconf -lv | grep -B3 display

示例输出:

vgapci0@pci0:0:2:0:     class=0x030000 rev=0x0c hdr=0x00 vendor=0x8086 device=0x46a6 subvendor=0x1028 subdevice=0x0b29
    vendor     = 'Intel Corporation'
    device     = 'Alder Lake-P GT2 [Iris Xe Graphics]'
    class      = display
--
vgapci0@pci0:1:0:0:     class=0x030200 rev=0xa1 hdr=0x00 vendor=0x10de device=0x25b9 subvendor=0x1028 subdevice=0x0b29
    vendor     = 'NVIDIA Corporation'
    device     = 'GA107GLM [RTX A1000 Laptop GPU]'
    class      = display

示例:同时配置 Intel® 和 NVIDIA® 驱动

/usr/local/etc/X11/xorg.conf.d/20-drivers.conf

Section "Device"
	Identifier "Card0"
	Driver     "intel"
	BusID     "pci0:0:2:0"
EndSection

Section "Device"
	Identifier "Card1"
	Driver     "nvidia-modeset"
	BusID     "pci0:0:2:1"
EndSection

5.5.3. 配置显示器

几乎所有显示器都支持扩展显示识别数据(EDID)标准。X.org 使用 EDID 与显示器通信,检测支持的分辨率和刷新率,然后选择最合适的组合。

其他显示器支持的分辨率可在 X 服务器启动后,通过 xrandr(1) 原子方式选择,或在 X.org 配置文件中设置。

5.5.3.1. 使用 RandR(调整分辨率与方向)

在 X 会话中运行 xrandr 不带参数,可查看视频输出和检测到的显示模式:

% xrandr

示例输出显示 VGA-1 输出使用分辨率 1280x960,刷新率约 60Hz;LVDS-1 为辅助显示器,分辨率 1280x800,刷新率约 60Hz。

可用 xrandr(1) 命令切换其他显示模式,例如切换到 1280x720 分辨率,刷新率 60Hz:

% xrandr --output LVDS-1 --mode 1280x720 --rate 60

技巧

启动 X 时黑屏通常可通过在初始化过程中添加 xrandr --auto 这一步骤解决。

5.5.3.2. 使用 X.org 配置文件

可在配置文件中设置显示器参数。

示例:将屏幕分辨率设置为 1024x768

/usr/local/etc/X11/xorg.conf.d/10-monitor.conf

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	SubSection "Display"
	Modes      "1024x768"
	EndSubSection
EndSection

5.5.4. 输入设备配置

X.org 服务器提供了 x11/libinput 库,统一支持触控、指点和键盘设备。默认情况下,该库会自动加载。

各设备的设置可通过桌面 GUI 调整,或使用 xinputsetxkbmap 手动配置。

对于旧版轻量输入设备,可使用 x11-drivers 中的 x11/xf86-input-[foo] 驱动,但需手动配置 X.org 服务器。

5.5.4.1. 使用原子输入配置

使用 libinput(4) 支持的设备,可通过桌面提供的图形工具,或在运行时使用 x11/xinputx11/setxkbmap 进行原子配置。

查看 libinput 当前附加设备:

$ xinput

输出示例:

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ System mouse                            	id=7	[slave  pointer  (2)]
⎜   ↳ VEN_0488:00 0488:1031 Mouse             	id=11	[slave  pointer  (2)]
⎜   ↳ VEN_0488:00 0488:1031 TouchPad          	id=12	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ System keyboard multiplexer             	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ AT keyboard                             	id=10	[slave  keyboard (3)]

所有支持的设置以属性形式提供,可原子方式列出和设置。指点设备属性多,键盘一般无需调整。

自定义键盘布局请参考 setxkbmap(1)

配置完成后,将命令添加至 X 初始化脚本,如 ~/.Xsession~/.xinitrc

5.5.4.2. 使用 X.org 配置文件

技巧

部分桌面环境(如 KDE Plasma)提供图形界面设置参数,请先检查是否可用,再考虑手动编辑配置文件。

示例:手动配置键盘布局

/usr/local/etc/X11/xorg.conf.d/00-keyboard.conf

Section "InputClass"
        Identifier "Keyboard1"
        MatchIsKeyboard "on"
        Option "XkbLayout" "es, fr"
        Option "XkbModel" "pc104"
        Option "XkbVariant" ",qwerty"
        Option "XkbOptions" "grp:win_space_toggle"
EndSection

最后更新于