# External firmware blobs - rtlwifi/rtl8192cfw.bin

## gentian

I'm following this guide - > http://en.gentoo-wiki.com/wiki/Lenovo_ThinkPad_x120e#Firmware and I'm trying to compile the kernel, but rtlwifi/rtl8192cfw.bin fails. Should I emerge some other firmware besides the radeon one during installation for the realtek wireless chip?

Thanks.

----------

## Gusar

Yeah, uninstall radeon-ucode and install linux-firmware. It contains a whole bunch of firmware, including the radeon and realtek stuff you need.

----------

## jtshs256

Do NOT emerge  net-wireless/rtl8192se-firmware.

It does not work with the kernel drive, and is to be removed from the portage.

emerge sys-kernel/linux-firmware instead.

If radeon-ucode blocks linux-firmware, unmerge it, for linux-firmware also provides radeon firmwares.

----------

## gentian

 *Gusar wrote:*   

> Yeah, uninstall radeon-ucode and install linux-firmware. It contains a whole bunch of firmware, including the radeon and realtek stuff you need.

 

Thanks for the reply. 

The x120e sports the AMD Fusion chip that includes the HD 6310 Graphics. According to the radeon gentoo wiki http://en.gentoo-wiki.com/wiki/Radeon#Device_Firmware, I have to use the radeon-ucode package. Isn't that the case? Might sound noob-ish, but can I install both radeon-ucode and linux-firmware and get the rtl package from linux-firmware?

```
In general, for cards with R600 (Radeon HD2000) or newer:

emerge x11-drivers/radeon-ucode

And all other cards:

emerge sys-kernel/linux-firmware
```

----------

## NeddySeagoon

gentian,

linux-firmware contains many freely distributable firmware packages but not all.

I think it contains everything you need.  If not, its possible to add to it later.

In some cases the firmware is not in linux-firmware, nor is there an ebuild to fetch and install it.

In such cases you must do it yourself.

Anyway, install linux-firmware, reboot then look in dmesg to see what it says about loaded firmware and missing firmware.

----------

## gentian

 *NeddySeagoon wrote:*   

> gentian,
> 
> linux-firmware contains many freely distributable firmware packages but not all.
> 
> I think it contains everything you need.  If not, its possible to add to it later.
> ...

 

Tried linux-firmware. It won't find the rtl8192cfw.bin firmware for my card  :Sad:  How can they post a guide that is supposed to work on the gentoo wiki while it doesnt work? Maybe there is some other firmware that works and can be satisfied by an ebuild out there?

----------

## NeddySeagoon

gentian,

You say "won't find the rtl8192cfw.bin".

Does that mean the file is not in /lib/firmware/...  or it is present but is not loaded ?

If its the former, you need to find it on the web and put it in the right place in /lib/fimware/...

The failure message in dmesg will tell the right place.

If its there but not loaded, there is a gotcha in the kernel configuration and build you should investigate.

When you make the kernel driver built into the kernel, thats configured as <*> the firmware must also be built into the kernel..

When you make the kernel driver as <M> the firmware must be in /lib/firmware/...

The other two options fail as the firmware will not be found.

With the driver built in, /lib/firmware is not available when firmware loading is attempted, as root is not yet mounted.

With the driver as <M>, it can't look inside the kernel binary for firmware as that area of the kernel has already been freed.

----------

## gentian

 *NeddySeagoon wrote:*   

> gentian,
> 
> You say "won't find the rtl8192cfw.bin".
> 
> Does that mean the file is not in /lib/firmware/...  or it is present but is not loaded ?
> ...

 

Yes, It's probably not included in the linux-firmware ebuild, cause when I compile the kernel it fails. However, I followed the x120e gentoo wiki and there is no mention of the realtek driver anywhere but the guide mentions the rtl firmware:

```
(radeon/PALM_me.bin radeon/PALM_pfp.bin rtlwifi/rtl8192cfw.bin) External firmware blobs to build into the kernel build
```

Also, when following the radeon-ucode guide, it states the following option to be enabled in the kernel:

```
General setup  ---> [*] Enable PCI quirk workarounds
```

However, this option only becomes available if I select the: configure standard kernel features option, which disables the Sata configuration option. :/

----------

## Gusar

 *gentian wrote:*   

> Yes, It's probably not included in the linux-firmware ebuild, cause when I compile the kernel it fails.

 

It's there for sure, it's part of linux-firmware. You probably configured the kernel incorrectly. Check that the firmware stuff is exactly as on the wiki page.

----------

