web-dev-qa-db-ja.com

WiFiエラーwpa_supplicant

wpa_supplicantプログラムに問題があります。

私の問題は、wpa_cliを必要とするwpa_supplicantの使用についてです。 Sudo wpa_cliを実行しているときのエラー:

Could not connect to wpa_supplicant

wpa_supplicantを手動で開始すると、いくつかエラーが発生します。

Sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

rfkill: Cannot open RFKILL control device
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: CTRL-EVENT-DISCONNECTED bssid=00:00:00:00:00:00 reason=0   ### NEW!!!

設定dhcp

## /etc/dhcp/dhcpd.conf
subnet 192.168.2.0 netmask 255.255.255.0 {
   range 192.168.2.2 192.168.2.9;
   option domain-name-servers 192.168.1.1;
   option domain-name "home";
   option routers 192.168.2.1;
}

設定wpa_supplicant

## /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
# network={
#   ssid="__SSID__"
#   key_mgmt=WPA-PSK
#   psk="__PASS__"
#   id_str="home"
# }

設定hostapd

## /etc/hostapd/hostapd.conf
interface=wlan0
driver=rtl871xdrv
ieee80211n=1
ssid=__SSID__
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=__PASS__
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

# EDIT
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

ifconfig/iwconfigの結果

wlan0   Link encap:Ethernet  HWaddr c0:4a:00:17:40:fd
          inet adr:192.168.2.1  Bcast:192.168.2.255  Masque:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     IEEE 802.11bgn  ESSID:"__SSID__"  Nickname:"<WIFI@REALTEK>"
          Mode:Master  Frequency:2.412 GHz  Access Point: C0:4A:00:17:40:FD
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=100/100  Signal level=0 dBm  Noise level=0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

エラーなしでwpa_supplicantを起動し、wpa_cliを接続するにはどうすればよいですか?

14
Val

最後に、書かれたエラーはシステムに影響を与えませんでした。

ぼくの /etc/network/interfacesファイルは次のようになります(wlan部分のみ):

iface wlan0 inet static
    address 192.168.2.1
    netmask 255.255.255.0
    pre-up wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B

この構成では、Sudo wpa_cliコマンドはエラーなしで!
おかげでpeterphとにかく:)!

5
Val

wpa_supplicantが生成するエラーは、wpa_cli接続の問題とは必ずしも関連がありません。ここでの問題は、wpa_cliwpa_supplicantとの接続を確立できず、制御ソケットを開けないことです。これにはいくつかの原因が考えられます。

  1. wpa_cliを実行しているユーザーは、指定されたソケットにアクセスできません。 wpa_supplicant.conf内:

    ctrl_interface=DIR=/var/run/wpa_supplicant
    

    そのディレクトリ内のファイルが、wpa_cliを実行しているユーザーからアクセス可能であることを確認する必要があります。つまり、ソケットがrwであるだけでなく、上記のすべてのディレクトリが少なくともxである必要があります。最後のディレクトリもrでなければならず、wpa_clieは使用可能なすべてのソケットをリストできます。

  2. wpa_supplicantとは異なり、wpa_cliはDBus対応ではありません。 wpa_supplicantがDBusのみを介してリッスンしていないことを確認してください。あなたの設定ファイルから判断すると、これはおそらくあなたのケースではありません

  3. wpa_supplicantが実行されていません(以下のコメントのとおり)。これは、実際にwpa_supplicantによって生成されたエラーメッセージと、それに接続できないエラーメッセージとの間に関連がある可能性があることを示します。冗長モードで実行することを確認するには(-dまたは-ddおよびデーモン化しない(これがデフォルトです--Bオプションを使用していないことを確認してください)。また、制御ソケットに注意することもできます。例:

    watch -n 0.1 "ls -al /var/run/wpa_supplicant"
    

    これらのコマンドのほとんどはroot特権で実行する必要があるため、デバッグする場合は、各コマンドの前にSudoを付けるよりも、su - rootを永続的に使用する方が簡単な場合があります。

8
peterph