You are not logged in.

#1 2025-06-22 17:38:30

xerxes_
Member
Registered: 2018-04-29
Posts: 923

[Solved] Do I really need all those firmwares?

Like in subject: Do I really need all those firmware files?

I don't have amd card, so I don't need linux-firmware-amdgpu and linux-firmware-radeon, there is no firmware for my nvidia gpu in linux-firmware-nvidia, I think I don't have any mediatek component, nor broadcom, so linux-firmware-mediatek and linux-firmware-broadcom is not needed for me. I have some atheros ethernet card (use atl1 kernel module) and realtec audio codec on motherboard (Realtek ALC 882 codec, snd_hda_intel kernel module used), so this maybe should stay?: linux-firmware-atheros, linux-firmware-realtek. Do I need linux-firmware-intel for intel system, microcode package is not enough? I don't know what to do with linux-firmware-other.

So can I safely uninstall all firmware except linux-firmware-atheros, linux-firmware-realtek, linux-firmware-intel and blacklist other firmware packages?

Last edited by xerxes_ (2025-06-29 10:34:02)

Offline

#2 2025-06-22 18:17:02

qinohe
Member
From: Netherlands
Registered: 2012-06-20
Posts: 1,503

Re: [Solved] Do I really need all those firmwares?

Well, You basically gave the answer already.
You don't need firmwarez you don't own the hardware for;)
I indeed think 'linux-firmware-atheros, linux-firmware-realtek & linux-firmware-intel' should stay.
If you are unsure what hardware is in your machine use lshw[Extra] or go trough dsmeg output

Btw. you can always remove the atheros & realtek firmware and see if the HW still functions
Install atheros from cache if the network-card doesn't function

You don't blacklist any packages, first remove:

pacman -Rdd linux-firmware

Then install what you like

pacman -Syu linux-firmware-atheros linux-firmware-realtek linux-firmware-intel

You may need to run mkinitcpio.

Offline

#3 2025-06-22 18:41:36

WorMzy
Administrator
From: Scotland
Registered: 2010-06-16
Posts: 12,848
Website

Re: [Solved] Do I really need all those firmwares?

No, that's why the package was split up. Remove what you don't need, mark what you do need as explicitly installed (see the -D flag for pacman).


Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD

Making lemonade from lemons since 2015.

Offline

#4 2025-06-22 19:28:16

qinohe
Member
From: Netherlands
Registered: 2012-06-20
Posts: 1,503

Re: [Solved] Do I really need all those firmwares?

Sorry for interpreting this wrong @WorMzy. I have indeed installed the firmware as shown above.
I don't have any problems for that matter, but think I change to your solution
Thanks for the heads-up

edit: Though, I do agree with @WorMzy, the wiki has a subject about installing individual firmware
Note the warning.
https://wiki.archlinux.org/title/Linux_ … r_packages

Last edited by qinohe (2025-06-22 19:37:07)

Offline

#5 2025-06-22 20:28:19

xerxes_
Member
Registered: 2018-04-29
Posts: 923

Re: [Solved] Do I really need all those firmwares?

I checked from this link: https://wiki.archlinux.org/title/Linux_ … d_firmware and added 'dyndbg="func fw_log_firmware_info +p"' to my boot parameters and checked from root console

# dmesg | grep -F 'Loaded FW'

that no firmware were loaded! Even Intel. Is it possible? 'cat /proc/cmdline' show that dyndbg was added to grub kernel boot parameters, so I don't need any firmware? And atheros and realtek firmware is looks like for WiFi and Bluetooth.

Last edited by xerxes_ (2025-06-22 20:29:23)

Offline

#6 2025-06-22 20:43:23

qinohe
Member
From: Netherlands
Registered: 2012-06-20
Posts: 1,503

Re: [Solved] Do I really need all those firmwares?

That grep doesn't show anything no. There don't seem to exist a line like that.
But, you certainly need firmware for your audio and network card but more important for your hardware to function.
Check lshw as said in my first post.
Off course you can opt to not install any firmware but, you will be chrooting into your install doing just that smile

Offline

#7 2025-06-23 04:24:05

NuSkool
Member
Registered: 2015-03-23
Posts: 269

Re: [Solved] Do I really need all those firmwares?

