Linux – Configure RTL8188CUS for AP and Client Mode with Hostapd

linuxwifi-configurationwireless-access-pointwireless-networking

I'm trying to figure out how to set up my RTL8188CUS Wifi dongle to run in both AP and Client mode at the same time.

How can I do this in Linux?

I have hostapd running fine and I remember reading about AP+Client mode somewhere a while ago for the RTL8188, but I can't remember where.

Additional info

I'm on Debian 4.7.2-5 for ARM.
Linux kernel 3.4.90+.

I found the following threads that might be of use and (I think) relevant:

Link 1: How do I use a single wireless adapter for both an access point and client on raspberry pi?
Link 2: Creating WiFi Access point on a single interface in Linux

I tried the first first link, no success.

UPDATE

I have managed to get iw list to work on Debain 8 Jessie x64.

It outputs the following:

software interface modes (can always be added):

    * AP/VLAN
    * monitor

interface combinations are not supported

However according to Realteks release notes of their latest drivers
they state that the RTL8188CUS supports concurrent modes such as STA+AP as of version 4.0.0_5967.20121201

Doesn't this contradict what iw list states?

If not, how would an STA+AP mode be achieved?

UPDATE
I figured it out. Please see my answer for more info.

Best Answer

It depends on network cards. I do not own an RTL8188, so i cannot tell you off-hand, but I can show you how to find out.

You must issue the command

 iw list

and, among its abundant output, you will find something like:

Supported interface modes:
             * IBSS
             * managed
             * AP
             * AP/VLAN
             * monitor
    software interface modes (can always be added):
             * AP/VLAN
             * monitor
    valid interface combinations:
             * #{ managed } <= 1, #{ AP } <= 1,
               total <= 2, #channels <= 1, STA/AP BI must match
             * #{ managed } <= 2,
               total <= 2, #channels <= 1

AP mode is the Access Point mode, managed is the usual client mode, and this is for my card.

You must check that both AP and managed appear among the supported modes, then you must check the valid interface combinations: in my case, the first allowed combination is clearly that of a (simultaneous) AP and managed mode (but no more than one each), provided the same channel is used. It might be different in your case.

In order to make this work, you must have two distinct virtual interfaces on the same NIC. You do it as follows:

service network-manager stop
iw dev wlan0 del
iw phy phy0 interface add new0 type station
service network-manager start
iw phy phy0 interface add new1 type __ap
hostapd -B /etc/hostapd.conf

First I stop the network manager, which has its own way of messing everything up, then I rename new0 the virtual interface on the physical interface called phy0 (adapt it to your case if yours is not called phy0, you obtain the name from the output of iw list), restart the network manager so that I can connect the virtual interface new0 to whichever AP I have near me.

Now I can add a new interface of type AP on the same hardware (please notice the double underscore preceding ap in the command), lastly I start hostpad.

The configuration of hostapd and of routing/DNS/DHCP depends on your specific needs, and cannot be established a priori.

Related Question