커널 4.14.67-1.0.6+를 실행하는 Debian 9 기반 운영 체제를 실행하는 임베디드 arm 장치가 있습니다.
편집하다:@AB의 요청에 따라 아래는 향후 시청자를 위한 드라이버/칩셋 정보이기도 합니다. 질문을 받았을 때 어떻게 찾는지 전혀 몰랐습니다.
filename: /lib/modules/4.14.67-1.0.6+/extra/mlan.ko
license: GPL
version: C605
author: Marvell International Ltd.
description: M-WLAN MLAN Driver
srcversion: 103492D596FC10822F1F391
depends:
name: mlan
vermagic: 4.14.67-1.0.6+ SMP preempt mod_unload modversions ARMv7 p2v8
시작 시 WiFi에 연결할 수 있었지만 신호가 끊겼을 때 장치가 자동으로 다시 연결되지 않았습니다. 설명서를 확인하고 다른 옵션을 계속해서 시도했지만 어느 정도 진전이 있었지만 여전히 올바르게 다시 연결할 수 없습니다 /etc/network/interfaces
.wpa_supplicant
내 구성은 다음과 같습니다. wpa-conf
수동 iface 설정을 사용하여 VS 로 플레이해 보았습니다 . wpa_supplicant에 대해 다른 설정 을 wpa-roam
사용해 보았습니다 . 과거에 NetworkManager를 사용해 보았지만 장치의 GSM 인터페이스에 몇 가지 문제가 있는 것으로 나타났습니다.autoscan
ap_scan
/etc/네트워크/인터페이스
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
allow-hotplug mlan0
iface mlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
/etc/wpa_supplicant/wpa_supplicant.conf
ap_scan=2
# Networks SSIDs
network={
ssid="1+ Benji"
psk="REDACTED"
key_mgmt=WPA-PSK
}
장치를 다시 시작하고 연결이 양호한지 확인한 다음 전화기의 WiFi 핫스팟을 껐다가 켜서 이를 테스트하고 있습니다. 다시 연결되면 wpa_supplicant는 이제 다시 연결을 시도하기 위해 스캔하지만(이전에는 그렇지 않음) 연결이 계속 실패하고 스테이션이 떠난다는 메시지만 표시됩니다.
/var/log/시스템 로그
# Network manually turned off
Feb 11 15:56:08 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-DISCONNECTED bssid=94:65:2d:83:c2:0d reason=3
Feb 11 15:56:08 arm kernel: [ 154.302149] wlan: EVENT: Disassociated (reason 0x3)
Feb 11 15:56:08 arm kernel: [ 154.302166] wlan: REASON: (Deauth) Sending STA is leaving (or has left) IBSS or ESS
Feb 11 15:56:08 arm kernel: [ 154.302339] wlan: Disconnected from 94:XX:XX:XX:c2:0d: Reason code 3
Feb 11 15:56:08 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
Feb 11 15:56:08 arm wpa_supplicant[459]: mlan0: Trying to associate with SSID '1+ Benji'
Feb 11 15:56:13 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=1
Feb 11 15:56:13 arm kernel: [ 159.732160] wlan: SCAN COMPLETED: scanned AP count=0
Feb 11 15:56:14 arm wpa_supplicant[459]: mlan0: Trying to associate with SSID '1+ Benji'
Feb 11 15:56:19 arm kernel: [ 165.291259] usb 2-1: USB disconnect, device number 5
Feb 11 15:56:19 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=1
Feb 11 15:56:19 arm kernel: [ 165.572172] wlan: SCAN COMPLETED: scanned AP count=0
Feb 11 15:56:20 arm wpa_supplicant[459]: mlan0: Trying to associate with SSID '1+ Benji'
Feb 11 15:56:26 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=1
Feb 11 15:56:26 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="1+ Benji" auth_failures=1 duration=10 reason=CONN_FAILED
Feb 11 15:56:26 arm kernel: [ 171.912043] wlan: SCAN COMPLETED: scanned AP count=0
Feb 11 15:56:31 arm wpa_supplicant[459]: mlan0: Trying to associate with SSID '1+ Benji'
Feb 11 15:56:36 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:00:00:00:00:00 status_code=1
Feb 11 15:56:36 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="1+ Benji" auth_failures=2 duration=20 reason=CONN_FAILED
Feb 11 15:56:36 arm kernel: [ 182.252181] wlan: SCAN COMPLETED: scanned AP count=0
# Network AP manually turned back on
Feb 11 15:56:46 arm wpa_supplicant[459]: mlan0: Trying to associate with SSID '1+ Benji'
Feb 11 15:56:51 arm kernel: [ 197.512170] wlan: SCAN COMPLETED: scanned AP count=1
Feb 11 15:56:51 arm kernel: [ 197.682452] wlan: Connected to bssid 94:XX:XX:XX:c2:0d successfully
Feb 11 15:56:51 arm kernel: [ 197.685349] wlan: Received disassociation request on mlan0, reason: 3
Feb 11 15:56:51 arm kernel: [ 197.685361] wlan: REASON: (Deauth) Sending STA is leaving (or has left) IBSS or ESS
Feb 11 15:56:53 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-DISCONNECTED bssid=94:65:2d:83:c2:0d reason=3 locally_generated=1
Feb 11 15:56:53 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
Feb 11 15:56:53 arm wpa_supplicant[459]: mlan0: Trying to associate with SSID '1+ Benji'
Feb 11 15:56:54 arm kernel: [ 199.872319] wlan: Connected to bssid 94:XX:XX:XX:c2:0d successfully
Feb 11 15:56:54 arm kernel: [ 199.874233] wlan: Received disassociation request on mlan0, reason: 3
Feb 11 15:56:54 arm kernel: [ 199.874247] wlan: REASON: (Deauth) Sending STA is leaving (or has left) IBSS or ESS
Feb 11 15:56:55 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-DISCONNECTED bssid=94:65:2d:83:c2:0d reason=3 locally_generated=1
Feb 11 15:56:55 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
Feb 11 15:56:55 arm wpa_supplicant[459]: mlan0: Trying to associate with SSID '1+ Benji'
Feb 11 15:56:55 arm kernel: [ 201.702474] wlan: Connected to bssid 94:XX:XX:XX:c2:0d successfully
Feb 11 15:56:55 arm kernel: [ 201.704140] wlan: Received disassociation request on mlan0, reason: 3
Feb 11 15:56:55 arm kernel: [ 201.704152] wlan: REASON: (Deauth) Sending STA is leaving (or has left) IBSS or ESS
Feb 11 15:56:57 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-DISCONNECTED bssid=94:65:2d:83:c2:0d reason=3 locally_generated=1
Feb 11 15:56:57 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="1+ Benji" auth_failures=3 duration=30 reason=CONN_FAILED
Feb 11 15:56:57 arm wpa_supplicant[459]: mlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
Feb 11 15:56:57 arm wpa_supplicant[459]: mlan0: Trying to associate with SSID '1+ Benji'
Feb 11 15:56:58 arm kernel: [ 203.872352] wlan: Connected to bssid 94:XX:XX:XX:c2:0d successfully
Feb 11 15:56:58 arm kernel: [ 203.874052] wlan: Received disassociation request on mlan0, reason: 3
Feb 11 15:56:58 arm kernel: [ 203.874064] wlan: REASON: (Deauth) Sending STA is leaving (or has left) IBSS or ESS
보시다시피 장치에서 네트워크 AP를 다시 켠 후 장치가 계속 다시 연결을 시도했지만 이유 3으로 인해 실패했습니다. 원인을 찾아봤지만 실제로 의미가 있는 내용을 찾을 수 없었고 "STA가 IBSS 또는 ESS를 떠나고 있습니다(또는 떠났습니다)"라는 메시지도 도움이 되지 않았습니다.
추가 정보나 출력 로그가 필요한 경우 알려주시면 기꺼이 제공해 드리겠습니다.
답변1
저도 며칠 전에 기기 제조사에 제안사항이 있는지 물어봤는데, 답변하는데 시간이 좀 걸리기는 했지만, 제안사항이 효과가 있는 것 같았습니다.
내가 가지고 있는 기본 기능은 /etc/network/interfaces
괜찮지만, 다른 옵션을 모두 시도하면 한 줄이 누락됩니다. 즉 /etc/wpa_supplicant/wpa_supplicant.conf
... disable_scan_offload=1
With ap_scan=1
.
최종 구성:
# Enable WiFi scanning on network disconnect.
ap_scan=1
autoscan=periodic:10
disable_scan_offload=1
# This above line is crucial for making wpa_supplicant do the scan instead of relying
# on the driver, which in this case didn't appear to be scanning to reconnect.
# Users saved network list
network={
ssid="1+ Benji"
psk="REDACTED"
key_mgmt=WPA-PSK
}
#network={...}
#network={...}
답변2
~에서http://w1.fi/wpa_supplicant/devel/ctrl_iface_page.html:
SELECT_NETWORK 네트워크 선택(다른 사람을 비활성화). 네트워크 ID는 LIST_NETWORKS 명령 출력에서 받을 수 있습니다.
ENABLE_NETWORK 네트워크를 활성화합니다. 네트워크 ID는 LIST_NETWORKS 명령 출력에서 받을 수 있습니다. 특수 네트워크 ID모두모든 네트워크를 활성화하는 데 사용할 수 있습니다.
이를 통해 나는 하나의 네트워크가 선택되면 다른 네트워크가 비활성화된다는 것을 이해합니다(다른 모든 네트워크에 대해 conf 파일은 비활성화 1로 변경됨). 그래서 다음 명령을 보냅니다. all_network 활성화 특정 네트워크에 연결한 후.
어떤 이유로 장치가 연결된 네트워크를 사용할 수 없게 되면 WPA는 장치를 다른 "알려진" 네트워크 중 하나에 자동으로 연결합니다.
그리고 그것은 작동합니다! ! ! !
(잘못된 비밀번호로 인해 장치가 이전에 연결한 적이 없는 네트워크는 "비활성화" 상태로 두는 것이 아니라 네트워크 목록에서 제거해야 한다고 덧붙이고 싶습니다.)