added 'dyndbg="func fw_log_firmware_info +p"' to my boot parameters

That grep doesn't show anything

Did you guys reboot after adding the kernel parameter? It works on 3 of my Arch systems....

$ grep dyndbg /boot/grub/grub.cfg
	linux	/boot/vmlinuz-linux root=UUID=5e307495-f996-48bf-90ab-940b1de1e452 rw  loglevel=3  dyndbg='func fw_log_firmware_info +p'
$ sudo dmesg | grep -F 'Loaded FW'
[sudo] password for jeff: 
[    1.889709] amdgpu 0000:65:00.0: Loaded FW: amdgpu/psp_13_0_4_toc.bin, sha256: 11e3529d748e2b6b204681183360a6ead80665b8deda996dfcf35973f789fc3d
[    1.890474] amdgpu 0000:65:00.0: Loaded FW: amdgpu/psp_13_0_4_ta.bin, sha256: 28e4c718e0471ada758ea9afa14277653729a0b867313eadd007c048edb21d4a
[    1.891688] amdgpu 0000:65:00.0: Loaded FW: amdgpu/dcn_3_1_4_dmcub.bin, sha256: 6b2b09ac289bbf6815fa09a62d087b7b73f71b070a9dd7978f584b1758e3b359
[    1.892334] amdgpu 0000:65:00.0: Loaded FW: amdgpu/gc_11_0_1_pfp.bin, sha256: 9b4c0ef307e14383a5f48cede0d65b37f7b8fce2a40c73c5da623ce1a20862c2
[    1.892979] amdgpu 0000:65:00.0: Loaded FW: amdgpu/gc_11_0_1_me.bin, sha256: 15e3189965e6c7a7dbb580464bbba9683e77fc60cb4478ba0d8f2e6046a07ed8
[    1.893480] amdgpu 0000:65:00.0: Loaded FW: amdgpu/gc_11_0_1_rlc.bin, sha256: cd751872eabf5f55f979a25f03c85bc95f19c67ee071359691896295baad60d8
[    1.894195] amdgpu 0000:65:00.0: Loaded FW: amdgpu/gc_11_0_1_mec.bin, sha256: 90352eacdc954ba7d5c91443f59edd1cd3a639d6b2ab32e0107332f6d2bbdb04
[    1.894546] amdgpu 0000:65:00.0: Loaded FW: amdgpu/gc_11_0_1_imu.bin, sha256: ac71f4eec713fc35b4a1fe27531e3eb04edd81eeac2cef64df01ac50d8510805
[    1.894678] amdgpu 0000:65:00.0: Loaded FW: amdgpu/sdma_6_0_1.bin, sha256: ae345f793a47dda30c38e0ee6acd06274c37ff10118f3322a723716b431c55ab
[    1.896012] amdgpu 0000:65:00.0: Loaded FW: amdgpu/vcn_4_0_2.bin, sha256: ad62027309cd228090a8107fc0404551842c4705057c9f76aff81d91be145bc5
[    1.896725] amdgpu 0000:65:00.0: Loaded FW: amdgpu/gc_11_0_1_mes_2.bin, sha256: 18f4e11c1fc092dd500a28319859f46585dd1bac2f68ba8ffb54fff1ed3104f4
[    1.897363] amdgpu 0000:65:00.0: Loaded FW: amdgpu/gc_11_0_1_mes1.bin, sha256: 9930fb834ca7ba72d5fbc6a14357bf98f5d55b18203ae4c699ae5e225fcdd1bf
[    4.258267] iwlwifi 0000:02:00.0: Loaded FW: iwlwifi-cc-a0-77.ucode, sha256: b24c019d587659343e41b362a7299973c3bd6136c12bcd2bdc0584cd1f2c046e
[    4.379844] bluetooth hci0: Loaded FW: intel/ibt-20-1-3.sfi, sha256: ec8f18d7bba8a64b786998ced741254fd2816a005a7fdf9606968a350787a681
[    5.289222] r8169 0000:01:00.0: Loaded FW: rtl_nic/rtl8125b-2.fw, sha256: 529bf1c25c97ff52b401090d00ff89cc22351012336e5a0c9662728a3ee909ef

