Proyek ini bertujuan untuk membuat pembaruan firmware di Linux otomatis, aman, dan andal.
Informasi tambahan tersedia di situs web.
Masalah & diskusi GitHub di repositori ini
Saluran IRC Libera #fwupd
. Anda dapat bergabung melalui IRC Libera atau melalui jembatan IRC di Matrix.
Lihat Membangun dan Men-debug untuk mengetahui cara membangun lingkungan pengembangan fwupd.
CATATAN: Dalam kebanyakan kasus, pengguna akhir tidak boleh mengkompilasi fwupd dari awal; ini adalah proyek yang rumit dengan lusinan dependensi (dan banyak opsi konfigurasi) dan terlalu banyak hal yang bisa salah.
Pengguna cukup menginstal fwupd dan memperbarui distro mereka, dikelola dan diuji oleh pengelola paket. Distribusi ini juga akan melakukan beberapa pengujian tentang bagaimana fwupd berinteraksi dengan perangkat lunak lain di sistem Anda, misalnya menggunakan Perangkat Lunak GNOME.
Menginstal fwupd menggunakan Snap atau menggunakan Flatpak mungkin berguna untuk memperbarui perangkat tertentu pada baris perintah yang memerlukan versi fwupd terbaru, tetapi ini tidak boleh dianggap sebagai pengganti versi sistem yang disediakan distro.
Tartan adalah plugin analisis statis LLVM yang dibuat untuk menganalisis kode GLib. Itu dapat diinstal dan kemudian dijalankan menggunakan:
mkdir build-tartan CC=clang-17 meson ../ SCANBUILD=../contrib/tartan.sh ninja scan-build
Proyek ini dikonfigurasi secara default untuk mengunduh firmware dari Linux Vendor Firmware Service (LVFS).
Layanan ini tersedia untuk semua OEM dan pembuat firmware yang ingin membuat firmware mereka tersedia untuk pengguna Linux.
Anda dapat menemukan informasi lebih lanjut tentang detail teknis pembuatan kapsul firmware di bagian vendor perangkat keras di situs web fwupd.
Jika Anda memiliki perangkat dengan firmware yang didukung oleh fwupd, berikut cara memeriksa pembaruan dan menerapkannya menggunakan alat baris perintah fwupd.
# fwupdmgr get-devices
Ini akan menampilkan semua perangkat yang terdeteksi oleh fwupd.
# fwupdmgr refresh
Ini akan mengunduh metadata terbaru dari LVFS.
# fwupdmgr get-updates
Jika pembaruan tersedia untuk perangkat apa pun di sistem, pembaruan tersebut akan ditampilkan.
# fwupdmgr update
Ini akan mengunduh dan menerapkan semua pembaruan untuk sistem Anda.
Pembaruan yang dapat diterapkan secara langsung akan segera dilakukan.
Pembaruan yang dijalankan saat boot akan dilakukan pada reboot berikutnya.
Anda dapat menemukan informasi lebih lanjut tentang alur kerja pembaruan di bagian pengguna akhir situs web fwupd.
Jika proyek Passim juga diinstal dan diaktifkan, fwupd akan menerbitkan ulang file metadata yang diunduh untuk disajikan pada 0.0.0.0:27500
secara default.
Klien lain di jaringan yang sama dapat memanfaatkan ini melalui mDNS/LLMNR untuk mengurangi bandwidth jaringan ke remote yang dikonfigurasi.
Untuk menonaktifkan fungsi ini, atur P2pPolicy=none
di /etc/fwupd/daemon.conf
, hapus instalasi paket passim atau gunakan systemctl mask passim.service
di terminal.
fwupd akan mendorong pengguna untuk melaporkan pembaruan yang berhasil dan gagal kembali ke LVFS. Ini adalah fitur opsional, namun dianjurkan karena memberikan umpan balik yang berharga kepada administrator LVFS dan pengembang OEM mengenai kemanjuran proses pembaruan firmware.
Kebijakan privasi mengenai data ini dapat dilihat di situs lvfs readthedocs.
Untuk melaporkan status pembaruan, jalankan:
# fwupdmgr report-history
Hanya pembaruan yang didistribusikan dari LVFS yang akan dilaporkan ke LVFS.
Aliran pembaruan dapat dikontrol di perusahaan menggunakan fitur "pembaruan yang disetujui". Hal ini memungkinkan administrator domain untuk memfilter kemungkinan pembaruan dari server pusat (misalnya LVFS, atau mirror) ke hanya firmware yang telah diuji secara khusus di organisasi Anda.
Daftar pembaruan yang disetujui dapat diaktifkan dengan menambahkan ApprovalRequired=true
ke file konfigurasi jarak jauh, misalnya lvfs.conf
. Setelah diaktifkan, daftar pembaruan yang disetujui dapat diatur di fwupd.conf
menggunakan daftar yang dibatasi koma.
Misalnya:
ApprovedFirmware=foo,bar
Dimana foo,bar
mengacu pada checksum kontainer yang sesuai dengan dua pembaruan dalam file metadata.
Selain itu, daftar firmware yang disetujui dapat ditambah menggunakan fwupdmgr set-approved-firmware baz
atau menggunakan antarmuka D-Bus.
fwupdmgr adalah klien baris perintah, tetapi berbagai antarmuka grafis tambahan disebutkan di halaman manual fwupdmgr.
Coverity - penganalisis statis untuk kode Java, C/C++, C#, JavaScript, Ruby, dan Python.
PVS-Studio - penganalisis statis untuk kode C, C++, C#, dan Java.