1 điểm bởi GN⁺ 11 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • FreeBSD 15 đã được cải thiện nhờ pkgbase, các cải tiến driver LinuxKPI và dự án hỗ trợ laptop, đến mức có thể dùng làm môi trường desktop chính chứ không chỉ là OS cho máy chủ
  • Sau lần thử với FreeBSD 14, hỗ trợ KDE Plasma 6, Wayland và Intel WiFi đã được bổ sung, nên trên ThinkPad X1 Carbon hầu hết tính năng đều hoạt động tốt ngoại trừ Bluetooth
  • Việc cài đặt được thực hiện với giả định dùng image memstick FreeBSD 15.1, khởi động UEFI, ZFS (GPT) và chọn kiểu cài base system là Packages
  • Việc thiết lập môi trường desktop cần thực hiện theo từng bước gồm driver, tiết kiệm điện, quyền devfs, tương thích Linux, D-Bus, Ly, KDE, PipeWire và cả tăng tốc video phần cứng
  • Trong một số môi trường laptop vẫn còn các vấn đề đã biết như lỗi WiFi sau khi khôi phục từ chế độ ngủ, treo đồ họa Intel, hoặc tiến trình còn sót lại sau khi đăng xuất KDE, và mỗi trường hợp đều cần cách обход riêng

Tổng quan

  • FreeBSD 15 cho thấy cải thiện lớn trong môi trường desktop trên laptop nhờ pkgbase, các cải tiến driver LinuxKPI và việc ra mắt Laptop Support and Usability Project
  • So với thời điểm từng thử desktop với FreeBSD 14, việc port KDE Plasma 6, Wayland hoạt động và Intel WiFi được hỗ trợ đầy đủ là những thay đổi đáng kể
  • Trên ThinkPad X1 Carbon, thời lượng pin vào khoảng 6–7 giờ, và ngoài Bluetooth chưa thử thì các chức năng phần cứng đều hoạt động tốt
  • Có thể dùng Laptop Compatibility Matrix mới để kiểm tra phần cứng mình đang có hỗ trợ được những gì
  • Hướng dẫn này giả định sử dụng đồ họa Intel và chipset không dây Intel; các cấu hình phần cứng khác nằm ngoài phạm vi trải nghiệm trực tiếp

Cài đặt

  • Tải image memstick FreeBSD 15.1 và ghi vào USB bằng dd
    • Ví dụ, tải image bằng curl -OJ rồi chạy sudo dd if=FreeBSD-15.1-RELEASE-amd64-memstick.img of=/dev/sdX bs=1M conv=sync
  • Trình cài đặt khá đơn giản; hệ thống được cấu hình khởi động UEFI và bố cục đĩa chọn ZFS (GPT)
  • Ở bước hỏi kiểu cài đặt base system, chọn Packages để dùng pkgbase mới
  • Nếu bật SSH trong quá trình cài đặt, bạn có thể sao chép và dán qua phiên SSH thay vì nhập trực tiếp trên console ảo
  • Sau khi khởi động lại, đăng nhập vào tài khoản root bằng mật khẩu đã đặt trong lúc cài đặt

Dùng gói mới nhất

  • Cây ports của FreeBSD có hai nhánh: quarterlylatest
  • quarterly cố định cây ports theo snapshot bốn lần mỗi năm, và trong khoảng giữa các lần đó các gói bên thứ ba chỉ nhận các bản vá bảo mật quan trọng
  • latest là mô hình rolling release, nhận các bản cập nhật gói lớn ngay khi chúng sẵn sàng
  • Cấu hình mặc định là kho quarterly; để chuyển sang latest, tạo file override trong /usr/local/etc/pkg/repos
  • Đặt URL kho thành pkg+https://pkg.FreeBSD.org/${ABI}/latestkmods_latest_${VERSION_MINOR}, sau đó chạy pkg updatepkg upgrade