I put together this code to printout the required 'linux-firmware' packages. After verification, copy, past it into a terminal.

	sudo pacman -Fy
	rm -f /tmp/fw-pkgs
	while read -r fw_file; do
        pacman -F "/usr/lib/firmware/${fw_file%,}.zst" 2> /dev/null | tee -a /tmp/fw-pkgs
        done < <(journalctl -b | grep -o 'Loaded FW: .*' | cut -d' ' -f3) | column -t
        echo
        echo "Required firmware packages:"
        awk -F"/" '{print $6}' /tmp/fw-pkgs | awk '{print $1}' | sort -u

And the output of the above code on one of my systems:

usr/lib/firmware/amdgpu/psp_13_0_4_toc.bin.zst   is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/psp_13_0_4_ta.bin.zst    is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/dcn_3_1_4_dmcub.bin.zst  is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/gc_11_0_1_pfp.bin.zst    is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/gc_11_0_1_me.bin.zst     is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/gc_11_0_1_rlc.bin.zst    is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/gc_11_0_1_mec.bin.zst    is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/gc_11_0_1_imu.bin.zst    is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/sdma_6_0_1.bin.zst       is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/vcn_4_0_2.bin.zst        is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/gc_11_0_1_mes_2.bin.zst  is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/amdgpu/gc_11_0_1_mes1.bin.zst   is  owned  by  core/linux-firmware-amdgpu   20250613.12fe085f-6
usr/lib/firmware/iwlwifi-cc-a0-77.ucode.zst      is  owned  by  core/linux-firmware-intel    20250613.12fe085f-6
usr/lib/firmware/intel/ibt-20-1-3.sfi.zst        is  owned  by  core/linux-firmware-intel    20250613.12fe085f-6
usr/lib/firmware/rtl_nic/rtl8125b-2.fw.zst       is  owned  by  core/linux-firmware-realtek  20250613.12fe085f-6

Required firmware packages:

linux-firmware-amdgpu
linux-firmware-intel
linux-firmware-realtek

I came here looking for how people are removing the unneeded packages before I resorted to '-Rdd'.
I'm also concerned about the occasionally used USB peripherals ie: usb thumb drives, cameras, etc.
Interested in any thoughts on this stuff relating to firmware.

Currently have a bunch of obviously unneeded pkgs to get started though.

$ pacman -Q --color=never | grep ^linux-firmware
linux-firmware 20250613.12fe085f-6
linux-firmware-amdgpu 20250613.12fe085f-6
linux-firmware-atheros 20250613.12fe085f-6
linux-firmware-broadcom 20250613.12fe085f-6
linux-firmware-intel 20250613.12fe085f-6
linux-firmware-liquidio 20250613.12fe085f-6
linux-firmware-mediatek 20250613.12fe085f-6
linux-firmware-mellanox 20250613.12fe085f-6
linux-firmware-nfp 20250613.12fe085f-6
linux-firmware-nvidia 20250613.12fe085f-6
linux-firmware-other 20250613.12fe085f-6
linux-firmware-qlogic 20250613.12fe085f-6
linux-firmware-radeon 20250613.12fe085f-6
linux-firmware-realtek 20250613.12fe085f-6
linux-firmware-whence 20250613.12fe085f-6


EDIT: Add info

Interesting, an unneeded AUR pkg 'mkinitcpio-firmware' that I had installed to eliminate some warnings creating 'fallback.img' mkinitcpio images held things up...

$ sp -Rdd linux-firmware
[sudo] password for jeff: 

Package (1)     Old Version          Net Change

linux-firmware  20250613.12fe085f-6    0.00 MiB


