Wlan

wpa_supplicant 噩夢

  • June 18, 2021

我一直在擺弄 wpa supplicant 好幾天了,我終於到了在Google上找不到任何新線索的地步。所以這就是問題所在:我剛剛在執行 debian wheezy 的台式電腦上安裝了一個新的 tp-link tl-wn881nd pci-e wifi 卡。wlan0聲稱已連接(ish?見下文)到接入點,ifconfig報告我分配給它的正確靜態 IP 地址,但是我無法 ping 接入點並syslog說握手有錯誤。

首先,我讀過可能network-manager會亂七八糟的東西。我很確定這對我來說不是問題:

$ which NetworkManager
##### blank #####
$ dpkg -l | grep -i network-manager
rc network-manager           0.9.4.0-10    amd-64    network management framework (daemon and userspace tools)
ii network-manager-openvpn   0.9.4.0-1     amd-64    network management framework (OpenVPN plugin core)

我的電腦規格是:

$ uname -a
Linux mypc 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux
$ sudo dmidecode | grep -iA3 '^system information'
System Information
   Manufacturer: Dell Inc.                
   Product Name: OptiPlex 745                 
   Version: Not Specified

wifi卡規格是:

$ lspci | grep -i wireless
02:00.0 Network controller: Atheros Communications Inc. AR9287 Wireless Network Adapter (PCI-Express) (rev 01)

我已確保 wifi 卡處於活動狀態:

$ sudo ip link set wlan0 up
$ sudo ip link show wlan0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisk mq state DORMANT mode DORMANT qlen 1000
   link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

並且該卡能夠找到我的 ssid:

$ sudo iw wlan0 scan
BSS xx:xx:xx:xx:xx:xx (on wlan0) -- associated
   TSF: 2639667559 ysec (0d, 00:43:59)
   freq:2412
   beacon interval: 100
   capability: ESS Privacy ShortSlotTime (0x0411)
   signal: -56.00 dBm
   last seen: 692 ms ago
   Information elements from Probe Response frame:
   SSID: aphanumeric_with_underscores
   Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0
   DS Parameter set: channel 1
   ERP: Use_Protection Barker_Preamble_Mode
   Extended supported rates: 6.0 12.0 24.0 48.0
   HT capabilities:
       Capabilities: 0x106e
           HT20/HT40
           SM Power Save disabled
           RX HT20 SGI
           RX HT40 SGI
           No RX STBC
           Max AMSDU length: 3839 bytes
           DSSS/CCK HT40
       Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
       Minimum RX AMPDU time spacing: 4 usec (0x05)
       HT RX MCS rate indexes supported: 0-7, 32
       HT TX MCS rate indexes are undefined
   HT operation:
       * primary channel: 1
       * secondary channel offset: no secondary
       * STA channel width 20MHz
       * RIFS: 0
       * HT protection: non-HT mixed
       * non-GF present: 1
       * OBSS non-GF present: 0
       * dual beacon: 0
       * dual CTS protection: 0
       * STBC beacon: 0
       * L-SIG TXOP Prot: 0
       * PCO active: 0
       * PCO phase: 0
   RSN:* Version: 1
       * Group cipher: CCMP
       * Pairwise ciphers: CCMP
       * Authentication suites: PSK
       * Capabilities: (0x0000)
   WMM:* Parameter version 1
       * BE: CW 15-1023, AIFSN 3
       * BK: CW 15-1023, AIFSN 7
       * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
       * VO: CW 3-7, AIFSN 2, TXOP 1504 usec
   Extended capabilities: HT Information Exchange Supported
   Country: AL Environment: Indoor/Outdoor
       Channels [1 - 13] @ 15 dBm

在某處讀到您可以將 wpa_supplicant 選項直接放入其中/etc/network/interfaces,所以這是我的:

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

# don't use `auto wlan0` since this will infinitely try to connect at
# boot time, and i will have to remove the hard drive, mount it on
# another pc and remove `auto wlan0` from this file just to get a
# command prompt again!
iface wlan0 inet static
   wpa-ssid "aphanumeric_with_underscores"
   wpa-psk "my wpa2 password"
   wpa-ap-scan 1
   wpa-proto WPA2
   wpa-pairwise CCMP
   wpa-group CCMP
   wpa-key-mgmt WPA-PSK
   address 192.168.1.50
   netmask 255.255.255.0
   gateway 192.168.1.1
   dns-nameservers 8.8.8.8 8.8.4.4

並註意目前沒有wpa_supplicant.conf文件:

