ข้อผิดพลาด WiFi wpa_supplicant


14

ฉันมีปัญหากับ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"
# }

Config 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เชื่อมต่อได้อย่างไร

คำตอบ:


8

ข้อผิดพลาดที่wpa_supplicantเกิดขึ้นนั้นไม่จำเป็นต้องเกี่ยวข้องกับwpa_cliปัญหาการเชื่อมต่อของคุณ ปัญหาที่นี่คือที่wpa_cliไม่สามารถสร้างการเชื่อมต่อด้วยwpa_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และไม่สามารถเชื่อมต่อได้ เพื่อให้แน่ใจว่ารันในโหมด verbose ( -dหรือแม้กระทั่ง-dd) และไม่ใช่ daemonizing (ซึ่งเป็นค่าเริ่มต้น - ให้แน่ใจว่าคุณไม่ได้ใช้-Bตัวเลือก) คุณสามารถระวังซ็อกเก็ตควบคุมเช่น:

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

    โปรดจำไว้ว่าส่วนใหญ่ของคำสั่งเหล่านี้จะต้องมีการทำงานด้วยสิทธิ์ root ดังนั้นสำหรับการแก้จุดบกพร่องมันอาจจะง่ายขึ้นเพียงแค่su - rootถาวรมากกว่า prefixing sudoแต่ละคำสั่งด้วย


ขอบคุณสำหรับคำตอบ. เกี่ยวกับจุดแรกของคุณฉันต้องบอกคุณว่าไฟล์/var/run/wpa_supplicantไม่มีอยู่ .. คุณคิดว่านี่เป็นปัญหาหรือไม่?
Val

1
มันถูกสร้างขึ้นโดยwpa_supplicantเมื่อจำเป็น หากไม่มีอยู่ในขณะที่ทำงานอยู่ตัวเลือกที่ 2 มีแนวโน้มสูงขึ้น :)
เตอร์

เอาล่ะ แต่ผมไม่ทราบจริงๆวิธีการใช้ตัวเลือกที่ 2 ของคุณ .. คุณกำลัง sepaking เกี่ยวกับ "การประยุกต์ใช้หลัก" แต่ฉันเพียงแค่ใช้คำสั่งที่ผมได้พูดคุยเกี่ยวกับwpa_cliและwpa_supplicantและผมไม่ทราบวิธีการหลีกเลี่ยง dbus เท่านั้น .. ฉันต้องบอกคุณว่าrfkill listให้ข้อผิดพลาดกับฉันด้วย (ถ้าเกี่ยวข้อง) "ไม่สามารถเปิดอุปกรณ์ RFKILL: ไม่มีไฟล์หรือไดเรกทอรี" .. ฉันหลงทางจริงๆ
วาล

1
การใช้งานหลัก = wpa_supplicant- ฉันแก้ไขแล้วมันทำให้เข้าใจผิดเล็กน้อย ซ็อกเก็ต: ตรวจสอบlsof | grep wpa_supplicant(เมื่อคุณใช้งาน) - ควรแสดงซ็อกเก็ตที่เปิดอยู่ สำหรับrfkill- /dev/rfkillผู้ใช้ที่เข้าใช้งานสามารถเข้าถึงได้rfkillหรือไม่
เตอร์

ฉันลองใช้lsof | grep wpa_supplicantคำสั่ง แต่ไม่ได้ผลลัพธ์ Btw ฉันคิดว่าปัญหาของฉันคือการwpa_supplicantเริ่มต้นที่ไม่ได้ .. ฉันลองps -e | grep wpaและมันก็ว่างเปล่าด้วย เกี่ยวกับrfkill, /dev/rfkillไม่อยู่สำหรับผม ..
Val

5

ในที่สุดข้อผิดพลาดที่เขียนไม่ได้ส่งผลกระทบต่อระบบ

/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ต่อไป :)!


ฉันกำลังมองหาสิ่งนี้เป็นเวลาหลายชั่วโมง บรรทัดสุดท้ายแก้ไขปัญหาของฉัน ขอบคุณ
mehrmoudi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.