:: Do you want to remove these packages? [Y/n] y
:: Processing package changes...
(1/1) removing linux-firmware                                                                 [#######################################################] 100


$ sp -R linux-firmware-atheros linux-firmware-broadcom linux-firmware-liquidio linux-firmware-mediatek linux-firmware-mellanox linux-firmware-nfp linux-firmware-nvidia linux-firmware-qlogic linux-firmware-radeon linux-firmware-realtek
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing linux-firmware-qlogic breaks dependency 'linux-firmware-qlogic' required by mkinitcpio-firmware
:: removing linux-firmware-broadcom breaks dependency 'linux-firmware-bnx2x' required by mkinitcpio-firmware
:: removing linux-firmware-liquidio breaks dependency 'linux-firmware-liquidio' required by mkinitcpio-firmware
:: removing linux-firmware-mellanox breaks dependency 'linux-firmware-mellanox' required by mkinitcpio-firmware
:: removing linux-firmware-nfp breaks dependency 'linux-firmware-nfp' required by mkinitcpio-firmware

EDIT2: Reworded above and added line below for clarity.

Removed AUR 'mkinitcpio-firmware' to proceed.

Last edited by NuSkool (2025-06-24 02:23:25)


Scripts I Use                                                 :  https://github.com/Cody-Learner
grep -m1 'model name' /proc/cpuinfo    : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
grep -m1 'model name' /proc/cpuinfo    : Intel(R) N95
grep -m1 'model name' /proc/cpuinfo    : AMD Ryzen 5 PRO 2400GE w/ Radeon Vega Graphics

Offline

#8 2025-06-23 10:12:04

qinohe
Member
From: Netherlands
Registered: 2012-06-20
Posts: 1,503

Re: [Solved] Do I really need all those firmwares?

Did you guys reboot after adding the kernel parameter? It works on 3 of my Arch systems....

Yes, I added the line to my boot parameters, rebooted but there was no output...

I came here looking for how people are removing the unneeded packages before I resorted to '-Rdd'.
I'm also concerned about the occasionally used USB peripherals ie: usb thumb drives, cameras, etc.
Interested in any thoughts on this stuff relating to firmware

Also used '-Rdd' and after that installed what I needed and rebooted OC
Everything was OK after rebooting, though, I needed to reboot twice for some voodoo reason tongue

You may need to install some firmware for other hardware, but if you 'normally' needed nothing more than the linux-firmware then everything is split into these few packages. Only thing needed is you figuring out which hardware is in the machine and install the needed firmware.
If you needed to install firmwarez from AUR than the same applies as the line below

Interesting, an unneeded AUR pkg 'mkinitcpio-firmware' that I had installed to eliminate some warnings creating 'fallback.img' mkinitcpio images held things up...

Yeah, that would be remove and rebuild afterwards

Offline

#9 2025-06-23 15:08:42

cherio
Member
Registered: 2022-04-27
Posts: 32

Re: [Solved] Do I really need all those firmwares?

qinohe wrote:

If you are unsure what hardware is in your machine use lshw[Extra] or go trough dsmeg output

This is a good start. For many this is a rather vague instruction.

Would you recommend a specific command to run in order to check what firmware is present, e.g. grepping journal kernel messages for tokens from firmware package names e.g. '(intel|amdgpu|...)'?

Or maybe the path is to install ALL firmware packages and then somehow determine which ones are NOT in use?

EDIT. Please ignore this. I can see there is a solution already proposed above, although that solution seems to be far from ideal, but I understand, it is a phase the community needs to go through on the path to a better system design

Last edited by cherio (2025-06-23 15:21:16)

Offline

#10 2025-06-27 19:13:17

xerxes_
Member
Registered: 2018-04-29
Posts: 923

Re: [Solved] Do I really need all those firmwares?

WorMzy wrote:

Remove what you don't need, mark what you do need as explicitly installed (see the -D flag for pacman).

So, after remove unneeded firmware by 'pacman -Rdd unneeded_firmware1 unneeded_firmware2' do 'pacman -D --asexplicit wanted-firmware1 wanted-firmware2', but if I would need other firmware in future I would install it by 'pacman -S needed_firmware' and do 'pacman -D --asdeps needed_firmware' ? (Corrected)

Last edited by xerxes_ (2025-06-29 10:33:24)

Offline

#11 2025-06-27 20:13:59

seth
Member
Registered: 2012-09-03
Posts: 65,096

Re: [Solved] Do I really need all those firmwares?

"--asdeps" of what?
The firmware packages are typically explicitly installed ("I want this because I have this hardware") - it's just that rn all the subpackages exist as dependency of the meta package (formerly the only firmware package)
That's all you need to resolve by marking the desired firmware packages you already have as explicit, then you can also remove linux-firmware w/o losing the individual firmware packages you marked as explicit.

From there on it's business as usual - if you explicitly install something, it ends up in the database as explicit and for the firmware packages that's what you typically want.

Online

Board footer

Powered by FluxBB