# [SOLUCIONADO] sin /lib64/firmware al recompilar

## lukki

Buenas!

Hoy al actualizar el sistema veo que aparece linux-firmware como paquete nuevo a instalarse al ser dependencia de genkernel. 

Me parecio raro pero bueno actualice igual. Cuando cheque el directorio no solo veo que hay firmware privativo sino que ademas son unos 36MB aprox cuando siempre fueron menos de 2MB. Me horrorice y desinstale el paquete y le saque la USE a genekernel para que no lo pida.

El problema es que me elimino completamente la carpeta /lib64/firmware. Asi que recompile el kernel para que vuelva a instalarlo pero resulta que no lo hace mas.

Recompile el 4.7.10-hardened y el 4.8.4-gentoo y nada.

Esto es algo nuevo o es un problema mio nomas? Hice una copia manual desde src/ pero no se si funcionara hasta que reinicie.

Mi emerge --info

http://pastebin.com/Btnx4NmT

Gracias!!!Last edited by lukki on Thu Nov 03, 2016 12:29 am; edited 1 time in total

----------

## Fitap

Hola, linux-firmware justamente son todos los firm para linux.

En mi caso la carpeta /lib64/firmware me estaria dando algo asi como 152 Mb, hay hardware que no uso, pero y si llegase a usarlo? ya tendria el firm actualizado.

```

fitap@hp-gentoo ~/VM $ du -h /lib64/firmware/

8   /lib64/firmware/ar3k/1020201coex

40   /lib64/firmware/ar3k/30101coex

68   /lib64/firmware/ar3k/1020200

16   /lib64/firmware/ar3k/30000

44   /lib64/firmware/ar3k/1020201

32   /lib64/firmware/ar3k/30101

592   /lib64/firmware/ar3k

152   /lib64/firmware/acenic

280   /lib64/firmware/slicoss

80   /lib64/firmware/usbdux

76   /lib64/firmware/3com

32   /lib64/firmware/advansys

48   /lib64/firmware/tehuti

8760   /lib64/firmware/bnx2x

8   /lib64/firmware/sun

16   /lib64/firmware/atusb

24   /lib64/firmware/sb16

128   /lib64/firmware/ath9k_htc

16   /lib64/firmware/e100

28   /lib64/firmware/ene-ub6250

20   /lib64/firmware/dsp56k

36   /lib64/firmware/isci

16   /lib64/firmware/av7110

100   /lib64/firmware/keyspan

5360   /lib64/firmware/mrvl

3304   /lib64/firmware/intel

420   /lib64/firmware/i915

44   /lib64/firmware/amd-ucode

8   /lib64/firmware/r128

20   /lib64/firmware/yam

124   /lib64/firmware/sxg

752   /lib64/firmware/intel-ucode

20   /lib64/firmware/ttusb-budget

80   /lib64/firmware/keyspan_pda

8   /lib64/firmware/ti-keystone

1900   /lib64/firmware/libertas

600   /lib64/firmware/mwlwifi

1436   /lib64/firmware/bnx2

208   /lib64/firmware/go7007

376   /lib64/firmware/atmel

48   /lib64/firmware/yamaha

56   /lib64/firmware/RTL8192E

1496   /lib64/firmware/cxgb4

408   /lib64/firmware/moxa

12   /lib64/firmware/ess

520   /lib64/firmware/ath10k/QCA988X/hw2.0

524   /lib64/firmware/ath10k/QCA988X

812   /lib64/firmware/ath10k/QCA6174/hw3.0

548   /lib64/firmware/ath10k/QCA6174/hw2.1

1364   /lib64/firmware/ath10k/QCA6174

520   /lib64/firmware/ath10k/QCA99X0/hw2.0

524   /lib64/firmware/ath10k/QCA99X0

2416   /lib64/firmware/ath10k

56   /lib64/firmware/cis/src

128   /lib64/firmware/cis

876   /lib64/firmware/qed

212   /lib64/firmware/emi62

6352   /lib64/firmware/liquidio

2204   /lib64/firmware/ueagle-atm

12516   /lib64/firmware/brcm

96   /lib64/firmware/rtl_nic

80   /lib64/firmware/myricom

8   /lib64/firmware/ositech

8824   /lib64/firmware/ti-connectivity

768   /lib64/firmware/rtlwifi

76   /lib64/firmware/edgeport

7832   /lib64/firmware/amdgpu

828   /lib64/firmware/vxge

28   /lib64/firmware/dabusb

64   /lib64/firmware/ath6k/AR6004/hw1.3

64   /lib64/firmware/ath6k/AR6004/hw1.2

132   /lib64/firmware/ath6k/AR6004

116   /lib64/firmware/ath6k/AR6002

300   /lib64/firmware/ath6k/AR6003/hw2.1.1

128   /lib64/firmware/ath6k/AR6003/hw2.0

148   /lib64/firmware/ath6k/AR6003/hw1.0

580   /lib64/firmware/ath6k/AR6003

108   /lib64/firmware/ath6k/AR6003.1/hw2.1.1

112   /lib64/firmware/ath6k/AR6003.1

944   /lib64/firmware/ath6k

128   /lib64/firmware/qlogic

8   /lib64/firmware/vicam

24   /lib64/firmware/tigon

20   /lib64/firmware/kaweth

6888   /lib64/firmware/radeon

44   /lib64/firmware/carl9170fw/extra

28   /lib64/firmware/carl9170fw/tools/lib

20   /lib64/firmware/carl9170fw/tools/include

96   /lib64/firmware/carl9170fw/tools/carlu/src

104   /lib64/firmware/carl9170fw/tools/carlu

48   /lib64/firmware/carl9170fw/tools/src

212   /lib64/firmware/carl9170fw/tools

176   /lib64/firmware/carl9170fw/config

48   /lib64/firmware/carl9170fw/carlfw/usb

108   /lib64/firmware/carl9170fw/carlfw/include

132   /lib64/firmware/carl9170fw/carlfw/src

308   /lib64/firmware/carl9170fw/carlfw

12   /lib64/firmware/carl9170fw/toolchain

20   /lib64/firmware/carl9170fw/minifw

112   /lib64/firmware/carl9170fw/include/shared

96   /lib64/firmware/carl9170fw/include/linux

212   /lib64/firmware/carl9170fw/include

1032   /lib64/firmware/carl9170fw

140   /lib64/firmware/emi26

604   /lib64/firmware/mwl8k

368   /lib64/firmware/qca

12   /lib64/firmware/adaptec

8   /lib64/firmware/cpia2

184   /lib64/firmware/cxgb3

36   /lib64/firmware/matrox

20   /lib64/firmware/korg

308   /lib64/firmware/rtl_bt

20   /lib64/firmware/nvidia/gm204/gr

4   /lib64/firmware/nvidia/gm204/acr

28   /lib64/firmware/nvidia/gm204

136   /lib64/firmware/nvidia/tegra124

136   /lib64/firmware/nvidia/tegra210

68   /lib64/firmware/nvidia/gk20a

88   /lib64/firmware/nvidia/gm200/gr

24   /lib64/firmware/nvidia/gm200/acr

116   /lib64/firmware/nvidia/gm200

72   /lib64/firmware/nvidia/gm20b/gr

28   /lib64/firmware/nvidia/gm20b/acr

104   /lib64/firmware/nvidia/gm20b

20   /lib64/firmware/nvidia/gm206/gr

20   /lib64/firmware/nvidia/gm206/acr

44   /lib64/firmware/nvidia/gm206

636   /lib64/firmware/nvidia

152M   /lib64/firmware/

```

