Membuang Firmware yang Tidak Berguna di Arch Linux

Aditya Phra•

Sebenarnya tidak apa-apa seluruh firmware diinstal di Arch Linux, kecuali kalau kamu ingin menghemat ruang penyimpanan dan kuota internet seperti aku ini, wajib untuk menghapus firmware yang tidak berguna.

Mencari firmware yang dibutuhkan

Langkah pertama, instal semua firmware dulu untuk mencari tahu firmware mana yang dibutuhkan oleh komputer:

sudo pacman -S linux-firmware

Tambahkan konfigurasi ini ke dalam parameter kernel sesuai bootloader yang kamu pakai saat ini:

dyndbg="func fw_log_firmware_info +p"

Kalau aku memakai bootloader systemd-boot, jadi tinggal edit file konfigurasi kernel di systemd-boot:

sudo nano /boot/loader/entries/linux-lts.conf

Kira-kira bakal jadi seperti ini konfigurasinya:

title Arch Linux (linux-lts)
linux /vmlinuz-linux-lts
initrd /intel-ucode.img
initrd /initramfs-linux-lts.img
options root=PARTUUID=d59ffc75-0cc4-4b04-a6e5-685640c61b2c zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfs dyndbg="func fw_log_firmware_info +p"

Simpan kemudian reboot komputer.

Setelah hidup, cek log firmware yang dipakai di komputer:

sudo journalctl -kg 'loaded f'

Hasilnya kira-kira seperti ini:

Apr 24 10:15:22 archlinux kernel: faux_driver regulatory: Loaded FW: regulatory.db, sha256: 9d171281bfe7acc5d203007427f6075b704b7a48ff42ae25b9f490a0118fe7d2
Apr 24 10:15:22 archlinux kernel: faux_driver regulatory: Loaded FW: regulatory.db.p7s, sha256: d1170298577027c2da346242627ff6cad09fbebaa96a6b2de07ada7c873dd337
Apr 24 10:15:23 archlinux kernel: i915 0000:00:02.0: Loaded FW: i915/kbl_dmc_ver1_04.bin, sha256: 2cde41c3e5ad181423bcc3e98ff9c49f743c88f18646af4d0b3c3a9664b831a1
Apr 24 10:15:23 archlinux kernel: ath10k_pci 0000:02:00.0: Loaded FW: ath10k/QCA9377/hw1.0/firmware-6.bin, sha256: 8f8b002fccfe81d42238f27dd1f56d189604f180bd4772c7c8e75ae1fef16f01
Apr 24 10:15:23 archlinux kernel: ath10k_pci 0000:02:00.0: Loaded FW: ath10k/QCA9377/hw1.0/board-2.bin, sha256: 0fdcc7838f478da81704de88f7b33e28862110c6d5decf7818543f8e37e6cd98

Di samping Loaded FW adalah path file firmware yang dipakai oleh kernel Linux, path ini yang nanti dipakai untuk mencari nama paket linux-firmware yang dibutuhkan.

Kalau berdasarkan informasi log di atas, path file firmware-nya adalah:

  • i915/kbl_dmc_ver1_04.bin
  • ath10k/QCA9377/hw1.0/firmware-6.bin
  • ath10k/QCA9377/hw1.0/board-2.bin

Cara mencari dari mana asal file firmware bisa dengan pacman -Qo (tambahkan /usr/lib/firmware di depan & .zst di belakangnya):

$ pacman -Qo /usr/lib/firmware/i915/kbl_dmc_ver1_04.bin.zst
/usr/lib/firmware/i915/kbl_dmc_ver1_04.bin.zst is owned by linux-firmware-intel 20260410-1

$ pacman -Qo /usr/lib/firmware/ath10k/QCA9377/hw1.0/firmware-6.bin.zst
/usr/lib/firmware/ath10k/QCA9377/hw1.0/firmware-6.bin.zst is owned by linux-firmware-atheros 20260410-1

$ pacman -Qo /usr/lib/firmware/ath10k/QCA9377/hw1.0/board-2.bin.zst
/usr/lib/firmware/ath10k/QCA9377/hw1.0/board-2.bin.zst is owned by linux-firmware-atheros 20260410-1

Dari informasi di atas, nama paket firmware yang dibutuhkan di komputerku adalah:

  • linux-firmware-intel
  • linux-firmware-atheros

Menghapus firmware

Kalau sudah tahu paket firmware mana yang dibutuhkan, tinggal hapus firmware lain yang termasuk ke dalam dependensi paket linux-firmware.

Pertama, hapus paket linux-firmware tanpa menghapus dependensinya:

sudo pacman -R linux-firmware

Setelah itu, cek daftar dependensi paket linux-firmware:

$ pacman -Si linux-firmware | grep 'Depends On'
Depends On      : linux-firmware-amdgpu  linux-firmware-atheros  linux-firmware-broadcom  linux-firmware-cirrus  linux-firmware-intel  linux-firmware-mediatek  linux-firmware-nvidia  linux-firmware-other  linux-firmware-radeon  linux-firmware-realtek

Misalnya, aku cuma butuh linux-firmware-intel dan linux-firmware-atheros, jadi tinggal hapus paket firmware selain itu:

sudo pacman -R linux-firmware-amdgpu linux-firmware-broadcom linux-firmware-cirrus linux-firmware-mediatek linux-firmware-nvidia linux-firmware-other linux-firmware-radeon linux-firmware-realtek

Kemudian jadikan eksplisit paket firmware yang dibutuhkan agar tidak ikutan terhapus saat bersih-bersih sistem Arch Linux:

sudo pacman -D --asexplicit linux-firmware-intel linux-firmware-atheros

Setelah selesai semua, kembalikan konfigurasi parameter kernel di konfigurasi bootloader.