# how do i run multiple hostapd on multiple virtual nic's

## plut0

I 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
```

----------

