30

I would like to make a Virtual Router on Ubuntu 12.04

but i am getting this error message when i run the last terminal command

Configuration file: hostapd.conf
nl80211: Could not configure driver mode
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface wlan0 wasn't started

6 Answers6

33

As @bain has rightly pointed out, there is a bug raised in launchpad for this very purpose. This workaround suggested there works perfectly for me:

sudo nmcli nm wifi off
sudo rfkill unblock wlan

sudo ifconfig wlan0 10.15.0.1/24 up
sleep 1
sudo service isc-dhcp-server restart
sudo service hostapd restart

The first two lines stop wlan from network manager, and then unblocks the interface, so ifconfig can work.


UPDATE: But if for the first command you get the error message Error: Object 'nm' is unknown then use this instead:

sudo nmcli radio wifi off

The next commands uses ifconfig to bring up wlan and allows a second's delay, then restart the dhcp server (though I did not need this restart in my setup), and finally start the hostapd service.

It should now start w/o any issues.

Prahlad Yeri
  • 1,657
9

I just had this error on Raspberry pi running Kali linux and hostapd 2.4 I suspected it is because some other network processes are keeping the interface busy, so I ran this airmon-ng command that checks and kills and processes that might use the wifi card:

airmon-ng check kill

To just see any network processes without killing them, use airmon-ng check. After I killed them, I started hostapd again and no errors came up anymore.

For some other network functionality you might need those processes, I restarted the raspberry for that, but they can also be started individually.

adrianTNT
  • 216
4

Just mention that according to the bug linked by @bain, the easiest solution is to disable Network Manager for the interface that is to be run with hostapd.

As mentioned there:

WORKAROUND: For this to persist through reboots, execute the following in a terminal:
sudo nano /etc/NetworkManager/NetworkManager.conf

Add the following entry where the x's are replaced with your WiFi MAC address, save, and then reboot:
[keyfile]
unmanaged-devices=mac:xx:xx:xx:xx:xx:xx
3

I ran into the same issue. The first thing I tried was to manually update hostapd from a debian repository from v2.1 to v2.3 . The issue persisted.

I created this script, which is a list of commands that unblock the WLAN driver, and now I finally have a working AP, already deployed in a remote location.

I saved the script to /usr/bin/enableAP.sh. Make sure to include it into your crontab so that it is executed at boot.

#!/bin/sh
/bin/sleep 30
/usr/sbin/service hostapd stop
/usr/sbin/service network-manager stop
/sbin/ifdown wlan0
/sbin/iwconfig wlan0 mode Managed
/usr/sbin/rfkill unblock wlan
/usr/bin/nmcli radio wifi off
/usr/sbin/service hostapd stop
/bin/sleep 10
/usr/sbin/service hostapd start

if you want to avoid this issue just after installing your new virtual machine and hostapd, you need to block ubuntu from upgrading hostapd: when you use sudo apt-get upgrade it upgrades this package to v2.1, which doesn't work (surely bugged).

You must use sudo apt-mark hold hostapd to block future upgrades to Hostapd.

Rick
  • 31
0

The solution for me was stopping (which is handled indeed by airmon-ng check kill, but that is not necessarily avaialable on the system) wpa_supplicant, otherwise kept getting "Could not configure driver mode"

systemctl stop wpa_supplicant.service

or via

pkill wpa_supplicant
cg79
  • 1
0

Try this:

  1. Click the network icon
  2. Select "Create wireless network"
  3. Choose a name, encryption type and password
  4. Click create
  5. Make sure you're connected to the internet.
Dusan Milosevic
  • 1,952
  • 6
  • 27
  • 48