2

I'm trying to use a beagle bone black running ubuntu 14.04 act as an access point and a wireless client at the same time the goal is to use the access point to allow a client to connect, open a page through an httpd server and then configure/connect to a local wireless signal

the wifi uses Atheros AR9271 chipset which uses the ath9k_htc driver I'm wondering if this is specific to this chipset vs a standard ath9k supported chipset or am I missing the elusive obvious?

I can get the access point working using a virtual device

iw phy phy0 interface add wap0 type __ap
ifconfig wap0 hw ether 0a:35:9f:fe:44:01  # or any fake HW address
ifconfig wap0 192.168.8.1 netmask 255.255.255.0
ifconfig wap0 192.168.8.1 up

with /etc/network/interfaces entry

auto wap0
iface wap0 inet static
    hostapd /etc/hostapd/hostapd.conf
    address 192.168.8.1
    netmask 255.255.255.0

and /etc/hostapd/hostapd.conf entry to a minimum

interface=wap0
driver=nl80211
ssid=BeagleBoneBlack
channel=1

and /etc/dnsmasq.conf at a minimum with

interface=lo,wap0
listen-address=127.0.0.1
no-dhcp-interface=lo
dhcp-range=192.168.8.10,192.168.8.50,255.255.255.0,12h
cache-size=0

I can get a client to connect wirelessly, using a variety of tools (nmcli / wicd / iw / ...) I can then connect to another router using wlan0

if encryption is disabled

when I try to connect to another router with wpa1/2 enabled I start getting funny results with any client and multiple kernel/driver versions (compat 3.8.x through backports 3.19.x)

everything from running wpa_supplicant directly

wpa_passphrase "NETWORK_SSID" "WPA_PASS_PHRASE" > /etc/wpa_supplicant.conf
wpa_supplicant -i wlan0 -Dwext -Dn180211 -c/etc/wpa_supplicant.conf

output (repeated a few dozen times in various order)

Successfully initialized wpa_supplicant
wlan0: CTRL-EVENT-SCAN-STARTED 
wlan0: SME: Trying to authenticate with 04:a1:51:33:f3:64 (SSID='NETWORK_SSID' freq=2462 MHz)
wlan0: SME: Authentication request to the driver failed

when running wpa_supplicant before initializing the virtual device wap0

# wpa_supplicant -i wlan0 -Dwext -Dn180211 -c/etc/wpa_supplicant.conf

Successfully initialized wpa_supplicant
wlan0: CTRL-EVENT-SCAN-STARTED 
wlan0: SME: Trying to authenticate with 98:fc:11:b7:48:a0 (SSID='mycomountain' freq=2437 MHz)
wlan0: Trying to associate with 98:fc:11:b7:48:a0 (SSID='NETWORK_SSID' freq=2437 MHz)
wlan0: Associated with 98:fc:11:b7:48:a0
wlan0: WPA: Key negotiation completed with 98:fc:11:b7:48:a0 [PTK=CCMP GTK=TKIP]
wlan0: CTRL-EVENT-CONNECTED - Connection to 98:fc:11:b7:48:a0 completed [id=0 id_str=]

to using /etc/network/interfaces set to

auto wlan0
iface wlan0 inet dhcp
    wpa-ssid "NETWORK_SSID"
    wpa-psk "WPA_PASS_PHRASE"

and running

ifdown wlan0; ifup wlan0;

output

Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/e8:de:27:1f:6e:60
Sending on   LPF/wlan0/e8:de:27:1f:6e:60
Sending on   Socket/fallback
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/e8:de:27:1f:6e:60
Sending on   LPF/wlan0/e8:de:27:1f:6e:60
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 3 (xid=0x39ec90a3)
# ...
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

the DHCPDISCOVER line then repeats itself with various interval values until it fails

wicd just fails to do anything when hostapd is running on wap0

I'm certainly skipping a couple steps I've tried so far, best reference that suggests what I'm doing should work (I can post a dozen more with pieces that got me this far if helpful for anyone)

Creating WiFi Access point on a single interface in Linux

** EDIT **

I tried changing the hostaptd channel to match the router channel I'm trying to connect to -- still not connecting but starting to get wicd to do something when hostapd is running

wicd control through python w/ dbus (probably irrelevant but hoping this thread helps someone else once a solution is found)

import dbus

bus = dbus.SystemBus()
wireless = dbus.Interface(bus.get_object('org.wicd.daemon', '/org/wicd/daemon/wireless'),
                          'org.wicd.daemon.wireless')
network_id = 0
wireless.ConnectWireless(network_id)

Wicd log Output

