LoginSignup
0
0

More than 5 years have passed since last update.

hostapdがNetworkManagerと干渉して動かない

Last updated at Posted at 2017-07-04

hostapdが動かない。
エラーの内容から原因が類推できず、若干悩んだので、メモ。

環境

Ubuntu Desktop 16.04 64bit

エラー

# hostapd  /etc/hostapd/hostapd.conf
nl80211: Could not configure driver mode
nl80211: deinit ifname=wlx001122334455 disabled_11b_rates=0
nl80211 driver initialization failed.
wlx001122334455: interface state UNINITIALIZED->DISABLED
wlx001122334455: AP-DISABLED
hostapd_free_hapd_data: Interface wlx001122334455 wasn't started

これじゃ原因がわからん。ググってもいまいち。
そこでデバッグオプション。

# hostapd -dd /etc/hostapd/hostapd.conf
:
nl80211: Failed to set interface 4 to mode 3: -16 (Device or resource busy)
:
nl80211: Failed to set interface 4 to mode 2: -16 (Device or resource busy)

なんか競合っぽい!

ググる

色々出てくる。結局、NetworkManagerと干渉しているようだ。
詳細はこちらこちらを参照。
またもArchWikiから発想をいただく。

解決策

  1. NetworkManagerを完全に消し去る
  2. NetworkManagerを止める
  3. 該当NICをNetworkManagerの管理外にする

今回は2.で。

NetworkManagerの止め方

Ubuntu Community Help Wikiによると、

sudo systemctl stop NetworkManager.service
sudo systemctl disable NetworkManager.service

がよさそう(Ubuntu 15.04以降)。

おまけ: Ubuntuのsystemdとネットワーク設定

UbuntuでNetworkManagerを止めて/etc/network/interfacesを使う場合、systemd-networkdとの関係はどうなっているのだろう。

systemd-networkd

psで見ても、居ない。動いていないのだろう。

networking.service

/etc/systemd/system/network-online.target.wants/networking.service
ExecStart=/sbin/ifup -a --read-environment

などとある。これで/etc/network/interfacesが読まれているのだろうか。
逆に言うと、network-online.target は、ネットワークの設定が施された後の条件として使える、ということか。

/etc/init.d/networking

init.dにもnetworkingは存在する。Ubuntu 16.04ではupstartは使われていないようだが、このディレクトリの使われ方は?

宿題

ubuntu wikiこのへんを見て、お勉強。
あと、NetworkManagernetwork-managerの違いの調査。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0