how do I run multiple hostapd's on multiple virtual nic's with nl80211

Cory Coager ccoager at gmail.com
Wed Jan 12 19:38:55 EST 2011


I am gentoo user that had this working with the madwifi driver but I
recently upgraded my kernel and I'm having a lot of trouble with the new
nl80211 driver. I used to run two separate hostapd daemons with
different configs and I was able to run two separate access points. If I
do that now with the nl80211 driver I get an error starting the second
daemon:

* Caching service dependencies ...
 * Starting ath1
 *   Running preup function
 *   Changing MAC address of ath1 ...
 *     changed to 00:AE:82:44:01:18
 *   Configuring wireless network for ath1
Error for wireless request "Set ESSID" (8B1A) :
    SET failed on device ath1 ; Device or resource busy.
 *   ath1 does not support setting ESSID to "gentoo"
 *   Failed to configure wireless for ath1
 * ERROR:  cannot start hostapd1 as net.ath1 could not start


If I try to start the service again, it starts but that is because the
first interface was downed during the 'iw' operation.
* Starting ath1
 *   Running preup function
 *   Changing MAC address of ath1 ...
 *     changed to 00:AE:82:44:01:18
 *   Configuring wireless network for ath1
 *     ath1 connected to ESSID "gentoo" at 00:00:00:00:00:00
 *     in ad-hoc mode on channel 3 (WEP disabled)
 *   Bringing up ath1
 *     192.168.5.1/24
 * Starting hostapd1 ...
Configuration file: /etc/hostapd/hostapd1.conf
Using interface ath1 with hwaddr 00:AE:82:44:01:18 and ssid 'gentoo'


Here notice that ath0 is DOWN and ath1 is UP:
ath0      Link encap:Ethernet  HWaddr 00:AE:82:44:01:17
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:60312 errors:0 dropped:0 overruns:0 frame:0
          TX packets:107323 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5914689 (5.6 MiB)  TX bytes:149544981 (142.6 MiB)

ath1      Link encap:Ethernet  HWaddr 00:AE:82:44:01:18
          inet addr:192.168.5.1  Bcast:192.168.5.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:120 (120.0 B)


/etc/hostapd/hostapd.conf:
country_code=US
bssid=00:AE:82:44:01:17
interface=ath0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=1
dump_file=/tmp/hostapd0.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ignore_broadcast_ssid=1
ssid=ootneg
hw_mode=g
channel=1
macaddr_acl=1
accept_mac_file=/etc/hostapd/hostapd.accept
auth_algs=1
wpa=0


/etc/hostapd/hostapd1.conf:
country_code=US
bssid=00:AE:82:44:01:18
interface=ath1
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=1
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ignore_broadcast_ssid=0
ssid=gentoo
hw_mode=g
channel=8
macaddr_acl=0
auth_algs=1
wpa=1
wpa_passphrase=secret
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP


/etc/conf.d/net:
config_ath0=( "192.168.2.1/24" )
mac_ath0=( "00:AE:82:44:01:17" )
mode_ath0=( "ad-hoc" )
essid_ath0=( "ootneg" )

config_ath1=( "192.168.5.1/24" )
mac_ath1=( "00:AE:82:44:01:18" )
mode_ath1=( "ad-hoc" )
essid_ath1=( "gentoo" )

preup() {
  if [[ ${IFACE} == "ath0" || ${IFACE} == "ath1" ]]; then
    iw dev wlan0 interface add ${IFACE} type __ap
    rfkill unblock all
  fi
}
postdown() {
  if [[ ${IFACE} == "ath0" || ${IFACE} == "ath1" ]]; then
    iw dev ${IFACE} del
    iw dev mon.${IFACE} del
  fi
}


hostapd version:
[D] net-wireless/hostapd
     Available versions:  0.6.8 0.6.9{tbz2} {ipv6 logwatch madwifi ssl wps}
     Installed versions:  0.7.3(09:13:48 01/11/11)(debug logwatch
madwifi ssl wps -ipv6)
     Homepage:            http://hostap.epitest.fi
     Description:         IEEE 802.11 wireless LAN Host AP daemon


uname -a:
Linux gentoo 2.6.36-hardened-r6 #3 Tue Jan 11 22:19:39 EST 2011 i686 AMD
Athlon(tm) Processor AuthenticAMD GNU/Linux

How do I accomplish this?


More information about the HostAP mailing list