首页>教程>FreeBSD 教程> X 视窗系统 >FreeBSD 安装配置 Xorg 服务

FreeBSD 安装配置 Xorg 服务

在 FreeBSD 系统中要使用图形界面需要先安装图形服务,然后再安装相应的桌面环境,可用的图形服务有 Xorg 和 Wayland。Xorg 是 FreeBSD 系统中(包括所有的类 Unix 系统)传统的图形服务,使用的是 FreeBSD 传统的图形服务启动理念。

在本文中将介绍如何为 FreeBSD 系统安装和配置 Xorg 图形服务。

安装 Xorg 服务

要使用 Xorg 图形服务,需要先安装显卡驱动,在安装显卡驱动之后,就可以安装 Xorg 服务。

安装 Xorg 完整功能包

Xorg 的完整功能包包含X 服务器、窗口管理器 twm、字体工具等,具有图形服务所需要的一切功能。

使用如下命令安装 Xorg 完整功能包:

pkg install xorg

安装 Xorg 最小功能包

Xorg 的最小功能包仅包含 Xorg 服务的核心功能。

该种安装方式只适用于高级用户,普通用户不适用该种方式安装软件包。

使用如下命令安装 Xorg 最小功能包:

pkg install xorg-minimal

注意:最小化安装手动安装其他的功能模块,如字体、输入设备驱动等,否则可能无法运行。

配置用户权限

普通用户需要添加到 video 组才能访问显卡硬件,才能正常的启动 Xorg 服务,进入图形界面。

1)使用如下的命令把用户添加到 video 组:

pw groupmod video -m 用户名

解释说明:

  • 只要把 用户名 改为你系统种真正的用户名即可

2)可选,验证是否成功把用户添加到 video 组中:

groups 用户名

解释说明:

  • 只要把 用户名 改为你系统种真正的用户名即可

  • 如果输出的组中包含了 video 组则表示添加成功。

启动 Xorg 服务

在 FreeBSD 系统中启动 Xorg 服务的方式有两种:

  • 从命令行启动 Xorg 服务:系统先启动进入命令行,然后使用 startx 启动 Xorg 服务。
  • 开机自动启动图形界面

从命令行启动

从命令行启动,需要使用 startx 命令,默认进入 twm 窗口管理器:

startx

可通过 Ctrl+Alt+F1 返回字符终端。

如果要进入真正的桌面环境需要安装图形卓面,还需要安装显示管理器,还需要配置 startx

开机自动启动图形界面

开机自动启动图形界面需要,安装卓面环境和显示管理器。并设置显示管理器自动启动。

有关显示管理器和卓面环境的内容将在后续详细介绍。

在此处只是以 sddm 为例,简要说明如何启动 Xorg 服务:

1)安装显示管理器:

pkg install sddm

2)使 sddm 显示管理器开机自启动:

sysrc sddm_enable="YES"

3)重启系统:

reboot

重启后将自动进入图形登录界面。

配置 Xorg

Xorg 支持使用自带的命令,自动识别 EDID 显示器、libinput 输入设备等设备,自动生成相应的配置文件,若自动生成的配置不符合自己的需求,可以手动进行修改。

配置文件目录

Xorg 服务有以下的配置文件:

  • 主配置文件:/usr/local/etc/X11/xorg.conf
  • 配置文件目录:/usr/local/etc/X11/xorg.conf.d/,文件格式为 xx-xxx.conf,前面为优先级序号,后面为设备名,如 20-intel.conf

注:一般不用手动 Xorg -configure 创建 xorg.conf 文件。

  • Virtualbox 中不需要运行命令。
  • 如果在 VMWare 虚拟机中需要使用 Xorg -configure 命令创建 xorg.conf 文件,根据需要修改配置的内容。

配置文件命令顺序

Xorg 加载的 /usr/local/etc/X11/xorg.conf.d/ 目录中的配置文件,有一定的顺序,文件名称前面的序号就是优先级,不能类型的设备使用不同的优先级序号,如下给出各类文件可以使用的文件的优先级数:

数字区间配置类型示例文件名
00-09基础输入设备(键盘/鼠标)00-keyboard.conf、05-mouse.conf
10-19显示器配置10-monitor.conf、15-resolution.conf
20-29显卡驱动配置20-intel.conf、20-vmware.conf、25-amdgpu.conf
30-39字体/渲染配置30-fonts.conf、35-antialias.conf
90-99自定义配置90-custom.conf、99-override.conf

配置显卡(手动指定驱动)

当系统存在多显卡,或者是在虚拟机中需要更改看卡配置时,可以手动配置显卡驱动。

单显卡配置示例

可以创建配置文件 /usr/local/etc/X11/xorg.conf.d/20-card.conf,根据不同的品牌添加不同内容,当然也可以使用 Xorg -configure 生成的 /root/xorg.conf.new 文件中的内容的基础上进行修改:

1)Intel 显卡配置示例:

