安裝一個中文桌面環境的FreeBSD系統。
上次安裝FreeBSD是兩年前暑假心情煩悶的時候安裝的,我還嘗試安裝FreeBSD 13在實機上,結果因為對Xorg不熟悉卡在純文字界面,遂 改用懶人版的GhostBSD,可這怎麼會有趣呢!隨後換回Arch Linux。
這次我要再次挑戰手工安裝FreeBSD,這次的理由除了心情煩悶,還有些東西想在FreeBSD測試。於是就來安裝FreeBSD解悶,結果是越debug越悶…所幸後來還是裝成功了。
本次用QEMU/KVM虛擬機練習,之後會搞PCI Passthrough直通使其逼近實機狀況。
用Linux的Virt Manager安裝FreeBSD虛擬機,並不像安裝其他Linux發行版一樣簡單。Libvirt會透過SPICE與虛擬機溝通,大部份Linux發行版會自動偵測,開箱即用,但是FreeBSD得手動設定服務,否則沒畫面,滑鼠也不會動。…怎覺得比裝Gentoo還麻煩,但起碼比Hackintosh簡單。要謹記,雖然Linux跟FreeBSD很像,但是檔案系統目錄不同,觀念要轉一下,尤其這裡沒有Systemd。Linux慣用的操作不見得適用FreeBSD,故安裝前需以FreeBSD手冊的內容為準。
桌面環境部份,我是有想過裝GNOME 42,但太多功能依賴Linux了,不少GNOME核心程式沒移植,且目前FreeBSD的Wayland支援度不佳,只得用X11。FreeBSD的GNOME相較Linux殘廢許多,實測也有很多問題。所以,我選KDE Plasma 5;如果想要輕量的桌面環境可以裝XFCE 4。
1. 環境#
- 宿主機:Ubuntu 24.04 LTS
- 虛擬機:FreeBSD 14.0 Release
- 虛擬機軟體:Virt Manager + QEMU/KVM 8.0
2. 新增FreeBSD虛擬機組態#
到 FreeBSD官網下載
FreeBSD 14.0-RELEASE
的DVD ISO,這是目前的最新穩定版本開啟Virt Manager,新增Q35+UEFI的機器
將FreeBSD的ISO掛接為CDROM
新增硬體「Evtouch圖形數位板」,這樣才能在虛擬機與宿主機間切換滑鼠
音效卡設定為
HDA (ICH9)
QXL在FreeBSD理論上是有
xf86-video-qxl
驅動支援…但我不知道怎設定,開機黑螢幕,許是Ubuntu的QXL有bug?所以顯示卡不使用QXL,改用支援度較佳的VMware vmvga。但這個似乎只能在QEMU命令行使用,故手動編輯顯示卡區段的XML,填入以下內容:
<video>
<model type="vmvga" vram="65536" heads="1" primary="yes"/>
<alias name="video0"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
- 然後開機安裝
3. 安裝FreeBSD基本系統#
開機按1進入安裝器
按照畫面指示,安裝base system和kernel
系統分區使用Auto (ZFS)
新增一般使用者
user
,並將其加入到wheel群組安裝後重開機
開機後應該是純文字環境,登入root
root
- 安裝sudo
pkg install sudo vim
- 將一般使用者加入到sudo群組
visudo
- 填入:
root ALL=(ALL:ALL) ALL
user ALL=(ALL:ALL) ALL
- 登出,用一般使用者登入
exit
- 將shell改成較為常見的bash
sudo pkg install bash
sudo chsh -s /usr/local/bin/bash root
sudo chsh -s /usr/local/bin/bash user
4. 設定圖形驅動程式#
- 安裝Xorg套件
sudo pkg install xorg
- 將使用者user加入video群組
sudo pw groupmod video -m user
- 顯示卡驅動使用vmware-xga的驅動。安裝以下套件,重開機後應該會自行載入,不需要手動寫xorg.conf。
sudo pkg install xf86-video-vmware
附錄:萬策盡的時候才使用xf86-video-scfb軟體渲染。
注意scfb驅動會鎖死解析度。
Virt Manager虛擬顯示卡選VGA,使用scfb驅動
pkg install xf86-video-scfb
調整Xorg設定
sudo vim /usr/local/etc/X11/xorg.conf/driver-scfb.conf
填入以下內容:
Section "Device"
Identifier "Card0"
Driver "scfb"
EndSection
xorg.conf.d目錄下應該只有scfb驅動的設定,不要有其他驅動的設定檔。
使用sysrc指令編輯開機啟動的項目(實際上是寫入到
/etc/rc.conf
這個檔案)將HDA的音訊模組加入到開機自動啟動
sudo sysrc snd_hda_load="YES"
- 將dbus和hald加入開機自動啟動
sudo sysrc dbus_enable="YES"
sudo sysrc hald_enable="YES"
- 編輯
/boot/loader.conf
設定自動載入hms,這是USB滑鼠與光碟的驅動
hw.usb.usbhid.enable=1
usbhid_load="YES"
hms_load="YES"
5. 安裝KDE桌面環境#
目前FreeBSD穩定的KDE版本是Plasma 5,不支援Wayland。
- 這個套件會把常用的KDE應用程式一併拉進來
sudo pkg install kde5 packagekit
- KDE開發者建議把local stream調大一點防止出bug:
echo "net.local.stream.recvspace=65536" | sudo tee -a /boot/loader.conf
echo "net.local.stream.sendspace=65536" | sudo tee -a /boot/loader.conf
- 不要用xinitrc,我覺得用顯示管理器登入比較簡單,所以安裝SDDM
sudo pkg install plasma5-sddm-kcm sddm
- 將SDDM加入到開機自動啟動
sudo sysrc sddm_enable="YES"
- 重開機後就可以登入KDE了。剛登入如果畫面太大請在桌面按右鍵調整解析度。KDE的Discover無法用來下載FreeBSD的套件,所以就當作擺設。
6. 中文化與輸入法#
- 安裝Noto字體。這會把全部語言的字體拉進來,如果只要正體中文那就
noto-sans-tc
。
sudo pkg install noto
- 編輯
/etc/login.conf
,找到default區塊的:lang:\
,改成正體中文
:lang=zh_TW.UTF-8:\
- 更新資料庫
sudo cap_mkdb /etc/login.conf
- 編輯
~/.profile
,設定系統語言為正體中文
export LANG=zh_TW.UTF-8
export MM_CHARSET=zh_TW.UTF-8
- 最後安裝Fcitx5搭配新酷音輸入法
sudo pkg install fcitx5 fcitx5-configtool \
fcitx5-gtk-common fcitx5-gtk-3 fcitx5-gtk-4 \
fcitx5-qt-common zh-fcitx5-chewing zh-fcitx5-chinese-addons
- 編輯
~/.profile
,指定輸入法模組
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
- 設定登入桌面自動啟動Fcitx5
cp /usr/local/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/