將FreeBSD安裝在實機,安裝KDE Plasma桌面,搭配Fcitx5中文輸入法,當作日常桌面系統使用。
FreeBSD有GNOME、KDE Plasma、XFCE、Mate等桌面可選。我選用功能豐富又漂亮的KDE Plasma桌面。
目前可以在FreeBSD使用最新的KDE Plasma 6,支援X11與Wayland兩種圖形顯示技術。
1. FreeBSD簡介#
FreeBSD是一種Unix-like的作業系統。可供個人電腦和伺服器使用。
FreeBSD和GNU/Linux一樣,是為開源免費的Unix-like作業系統,於1993年發布。前身是BSD Unix,基於當時美國各大學流行的Unix系統開發。Unix系統一開始是作為AT&T旗下貝爾實驗室的低成本研究專案授權給各大學使用的,加州大學柏克萊分校開發了自己的Unix系統,稱之為BSD Unix。1980年代早期,柏克萊分校使用了很多Unix的程式碼開發BSD系統,並發放給外界使用。然而,Unix被AT&T弄成商業產品後,開始控告柏克萊分校侵犯版權專利,打了好幾年的訴訟。在BSD陷入法律問題的同時,GNU/Linux的勢力趁機崛起,從此奠定了自由作業系統龍頭的地位。之後,柏克萊分校的開發團隊基於4.4BSD-Lite大幅度重寫程式碼,幾年後改稱FreeBSD,遂成為完全自由開源的作業系統。2000年,非營利組織FreeBSD基金會成立,用於支援FreeBSD的開發工作。
了解以上歷史淵源後,與其說FreeBSD和GNU/Linux一樣是Unix-like的系統,不如說它就是Unix的直系後代吧!啊,不過在現代「Unix」之名是需要花錢請The Open Group認證商標才可以使用的,否則只能稱之為Unix-like。目前因為認證費用高昂,FreeBSD基金會沒有加入此認證的規劃。
同為自由軟體,FreeBSD與GNU/Linux的授權條款理念有些微不同。GNU/Linux受自由軟體運動理念影響很深,GNU/Linux發行版多半使用GNU GPL授權條款,要求使用者必須開源回饋社區,防止商業公司將Linux核心改為閉源軟體,守護軟體自由。而FreeBSD系統使用的BSD授權條款則是秉持另外一種自由理念,所謂"The Power to Serve",允許任何人自由利用作業系統原始碼,不限制他人自由,不強求回饋,你想把我開發的系統弄封閉,整碗端走拿去賣錢也沒關係,只要附上BSD的聲明就可以了。
以自由軟體社群的聲勢來說,GNU/Linux社群蓬勃發展,商業與社群發行版好幾百個,不論在伺服器還是個人電腦領域都有人用。相較之下FreeBSD則是處於不溫不火的狀態,桌面方面進展落後GNU/Linux。但其實Apple macOS、Sony PlayStation、Nintendo Switch、TrueNAS等電子產品的底層核心有一部份就是使用FreeBSD技術的喔。在伺服器領域,FreeBSD系統依然有一定份額。
既然是開源系統,BSD家族同樣有許多衍生版,或說發行版,但是碎片化遠沒有GNU/Linux那麼嚴重。BSD系統家族的衍生版包括FreeBSD、OpenBSD、NetBSD、DragonflyBSD等等。每個BSD家族的系統都是一個完整的作業系統,而非像Linux只有核心,需要有人把它跟GNU之類的軟體打包才能成為完整的作業系統。
根據2005年的一項調查,FreeBSD是BSD家族中使用人數最多的系統。FreeBSD作為BSD系統家族當中最有名的版本,官方維護了豐富的原始碼儲存庫,還有一本清晰易懂的FreeBSD Handbook可供參考。
FreeBSD系統有兩個開發分支:Current是測試版本,Release是穩定版。Release大約兩年釋出一個版本。FreeBSD的開發一直都很穩定,對變化比較保守,傳承了1980年代的系統架構,沒有太大的更動。
FreeBSD保留了較為古早的init設計,所有系統服務都是由shell script定義,傳承了Unix哲學。
FreeBSD的系統架構設計比較一致,開發工作由同一個原始碼Git儲存庫管理。FreeBSD將系統軟體與第三方軟體清楚的分離。例如系統軟體會安裝到/bin,第三方軟體是/usr/local/bin,整體來說設計比較完善且統一。FreeBSD官方維護的就只有FreeBSD核心和「base」系統軟體而已,X11和圖形介面的軟體都是由第三方社群提供的。FreeBSD有一個「Ports」套件庫用於收錄各方貢獻的第三方軟體。
這樣做很好的隔離了系統軟體與第三方軟體。不像GNU/Linux發行版將所有軟體都混在一起,碎片化且標準不統一。
還有,FreeBSD的Ports所收錄的軟體分為quarterly release (stable) 和latest release (bleeding edge) 兩個分支,前者經過較長時間測試才會釋出新版本,後者則是一直追上游軟體的變更。使用者可以自由依照需求,選擇適合的軟體版本。
2. 測試環境#
- 主機板:ASUS K31CD-K
- CPU:Intel i5-7400
- GPU:Intel UHD 630
- GPU:Nvidia GTX1050Ti
- RAM:16GB
3. 製作開機隨身碟#
到FreeBSD官網下載ISO。FreeBSD系統本身是沒有圖形界面的,也尚未加入圖形安裝器。需要在安裝完基本系統之後手動安裝桌面環境。
目前最新穩定版選FreeBSD 15 Release,下載AMD64架構版本的Installer,選DVD版本的ISO。
下載後檢查檔案完整性防止檔案毀損。
再使用Ventoy製作開機隨身碟。
重開機進入電腦UEFI,關閉Secure Boot,使用UEFI模式開機。
4. 安裝FreeBSD基本系統#
開機之前確保有線乙太網路能夠上網。
開機後選取Boot Installer,按Enter