Thiết bị phần cứng, driver, tinh chỉnh

  • Điều chỉnh bootloader

    • Trong /boot/loader.conf có thể thiết lập thời gian chờ của bootloader, vô hiệu hóa destructive dtrace, và tăng giới hạn bộ nhớ dùng chung cùng số tiến trình
    • Các hệ thống hỗ trợ Intel Speed Shift có thể dùng machdep.hwpstate_pkg_ctrl="0" để cho từng lõi tự thiết lập trạng thái nguồn riêng
    • Có thể cấu hình tiết kiệm điện PCI, soreceive() nhanh, tăng độ dài hàng đợi mạng, và tăng timeout giao dịch ZFS để phù hợp hơn với nhu cầu dùng desktop và laptop
  • Mô-đun kernel

    • Thêm cpuctlcoretemp vào kld_list để bật xem thông tin CPU và nhiệt độ
    • Thuật toán điều khiển tắc nghẽn H-TCP hướng tới hiệu năng tốt hơn trên các mạng nhanh và khoảng cách xa như Internet, và có thể dùng qua mô-đun cc_htcp
    • Trên ThinkPad, cần mô-đun acpi_ibm để các nút bấm hoạt động
  • Điều chỉnh sysctl

    • Trong /etc/sysctl.conf có thể áp dụng các thiết lập bảo mật như hạn chế thay đổi keymap, vô hiệu hóa core dump, các thiết lập liên quan đến ASLR, chặn ICMP redirect và vô hiệu hóa IP redirect
    • Một số hướng dẫn bảo mật khuyên dùng W^X, kiểm tra hardlink, và hạn chế xem tiến trình của người dùng khác, nhưng ở đây các thiết lập đó được comment lại vì cho rằng chúng gây ra nhiều vấn đề hơn
    • Các thiết lập hiệu năng mạng tăng bộ đệm TCP và hàng đợi để phù hợp với các kết nối có RTT lớn hơn, dựa trên giả định rằng giá trị mặc định được tối ưu cho độ trễ LAN
    • Các tối ưu cho desktop gồm ngăn bộ nhớ dùng chung bị swap, tăng ngưỡng preemption của scheduler, và cho phép người dùng thường mount
    • Để tiết kiệm điện trên laptop, dùng hw.snd.latency=7 để giảm độ phản hồi âm thanh
  • WiFi

    • Hỗ trợ WiFi đã cải thiện đáng kể so với trước đây nhờ LinuxKPI và driver iwlwifi mới
    • Kiểm tra card không dây có được hỗ trợ hay không trong danh sách chipset hỗ trợ của iwlwifi, và cài firmware cần thiết bằng fwget -v
    • Để dùng iwlwifi mới trên card cũ, có thể cần chặn nạp driver iwm cũ bằng devmatch_blocklist="if_iwm"
    • 802.11n và 802.11ac mặc định bị vô hiệu hóa, nên cần các thiết lập compat.linuxkpi.iwlwifi_11n_disable="0"compat.linuxkpi.iwlwifi_disable_11ac="0"
    • Tạo thiết bị wlan0 trong rc.conf và đặt WPA DHCP powersave để wpa_supplicant(8) quản lý mạng WiFi
    • Có thể quản lý mạng bằng cách chỉnh trực tiếp wpa_supplicant.conf(5) hoặc dùng giao diện đồ họa của networkmgr
    • networkmgr cần quyền superuser, và có thể thêm quy tắc sudoers để nhóm operator chạy mà không cần mật khẩu
    • Driver iwlwifi trong FreeBSD 15.1-RELEASE có vấn đề đã biết liên quan đến suspend/resume
  • CPU và đồ họa

    • Microcode CPU mới nhất được cài qua gói cpu-microcode, sau đó cấu hình trong loader.conf để nạp khi khởi động
    • Tiết kiệm điện cho CPU dùng performance_cx_lowest=Cmaxeconomy_cx_lowest=Cmax để bật các C-state thấp, giúp giảm hao pin và nhiệt
    • Trên các bộ xử lý Intel mới, không còn cần chạy powerd(8) nữa
    • Driver đồ họa Intel được thiết lập bằng cách cài drm-kmod rồi cấu hình nạp i915kms khi khởi động
  • Quyền thiết bị và khả năng tương thích

    • Trên hệ thống desktop, thêm quy tắc devfs để người dùng thường có thể điều khiển GPU, video, đèn nền và thiết bị USB
    • Trong /etc/devfs.rules, chỉ định quyền và nhóm cho drm/*, video*, backlight/*, usb/*, rồi đặt devfs_system_ruleset=localrules
    • Chạy binary Linux bằng cách bật Linuxulator với linux_enable=YES, và nếu cần thì mount devfs, tmpfs, fdescfs, linprocfs, linsysfs dưới /compat/linux
    • Nạp mô-đun kernel fusefs để mount các hệ thống tệp như exFAT hoặc NTFS
    • Webcam có thể được hỗ trợ bằng cách cài webcamd, v4l-utils, v4l_compat và đặt webcamd_enable=YES
    • Máy in cần CUPS và cups-filters, đồng thời chỉnh cups-files.conf để nhóm operator có thể cấu hình máy in
    • Truy cập GUI cấu hình CUPS tại localhost:631 trong trình duyệt
  • Nguồn điện laptop và đèn nền ThinkPad

    • Trên laptop, trong /etc/rc.local chạy usbconfigpower_save để đưa các thiết bị USB không hoạt động vào trạng thái tiết kiệm điện
    • Để phím đèn nền ThinkPad hoạt động, cần nạp mô-đun acpi_ibm, đặt dev.acpi_ibm.0.handlerevents="0x10 0x11", và thêm quy tắc devd
    • Script /usr/local/libexec/thinkpad-brightness sẽ tăng hoặc giảm độ sáng theo bước 2, 5, 10 tùy theo độ sáng hiện tại
    • Cấp quyền thực thi cho script và khởi động lại devd để áp dụng
    • Sau khi hoàn tất cấu hình phần cứng và driver, hãy khởi động lại để kiểm tra xem các thay đổi có làm hỏng hệ thống hay không

Tường lửa

  • Cấu hình này hướng tới việc bật tường lửa trên mọi hệ thống; ví dụ mặc định sẽ chặn mọi kết nối đến ngoại trừ SSH
  • Trong /etc/pf.conf, thay giao diện egress bằng tên giao diện mạng thực tế và chỉ cho phép cổng SSH nhận kết nối TCP inbound
  • Cho phép dải UDP 1024:65535 để phục vụ gọi thoại và video
  • Đặt pf_enable=YES và khởi động tường lửa bằng service pf start

Vô hiệu hóa script periodic

  • FreeBSD mặc định đi kèm nhiều script periodic(8) quét ổ đĩa, truy cập Internet và gửi email
  • Có thể xem danh sách đầy đủ trong periodic.conf(5)
  • Với người dùng desktop thông thường, chỉ một số tác vụ là hữu ích, còn phần lớn có thể vô hiệu hóa an toàn
  • Cấu hình ví dụ chuyển hàng loạt các tác vụ daily, weekly, monthly, và các đầu ra sao lưu/báo cáo trạng thái/hàng đợi mail/kiểm tra bảo mật sang NO

Tài khoản người dùng

  • Tạo tài khoản người dùng cục bộ và thêm vào các nhóm operator, video, wheel
  • operator cần cho việc cấu hình thiết bị và máy in, còn video cần để truy cập thiết bị GPU
  • Nhóm wheel được dùng để chạy lệnh quyền root qua sudo
  • Sau khi cài sudo, cấu hình %wheel ALL=(ALL:ALL) ALL trong file sudoers

Locale, thời gian, SSH, chứng chỉ

  • Locale

    • Biến môi trường của shell đăng nhập được thiết lập trong login.conf(5), thêm charset=UTF-8lang=en_US.UTF-8
    • Để áp dụng thay đổi, xây dựng lại cơ sở dữ liệu đăng nhập bằng cap_mkdb /etc/login.conf
    • Với shell không đăng nhập, thiết lập LANGCHARSET trong /etc/profile.d/locale.sh
  • NTP và múi giờ

    • Để giữ đồng hồ hệ thống luôn được cập nhật, cần ntpd(8)
    • Trong ntp.conf đặt máy chủ NTP pool của FreeBSD và cấu hình giới hạn truy cập
    • Nếu chưa thiết lập múi giờ khi cài đặt, tạo liên kết tượng trưng từ /usr/share/zoneinfo/America/New_York sang /etc/localtime
  • openssh-portable

    • ssh trong base system của FreeBSD có nhiều bản vá được áp dụng, và tác giả ưu tiên openssh-portable nguyên bản từ ports
    • Ở phiên bản mới, tệp cấu hình sshd nằm dưới /usr/local/etc/ssh
    • Trong /etc/rc.conf, tắt sshd của base và chạy dịch vụ mới bằng openssh_enable=YES
    • Lệnh ssh sẽ tiếp tục dùng /usr/bin/ssh của base system nếu không thay đổi $PATH
    • Để ưu tiên bản từ ports cho mọi người dùng, chỉnh thứ tự path trong login.conf để /usr/local đứng trước rồi xây dựng lại cơ sở dữ liệu
  • Terminal, chứng chỉ, D-Bus

    • Cơ sở dữ liệu termcap(5) của FreeBSD đơn giản hơn loại thường thấy trên Linux, và màu sáng có thể không được render trong các terminal họ XTerm
    • Cài terminfo-db có thể khắc phục vấn đề này
    • FreeBSD mặc định chỉ tin cậy một phần các tổ chức chứng thực chuẩn, vì vậy cài ca_root_nss là bộ CA đầy đủ của Mozilla
    • KDE và nhiều tính năng desktop hiện nay cần D-Bus, có thể bật bằng dbus_enable=YESservice dbus start

Trình quản lý hiển thị Ly

  • Thông thường desktop session được khởi động bằng trình quản lý hiển thị đồ họa như SDDM, nhưng tại thời điểm bài viết được viết, trên FreeBSD nó không thể khởi động Wayland session một cách ổn định
  • SDDM gần như hoạt động được, nhưng có lỗi khiến nhiều tổ hợp phím làm phiên bị thoát
  • Cách hiện tại là khởi động Wayland session bằng Ly display manager dựa trên console
  • Ly không chạy như daemon; trong /etc/ttys, cấu hình để console ảo chạy /usr/local/bin/ly_wrapper
  • Thêm mục Ly vào /etc/gettytab rồi khởi động lại hoặc làm mới init bằng kill -HUP 1 thì lời nhắc đăng nhập của Ly sẽ xuất hiện
  • Trong config.ini, có thể buộc dùng Wayland session bằng xinitrc=null, xsessions=null, shell=false, waylandsessions=/usr/local/share/wayland-sessions

Font, KDE, ứng dụng desktop

  • Cài các font chuẩn như Cantarell, Droid, Inconsolata, Noto, Noto Emoji, Roboto, Ubuntu, webfonts để website hiển thị đúng
  • Với KDE và các thành phần desktop, cài kde, kdegraphics, kdemultimedia, kdeutils, phonon-mpv, pipewire, pulseaudio, wireplumber v.v.
  • Ví dụ ứng dụng desktop gồm Chromium, Firefox, LibreOffice, Thunderbird, Signal Desktop, Wine, Emacs Wayland, Git, mpv, tmux v.v.
  • Một số tính năng desktop phụ thuộc vào PipeWire, và xem trước trên thanh tác vụ có vẻ sẽ không hoạt động nếu PipeWire không chạy
  • Có thể tự động chạy PipeWire bằng tệp autostart /usr/local/etc/xdg/autostart/pipewire.desktop
  • Để lưu mật khẩu khóa SSH trong kwallet, hãy export SSH_ASKPASS_REQUIRE=preferSSH_ASKPASS=/usr/local/bin/ksshaskpass trong môi trường KDE

Tăng tốc video bằng phần cứng

  • Sau khi cài đúng gói, có thể dùng tăng tốc video bằng phần cứng trên hầu hết GPU Intel
  • Tăng tốc video bằng phần cứng mang lại khả năng phát video mượt hơn và thời lượng pin tốt hơn
  • Các gói cần thiết là libva-intel-media-driver, libva-utils, libvdpau-va-gl, vdpauinfo
  • Người dùng phải có quyền truy cập GPU thông qua thiết bị drm, nên cần thuộc nhóm video
  • Một số ứng dụng có thể cần cấu hình bổ sung để tận dụng hardware offload
  • Chromium Browser

    • Trên FreeBSD, giải mã video bằng phần cứng của Chromium trước đây cần nhiều cờ dòng lệnh
    • Tại thời điểm bài viết được viết, giải mã video bằng phần cứng của Chromium hoạt động mà không cần cờ bổ sung
  • MPV

    • Nếu thiết lập hwdec=vaapi-copy, vo=gpu-next, vd-lavc-dr=yes, audio-channels=stereo trong mpv.conf, có thể phát video HD với mức sử dụng CPU thấp

Vấn đề đã biết và cách khắc phục tạm thời

  • Mở nắp máy thì laptop lập tức ngủ lại

    • Khi KDE đang chạy, môi trường desktop phải phát hiện sự kiện nắp ACPI và xử lý suspend cùng resume
    • Trên ThinkPad, có lỗi khiến laptop vừa mở nắp là lập tức quay lại chế độ ngủ
    • Cách khắc phục tạm thời là tắt hành động của công tắc nắp máy trong thiết lập nguồn của KDE, rồi cấu hình native suspend khi đóng nắp bằng devd
    • Script /usr/local/libexec/kde-suspend khóa màn hình của người dùng đang đăng nhập KDE, đợi 0.5 giây rồi đưa máy vào trạng thái ngủ S3 bằng acpiconf -s3
    • Quy tắc /etc/devd/kde-suspend.conf chạy script đó khi có sự kiện ACPI Lid 0x00
  • Tiến trình vẫn còn sau khi đăng xuất

    • Trên FreeBSD, sau khi đăng xuất khỏi phiên KDE, một số tiến trình có thể tiếp tục chạy vô thời hạn
    • Chromium đôi khi rơi vào trạng thái tiêu thụ 100% một lõi CPU
    • Trên các bản phân phối Linux dựa trên systemd, systemd-logind sẽ kết thúc các tiến trình liên quan đến phiên người dùng, nhưng trong môi trường KDE của FreeBSD thì giả định đó không đúng
    • Tận dụng tính năng script dọn dẹp tại thời điểm đăng xuất của KDE để kết thúc baloo_file, chrome, dirmngr, pipewire, signal-desktop, wireplumber v.v.
    • Áp dụng bằng cách cho phép thực thi /usr/local/etc/xdg/plasma-workspace/shutdown/cleanup.sh
  • Chuyển người dùng không hoạt động

    • Tính năng chuyển người dùng trên desktop của FreeBSD bị hỏng do lỗi ConsoleKit2 đã tồn tại từ lâu
    • Đặt action/start_new_session=falseaction/switch_user=false trong /usr/local/etc/xdg/kdeglobals để người dùng không thể thử tính năng này
  • WiFi bị lỗi sau khi khôi phục từ chế độ ngủ

    • FreeBSD 15.1-RELEASE có lỗi iwlwifi khiến WiFi bị hỏng sau khi resume từ chế độ ngủ
    • Cách khắc phục tạm thời là dừng interface wlan0 trước khi suspend và khởi động lại sau khi resume
    • Script /usr/local/etc/rc.d/iwlwifi_fix gắn service netif stop wlan0service netif start wlan0 vào các lệnh suspend/resume
    • Script này được cấp quyền thực thi và bật bằng iwlwifi_fix_enable="YES"
    • Bản sửa đã được commit vào 15-STABLE, nên khi FreeBSD 15.2 phát hành thì có thể sẽ không còn cần cách khắc phục này nữa
  • Âm thanh laptop bị treo

    • Một số laptop có lỗi i915 gây hard lockup
    • Vấn đề đi kèm các lỗi như hdac0: Command timeout 2 trong dmesg
    • Cách khắc phục là đặt loader tunable compat.linuxkpi.i915_disable_power_well=0
  • Treo đồ họa và GPU hang

    • Trên FreeBSD 15.1, driver DRM mặc định đã được nâng từ 6.6 lên 6.12
    • Phiên bản mới dường như có lỗi gây treo đồ họa và thông báo GPU HANG trong dmesg trên một số chip Intel
    • Cách khắc phục ổn định là tiếp tục dùng phiên bản cũ drm-66-kmod
  • Không có giới hạn thời gian nhàn rỗi cho console

    • FreeBSD đã chuyển từ driver console syscons(4) cũ sang driver vt(4) native UEFI từ vài năm trước
    • Console vt không hỗ trợ blanktime, nên nếu không có phiên X11 hoặc Wayland thì gần như không có cách tắt màn hình
    • Vì Ly chạy trên console TTY, màn hình sẽ luôn bật khi chưa có ai đăng nhập
    • Trên laptop một người dùng thì đây không phải vấn đề lớn, nhưng trên workstation nhiều người dùng thì lời nhắc đăng nhập có thể gây burn-in trên tấm nền LCD
  • Thiếu biểu tượng trong ứng dụng GTK4

    • Ứng dụng GTK4 đang dùng là Dino IM, một client XMPP, và nhiều biểu tượng không được render, đồng thời cũng không tuân theo thiết lập phông chữ của KDE
    • Vấn đề được giải quyết ngay lập tức sau khi tắt portals
    • Cách khắc phục tạm thời là đặt export GDK_DEBUG=no-portals
  • Âm thanh bị ngắt quãng khi phát

    • Pulseaudio đôi khi gây crackling và skipping trong lúc phát tệp âm thanh
    • Tăng các giá trị mặc định trong daemon.conf lên default-fragments = 8default-fragment-size-msec = 5 sẽ giải quyết được vấn đề

1 bình luận

 
Ý kiến trên Lobste.rs
  • Cảm ơn vì bài viết này, nhưng có vẻ có quá nhiều bước thủ công cho những việc mà trình cài đặt lẽ ra nên làm thay

    • Hỗ trợ laptop của FreeBSD trong lịch sử chỉ hoạt động nửa vời và chỉ thực sự phù hợp với những người dùng nhiệt thành
      Gần đây đã có rất nhiều nỗ lực trong việc chuyển driver Wi‑Fi và đồ họa từ Linux sang, nên giờ nhiều người hơn hẳn có thể dùng nó trên laptop
      Có thể nói hiện tại nó đang ở trạng thái giống Linux những năm 2000, vẫn còn nhiều việc phải làm nhưng đây là công việc đang diễn ra ở tuyến đầu
    • Chậm nhưng chắc chắn đang tốt lên. 10–15 năm trước Linux cũng không tốt lắm, và FreeBSD rồi cũng sẽ đến được mức đó
  • “Nếu không tự làm chừng mười hai bước cài đặt thì có thể nói cái máy đó thực sự là của mình không?” /s mà cũng không hẳn là /s
    Tôi đang viết bình luận này trên một chiếc Thinkpad T14 Gen 1 mua đồ cũ để chạy OpenBSD mà không phải vật lộn quá nhiều
    Tôi vẫn chưa thử FreeBSD trên đó nhưng chắc rồi cũng sẽ thử, còn chiếc NAS tự ráp của tôi thì đang chạy FreeBSD 15 với một zpool ZFS
    Công việc về khả năng tương thích laptop của FreeBSD Foundation thực sự rất đáng cảm kích
    Hiện giờ đúng là có không khí kiểu Linux những năm 2000, nhưng như bài gốc nói, đây là “công việc cần làm, và là công việc ở tuyến đầu”

  • Từ cuối những năm 2010, tôi đã dùng FreeBSD làm hệ điều hành chính hằng ngày trên những chiếc laptop được chọn lựa rất cẩn thận
    Khi đó có cực kỳ nhiều thứ phải chỉnh tay trong thiết lập desktop FreeBSD, nên tôi đã biến chúng thành script, đưa vào kho Git và tiếp tục tinh chỉnh dần
    Ví dụ như chuyển từ StumpWM sang i3 để chuẩn bị cho khả năng một ngày nào đó phải chuyển từ X sang Sway trên Wayland
    Giờ đây đang có một trình cài đặt desktop được phát triển, nên có vẻ sẽ giải quyết được nhận xét xác đáng của @technomancy, và thậm chí có thể khiến khá nhiều script cấu hình của tôi trở nên không còn cần thiết
    https://wiki.freebsd.org/desktop-installer

  • Tôi rất vui khi đọc đoạn: “Nhờ LinuxKPI và driver iwlwifi mới, thời kỳ hỗ trợ Wi‑Fi tệ hại phần lớn đã qua. Nếu bạn có một card Intel phổ biến thì khả năng cao là nó sẽ hoạt động ngay”
    Tôi cũng từng thử FreeBSD 13/14 trên desktop, nhưng do hạn chế driver nên tốc độ quá chậm, khó dùng lâu dài
    Thật tốt khi những hạn chế này đang biến mất, và lần tới nếu muốn thử gì đó mới trên desktop thì tôi sẽ cân nhắc FreeBSD lần nữa

  • Điều thú vị là driver Wi‑Fi RTL8812 trên FreeBSD đã có từ rất lâu, theo tôi nhớ là hơn 10 năm rồi, trong khi trên Linux thì mãi đến khoảng kernel 6.13 mới được đưa vào
    Tôi cũng không rõ vì sao trên Linux nó lại nằm ngoài cây kernel lâu đến vậy. Có thể là do vấn đề giấy phép