## gentian

 *Gusar wrote:*   

>  *gentian wrote:*   Yes, It's probably not included in the linux-firmware ebuild, cause when I compile the kernel it fails. 
> 
> It's there for sure, it's part of linux-firmware. You probably configured the kernel incorrectly. Check that the firmware stuff is exactly as on the wiki page.

 

I don't see the same Realtek drivers, as the one's spoted on the wiki.

linux-firmware package

```
-rw-r--r--   13540   rtl8192cfw.bin   blob | history | raw

-rw-r--r--   16014   rtl8192cufw.bin   blob | history | raw

-rw-r--r--   20526   rtl8192defw.bin   blob | history | raw

-rw-r--r--   88856   rtl8192sefw.bin   blob | history | raw

-rw-r--r--   129304   rtl8712u.bin   blob | history | raw
```

gentoo-wiki

```
[*] Network device support  --->

    [*]   Wireless LAN  --->

      <M>   Realtek RTL8192CE/RTL8188SE Wireless Network Adapter
```

----------

## gentian

bump.. I am trying to emerge linux-firmware just to see if it works that way, but it gets blocked by radeon-ucode :/

----------

## Gusar

 *gentian wrote:*   

> bump.. I am trying to emerge linux-firmware just to see if it works that way, but it gets blocked by radeon-ucode :/

 Err, read what people tell you!

----------

## gentian

 *Gusar wrote:*   

>  *gentian wrote:*   bump.. I am trying to emerge linux-firmware just to see if it works that way, but it gets blocked by radeon-ucode :/ Err, read what people tell you!

 

It's tad confusing, cause if I uninstall the radon-ucode firmware, then my card wouldn't work anymore, would it? I have the hd6310 and according to the radeon wiki, I have to use radeon-ucode. Should I just download the rtl8192cfw.bin file and place it in lib/firmware? Would I need to do anything else after that? eg. How am I supposed to load it? I have selected the driver as a Module in Kernel config.

----------

## Gusar

 *gentian wrote:*   

> if I uninstall the radon-ucode firmware, then my card wouldn't work anymore, would it?

 

What did I say in my first reply?

----------

## gentian

 *Gusar wrote:*   

>  *gentian wrote:*   if I uninstall the radon-ucode firmware, then my card wouldn't work anymore, would it? 
> 
> What did I say in my first reply?

 

I read your 1st post thoroughly but this does not answer my last question. Would there be any conflict with my radeon hd card?

```
In general, for cards with R600 (Radeon HD2000) or newer:

emerge x11-drivers/radeon-ucode

And all other cards:

emerge sys-kernel/linux-firmware
```

----------

## Gusar

 *gentian wrote:*   

> I read your 1st post thoroughly but this does not answer my last question.

 It does.

----------

## NeddySeagoon

gentian,

Try this experiment thereare two possible outcomes - neither will harm your Gentoo install, nor your video card working.

Boot normally, then look at the names of the firmware files you have in /lib/firmware/radeon/ You may want to send them to a file for chaling later.

Now remove radeon-uscode 

```
emerge -C x11-drivers/radeon-ucode 
```

and install linux-firmware

```
emerge linux-firmware
```

This will not harm your graphics card operation as the ucode file is loading into the card at boot and stays there until you power off.

Look in  /lib/firmware/radeon/ again.  Check that the files provided by x11-drivers/radeon-ucode are present.

If they are, you are done, you only need linux firmware.  if not, 

```
emerge -C linux-firmware && emerge x11-drivers/radeon-ucode 
```

to get back to where you came from.

Provided you don't reboot ig your firmware is missing, everything will contine to work.

I suspect that your 

```
In general, for cards with R600 (Radeon HD2000) or newer: 

emerge x11-drivers/radeon-ucode 

And all other cards: 

emerge sys-kernel/linux-firmware
```

is out of date information.

I can make it easier ...  