選取Install開始安裝
設定鍵盤佈局為US

設定主機名稱

用空白鍵選取要安裝的系統組件,這些套件之後都可以手動安裝,維持預設

檔案系統使用預設的ZFS

如果硬碟不為空,依照指示建立ZFS


設定root帳號密碼

設定有線與無線網路介面,全部使用預設值

設定開機自動啟動服務

系統安全性措施一般人應該不需要啟用

如果有的話,安裝系統硬體需要的韌體

新增一般使用者,取名叫user或自己喜歡的名字,加入群組wheel

設定時區為Asia/Taipei

後續設定選No,然後Shutdown關機。拔出安裝隨身碟。

第一次開機後,沒有圖形介面。輸入root帳號和密碼,登入系統。

執行
ifconfig確認有無連上網路。安裝sudo和vim
pkg install vim sudo- 執行
vim /etc/sudoers指令,將一般使用者加入到sudo
# 找到以下內容並新增
root ALL=(ALL:ALL) ALL
user ALL=(ALL:ALL) ALL- 切換到一般使用者
su user- 將shell改成較為常見的bash
sudo pkg install bash
sudo chsh -s /usr/local/bin/bash root
sudo chsh -s /usr/local/bin/bash user5. 安裝圖形驅動程式#
FreeBSD支援X11與Wayland顯示技術,Wayland是比較現代的顯示技術,可以有效迴避X11畫面撕裂的問題。不過目前FreeBSD的Wayland還不穩定。因此這裡安裝X.org X Server作為主要圖形界面使用,Wayland當作備案。
FreeBSD對「不同顯示卡的雙螢幕」支援似乎很差勁的樣子,也沒有成熟的PRIME能用。我的電腦有內顯和獨顯,我是用Nvidia當作主要顯示卡,所以我不能同時使用兩個顯示卡輸出螢幕,只能一次使用一個GPU。
安裝X.org X Server#
- 安裝X.org:
sudo pkg install xorg- 將使用者加入video群組:
sudo pw groupmod video -m user- 正常來說現代的X.org是不需要手寫xorg.conf設定檔的啦,不過如果你圖形界面出不來就得手動調整。
安裝Intel顯示卡驅動#
這裡示範主顯示卡為Intel的情況。drm-kmod是移植自Linux的DRM驅動,內含i915kms的核心模組,提供modesetting驅動,架構比較現代且通用。至於xf86-video-intel是舊版的X11驅動,提供intel驅動,僅支援Intel 9代以前的CPU內顯。FreeBSD手冊是推薦使用i915kms的通用驅動。
- 安裝適用Intel UHD內顯的drm-kmod模組
sudo pkg install drm-kmod libva-intel-driver
sudo sysrc kld_list+=i915kms可能需要手寫X.org設定檔。用
pciconf -lv | grep -B4 VGA指令查看Intel顯示卡的BusID編輯
/usr/local/etc/X11/xorg.conf.d/20-intel.conf加入以下選項啟用DRM。反畫面撕裂的選項不一定要填。
Section "Device"
Identifier "Intel Graphics"
Driver "modesetting"
BusID "PCI:0:2:0"
# Option "AccelMethod" "uxa" 如果畫面撕裂取消註解這二行
# Option "TearFree" "true"
EndSection安裝Nvidia顯示卡驅動#
這裡示範主顯示卡為Nvidia的情況。
6. 安裝桌面環境#
FreeBSD可以同時安裝多個桌面環境,包括GNOME、KDE Plasma、XFCE、Mate等等,並透過顯示管理器切換。
這裡我優先安裝的是SDDM顯示管理器 + KDE Plasma桌面。
KDE Plasma#
- 現在最新版本是KDE Plasma 6了。安裝以下套件,會自動安裝X.Org、Wayland、XWayland、PulseAudio、SDDM等依賴套件
sudo pkg install kde
sudo pkg install plasma6-sddm-kcm sddm
sudo pkg install wayland seatd- 設定KDE Plasma桌面開機需要自動啟動的服務,包括SDDM
sudo sysrc dbus_enable="YES"
sudo sysrc hald_enable="YES"
sudo sysrc sddm_enable="YES"
sudo sysrc seatd_enable="YES"- 設定開機載入所有可用的音訊驅動。切換播放音訊輸出的程式交給PulseAudio管理就可以了
sudo sysrc snd_driver_load="YES"- 依照KDE套件維護者建議,調整以下數值,設定開機自動套用,提升網路性能
echo "net.local.stream.recvspace=65536" | sudo tee -a /boot/loader.conf
echo "net.local.stream.sendspace=65536" | sudo tee -a /boot/loader.conf重開機。
SDDM應該會自動啟動,在SDDM左下角選單選取Plasma X11,登入桌面。如果想嘗試最新技術,可以選擇Plasma Wayland。
XFCE#
- 安裝XFCE桌面與LightDM
sudo pkg install xfce xfce4-goodies lightdm lightdm-gtk-greeter- 設定開機啟動服務,包括LightDM
sudo sysrc dbus_enable="YES"
sudo sysrc hald_enable="YES"
sudo sysrc lightdm_enable="YES"- 設定開機載入所有可用的音訊驅動。切換播放音訊輸出的程式交給PulseAudio管理就可以了
sudo sysrc snd_driver_load="YES"7. 設定中文化與安裝Fcitx5輸入法#
- 安裝Noto字體以支援多國語言。這會把全部語言的字體拉進來,套件很肥。如果只要正體中文那就
noto-sans-tc。
sudo pkg install noto- 編輯
~/.profile,設定系統語言為正體中文
export LANG=zh_TW.UTF-8
export MM_CHARSET=zh_TW.UTF-8- 設定開機啟動的SDDM語言為正體中文:
sudo sysrc sddm_lang="zh_TW.UTF-8"- 輸入法我選Fcitx5,提供多種語言的輸入框架,它對Wayland支援比較好,且支援簡繁轉換。用以下指令安裝Fcitx5輸入法、新酷音注音輸入法、拼音輸入法:
sudo pkg install fcitx5 \
fcitx5-gtk-common fcitx5-gtk3 fcitx5-gtk4 \
fcitx5-qt-common zh-fcitx5-chewing zh-fcitx5-chinese-addons- 編輯
~/.profile,加入以下環境變數,指定在GTK與QT程式使用Fcitx5輸入法。
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export SDL_IM_MODULE=fcitx
export GLFW_IM_MODULE=ibus- 如果輸入法沒有在登入桌面後自動啟動,將Desktop Entry加入到XDG Autostart目錄:
mkdir -p ~/.config/autostart/
cp /usr/local/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/- 如果要在KDE 6 Wayland使用Fcitx5,還需要開啟Plasma系統設定 → 鍵盤 → 虛擬鍵盤,選取虛擬輸入法為Fcitx5。
8. 啟用PF防火牆#
- 來自OpenBSD的防火牆方案。設定開機啟動PF防火牆:
sudo sysrc pf_enable=yes
sudo sysrc pflog_enable=yes用
ifconfig指令列出所有網路介面編輯
/etc/pf.conf設定防火牆規則規則如下,拒絕所有連入連線,但開放SSH
ext_if = "re0" # 輸入有線網路的介面
set block-policy drop
set skip on lo
pass out on $ext_if proto { tcp, udp, icmp } from any to any keep state
pass in on $ext_if proto tcp from any to any port 22 keep state- 套用規則
sudo pfctl -F all -f /etc/pf.conf9. 常用工具與系統調整#
- 設定Avahi與nssswitch,啟用mDNS,讓電腦可以使用
*.local的網域登入
sudo pkg install avahi-app nss_mdns
sudo sysrc avahi_daemon_enable="YES"
grep -q '^hosts:.*\<mdns\>' /etc/nsswitch.conf || sudo sed -i "" 's/^hosts: .*/& mdns/' /etc/nsswitch.conf- 設定開機載入FUSE,允許一般使用者掛載硬碟
echo 'fusefs_load="YES"' | sudo tee -a /boot/loader.conf
echo 'vfs.usermount=1' | sudo tee -a /etc/sysctl.conf- 啟用電源管理程式powerd,設定讓CPU自動依照需求調節系統效能:
sudo sysrc powerd_enable="YES"
sudo sysrc powerd_flags="-a hiadaptive -i 25 -r 85 -N"10. FreeBSD如何安裝軟體#
優先使用pkg install指令安裝軟體。不要使用桌面環境的應用商店前端,像KDE Discover,因為那需要PackageKit,但這個工具在FreeBSD不可用。因此還是以打指令安裝為主。
FreeBSD套件庫提供預先編譯好的二進位套件(Packages),這些套件可從http://pkg.freebsd.org取得。
使用者也可以使用Ports,手動複製軟體原始碼下來,依照自己的需求編譯修改。你可以到FreshPorts查看最新版本的套件提交狀況。通常,Ports的軟體成熟之後,FreeBSD官方就會提供二進位套件讓你直接裝。
11. FreeBSD系統管理指令#
詳細內容請多參閱FreeBSD Handbook。
一般使用者執行以下指令記得加上sudo。
使用service <服務名稱> start控制服務啟動。也可以使用service <服務名稱> enable設定開機啟動服務,它會自動編輯/etc/rc.conf檔案。
用vim編輯/etc/rc.conf這個檔案,用於控制開機載入的核心模組,以及啟動哪些服務。
使用sysrc指令啟用開機服務,它會自動編輯/etc/rc.conf檔案的內容。
kld_list+=指令新增開機載入核心模組,會自動編輯/etc/rc.conf。
/boot/loader.conf與/etc/sysctl.conf這兩個檔案用於控制開機載入的核心模組與服務,可以設定參數。
FreeBSD系統軟體的設定檔應該放到/etc,至於使用者安裝的軟體的設定檔應該放到/usr/local/etc/或者該名使用者的家目錄。
如果弄壞系統無法開機,就用LiveUSB,或者在開機時按2,進入Single User Mode,登入root帳號,執行mount -u /再救援系統。
12. 設定Linuxulator相容層#
類似Wine的東西,允許在FreeBSD系統執行Linux的二進位檔。
非必要步驟,但有些軟體沒有原生FreeBSD套件,拿Linux的過來用比較方便,這個時候Linuxulator會很有用。
參考:FreeBSD跑Linux程式的方法:Linuxulator + Jail
FreeBSD作為桌面系統的使用評價#
我大約從2022年起斷斷續續的嘗試FreeBSD系統。
身為Linux的使用者,我免不了會帶入Linux的視角去比較FreeBSD。FreeBSD的操作難度比Linux還要高,不過架構也相對單純。現在依然很好的保持了Unix哲學的設計精神。使用的時候要多讀手冊。
FreeBSD的軟體選擇是以開源軟體為主(我不講自由軟體,因為FreeBSD主要都是收BSD授權而非GPL授權)。部分軟體是從Linux移植過來的,也有BSD團隊自己的發明。
FreeBSD使用的是Unix-like通行的桌面。遵守FreeDesktop標準真是太好了,Linux桌面很多觀念都能借過來用,例如用fontconfig調整中文字型偏好,只是有些系統路徑不一樣罷了。
FreeBSD的文件非常consistent,多年發展下來沒有太大變化,幾年前的教學依然適用。
但,FreeBSD套件缺的可多了,一堆Linux套件沒有BSD版,不然就是安裝後顯示套件維護者失蹤了。太多程式的圖形版沒有移植。例如KDE協助掛載檔案系統的kio實作不完全,就連MTP都要用指令掛,只好用命令行或TUI。
瀏覽器缺乏DRM是個問題,Firefox和Chromium都沒有,更沒有Google Chrome原生套件。致使單純以瀏覽器為主的作業環境也會遇到許多問題,得手動安裝DRM套件解決。
Linux在多年的社群努力成果下,其實很多東西都自動化,開箱即用了。Systemd這類標準化措施功不可沒。在2026年用FreeBSD當桌面系統,好比在2000年代出頭使用Linux。根本就是瘋狂宇宙,只差沒有編譯XFree86。許多在Linux簡單就設定好的東西,FreeBSD得多做一些步驟。現在我才知道,Linux早就克服的X.org多螢幕自動偵測設定,到了FreeBSD還得要手動配置!Linux有的,FreeBSD很多都沒有移植過來,在作為桌面系統的角色上,FreeBSD落後Linux好幾年。硬體支援度差勁也就算了,軟體東西也缺很多。
總而言之,當作桌面系統來說非常challenging。