----------

## Stolz

No hace falta tener instalado firmware para hardware que no tienes. Puedes activar USE=savedconfig cuando instales sys-kernel/linux-firmware. Esto creará los ficheros /etc/portage/savedconfig/sys-kernel/linux-firmware-[version] cada vez que instales. En dichos ficheros puedes borrar los firmware que no quieres conservar y después volver a instalar el paquete. Esto borrará los firmwares que hayan sido eliminados de la lista.

Como mantener un fichero para cada versión es tedioso, puedes crear el fichero /etc/portage/savedconfig/sys-kernel/linux-firmware que afectará a todas las versiones, y después acordarte de borrar los ficheros /etc/portage/savedconfig/sys-kernel/linux-firmware-[version] que se generan con cada nueva versión del paquete.

Yo por ejemplo solo necesito el firmware para mi tarjeta WiFi y en /etc/portage/savedconfig/sys-kernel/linux-firmware solo tengo esta linea:

```
iwlwifi-7265D-21.ucode
```

----------

## lukki

Gracias por las respuestas.

Claramente la mayoria del firmware incluido en el paquete no me es de utilidad.

En el futuro voy a chequear eso que decis @Stolz pero ya confirme que con lo que copie me anda asi que por ahora no hare nada.

Mi mayor duda era: por que al compilar el kernel no instala el firmware como lo hacia siempre? Entiendo que lo resuelven con linux-firmware pero: si modificaron eso no deberian haber puesto aunque sea una news para enterarnos? Esto es lo que me genero dudas. Sobre todo porque como cada vez voy achicando mas el kernel y a veces borro la carpeta para ver que instala. 

Pero bueno capaz que siempre fue asi y yo ni me entere   :Confused: 

Saludos.

----------

## quilosaq

 *lukki wrote:*   

> ...
> 
> Mi mayor duda era: por que al compilar el kernel no instala el firmware como lo hacia siempre?
> 
> ..

 Seguramente porque tienes marcada la opción del kernel:

```
Device Drivers

  Generic Driver Options

    Userspace firmware loading support

      Include in-kernel firmware blobs in kernel binary
```

Si la desmarcas y ejecutas 

```
make && make modules_install
```

 verás que se copia en /lib/firmware el firmware que necesites (del que se distribuye junto con las fuentes del kernel) según tu configuración de kernel .

----------

## lukki

 *quilosaq wrote:*   

> Seguramente porque tienes marcada la opción del kernel:
> 
> ```
> Device Drivers
> 
> ...

 

No, no era eso pero revisandolo me acorde de

```
make firmware_install
```

lo agregue a mi alias y volvio a crear e instalar el firmrware en /lib64.

Lo raro ahora es que antes sin usar el codigo lo hacia y en estos ultimos kernels no. 

Gracias por recordarmelo.   :Very Happy: 

Saludos

----------

