# Wireless RTL8192CU driver issues:  ioctl errors

## Gripes

When I try to start the wlan0 service I get the following error:

```
# /etc/init.d/net.wlan0 start

 * Bringing up interface wlan0

 *   Starting wpa_supplicant on wlan0 ...

ioctl[SIOCSIWPMKSA]: Invalid argument

ioctl[SIOCSIWMODE]: Invalid argument

ioctl[SIOCGIWRANGE]: Invalid argument

ioctl[SIOCGIWMODE]: Invalid argument

ioctl[SIOCSIWAP]: Invalid argument

ioctl[SIOCSIWENCODEEXT]: Invalid argument

ioctl[SIOCSIWENCODEEXT]: Invalid argument

ioctl[SIOCSIWENCODEEXT]: Invalid argument

ioctl[SIOCSIWENCODEEXT]: Invalid argument

ioctl[SIOCSIWPMKSA]: Invalid argument                                                                               [ ok ]

 *   Starting wpa_cli on wlan0 ...                                                                                  [ ok ]

 *   Backgrounding ... ...

 * WARNING: net.wlan0 has started, but is inactive

```

Here's the iwconfig after starting net.wlan0:

```
# iwconfig wlan0

wlan0     no wireless extensions.

```

Here's what ifconfig gives me:

```

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        ether a0:f3:c1:07:1a:95  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

```

Here's the conf.d/net:

```
# cat /etc/conf.d/net

wpa_supplicant_wlan0="-Dwext"

iwconfig_wlan0_mode="Managed"

wpa_supplicant_wlan0="-Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf"

config_wlan0="192.168.1.30 netmask 255.255.255.0 brd 192.168.1.255"

routes_wlan0="default via 192.168.1.1"

dns_servers=( "192.168.1.1" )

```

Here's the wpa_supplicant.conf:

```

ctrl_interface=/var/run/wpa_supplicant

ctrl_interface_group=wheel

ap_scan=0

network={

  ssid="Winterhold"

  proto=WPA RSN

  key_mgmt=WPA-PSK

  pairwise=CCMP TKIP

  group=CCMP TKIP WEP104 WEP40

  psk="REDACTED"

  priority=2

}

```

Here's the dmesg on boot showing the rtl8192ce driver loading:

```
[    0.713430] usbcore: registered new interface driver rtl8192cu

[  305.966082] rtl8192cu 3-2:1.0: usb_probe_interface

[  305.966086] rtl8192cu 3-2:1.0: usb_probe_interface - got id

[  305.969039] rtl8192cu: Chip version 0x11

[  306.581039] rtl8192cu: MAC address: a0:f3:c1:07:1a:95

[  306.581044] rtl8192cu: Board Type 0

[  306.583040] rtlwifi: rx_max_size 15360, rx_urb_num 8, in_ep 1

[  306.583074] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw.bin

[  306.666176] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'

[  306.669038] rtlwifi: wireless switch is on

[  309.312063] r8169 0000:03:00.0: eth0: link up

[  309.312075] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

[  309.468946] r8169 0000:03:00.0: eth0: link down

[  311.031923] r8169 0000:03:00.0: eth0: link up

```

And when starting the device:

```

[ 6110.012721] rtl8192cu: MAC auto ON okay!

[ 6110.272732] rtl8192cu: Tx queue select: 0x05

[ 6110.861758] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready

[ 6110.968367] modprobe (2476) used greatest stack depth: 3448 bytes left

```

Here's starting wpa_supplicant manually:

```
# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

ioctl[SIOCSIWPMKSA]: Invalid argument

ioctl[SIOCSIWMODE]: Invalid argument

ioctl[SIOCGIWRANGE]: Invalid argument

ioctl[SIOCGIWMODE]: Invalid argument

ioctl[SIOCSIWAP]: Invalid argument

ioctl[SIOCSIWENCODEEXT]: Invalid argument

ioctl[SIOCSIWENCODEEXT]: Invalid argument

ioctl[SIOCSIWENCODEEXT]: Invalid argument

ioctl[SIOCSIWENCODEEXT]: Invalid argument

ioctl[SIOCSIWPMKSA]: Invalid argument

ioctl[SIOCGIWESSID]: Invalid argument

Could not read SSID from driver.

```

And from wpa_cli:

```
> status

wpa_state=DISCONNECTED

```