```
ls /lib/firmware/radeon/

BARTS_mc.bin    CEDAR_rlc.bin    R520_cp.bin      RV610_pfp.bin  RV770_me.bin

BARTS_me.bin    CYPRESS_me.bin   R600_me.bin      RV620_me.bin   RV770_pfp.bin

BARTS_pfp.bin   CYPRESS_pfp.bin  R600_pfp.bin     RV620_pfp.bin  SUMO2_me.bin

BTC_rlc.bin     CYPRESS_rlc.bin  R600_rlc.bin     RV630_me.bin   SUMO2_pfp.bin

CAICOS_mc.bin   JUNIPER_me.bin   R700_rlc.bin     RV630_pfp.bin  SUMO_me.bin

CAICOS_me.bin   JUNIPER_pfp.bin  REDWOOD_me.bin   RV635_me.bin   SUMO_pfp.bin

CAICOS_pfp.bin  JUNIPER_rlc.bin  REDWOOD_pfp.bin  RV635_pfp.bin  SUMO_rlc.bin

CAYMAN_mc.bin   PALM_me.bin      REDWOOD_rlc.bin  RV670_me.bin   TURKS_mc.bin

CAYMAN_me.bin   PALM_pfp.bin     RS600_cp.bin     RV670_pfp.bin  TURKS_me.bin

CAYMAN_pfp.bin  R100_cp.bin      RS690_cp.bin     RV710_me.bin   TURKS_pfp.bin

CAYMAN_rlc.bin  R200_cp.bin      RS780_me.bin     RV710_pfp.bin

CEDAR_me.bin    R300_cp.bin      RS780_pfp.bin    RV730_me.bin

CEDAR_pfp.bin   R420_cp.bin      RV610_me.bin     RV730_pfp.bin
```

is your radeon fimware there ?

Thats from linux-firmware a few months ago.

----------

## gentian

 *NeddySeagoon wrote:*   

> gentian,
> 
> Try this experiment thereare two possible outcomes - neither will harm your Gentoo install, nor your video card working.
> 
> Boot normally, then look at the names of the firmware files you have in /lib/firmware/radeon/ You may want to send them to a file for chaling later.
> ...

 

Gusar was right all the way from the beginning.. I inserted the wrong string on the kernel config. instead of rtl i did rt1.. Anyways, I'm glad that my kernel compiled fine now. Do I have to declare my wifi interface manually somewhere? I have installed wicd but it won't find any wifi networks.

----------

## NeddySeagoon

gentian,

If you are using wicd, no, do not declare your wireless interface manually.

When it appears in

```
ifconfig -a
```

wicd should be able to control it.

Its worth 

```
emerge wireless-tools
```

so you have iwconfig.

iwconfig does for the wireless elements of a wireless network what ifconfig does for the Ethernet part.

Look in 

```
iwconfig wlan0
```

to see what it says about your wireless.

Provided you use WEP or no encrytion at all (don't do either for very long), you can use iwconfig to set up your network from the console.

What does

```
iwlist wlan0
```

say about networks around you?

Are there any signs in dmesg that your wireless ever associated with an Access Point?

Do your have a switch or Fn Key option to enable and disable your wireless?

----------

## gentian

 *NeddySeagoon wrote:*   

> gentian,
> 
> If you are using wicd, no, do not declare your wireless interface manually.
> 
> When it appears in
> ...

 

It appears as wlan0 on ifconfig -a but I still don't see any networks when running wicd-curses :/

I get wlan0 Link encap:Ethernet HWaddr 00:56:etc.. and no packets are sent/received.

btw, I have installed wireless-tools. iwlist wlan0 returns 'unknown command wlan0'

----------

## NeddySeagoon

gentian,

```
iwlist wlan0 
```

says much more.  *iwlist wrote:*   

> iwlist: unknown command `wlan0' (check 'iwlist --help').

 

The help explains how to use iwlist. Its a bit terse. 

```
man iwlist
```

provides much more detail.

I should have suggested 

```
iwlist wlan0 scanning
```

Homework: read the iwconfig and iwlist man pages and try out a few commands.

Post the output of 

```
iwconfig wlan0
```

----------

## gentian

 *NeddySeagoon wrote:*   

> gentian,
> 
> ```
> iwlist wlan0 
> ```
> ...

 

```
iwconfig wlan0

wlan0  IEEE 802.11bgn ESSID:off/any

          Mode:Managed Access Point: Not-Associated  Tx-Power=0 dBm

          Retry  long limit:7  RTS thr=2347 B  Fragment thr:off

          Encryption key:off

          Power Management:on
```

----------

## NeddySeagoon

gentian,

Your wireless transmitter seems to be off

```
Tx-Power=0 dBm 
```

Does your system have a physical switch to enabe wireless or perhaps a blue FN key combination?

You can try setting the Tx power with iwconfig and see if you get an error message or if the Tx power setting takes effect.

Maximum permitted values vary from one region of the world to another. Some devides do not support all legal Tx Power values either.

15dBm is a good starting point. The UK permits 27dBm.  Higher numbers mean more power and on laptops, reduced time running on the battery.

Read the man page to work out the syntax of the command you need

----------

