2024 年 11 月 20 日,作者经过深思熟虑后决定将整个基础设施从 Rocky Linux 迁移到 FreeBSD。介绍了选择 FreeBSD 的原因,如更简单的网络配置等。并详细介绍了在 FreeBSD 上构建桌面系统的步骤:
- 安装:从指定网址获取 FreeBSD memstick 镜像并
dd到 USB 盘,安装向导简单,需配置 UEFI 启动和 ZFS(GPT)磁盘布局,重启后以安装时指定密码登录为 root。 设备、驱动和调优:
- 启动加载器调优:打开
/boot/loader.conf添加相关配置,如加快启动时间、加载防火墙模块等。 - 系统调优:打开
/etc/sysctl.conf设置系统参数,如加强安全、优化网络性能、桌面优化等。 - WiFi:确定支持的驱动,如 Intel 卡的
iwm(4)等,加载相关内核模块,创建wlan0设备,使用wpa_supplicant(8)管理网络,可通过networkmgr进行图形化配置。 - CPU 微码和节能:安装最新 CPU 微码,加载到启动配置,通过设置
performance_cx_lowest和economy_cx_lowest节省电池和热量,现代 Intel 处理器无需运行powerd(8)。 - Intel 图形驱动:安装
drm-kmod和libva-intel-media-driver,并在启动时加载i915kms。 - Linux 二进制兼容性:使用
Linuxulator运行 Linux 二进制文件。 - 允许用户空间文件系统:安装
fusefs。 - 摄像头:安装
webcamd和v4l-utils,创建相关配置。 - 声音:许多端口默认支持
sndio,可安装sndio并进行相关配置,若需同时使用不同音频设备可安装virtual_oss(8)。 - 设备权限 via devfs:创建
/etc/devfs.rules规则集,允许非特权用户访问硬件设备,若需刻录 CD 需添加更多规则。 - USB 电源节省:在
/etc/rc.local中添加命令,在笔记本电脑上关闭不活跃的 USB 设备以节省电池。 - ThinkPad 背光控制:加载
acpi_ibm内核模块,设置sysctl允许devd(8)处理按钮事件,创建devd(8)规则和脚本以控制背光。
- 启动加载器调优:打开
- PF 防火墙:创建
/etc/pf.conf配置防火墙规则,激活防火墙sysrc -v pf_enable=YES和service pf start。 - 禁用定期脚本:编辑
/etc/defaults/periodic.conf禁用大多数periodic(8)脚本。 - 添加用户:创建本地用户账户,添加到
operator和wheel组,安装sudo并更新sudoers配置。 - 设置区域设置:在
/etc/login.conf中设置区域设置,为登录 shell 和非登录 shell 分别创建配置文件,并重建登录数据库。 - 启用 NTP:编辑
/etc/ntp.conf设置 NTP 服务器,启动ntpd`sysrc -v ntpd_enable=YES ntpd_sync_on_start=YES和service ntpd start`。 - 设置时区:设置时区
ln -sfhv /usr/share/zoneinfo/America/New_York /etc/localtime。 - 切换到 openssh-portable:安装
openssh-portable,编辑/usr/local/etc/ssh/sshd_config并替换运行的sshd,更新/etc/login.conf并重建登录数据库。 - 修复 256 色 XTerm:安装
terminfo-db修复termcap(5)数据库问题。 - 安装根证书:安装
ca_root_nss以信任更多证书颁发机构。 - 安装 KDE 和桌面应用程序:安装一系列 KDE 和桌面应用程序,如
audacious-plugins-qt5等。 - 安装字体:安装多种字体,包括
cantarell-fonts等,若要使用位图版本需更新xorg.conf.d。 - 启用 D-Bus:启用
dbus`sysrc -v dbus_enable=YES和service dbus start`。 - 配置 SDDM:启用并启动
sddm`sysrc -v sddm_enable=YES和service sddm start`,禁用 Wayland 以避免问题。 已知问题及解决方法:
- 用户切换问题:由于 ConsoleKit2 和 drm-kmod 的 bug,目前最好禁用用户切换,可在
/usr/local/etc/xdg/kdeglobals中设置。 - 注销后进程未关闭:创建
/usr/local/etc/xdg/plasma-workspace/shutdown/cleanup.sh脚本在用户注销时关闭某些进程。 - Baloo 问题:在
/usr/local/etc/xdg/baloofilerc中禁用 Baloo 索引网络挂载。 - Chromium 硬件视频加速问题:在 Chromium 中添加特定命令行标志
chrome --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan以启用硬件加速视频播放,可创建自定义.desktop文件使其永久生效。 - 屏幕撕裂问题:在默认模式设置驱动下会出现屏幕撕裂,可将系统设置中的Latency设置为Force lowest latency来减少屏幕撕裂,也可安装
xf86-video-intel驱动并启用TearFree选项,但该驱动维护情况不佳。
- 用户切换问题:由于 ConsoleKit2 和 drm-kmod 的 bug,目前最好禁用用户切换,可在
总之,作者详细介绍了在 FreeBSD 上构建桌面系统的过程和遇到的各种问题及解决方法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。