桌面上的 FreeBSD 14

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_lowesteconomy_cx_lowest节省电池和热量,现代 Intel 处理器无需运行powerd(8)
    • Intel 图形驱动:安装drm-kmodlibva-intel-media-driver,并在启动时加载i915kms
    • Linux 二进制兼容性:使用Linuxulator运行 Linux 二进制文件。
    • 允许用户空间文件系统:安装fusefs
    • 摄像头:安装webcamdv4l-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=YESservice pf start
  • 禁用定期脚本:编辑/etc/defaults/periodic.conf禁用大多数periodic(8)脚本。
  • 添加用户:创建本地用户账户,添加到operatorwheel组,安装sudo并更新sudoers配置。
  • 设置区域设置:在/etc/login.conf中设置区域设置,为登录 shell 和非登录 shell 分别创建配置文件,并重建登录数据库。
  • 启用 NTP:编辑/etc/ntp.conf设置 NTP 服务器,启动ntpd`sysrc -v ntpd_enable=YES ntpd_sync_on_start=YESservice 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=YESservice dbus start`。
  • 配置 SDDM:启用并启动sddm`sysrc -v sddm_enable=YESservice 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选项,但该驱动维护情况不佳。

总之,作者详细介绍了在 FreeBSD 上构建桌面系统的过程和遇到的各种问题及解决方法。

阅读 40
0 条评论