# linux-firmware savedconfig: what is config file syntax?

## jeffk

In response to portage message:

```
: - sys-firmware/iwl4965-ucode-228.61.2.24::gentoo (masked by: package.mask)

: /usr/portage/profiles/package.mask:

: # Rick Farina <zerochaos@gentoo.org> (15 Feb 2013)

: # these firmware packages have been merged into the sys-kernel/linux-firmware

: # package. USE=savedconfig can be used to limit the firmware which gets installed.

: # removal on 18 March 2013
```

Remove sys-firmware/iwl4965-ucode-228.61.2.24, attempt to emerge linux-firmware:

```
: [ebuild  N     ] sys-kernel/linux-firmware-20130113  USE="-savedconfig" 18,155 kB

: [blocks B      ] sys-firmware/iwl4965-ucode ("sys-firmware/iwl4965-ucode" is blocking sys-kernel/linux-firmware-20130113)

: [blocks B      ] sys-firmware/iwl1000-ucode ("sys-firmware/iwl1000-ucode" is blocking sys-kernel/linux-firmware-20130113)

: [blocks B      ] sys-firmware/iwl6050-ucode ("sys-firmware/iwl6050-ucode" is blocking sys-kernel/linux-firmware-20130113)

: [blocks B      ] sys-firmware/iwl6000-ucode ("sys-firmware/iwl6000-ucode" is blocking sys-kernel/linux-firmware-20130113)

: Total: 1 package (1 new), Size of downloads: 18,155 kB

: Conflict: 4 blocks (4 unsatisfied)

: 

:  * Error: The above package list contains packages which cannot be

:  * installed at the same time on the same system.

: 

:   (sys-firmware/iwl1000-ucode-39.31.5.1::gentoo, installed) pulled in by

:     sys-firmware/iwl1000-ucode required by @selected

: 

:   (sys-firmware/iwl6000-ucode-9.221.4.1::gentoo, installed) pulled in by

:     sys-firmware/iwl6000-ucode required by @selected

: 

:   (sys-kernel/linux-firmware-20130113::gentoo, ebuild scheduled for merge) pulled in by

:     linux-firmware

: 

:   (sys-firmware/iwl4965-ucode-228.61.2.24::gentoo, installed) pulled in by

:     sys-firmware/iwl4965-ucode required by @selected

: 

:   (sys-firmware/iwl6050-ucode-41.28.5.1::gentoo, installed) pulled in by

:     sys-firmware/iwl6050-ucode required by @selected
```

Add linux-firmware savedconfig entry to portage package.use Go ahead with attempt:

```
:  Failed to install sys-kernel/linux-firmware-20130113, Log file:

:   '/var/tmp/portage/sys-kernel/linux-firmware-20130113/temp/build.log'

: Messages for package sys-kernel/linux-firmware-20130113:

: No saved config to restore - please remove USE=savedconfig or

: provide a configuration file in //etc/portage/savedconfig/sys-kernel/linux-firmware

: Your config file(s) will not be used this time

: Your configuration for sys-kernel/linux-firmware-20130113 has been saved in 

: /etc/portage/savedconfig/sys-kernel/linux-firmware-20130113 for your editing pleasure.

: You can edit these files by hand and remerge this package with

: USE=savedconfig to customise the configuration.

: You can rename this file/directory to one of the following for

: its configuration to apply to multiple versions:

: ${PORTAGE_CONFIGROOT}/etc/portage/savedconfig/

: [${CTARGET}|${CHOST}|""]/${CATEGORY}/[${PF}|${P}|${PN}]

: 

: package sys-kernel/linux-firmware-20130113 NOT merged

: 

: Detected file collision(s):

: 

:      /lib/firmware/iwlwifi-1000-5.ucode

:      /lib/firmware/whiteheat_loader.fw

:      /lib/firmware/iwlwifi-6000-4.ucode

:      /lib/firmware/iwlwifi-6050-5.ucode

:      /lib/firmware/whiteheat.fw

:      /lib/firmware/iwlwifi-4965-2.ucode

:      /lib/firmware/korg/k1212.dsp

:      /lib/firmware/radeon/RV710_pfp.bin

:      /lib/firmware/radeon/R420_cp.bin

:      /lib/firmware/radeon/RV620_me.bin

:      /lib/firmware/radeon/RV670_pfp.bin

:      /lib/firmware/radeon/RV635_pfp.bin

:      /lib/firmware/radeon/RS780_me.bin

:      /lib/firmware/radeon/RV770_me.bin

:      /lib/firmware/radeon/RV620_pfp.bin

:      /lib/firmware/radeon/R600_pfp.bin

:      /lib/firmware/radeon/RV610_me.bin

:      /lib/firmware/radeon/RS690_cp.bin

:      /lib/firmware/radeon/RV670_me.bin

:      /lib/firmware/radeon/RS600_cp.bin

:      /lib/firmware/radeon/RV730_pfp.bin

:      /lib/firmware/radeon/RV770_pfp.bin

:      /lib/firmware/radeon/RV630_me.bin

:      /lib/firmware/radeon/RV630_pfp.bin

:      /lib/firmware/radeon/RS780_pfp.bin

:      /lib/firmware/radeon/R600_me.bin

:      /lib/firmware/radeon/R520_cp.bin

:      /lib/firmware/radeon/RV730_me.bin

:      /lib/firmware/radeon/R200_cp.bin

:      /lib/firmware/radeon/RV710_me.bin

:      /lib/firmware/radeon/R300_cp.bin

:      /lib/firmware/radeon/RV635_me.bin

:      /lib/firmware/radeon/RV610_pfp.bin

:      /lib/firmware/radeon/R100_cp.bin

:      /lib/firmware/ess/maestro3_assp_minisrc.fw

:      /lib/firmware/ess/maestro3_assp_kernel.fw

:      /lib/firmware/yamaha/ds1_ctrl.fw

:      /lib/firmware/yamaha/ds1_dsp.fw

:      /lib/firmware/yamaha/ds1e_ctrl.fw

:      /lib/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw

:      /lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j3.fw

:      /lib/firmware/cis/COMpad2.cis

:      /lib/firmware/cis/SW_555_SER.cis

:      /lib/firmware/kaweth/new_code_fix.bin

:      /lib/firmware/kaweth/trigger_code_fix.bin

:      /lib/firmware/kaweth/new_code.bin

:      /lib/firmware/kaweth/trigger_code.bin

:      /lib/firmware/matrox/g400_warp.fw

:      /lib/firmware/matrox/g200_warp.fw

:      /lib/firmware/r128/r128_cce.bin

:      /lib/firmware/cxgb3/t3b_psram-1.1.0.bin

:      /lib/firmware/cxgb3/t3fw-7.1.0.bin

:      /lib/firmware/cxgb3/ael2020_twx_edc.bin

:      /lib/firmware/cxgb3/ael2005_twx_edc.bin

:      /lib/firmware/cxgb3/t3fw-7.4.0.bin

:      /lib/firmware/cxgb3/ael2005_opt_edc.bin

:      /lib/firmware/cxgb3/t3c_psram-1.1.0.bin

:      /lib/firmware/cxgb3/t3fw-7.10.0.bin

:      /lib/firmware/ositech/Xilinx7OD.bin

:      /lib/firmware/ttusb-budget/dspbootcode.bin

: 

: Searching all installed packages for file collisions...

:

: sys-firmware/iwl4965-ucode-228.61.2.24:1::gentoo

:      /lib/firmware/iwlwifi-4965-2.ucode

: 

: sys-firmware/iwl1000-ucode-39.31.5.1:0::gentoo

:      /lib/firmware/iwlwifi-1000-5.ucode

: 

: sys-firmware/iwl6000-ucode-9.221.4.1:0::gentoo

:      /lib/firmware/iwlwifi-6000-4.ucode

: 

: sys-firmware/iwl6050-ucode-41.28.5.1:0::gentoo

:      /lib/firmware/iwlwifi-6050-5.ucode

: 

: Package 'sys-kernel/linux-firmware-20130113' NOT merged due to file

: collisions. If necessary, refer to your elog messages for the whole

: content of the above message.
```

Contrary to the message output, there is no file at /etc/portage/savedconfig/sys-kernel/linux-firmware-20130113 .

So what syntax is supposed to go in that config file, and what is the generic (not 20130113 versioned) name and path it must use?

I do need isl49465 firmware. I don't have any other firmware requirements that I am aware of on this Lenovo Thinkpad x201.

Thanks.

----------

## Fitzcarraldo

In case it is of help: How to install the linux-firmware package in Gentoo.

----------

## Punchcutter

Thanks, Fitzcarraldo, that's helpful, and I think I got it set up correctly now.

Now, my next question (for someone) is: Why is the savedconfig file named with the date/version of linux-firmware included in it? Does this mean that when that package is updated and the date changes, the next time I upgrade the package, the savedconfig file will be ignored and I'll unknowingly install the entire set of linux firmware (until I accidentally discover the mistake much later)??

I experimented by changing the name of the config file to just "linux-firmware", but it was apparently ignored by portage. This whole thing is astoundingly poorly documented, even for Gentoo   :Rolling Eyes: 

----------

## Fitzcarraldo

 *Punchcutter wrote:*   

> Why is the savedconfig file named with the date/version of linux-firmware included in it? Does this mean that when that package is updated and the date changes, the next time I upgrade the package, the savedconfig file will be ignored and I'll unknowingly install the entire set of linux firmware (until I accidentally discover the mistake much later)??

 

Yes, it does mean that. I suppose the file name contains the date/version because the list of the devices for which firmware is included in each version of the linux-firmware package can change, so the savedconfig file has to be tied to the version of the linux-firmware package.

----------

## bstaletic

Savedconfig files are versioned by default, but you can rename them and they will apply to all versions. It's, in a way, similar to package.* dirs/files.

----------

## hariskar

Although I install sys-kernel/linux-firmware with savedconfig USE flag, I can't find a savedconfig file in /etc/portage/savedconfig. Any idea why?

----------

## freedomeagle1967

hariskar

 *Quote:*   

> Although I install sys-kernel/linux-firmware with savedconfig USE flag, I can't find a savedconfig file in /etc/portage/savedconfig. Any idea why?

 

Not sure, possible bug:

```
USE="-savedconfig" emerge linux-firmware
```

then you can find: 

```
/etc/portage/savedconfig/sys-kernel/linux-firmware-20180103-r1
```

then:

```
USE="savedconfig" emerge linux-firmware
```

the config file is not being over witten.

----------