2015/04/20 16:47:30 :: Putting interface down
2015/04/20 16:47:30 :: Releasing DHCP leases...
2015/04/20 16:47:30 :: attempting to set hostname with dhclient
2015/04/20 16:47:30 :: using dhcpcd or another supported client may work better
2015/04/20 16:47:31 :: Setting false IP...
2015/04/20 16:47:31 :: Stopping wpa_supplicant
2015/04/20 16:47:31 :: Flushing the routing table...
2015/04/20 16:47:31 :: Putting interface up...
2015/04/20 16:47:33 :: Attempting to authenticate...
2015/04/20 16:48:09 :: wpa_supplicant authentication may have failed.
2015/04/20 16:48:09 :: connect result is 
2015/04/20 16:48:09 :: exiting connection thread
2015/04/20 16:48:10 :: Sending connection attempt result bad_pass
2015/04/20 16:48:10 :: Autoconnecting...
2015/04/20 16:48:10 :: No wired connection present, attempting to autoconnect to wireless network
2015/04/20 16:48:13 :: Unable to autoconnect, you'll have to manually connect
2015/04/20 16:48:13 :: attempting to set hostname with dhclient
2015/04/20 16:48:13 :: using dhcpcd or another supported client may work better
2015/04/20 16:48:13 :: attempting to set hostname with dhclient
2015/04/20 16:48:13 :: using dhcpcd or another supported client may work better

Output wicd -- hostapd stopped

2015/04/20 16:58:58 :: Putting interface down
2015/04/20 16:58:58 :: Releasing DHCP leases...
2015/04/20 16:58:58 :: attempting to set hostname with dhclient
2015/04/20 16:58:58 :: using dhcpcd or another supported client may work better
2015/04/20 16:58:58 :: Setting false IP...
2015/04/20 16:58:58 :: Stopping wpa_supplicant
2015/04/20 16:58:58 :: Flushing the routing table...
2015/04/20 16:58:58 :: Putting interface up...
2015/04/20 16:59:00 :: Attempting to authenticate...
2015/04/20 16:59:02 :: Running DHCP with hostname HOSTNAME
2015/04/20 16:59:02 :: attempting to set hostname with dhclient
2015/04/20 16:59:02 :: using dhcpcd or another supported client may work better
2015/04/20 16:59:02 :: Internet Systems Consortium DHCP Client 4.2.4
2015/04/20 16:59:02 :: Copyright 2004-2012 Internet Systems Consortium.
2015/04/20 16:59:02 :: All rights reserved.
2015/04/20 16:59:02 :: For info, please visit https://www.isc.org/software/dhcp/
2015/04/20 16:59:02 :: 
2015/04/20 16:59:02 :: Listening on LPF/wlan0/64:70:02:20:08:35
2015/04/20 16:59:02 :: Sending on   LPF/wlan0/64:70:02:20:08:35
2015/04/20 16:59:02 :: Sending on   Socket/fallback
2015/04/20 16:59:02 :: DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 3 (xid=0x136a5e8e)
2015/04/20 16:59:02 :: DHCPREQUEST of 192.168.0.15 on wlan0 to 255.255.255.255 port 67 (xid=0x136a5e8e)
2015/04/20 16:59:02 :: DHCPOFFER of 192.168.0.15 from 192.168.0.1
2015/04/20 16:59:02 :: DHCPACK of 192.168.0.15 from 192.168.0.1
2015/04/20 16:59:02 :: bound to 192.168.0.15 -- renewal in 42862 seconds.
2015/04/20 16:59:02 :: DHCP connection successful
2015/04/20 16:59:02 :: not verifying
2015/04/20 16:59:03 :: Connecting thread exiting.
2015/04/20 16:59:03 :: Sending connection attempt result success
Alvin
  • 275
  • 3
  • 9

1 Answers1

0

Not sure what hardware you have, but if you are using a USB stick for Wifi (Like TP-Links TL-WN722N), you cannot set the AP mode channel without firmware hacking. This is a highly non trivial task which require compiling a bunch of Linux sources etc. In addition the default firmware seem to be for a country where channels 12 and 13 are not available.

not2qubit
  • 1,993
  • 4
  • 28
  • 35
  • using a USB stick, not trying to change the channels operating on but was trying to get a simultaneous `wifi client` & `wpa host` -- settled on 1 then restarting for the other but curious if anyone else has pulled this off? – Alvin Aug 26 '15 at 13:42
  • Like I said, your best chance for help is probably under Kali Linux, where all the drivers are already there, and where it easy to change and compile the firmware. I noticed that I had to `insmod ath` and that it took some time for the device to get recognized. There are plenty of hack for this device, even using it as an sdr for frequencies way below WiFi standard around 2300 MHz. I.e. you can use "negative" channels... Google for that. – not2qubit Sep 01 '15 at 19:21