Menggunakan FreeBSD 15 di Laptop
(sacredheartsc.com)- FreeBSD 15 telah meningkat berkat pkgbase, perbaikan driver LinuxKPI, dan proyek dukungan laptop, hingga layak digunakan sebagai lingkungan desktop utama, melampaui citranya sebagai OS server
- Setelah percobaan dengan FreeBSD 14, dukungan KDE Plasma 6, Wayland, dan Intel WiFi telah ditambahkan sehingga pada ThinkPad X1 Carbon hampir semua fungsi berjalan baik kecuali Bluetooth
- Instalasi dilakukan dengan asumsi menggunakan image memstick FreeBSD 15.1, boot UEFI, ZFS (GPT), dan memilih jenis instalasi base system
Packages - Penyiapan lingkungan desktop memerlukan langkah bertahap mulai dari driver, penghematan daya, izin devfs, kompatibilitas Linux, D-Bus, Ly, KDE, PipeWire, hingga akselerasi video perangkat keras
- Pada beberapa lingkungan laptop masih ada masalah yang sudah diketahui seperti masalah WiFi setelah bangun dari mode tidur, Intel graphics yang macet, dan proses yang tertinggal setelah logout KDE, masing-masing memerlukan solusi sementara
Gambaran umum
- FreeBSD 15 menunjukkan peningkatan besar untuk lingkungan desktop laptop berkat pkgbase, perbaikan driver LinuxKPI, dan peluncuran Laptop Support and Usability Project
- Dibanding saat mencoba desktop dengan FreeBSD 14, kini ada porting KDE Plasma 6, Wayland yang berfungsi, dan dukungan penuh untuk Intel WiFi
- Pada ThinkPad X1 Carbon, daya tahan baterai sekitar 6~7 jam, dan selain Bluetooth yang belum dicoba, fungsi perangkat berjalan dengan baik
- Melalui Laptop Compatibility Matrix yang baru, pengguna dapat memeriksa apa saja yang berfungsi pada perangkat keras yang mereka miliki
- Panduan ini mengasumsikan penggunaan grafis Intel dan chipset nirkabel Intel, sementara konfigurasi perangkat keras lain berada di luar pengalaman langsung penulis
Instalasi
- Unduh image memstick FreeBSD 15.1 lalu tulis ke USB stick dengan
dd- Contoh penggunaan: unduh image dengan
curl -OJ, lalu jalankansudo dd if=FreeBSD-15.1-RELEASE-amd64-memstick.img of=/dev/sdX bs=1M conv=sync
- Contoh penggunaan: unduh image dengan
- Wizard instalasinya sederhana; atur sistem agar boot dengan UEFI dan pilih tata letak disk
ZFS (GPT) - Pada tahap yang menanyakan jenis instalasi base system, pilih
Packagesuntuk menggunakan pkgbase yang baru - Jika SSH diaktifkan selama instalasi, Anda bisa melakukan salin-tempel melalui sesi SSH alih-alih mengetik langsung di konsol virtual
- Setelah reboot, login ke akun root dengan kata sandi yang ditetapkan saat instalasi
Menggunakan paket terbaru
- Pohon ports FreeBSD memiliki dua branch:
quarterlydanlatest quarterlymembekukan snapshot pohon ports empat kali setahun, dan di antaranya paket pihak ketiga hanya menerima patch keamanan pentinglatestmenggunakan model rolling release, sehingga pembaruan paket utama diterima segera setelah tersedia- Pengaturan default adalah repositori
quarterly; untuk beralih kelatest, buat file override di/usr/local/etc/pkg/repos - Atur URL repositori menjadi
pkg+https://pkg.FreeBSD.org/${ABI}/latestdankmods_latest_${VERSION_MINOR}, lalu jalankanpkg updatedanpkg upgrade
Perangkat keras, driver, dan penyetelan
-
Penyesuaian bootloader
- Di
/boot/loader.conf, Anda dapat mengatur waktu tunggu bootloader, menonaktifkan destructive dtrace, serta memperbesar batas shared memory dan proses - Pada sistem yang mendukung Intel Speed Shift,
machdep.hwpstate_pkg_ctrl="0"dapat digunakan agar setiap inti mengatur status dayanya sendiri - Penghematan daya PCI,
soreceive()yang lebih cepat, penambahan panjang antrean jaringan, dan peningkatan timeout transaksi ZFS dapat diatur agar sesuai untuk penggunaan desktop dan laptop
- Di
-
Modul kernel
- Tambahkan
cpuctldancoretempkekld_listuntuk mengaktifkan pemeriksaan informasi CPU dan suhu - Algoritme kontrol kemacetan H-TCP ditujukan untuk kinerja yang lebih baik pada jaringan yang cepat dan berjarak jauh seperti internet, dan dapat digunakan melalui modul
cc_htcp - Pada ThinkPad, modul
acpi_ibmdiperlukan agar tombol-tombolnya berfungsi
- Tambahkan
-
Penyesuaian sysctl
- Di
/etc/sysctl.conf, Anda dapat menerapkan pengaturan keamanan seperti pembatasan perubahan keymap, menonaktifkan core dump, pengaturan terkait ASLR, memblokir ICMP redirect, dan menonaktifkan IP redirect - Beberapa panduan keamanan merekomendasikan W^X, pemeriksaan hardlink, dan pembatasan melihat proses milik pengguna lain, tetapi pengaturan tersebut dikomentari karena dinilai lebih banyak menimbulkan masalah
- Pengaturan performa jaringan memperbesar buffer dan antrean TCP agar cocok untuk koneksi dengan RTT lebih besar, dengan asumsi bahwa nilai bawaan dioptimalkan untuk latensi LAN
- Optimalisasi desktop mencakup pencegahan swap untuk shared memory, peningkatan ambang preemption scheduler, dan mengizinkan mount oleh pengguna biasa
- Untuk penghematan daya laptop,
hw.snd.latency=7digunakan untuk menurunkan responsivitas audio
- Di
-
WiFi
- Dukungan WiFi jauh lebih baik daripada sebelumnya berkat LinuxKPI dan driver
iwlwifiyang baru - Dukungan kartu nirkabel dapat diperiksa pada daftar chipset yang didukung
iwlwifi, dan firmware yang diperlukan dipasang denganfwget -v - Untuk memakai
iwlwifibaru pada kartu lama, Anda mungkin perlu mencegah driveriwmlama dimuat dengandevmatch_blocklist="if_iwm" - 802.11n dan 802.11ac dinonaktifkan secara default, sehingga perlu pengaturan
compat.linuxkpi.iwlwifi_11n_disable="0"dancompat.linuxkpi.iwlwifi_disable_11ac="0" - Jika perangkat
wlan0dibuat dirc.confdanWPA DHCP powersavediatur, makawpa_supplicant(8)akan mengelola jaringan WiFi - Pengelolaan jaringan dapat dilakukan dengan mengedit langsung
wpa_supplicant.conf(5)atau memakai antarmuka grafisnetworkmgr networkmgrmemerlukan hak superuser, dan aturan sudoers dapat ditambahkan agar grupoperatordapat menjalankannya tanpa kata sandi- Driver
iwlwifidi FreeBSD 15.1-RELEASE memiliki masalah suspend/resume yang sudah diketahui
- Dukungan WiFi jauh lebih baik daripada sebelumnya berkat LinuxKPI dan driver
-
CPU dan grafis
- Microcode CPU terbaru diatur agar dimuat saat boot dari
loader.confsetelah memasang paketcpu-microcode - Penghematan daya CPU memakai
performance_cx_lowest=Cmaxdaneconomy_cx_lowest=Cmaxuntuk mengaktifkan C-state yang lebih rendah sehingga baterai lebih awet dan panas berkurang - Pada prosesor Intel modern, menjalankan
powerd(8)tidak lagi diperlukan - Driver grafis Intel diatur agar memuat
i915kmssaat boot setelah memasangdrm-kmod
- Microcode CPU terbaru diatur agar dimuat saat boot dari
-
Izin perangkat dan kompatibilitas
- Pada sistem desktop, tambahkan aturan devfs agar pengguna biasa dapat mengendalikan GPU, video, backlight, dan perangkat USB
- Di
/etc/devfs.rules, tentukan izin dan grup untukdrm/*,video*,backlight/*, danusb/*, lalu seteldevfs_system_ruleset=localrules - Menjalankan biner Linux menggunakan Linuxulator dengan mengaktifkan
linux_enable=YES, dan bila perlu me-mount devfs, tmpfs, fdescfs, linprocfs, dan linsysfs di bawah/compat/linux - Muat modul kernel
fusefsuntuk me-mount filesystem seperti exFAT atau NTFS - Dukungan webcam dapat diharapkan dengan memasang
webcamd,v4l-utils,v4l_compat, dan mengaturwebcamd_enable=YES - Printer memerlukan CUPS dan
cups-filters, dancups-files.confdimodifikasi agar grupoperatordapat mengonfigurasi printer - GUI konfigurasi CUPS dapat diakses di browser melalui
localhost:631
-
Daya laptop dan backlight ThinkPad
- Pada laptop,
usbconfigdanpower_savedijalankan dari/etc/rc.localuntuk menempatkan perangkat USB yang tidak aktif ke mode hemat daya - Agar tombol backlight ThinkPad berfungsi, diperlukan pemuatan modul
acpi_ibm, pengaturandev.acpi_ibm.0.handlerevents="0x10 0x11", dan aturandevd - Skrip
/usr/local/libexec/thinkpad-brightnessmenaikkan atau menurunkan kecerahan dalam langkah 2, 5, atau 10 tergantung kecerahan saat ini - Berikan izin eksekusi pada skrip dan mulai ulang
devduntuk menerapkan perubahan - Setelah konfigurasi perangkat keras dan driver selesai, lakukan reboot untuk memastikan perubahan tersebut tidak merusak sistem
- Pada laptop,
Firewall
- Konfigurasinya ditujukan agar firewall berjalan di semua sistem, dan contoh dasarnya memblokir semua koneksi masuk kecuali SSH
- Di
/etc/pf.conf, ganti antarmukaegressdengan nama antarmuka jaringan yang sebenarnya dan izinkan hanya port SSH untuk koneksi TCP masuk - Izinkan rentang UDP
1024:65535untuk panggilan suara dan video - Setel
pf_enable=YESdan jalankan firewall denganservice pf start
Menonaktifkan skrip periodic
- FreeBSD secara bawaan menyertakan banyak skrip periodic(8) yang memindai hard disk, terhubung ke internet, dan mengirim email
- Daftar lengkapnya dapat dilihat di
periodic.conf(5) - Bagi pengguna desktop biasa, hanya sebagian tugas yang berguna, dan sebagian besar dapat dinonaktifkan dengan aman
- Contoh konfigurasinya mengubah banyak tugas keluaran cadangan, laporan status, antrean email, dan pemeriksaan keamanan terkait daily, weekly, monthly, serta security menjadi
NO
Akun pengguna
- Buat akun pengguna lokal dan tambahkan ke grup
operator,video, danwheel operatordiperlukan untuk konfigurasi perangkat dan printer, danvideodiperlukan untuk akses ke perangkat GPU- Grup
wheeldigunakan untuk menjalankan perintah dengan hak root melaluisudo - Setelah memasang
sudo, setel%wheel ALL=(ALL:ALL) ALLdi file sudoers
Locale, waktu, SSH, sertifikat
-
Locale
- Variabel lingkungan shell login diatur di
login.conf(5), dengan menambahkancharset=UTF-8danlang=en_US.UTF-8 - Untuk menerapkan perubahan, bangun ulang basis data login dengan
cap_mkdb /etc/login.conf - Untuk shell non-login, atur
LANGdanCHARSETdi/etc/profile.d/locale.sh
- Variabel lingkungan shell login diatur di
-
NTP dan zona waktu
- Untuk menjaga jam sistem tetap mutakhir, diperlukan ntpd(8)
ntp.confberisi server NTP pool FreeBSD dan pengaturan pembatasan akses- Jika zona waktu tidak diatur saat instalasi, buat symbolic link dari
/usr/share/zoneinfo/America/New_Yorkke/etc/localtime
-
openssh-portable
sshdi base system FreeBSD memiliki banyak patch yang diterapkan, dan versi murniopenssh-portabledari ports lebih disukai- File konfigurasi
sshdpada versi baru berada di bawah/usr/local/etc/ssh - Nonaktifkan
sshdbawaan di/etc/rc.confdan jalankan layanan baru denganopenssh_enable=YES - Perintah
sshakan tetap menggunakan/usr/bin/sshdari base system kecuali$PATHdiubah - Agar versi ports diprioritaskan untuk semua pengguna, ubah urutan
pathdilogin.confsupaya/usr/localberada lebih depan lalu bangun ulang basis datanya
-
Terminal, sertifikat, D-Bus
- Basis data
termcap(5)FreeBSD lebih sederhana dibanding yang umum di Linux, dan warna terang mungkin tidak dirender di terminal keluarga XTerm - Masalah ini bisa diperbaiki dengan memasang
terminfo-db - FreeBSD secara default hanya memercayai sebagian otoritas sertifikat standar, jadi pasang bundel CA lengkap Mozilla yaitu
ca_root_nss - KDE dan banyak fungsi desktop modern memerlukan D-Bus, yang dapat diaktifkan dengan
dbus_enable=YESdanservice dbus start
- Basis data
Display manager Ly
- Biasanya sesi desktop dimulai dengan display manager grafis seperti SDDM, tetapi pada saat penulisan di FreeBSD ini belum bisa memulai sesi Wayland secara stabil
- SDDM hampir berfungsi, tetapi ada bug di mana beberapa kombinasi tombol mengakhiri sesi
- Pendekatan saat ini adalah memulai sesi Wayland dengan Ly display manager berbasis konsol
- Ly tidak berjalan sebagai daemon; di
/etc/ttys, konsol virtual dikonfigurasi untuk menjalankan/usr/local/bin/ly_wrapper - Tambahkan entri Ly ke
/etc/gettytab, lalu reboot atau segarkan init dengankill -HUP 1agar prompt login Ly muncul - Di
config.ini, penggunaan sesi Wayland bisa dipaksakan denganxinitrc=null,xsessions=null,shell=false,waylandsessions=/usr/local/share/wayland-sessions
Font, KDE, aplikasi desktop
- Agar situs web dirender dengan benar, pasang font standar seperti Cantarell, Droid, Inconsolata, Noto, Noto Emoji, Roboto, Ubuntu, dan webfonts
- Untuk KDE dan komponen desktop, pasang
kde,kdegraphics,kdemultimedia,kdeutils,phonon-mpv,pipewire,pulseaudio,wireplumber, dan lainnya - Contoh aplikasi desktop meliputi Chromium, Firefox, LibreOffice, Thunderbird, Signal Desktop, Wine, Emacs Wayland, Git, mpv, tmux, dan sebagainya
- Beberapa fungsi desktop bergantung pada PipeWire, dan pratinjau taskbar tampaknya tidak berfungsi jika PipeWire tidak berjalan
- PipeWire dapat dijalankan otomatis dengan file autostart
/usr/local/etc/xdg/autostart/pipewire.desktop - Untuk menyimpan passphrase kunci SSH di
kwallet, eksporSSH_ASKPASS_REQUIRE=preferdanSSH_ASKPASS=/usr/local/bin/ksshaskpassdi lingkungan KDE
Akselerasi video perangkat keras
- Dengan memasang paket yang sesuai, akselerasi video perangkat keras dapat digunakan pada sebagian besar GPU Intel
- Akselerasi video perangkat keras memberikan pemutaran video yang lebih mulus dan daya tahan baterai yang lebih baik
- Paket yang diperlukan adalah
libva-intel-media-driver,libva-utils,libvdpau-va-gl, danvdpauinfo - Pengguna harus dapat mengakses GPU melalui perangkat
drm, sehingga harus masuk ke grupvideo - Beberapa aplikasi mungkin memerlukan pengaturan tambahan untuk memanfaatkan offload perangkat keras
-
Chromium Browser
- Di FreeBSD, decoding video perangkat keras Chromium dulu memerlukan banyak flag command line
- Pada saat penulisan, decoding video perangkat keras Chromium berfungsi tanpa flag tambahan
-
MPV
- Jika
hwdec=vaapi-copy,vo=gpu-next,vd-lavc-dr=yes, danaudio-channels=stereodiatur dimpv.conf, video HD dapat diputar dengan penggunaan CPU rendah
- Jika
Masalah yang Diketahui dan Solusinya
-
Laptop langsung masuk mode tidur lagi saat tutup dibuka
- Saat KDE berjalan, desktop environment seharusnya mendeteksi event penutup ACPI dan menangani suspend serta resume
- Pada ThinkPad, ada bug yang menyebabkan laptop langsung masuk mode tidur lagi begitu tutup dibuka
- Solusinya adalah menonaktifkan aksi sakelar tutup di pengaturan daya KDE, lalu mengonfigurasi native suspend saat tutup ditutup dengan
devd - Skrip
/usr/local/libexec/kde-suspendmengunci layar pengguna login KDE, menunggu 0,5 detik, lalu masuk ke mode tidur S3 denganacpiconf -s3 - Aturan
/etc/devd/kde-suspend.confmenjalankan skrip tersebut pada event ACPI Lid0x00
-
Proses tetap berjalan setelah logout
- Di FreeBSD, setelah logout dari sesi KDE, beberapa proses bisa terus berjalan tanpa batas
- Chromium kadang masuk ke kondisi yang menghabiskan satu inti CPU 100%
- Pada distribusi Linux berbasis systemd,
systemd-logindakan menghentikan proses yang terkait dengan sesi pengguna, tetapi asumsi yang sama tidak berlaku di lingkungan KDE FreeBSD - Dengan memanfaatkan fitur skrip cleanup saat logout di KDE, proses seperti
baloo_file,chrome,dirmngr,pipewire,signal-desktop, danwireplumberdihentikan - Ini diterapkan dengan membuat
/usr/local/etc/xdg/plasma-workspace/shutdown/cleanup.shdapat dieksekusi
-
Peralihan pengguna tidak berfungsi
- Peralihan pengguna desktop di FreeBSD rusak karena bug ConsoleKit2 yang sudah lama ada
- Agar pengguna tidak mencoba memakainya, diatur
action/start_new_session=falsedanaction/switch_user=falsedalam/usr/local/etc/xdg/kdeglobals
-
WiFi rusak setelah bangun dari mode tidur
- FreeBSD 15.1-RELEASE memiliki bug iwlwifi yang membuat WiFi rusak setelah bangun dari mode tidur
- Solusinya adalah menghentikan interface
wlan0sebelum suspend lalu menyalakannya kembali setelah resume - Skrip
/usr/local/etc/rc.d/iwlwifi_fixmengaitkanservice netif stop wlan0danservice netif start wlan0ke perintah suspend/resume - Skrip tersebut diaktifkan dengan memberi izin eksekusi dan mengatur
iwlwifi_fix_enable="YES" - Perbaikannya sudah di-commit ke 15-STABLE, sehingga solusi ini mungkin tidak lagi diperlukan saat FreeBSD 15.2 keluar
-
Audio laptop macet
- Beberapa laptop memiliki bug i915 yang menyebabkan hard lockup
- Masalah ini disertai error seperti
hdac0: Command timeout 2didmesg - Solusinya adalah mengatur loader tunable
compat.linuxkpi.i915_disable_power_well=0
-
Grafis macet dan GPU hang
- Di FreeBSD 15.1, driver DRM bawaan naik dari 6.6 ke 6.12
- Versi baru ini tampaknya memiliki bug yang menyebabkan grafis macet dan pesan
GPU HANGdidmesgpada beberapa chip Intel - Solusi stabilnya adalah tetap menggunakan versi sebelumnya,
drm-66-kmod
-
Tidak ada batas waktu idle konsol
- FreeBSD beberapa tahun lalu beralih dari driver konsol lama
syscons(4)ke drivervt(4)yang native UEFI - Konsol
vttidak mendukungblanktime, sehingga praktis tidak ada cara untuk mematikan layar bila tidak ada sesi X11 atau Wayland - Karena Ly berjalan di konsol TTY, layar akan tetap menyala saat tidak ada yang login
- Pada laptop pengguna tunggal ini bukan masalah besar, tetapi pada workstation multi-pengguna prompt login bisa menyebabkan burn-in pada panel LCD
- FreeBSD beberapa tahun lalu beralih dari driver konsol lama
-
Ikon aplikasi GTK4 hilang
- Aplikasi GTK4 yang digunakan adalah klien XMPP Dino IM, dan banyak ikon tidak dirender serta pengaturan font KDE juga tidak diikuti
- Masalah langsung teratasi setelah portals dinonaktifkan
- Solusinya adalah mengatur
export GDK_DEBUG=no-portals
-
Audio tersendat saat diputar
- Pulseaudio kadang menimbulkan bunyi crackling dan skipping saat memutar file audio
- Masalah teratasi dengan menaikkan nilai default di
daemon.confmenjadidefault-fragments = 8dandefault-fragment-size-msec = 5
1 komentar
Komentar Lobste.rs
Tulisan ini patut diapresiasi, tetapi tampaknya masih ada terlalu banyak langkah manual untuk hal-hal yang seharusnya ditangani installer
Belakangan ini banyak upaya dicurahkan untuk mem-port driver Wi-Fi dan grafis dari Linux, sehingga jauh lebih banyak orang bisa memakainya di laptop
Sekarang kondisinya bisa dibilang mirip Linux era 2000-an; masih banyak pekerjaan tersisa, tetapi pengerjaannya sedang berlangsung di garis depan
“Kalau tidak melakukan sekitar dua belas langkah instalasi sendiri, apa mesin itu benar-benar milik saya?” rasanya /s tapi juga bukan /s
Komentar ini sedang saya tulis di Thinkpad T14 Gen 1 bekas yang saya beli agar bisa menjalankan OpenBSD tanpa terlalu banyak repot
Saya belum mencoba FreeBSD, tetapi kemungkinan akan mencobanya, dan NAS rakitan saya sendiri menjalankan FreeBSD 15 dengan pool ZFS
Pekerjaan kompatibilitas laptop dari FreeBSD Foundation jelas sangat patut dihargai
Untuk saat ini nuansanya memang seperti Linux era 2000-an, tetapi seperti kata tulisan aslinya, ini adalah “pekerjaan yang perlu dilakukan, dan sedang dikerjakan di garis depan”
Sejak akhir 2010-an saya memakai FreeBSD sebagai daily driver di laptop yang dipilih dengan sangat hati-hati
Waktu itu benar-benar ada banyak hal yang harus diutak-atik dalam konfigurasi desktop FreeBSD, jadi saya membuatnya menjadi skrip, memasukkannya ke repositori Git, lalu terus menyempurnakannya
Misalnya mengganti StumpWM ke i3 sambil mengantisipasi situasi saat nanti harus berpindah dari Wayland ke Sway
Sekarang installer desktop sedang dikembangkan, jadi tampaknya bisa menjawab kritik valid dari @technomancy, dan kemungkinan juga akan membuat banyak skrip konfigurasi saya menjadi tidak berguna lagi
https://wiki.freebsd.org/desktop-installer
Senang membaca bagian yang mengatakan, “Berkat LinuxKPI dan driver iwlwifi baru, masa ketika dukungan Wi-Fi buruk sebagian besar sudah berlalu. Jika itu kartu Intel yang umum, kemungkinan besar akan langsung berfungsi”
Saya juga pernah mencoba FreeBSD 13/14 di desktop, tetapi karena keterbatasan driver, performanya terlalu lambat sehingga sulit dipakai terus
Senang mendengar keterbatasan ini akan hilang, dan lain kali kalau saya ingin mencoba sesuatu yang baru di desktop, saya berencana memberi FreeBSD kesempatan lagi
Yang menarik, driver Wi-Fi RTL8812 di FreeBSD ternyata sudah ada sejak lama, kalau tidak salah lebih dari 10 tahun, sedangkan di Linux baru masuk sekitar kernel 6.13
Saya kurang tahu kenapa di Linux driver itu begitu lama tetap menjadi modul di luar tree. Mungkin karena masalah lisensi