Section "Device"
    Identifier "Card0"  # 设备标识(自定义)
    Driver     "intel"   # 驱动名称
    BusID      "pci0:0:2:0"  # 显卡总线ID(从 pciconf 命令获取)
EndSection

2)AMD 显卡配置示例:

Section "Device"
    Identifier "Card0"
    Driver     "radeon"  # 或 "amdgpu"
    BusID      "pci0:1:0:0"
EndSection

3)NVIDIA 显卡配置示例:

Section "Device"
    Identifier "Card0"
    Driver     "nvidia"
    BusID      "pci0:1:0:0"
EndSection

双显卡配置(PRIME 切换)

在 FreeBSD 中有 PRIME 技术,它能够在核显和独显之间智能切换使用的显卡。

如下给出 Intel 核显和 NVIDIA 显卡双显卡的配置示例:

Section "Device"
    Identifier "IntelGPU"  # 核显标识
    Driver     "intel"
    BusID      "pci0:0:2:0"
EndSection

Section "Device"
    Identifier "NvidiaGPU"  # 独显标识
    Driver     "nvidia"
    BusID      "pci0:1:0:0"
EndSection

如果想要使特定的应用使用独显,可以使用 DRI_PRIME 环境变量,使用如下的形式设置环境变量:

DRI_PRIME=1 应用名称  # 如 DRI_PRIME=1 firefox

显示器配置

Xorg 可以通过 EDID 自动识别显示器分辨率和刷新率,如果配置的内容不符合自己的需求,可以使用如下两种方式自定义配置:

  • 使用 xrandr 命令临时修改配置
  • 使用配置文件永久的修改配置

xrandr 命令配置显示器

常用参数的解释:

  • --output:指定显示器输出设备
  • --mode:指定分辨率模式
  • --rate:指定刷新率
  • --auto/--preferred:启用输出并使用首选模式
  • --left-of/--right-of/--above/--below:指定多屏相对位置
  • --primary:将显示器设为主屏
  • --pos:手动指定像素坐标

1)在 X 会话中执行如下命令,查看可用的显示器信息:

xrandr

输出类似如下的显示器信息:

Screen 0: minimum 320 x 200, current 2560 x 960, maximum 8192 x 8192
LVDS-1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
   1280x800      59.99*+  59.81    59.91    50.00
   1280x720      59.86    59.74
VGA-1 connected primary 1280x960+1280+0 (normal left inverted right x axis y axis) 410mm x 257mm
   1280x1024     75.02    60.02
   1280x960      60.00*

输出信息解释:

  • 第一行为:逻辑屏幕标识、支持的最小分辨率,当前系统的分辨率,最大支持的分辨率
  • 以下的内容为可用的物理屏幕:包括屏幕的标识,如 LVDS-1:笔记本内置屏幕、VGA-1:外接 VGA 显示器;下面的内容一行为一个可用的分辨率,带 * 的行表示当前使用的分辨率,+ 是首选模式。

2)切换分辨率:

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

3)扩展桌面,使双显示器显示不同的内容:

xrandr --output LVDS-1 --mode 1280x800 --pos 0x0 --output VGA-1 --mode 1280x960 --pos 1280x0

4)复制桌面,使双显示器显示相同的内容:

xrandr --output LVDS-1 --mode 1280x800 --output VGA-1 --mode 1280x800 --same-as LVDS-1

配置文件配置显示器

1)可以创建 /usr/local/etc/X11/xorg.conf.d/10-monitor.conf 配置文件,添加类似如下的内容:

Section "Screen"
    Identifier "Screen0"  # 与显卡配置的 Identifier 对应
    Device     "Card0"
    SubSection "Display"
        Modes      "1920x1080" "1280x720"  # 优先分辨率(从高到低)
        Depth      24  # 色深(推荐 24 位)
    EndSubSection
EndSection

2)重启 Xorg 生效

配置输入设备

Xorg 默认使用 libinput 驱动管理输入设备,可以管理键盘、鼠标、触控板等设备,一般情况下不需要手动配置。但是在虚拟环境中一般需要修改配置。

xinput 命令配置

1)查看输入设备列表:

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 TouchPad            id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ AT keyboard                               id=10   [slave  keyboard (3)]

输出信息解释说明:

  • id:设备ID,在使用 xinput 配置时,需要使用 id
  • 触控板设备名通常包含 TouchPad

2)调整鼠标灵敏度(设备ID=7):

xinput set-prop 7 "libinput Accel Speed" 0.5  # 范围:-1.0(最慢)~1.0(最快)

3)禁用触控板(设备ID=12):

xinput disable 12

配置文件配置

1)可以创建 /usr/local/etc/X11/xorg.conf.d/00-keyboard.conf 配置文件,添加类似如下的内容:

Section "InputClass"
    Identifier "Keyboard1"
    MatchIsKeyboard "on"  # 匹配所有键盘设备
    Option "XkbLayout" "us"  # 美式键盘布局
    Option "XkbModel" "pc104"  # 键盘型号(通用104键)
    Option "XkbOptions" "grp:win_space_toggle"  # 切换快捷键(Win+空格)
EndSection