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