$ ls /etc/wpa_supplicant.conf
ls: cannot access /etc/wpa_supplicant.conf: No such file or directory
$ ls /etc/wpa_supplicant/*
action_wpa.sh  functions.sh  ifupdown.sh    

現在如果重新啟動wlan0界面:

$ sudo ifdown wlan0
$ sudo ifup wlan0

IP 地址已正確分配:

$ ifconfig
lo       ...

wlan0    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
        inet addr 192.168.1.50  Bcast:192.168.1.255  Mask:255.255.255.0
        inet6 addr: fe80::16cc:20ff:feea:4578/64 Scope:Link
        UP BROADCAST MULTICAST  NTU:1500  Metric:1
        RX packets:3075 errors:0 dropped:0 overruns:0 frame:0
        TX packets:4028 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:347475 (339.3KiB)  TX bytes:586219 (572.4KiB)

但問題是:wlan0界面似乎已啟動,但我無法訪問網際網路,我什至無法 ping 接入點:

$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
From 192.168.1.50 icmp_seq=2 Destination Host Unreachable
From 192.168.1.50 icmp_seq=3 Destination Host Unreachable
^C
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 0 received, +2 errors, 100% packet loss, time 2015ms

當我查看時,/var/log/syslog我看到了一些令人討厭的錯誤:

Mar 18 01:23:11 mypc kernel: [  148.242137] wlan0: authenticate with xx.xx.xx.xx.xx.xx (try 1)
Mar 18 01:23:11 mypc kernel: [  148.244009] wlan0: authenticated
Mar 18 01:23:11 mypc kernel: [  148.265967] wlan0: associate with xx.xx.xx.xx.xx.xx (try 1)
Mar 18 01:23:11 mypc kernel: [  148.287770] wlan0: RX AssocResp from xx.xx.xx.xx.xx.xx (capab=0x411 status=0 aid=1)
Mar 18 01:23:11 mypc kernel: [  148.287774] wlan0: associated
Mar 18 01:23:11 mypc kernel: [  148.287774] wlan0: associated
Mar 18 01:23:11 mypc wpa_supplicant[4473]: wlan0: Associated with xx.xx.xx.xx.xx.xx
Mar 18 01:23:11 mypc kernel: [  148.297421] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
Mar 18 01:23:11 mypc kernel: [  148.297651] cfg80211: Calling CRDA for country AL
Mar 18 01:23:11 mypc kernel: [  148.303008] cfg80211: Regulatory domain changed to country: AL
Mar 18 01:23:11 mypc kernel: [  148.303013] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Mar 18 01:23:11 mypc kernel: [  148.303018] cfg80211: (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
Mar 18 01:23:11 mypc kernel: [  148.303022] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm)
Mar 18 01:23:11 mypc kernel: [  148.303026] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2000 mBm)
Mar 18 01:23:11 mypc kernel: [  148.303029] cfg80211: (5490000 KHz - 5710000 KHz @ 80000 KHz), (N/A, 2700 mBm)
Mar 18 01:23:19 mypc kernel: [  155.819739] wlan0: deauthenticated from xx:xx:xx:xx:xx:xx (Reason: 15)
Mar 18 01:23:19 mypc wpa_supplicant[4473]: wlan0: WPA: 4-Way Handshake failed - pre-shared key may be incorrect
Mar 18 01:23:19 mypc wpa_supplicant[4473]: wlan0: CTRL-EVENT-DISCONNECTED bssid=xx:xx:xx:xx:xx:xx reason=15

有人知道我該如何解決這個問題並通過 ping 我的接入點wlan0嗎?


修改1:嘗試dhcp而不是靜態ip

我改變了/etc/network/interfaces這樣的:

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

# don't use `auto wlan0` since this will infinitely try to connect at
# boot time, and i will have to remove the hard drive, mount it on
# another pc and remove `auto wlan0` from this file just to get a
# command prompt again!
iface wlan0 inet dhcp
   wpa-ssid "aphanumeric_with_underscores"
   wpa-psk "my wpa2 password"
   wpa-ap-scan 1
   wpa-proto WPA2
   wpa-pairwise CCMP
   wpa-group CCMP
   wpa-key-mgmt WPA-PSK

(請注意,wpa_supplicant.conf修改 1 中仍然不存在),現在當我啟動界面時,我在命令行上遇到了一些新錯誤:

$ sudo ifup wlan0
Operation failed.
Failed to bring up wlan0

系統日誌和以前一樣一遍又一遍地顯示相同的失敗消息:

Mar 18 08:59:01 mypc kernel: [ 2493.163777] ADDRCONF(NETDEV_UP): wlan0: link is not ready
Mar 18 08:59:02 mypc wpa_supplicant[6151]: wlan0: SME: Trying to authenticate with xx:xx:xx:xx:xx:xx (SSID='alphanumeric_with_underscores' freq=2412 MHz)
Mar 18 08:59:02 mypc kernel: [ 2493.974111] wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 1)
Mar 18 08:59:02 mypc kernel: [ 2493.976083] wlan0: authenticated         
Mar 18 08:59:02 mypc wpa_supplicant[6151]: wlan0: Trying to associate with xx:xx:xx:xx:xx:xx (SSID='aphanumeric_with_underscores' freq=2412 MHz)
Mar 18 08:59:02 mypc kernel: [ 2493.998016] wlan0: associate with xx:xx:xx:xx:xx:xx (try 1)
Mar 18 08:59:02 mypc kernel: [ 2494.019518] wlan0: RX ReassocResp from xx:xx:xx:xx:xx:xx (capab=0x411 status=0 aid=2)
Mar 18 08:59:02 mypc kernel: [ 2494.019523] wlan0: associated            
Mar 18 08:59:02 mypc wpa_supplicant[6151]: wlan0: Associated with xx:xx:xx:xx:xx:xx
Mar 18 08:59:02 mypc kernel: [ 2494.028721] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
Mar 18 08:59:02 mypc kernel: [ 2494.028873] cfg80211: Calling CRDA for country: AL
Mar 18 08:59:02 mypc kernel: [ 2494.033830] cfg80211: Regulatory domain changed to country: AL
Mar 18 08:59:02 mypc kernel: [ 2494.033835] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Mar 18 08:59:02 mypc kernel: [ 2494.033839] cfg80211:     (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
Mar 18 08:59:02 mypc kernel: [ 2494.033843] cfg80211:     (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm)
Mar 18 08:59:02 mypc kernel: [ 2494.033846] cfg80211:     (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2000 mBm)
Mar 18 08:59:02 mypc kernel: [ 2494.033849] cfg80211:     (5490000 KHz - 5710000 KHz @ 80000 KHz), (N/A, 2700 mBm)
Mar 18 08:59:09 mypc kernel: [ 2501.499716] wlan0: deauthenticated from xx:xx:xx:xx:xx:xx (Reason: 15)
Mar 18 08:59:09 mypc wpa_supplicant[6151]: wlan0: WPA: 4-Way Handshake failed - pre-shared key may be incorrect
Mar 18 08:59:09 mypc wpa_supplicant[6151]: wlan0: CTRL-EVENT-DISCONNECTED bssid=xx:xx:xx:xx:xx:xx reason=15
Mar 18 08:59:09 mypc kernel: [ 2501.536289] cfg80211: Calling CRDA to update world regulatory domain
Mar 18 08:59:09 mypc kernel: [ 2501.541764] cfg80211: World regulatory domain updated:
Mar 18 08:59:09 mypc kernel: [ 2501.541770] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Mar 18 08:59:09 mypc kernel: [ 2501.541775] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm)
Mar 18 08:59:09 mypc kernel: [ 2501.541779] cfg80211:     (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
Mar 18 08:59:09 mypc kernel: [ 2501.541782] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm)
Mar 18 08:59:09 mypc kernel: [ 2501.541786] cfg80211:     (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm)
Mar 18 08:59:09 mypc kernel: [ 2501.541790] cfg80211:     (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm)
Mar 18 08:59:09 mypc kernel: [ 2501.541794] cfg80211:     (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm)
Mar 18 08:59:10 mypc wpa_supplicant[6151]: wlan0: SME: Trying to authenticate with xx:xx:xx:xx:xx:xx (SSID='aphanumeric_with_underscores' freq=2412 MHz)
Mar 18 08:59:10 mypc kernel: [ 2502.434112] wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 1)
Mar 18 08:59:10 mypc kernel: [ 2502.436071] wlan0: authenticated
etc

並註意 eth0 與 dhcp 可以正常工作,因此 dhcp 本身沒有問題。


修改 2:嘗試使用 wpa_passphrase 中的 psk 雜湊

$ wpa_passphrase myssid mypassword
network={
   ssid="myssid"
   #psk="mypassword"
   psk=xxxxxxxxxxxx...
}

使用這個新的 psk /etc/network/interfaces

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

# don't use `auto wlan0` since this will infinitely try to connect at
# boot time, and i will have to remove the hard drive, mount it on
# another pc and remove `auto wlan0` from this file just to get a
# command prompt again!
iface wlan0 inet dhcp
   wpa-ssid "aphanumeric_with_underscores"
   wpa-psk xxxxxxxxxxxxxxxx
   wpa-ap-scan 1
   wpa-proto WPA2
   wpa-pairwise CCMP
   wpa-group CCMP
   wpa-key-mgmt WPA-PSK

再試一次:

$ sudo iplink set wlan0 down
$ sudo iplink set wlan0 up
$ sudo ifup wlan0
cat: /var/run/wpa_supplicant.wlan0.pid: No such file or directory
Operation failed.
Failed to bring up wlan0.

嗯,那個時候有趣的錯誤。調查:

$ sudo su
# cd /var/run/wpa_supplicant/
# ls -l
total 0
srwxrwx--- 1 root root 0 Mar 18 09:26 wlan0
# cat wlan0 
cat: wlan0: No such device or address

/var/log/syslog雖然仍然顯示相同的錯誤。


修改3:設置一個非常基本的ssid和密碼

我將 ssidabc和密碼設置為abcdefgh

$ wpa_passphrase abc abcdefgh
network={
   ssid="abc"
   #psk="abcdefgh"
   psk=ba89407e92b8efec11c227e3cce9f25c8dcc4b3651fe2be02d91d9ebda96e913
}

但是無論我放入哪個預共享密鑰,結果都與修改 1 和修改 2 相同/etc/network/interfaces

$ sudo ip link set wlan0 down                                                   
$ sudo ip link set wlan0 up                                                     
$ sudo ip link show wlan0                                                       
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT mode DEFAULT qlen 1000
   link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff                          
$ sudo ifdown wlan0                                                             
ifdown: interface wlan0 not configured                                          
$ sudo rm /var/run/wpa_supplicant/wlan0                                         
$ sudo ifup wlan0                                                               
wpa_supplicant: ctrl_interface socket not found at /var/run/wpa_supplicant/wlan0
run-parts: /etc/network/if-pre-up.d/wpasupplicant exited with return code 1     
Operation failed.                                                               
Failed to bring up wlan0.

修改4:在命令行的調試模式下使用wpa_supplicant

從以下位置刪除所有 wpa 設置/etc/network/interfaces

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
iface wlan0 inet dhcp

現在創建wpa_supplicant.conf文件:

$ sudo sh -c 'wpa_passphrase abc abcdefgh > /etc/wpa_supplicant/wpa_supplicant.conf'

編輯文件以包含以下資訊:

ap_scan=1
ctrl_interface=DIR=/var/run/wpa_supplicant
ctrl_interface_group=0
network={
   proto=WPA2
   pairwise=CCMP
   group=CCMP
   key_mgmt=WPA-PSK
   ssid="abc"
   #psk="abcdefgh"
   psk=ba89407e92b8efec11c227e3cce9f25c8dcc4b3651fe2be02d91d9ebda96e913
}

直接執行wpa_supplicant

$ sudo ip link show wlan0
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
   link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
$ sudo ip link set wlan0 up
$ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: Trying to associate with xx:xx:xx:xx:xx:xx (SSID='abc' freq=2412 MHz)
wlan0: Associated with 00:00:00:00:00:00
wlan0: CTRL-EVENT-DISCONNECTED bssid=xx:xx:xx:xx:xx:xx reason=0
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: Trying to associate with xx:xx:xx:xx:xx:xx (SSID='abc' freq=2412 MHz)
wlan0: Associated with 00:00:00:00:00:00
wlan0: CTRL-EVENT-DISCONNECTED bssid=xx:xx:xx:xx:xx:xx reason=0
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWSCAN]: Device or resource busy
wlan0: Failed to initiate AP scan
wlan0: Trying to associate with xx:xx:xx:xx:xx:xx (SSID='abc' freq=2412 MHz)
wlan0: Associated with 00:00:00:00:00:00
wlan0: CTRL-EVENT-DISCONNECTED bssid=xx:xx:xx:xx:xx:xx reason=0
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
^Cwlan0: CTRL-EVENT-TERMINATING - signal 2 received

再一次,有更多的調試冗長:

$ sudo wpa_supplicant -d -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -f /tmp/wpa_supplicant.tl-wn881nd.errors

在這裡查看輸出。

看來wifi卡和ioctl[SIOCSIWENCODEEXT]: Invalid argument核心之間可能不兼容?如果是這樣,那麼我該如何診斷和解決這個問題?

該死的 wifi 卡沒有正確插入 pci-express 插槽!我把它拿出來,把插槽吹掉,把灰塵弄出來,這次真的用力推了進去。現在一切正常:

# the wifi led is not lit up on the outside of the pc case

$ sudo ip link show wlan0
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
   link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
$ sudo ip link set wlan0 up

# now the wifi led is lit up on the outside of the pc case

$ sudo ip link show wlan0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
   link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
$ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: Trying to associate with 00:60:64:4c:37:fc (SSID='abc' freq=2412 MHz)
wlan0: Associated with 00:60:64:4c:37:fc
wlan0: WPA: Key negotiation completed with 00:60:64:4c:37:fc [PTK=CCMP GTK=CCMP]
wlan0: CTRL-EVENT-CONNECTED - Connection to 00:60:64:4c:37:fc completed (auth) [id=0 id_str=]
wlan0: CTRL-EVENT-DISCONNECTED bssid=00:60:64:4c:37:fc reason=0
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: Trying to associate with 00:60:64:4c:37:fc (SSID='abc' freq=2412 MHz)
wlan0: Associated with 00:60:64:4c:37:fc
wlan0: WPA: Key negotiation completed with 00:60:64:4c:37:fc [PTK=CCMP GTK=CCMP]
wlan0: CTRL-EVENT-CONNECTED - Connection to 00:60:64:4c:37:fc completed (reauth) [id=0 id_str=]
$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=254 time=0.510 ms
64 bytes from 192.168.1.1: icmp_req=2 ttl=254 time=0.578 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.510/0.544/0.578/0.034 ms

正確的/var/log/syslog看起來像這樣:

Mar 18 13:38:19 mypc kernel: [  542.538613] wlan0: authenticate with 00:60:64:4c:37:fc (try 1)
Mar 18 13:38:19 mypc kernel: [  542.540517] wlan0: authenticated         
Mar 18 13:38:19 mypc kernel: [  542.540553] wlan0: associate with 00:60:64:4c:37:fc (try 1)
Mar 18 13:38:19 mypc kernel: [  542.563331] wlan0: RX AssocResp from 00:60:64:4c:37:fc (capab=0x411 status=0 aid=3)
Mar 18 13:38:19 mypc kernel: [  542.563336] wlan0: associated            
Mar 18 13:38:19 mypc kernel: [  542.573034] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
Mar 18 13:38:19 mypc kernel: [  542.573220] cfg80211: Calling CRDA for country: AL
Mar 18 13:38:19 mypc kernel: [  542.578955] cfg80211: Regulatory domain changed to country: AL
Mar 18 13:38:19 mypc kernel: [  542.578960] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
Mar 18 13:38:19 mypc kernel: [  542.578965] cfg80211:     (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
Mar 18 13:38:19 mypc kernel: [  542.578969] cfg80211:     (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 2000 mBm)
Mar 18 13:38:19 mypc kernel: [  542.578972] cfg80211:     (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2000 mBm)
Mar 18 13:38:19 mypc kernel: [  542.578976] cfg80211:     (5490000 KHz - 5710000 KHz @ 80000 KHz), (N/A, 2700 mBm)

而那些行只出現一次——它們不再一遍又一遍地重複syslog

:)

請注意,如果我刪除wpa_supplicant.conf文件並將所有內容放入,它現在也可以正常工作/etc/network/interfaces

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

# don't use `auto wlan0` since this will infinitely try to connect at
# boot time, and i will have to remove the hard drive, mount it on
# another pc and remove `auto wlan0` from this file just to get a
# command prompt again!
iface wlan0 inet static
   wpa-ssid "aphanumeric_with_underscores"

   # both the plaintext password and the ascii-hex hash from
   # wpa_passphrase work fine for me here:
   wpa-psk "my wpa2 password"

   wpa-ap-scan 1
   wpa-proto WPA2
   wpa-pairwise CCMP
   wpa-group CCMP
   wpa-key-mgmt WPA-PSK
   address 192.168.1.50
   netmask 255.255.255.0
   gateway 192.168.1.1
   dns-nameservers 8.8.8.8 8.8.4.4
and note that there is currently no wpa_supplicant.conf file:

$ ls /etc/wpa_supplicant.conf
ls: cannot access /etc/wpa_supplicant.conf: No such file or directory
$ ls /etc/wpa_supplicant/*
action_wpa.sh  functions.sh  ifupdown.sh  

引用自:https://unix.stackexchange.com/questions/190754