# Realtek RTL8188S WLAN USB [SOLVED]

## Banana

well I have the following usb stick

```
2010-04-14T10:37:19.312438+02:00 localhost kernel: [ 5354.732098] usb 1-1: new high speed USB device using ehci_hcd and address 3

2010-04-14T10:37:19.429593+02:00 localhost kernel: [ 5354.849110] usb 1-1: New USB device found, idVendor=0bda, idProduct=8171

2010-04-14T10:37:19.429609+02:00 localhost kernel: [ 5354.849123] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

2010-04-14T10:37:19.429620+02:00 localhost kernel: [ 5354.849135] usb 1-1: Product: RTL8188S WLAN Adapter 

2010-04-14T10:37:19.429631+02:00 localhost kernel: [ 5354.849145] usb 1-1: Manufacturer: Manufacturer Realtek 

2010-04-14T10:37:19.429643+02:00 localhost kernel: [ 5354.849155] usb 1-1: SerialNumber: 00e04c000001
```

this is my kernel

```
Linux bumblebee 2.6.33-tuxonice #12 SMP Wed Apr 14 09:05:50 CEST 2010 i686 Intel(R) Atom(TM) CPU N270 @ 1.60GHz GenuineIntel GNU/Linux
```

there is no option for this card in the kernel.

For this I try to use the following driver from Realtek

http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=48&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true#RTL8188SU

( I know this is for 8188SU but this is the best I've found )

if I now try to make the driver I get this:

```
make ARCH=i386 CROSS_COMPILE= -C /lib/modules/2.6.33-tuxonice/build M=/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226  modules

make[1]: Entering directory `/usr/src/linux-2.6.33-tuxonice'

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/cmd/rtl871x_cmd.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/cmd/rtl8712_cmd.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/crypto/rtl871x_security.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/debug/rtl871x_debug.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/eeprom/rtl871x_eeprom.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/efuse/rtl8712_efuse.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/hal/rtl8712/hal_init.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/hal/rtl8712/usb_ops.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/hal/rtl8712/usb_ops_linux.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/hal/rtl8712/usb_halinit.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/io/rtl871x_io.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/io/rtl8712_io.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_query.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_set.o

  CC [M]  /root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.o

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3553: error: unknown field ‘private’ specified in initializer

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3553: warning: initialization from incompatible pointer type

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3554: error: unknown field ‘private_args’ specified in initializer

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3554: warning: excess elements in struct initializer

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3554: warning: (near initialization for ‘r871x_handlers_def’)

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3555: error: unknown field ‘num_private’ specified in initializer

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3555: warning: excess elements in struct initializer

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3555: warning: (near initialization for ‘r871x_handlers_def’)

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3556: error: unknown field ‘num_private_args’ specified in initializer

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3556: warning: excess elements in struct initializer

/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.c:3556: warning: (near initialization for ‘r871x_handlers_def’)

make[2]: *** [/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/ioctl/rtl871x_ioctl_linux.o] Error 1

make[1]: *** [_module_/root/digitus/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226/driver/rtl8712_8188_8191_8192SU_usb_linux_v2.6.0006.20100226] Error 2

make[1]: Leaving directory `/usr/src/linux-2.6.33-tuxonice'

make: *** [modules] Error 2
```

Does anyone has experience with this, or any clue what is wrong. Or do I miss something in the kernel ?

----------

## d2_racing

Did you try the latest git-sources ?

----------

## Banana

of what ?

from the kernel ? well no, but if you think this can help then provide the clone url please.

----------

## d2_racing

Did you check if git-sources 2.6.34 include your driver ?

----------

## Banana

installing it now and I will check

// EDIT:

well, I did not find it. Also no staging driver

ok foundsomething, gonna try it now:

http://blog.xff.lt/2009/12/28/canyon-cnp-wf518n2-usb-wireless-linux/

----------

## Banana

well the above solution works. 

you need the patch, otherwise the kernel driver does nothing..

----------

## solamour

I tried the patch on "kernel-2.6.38-gentoo-r6", and I'm getting the following compilation error. Once I uncheck "Staging drivers (STAGING)", build goes OK, but the USB network device is not detected. Please guide me on what to look for. Thank you.

```

  CHK     include/linux/version.h

  CHK     include/generated/utsrelease.h

  CALL    scripts/checksyscalls.sh

  CHK     include/generated/compile.h

  LD      drivers/built-in.o

drivers/staging/built-in.o:(.bss+0x10a0): multiple definition of `dm_digtable'

drivers/net/built-in.o:(.bss+0x18): first defined here

ld: Warning: size of symbol `dm_digtable' changed from 40 in drivers/net/built-in.o to 44 in drivers/staging/built-in.o

make[1]: *** [drivers/built-in.o] Error 1

make: *** [drivers] Error 2

make: *** Waiting for unfinished jobs....
```

__

sol

----------

## solamour

Just to keep everyone informed, here is what worked.

```
# lsusb

Bus 001 Device 002: ID 0bda:8171 Realtek Semiconductor Corp.

# uname -r

2.6.39-gentoo-r3

```

I also had to get the firmware, which was conveniently in the Portage.

```
emerge -v linux-firmware
```

I didn't need to bother with the patches, because the latest kernel (2.6.39 in this case) had RTL8192SU as a staging driver 

```
   Device Drivers

      Staging drivers (STAGING)

         Exclude Staging drivers from being built (STAGING_EXCLUDE_BUILD, uncheck)

            RealTek RTL8712U (RTL8192SU) Wireless LAN NIC driver (R8712U)

               Realtek RTL8712U AP code (R8712_AP)

```

Once all the pieces were together, it just worked. I'm not able to use it with hostapd (i.e. make my laptop act like an access point), but I guess that's not supported with this network interface (yet).

__

sol

----------