Likewise, I have this loaded as a module but it does not appear on lsmod even after I try "modprobe rtl8192cu", which outputs nothing:

```
# modinfo rtl8192cu

filename:       /lib/modules/3.6.11-gentoo/kernel/drivers/net/wireless/rtlwifi/rtl8192cu/rtl8192cu.ko

firmware:       rtlwifi/rtl8192cufw.bin

description:    Realtek 8192C/8188C 802.11n USB wireless

license:        GPL

author:         Larry Finger    <Larry.Finger@lwfinger.net>

author:         Ziv Huang       <ziv_huang@realtek.com>

author:         Georgia         <georgia@realtek.com>

alias:          usb:v7392p7822d*dc*dsc*dp*ic*isc*ip*in*

...

alias:          usb:v0BDAp8191d*dc*dsc*dp*ic*isc*ip*in*

depends:        rtlwifi,rtl8192c-common

intree:         Y

vermagic:       3.6.11-gentoo SMP mod_unload

parm:           swenc:Set to 1 for software crypto (default 0)

 (bool)

parm:           debug:Set debug level (0-5) (default 0) (int)

# modprobe rtl8192cu

# lsmod

Module                  Size  Used by

nvidia              11215589  24

```

Does anybody have any ideas what might be going on here?  I have emerged linux-firmware (if I hadn't wlan0 wouldn't even show up).  Also, wlan0 will not show up if this driver is compiled into the kernel instead of compiled as a module.Last edited by Gripes on Sat Feb 23, 2013 7:57 pm; edited 1 time in total

----------

## Gusar

Have you tried -Dnl80211?

Drivers nowadays only work with wext because of a compatibility layer, which you may not have in your kernel (CONFIG_CFG80211_WEXT).

----------

## Gripes

Hmmm...  I was pretty sure I had tried that but it seems I haven't.  I just did that and there were no ioctl errors but the interface still does not appear in iwconfig, still fails to load an IP address, and all other indications are the same.

```
# /etc/init.d/net.wlan0 start

 * Bringing up interface wlan0

 *   Starting wpa_supplicant on wlan0 ...                                                           [ ok ]

 *   Starting wpa_cli on wlan0 ...                                                                  [ ok ]

 *   Backgrounding ... ...

 * WARNING: net.wlan0 has started, but is inactive

# iwconfig wlan0

wlan0     no wireless extensions.

# ifconfig wlan0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        ether a0:f3:c1:07:1a:95  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# wpa_cli

wpa_cli v0.7.3

Copyright (c) 2004-2010, Jouni Malinen <j@w1.fi> and contributors

This program is free software. You can distribute it and/or modify it

under the terms of the GNU General Public License version 2.

Alternatively, this software may be distributed under the terms of the

BSD license. See README and COPYING for more details.

Selected interface 'wlan0'

Interactive mode

> status

wpa_state=DISCONNECTED

```

I know my config for wpa_supplicant has the right login info.  I'm using wpa_supplicant on Gentoo on my Pandaboard and it's connecting up just fine:

```
# iwconfig

lo        no wireless extensions.

wlan0     IEEE 802.11abgn  ESSID:"Winterhold"

          Mode:Managed  Frequency:2.437 GHz  Access Point: C4:3D:C7:5D:40:2A

          Bit Rate=48 Mb/s   Tx-Power=20 dBm

          Retry  long limit:7   RTS thr:off   Fragment thr:off

          Encryption key:off

          Power Management:on

          Link Quality=65/70  Signal level=-45 dBm

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:14  Invalid misc:0   Missed beacon:0

eth0      no wireless extensions.

```

----------

## Gusar

Hmm, check "rfkill list", maybe the radio is killed.

If that won't work, blacklist the kernel driver and try your luck with Realtek's driver: http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=21&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true#2772

----------

## lvii

 *Gusar wrote:*   

> Have you tried -Dnl80211?
> 
> Drivers nowadays only work with wext because of a compatibility layer, which you may not have in your kernel (CONFIG_CFG80211_WEXT).

 

hi Gusar, I have meet this problem too. I compile the CONFIG_CFG80211_WEXT into kernel to solve it.

I have seen nl80211 driver info from the wiki: http://wiki.gentoo.org/wiki/Wifi

 *Quote:*   

> net-wireless/iw (if your driver supports the nl80211 stack)

 

how could I know the nl80211 driver support ? I search 'nl80211' from kernel 'make menuconfig', but get no result.

thx

----------

