
私はLinux3.2カーネルを搭載したDebian 7マシンとAtherosチップセット(D-Link DWA-16 Xtreme N Dual Band)を搭載したUSB wifiアダプタを持っていますが、理論的には動作するはずです。
実際、NetworkManager との Wi-Fi 通信を確立することができ、約 30 分間はほぼ正常に動作しましたが、その後切断され、接続を再確立できませんでした。
NetworkManagerとの接続の再確立に失敗しました。接続と認証は成功し、4ウェイハンドシェイクが開始されましたが、その後、理由 15 (4 ウェイ ハンドシェイク タイムアウト)。
ifupdown
次に、エントリを作成して、古き良き方法で同じことを実行しようとしました/etc/network/interfaces
。
allow-hotplug wlan1
iface wlan1 inet static
wpa-ssid MyNet
wpa-psk <My key hash generated by `wpa_passphrase MyNet key`>
address 192.168.1.2
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers a.b.c.d
私が の場合sudo ifup wlan1
、次の状態になるまでは適切に動作します。
wpa_supplicant[8258]: wlan1: Associated with <router's MAC>
wpa_supplicant[3402]: wlan1: No network configuration found for the current AP
(から /var/log/syslog
)。Wi Wireshark
-Fi アダプターからルーターに ARP パッケージが送信されているのを確認していますが、ルーターは応答しません。
これは何を意味するのか、またこれをどのように解決すればよいのか、何かアイデアはありますか?
解決:peterph の提案のおかげで、フォアグラウンドとバックグラウンドの両方でスタンドアロン プログラムとして作成しwpa_supplicant.conf
て実行し、で使用すること を試みました。wpa_supplicant
wpa-conf wpa_supplicant.conf
/etc/network/interfaces
sudo wpa_supplicant -iwlan1 -c/etc/wpa_supplicant/wpa_supplicant.conf -d
sudo wpa_supplicant -iwlan1 -c/etc/wpa_supplicant/wpa_supplicant.conf -B
実行中の インスタンスを強制終了すると、問題の最初の部分 (「ステータス: 関連付けられた」後の自発的な切断) が消えましたNetworkManager
。干渉していたようです。
2 番目の問題は、4 ウェイ ハンドシェイクが失敗したことです。アクセス ポイントで MAC アドレス フィルタリングを無効にすると、問題なく通過しました。私の Wi-Fi インターフェイスの MAC は、使用可能な MAC のリストにありました。しかし、何らかの理由で、ルーターの MAC フィルタリングでは接続に失敗していました。
更新2:問題が再発しました。4 ウェイ ハンドシェイクが再び失敗しています。ドライバーをリロードしても解決しません。
答え1
この種の問題は、独立した部分に分割する方がよいでしょう。この場合、ifupdown
完全に回避してすべての手順を手動で実行します。つまり、次のようになります。
wpa_supplicant
適切な設定ファイルで実行する接続が確立されると、DHCPクライアントが実行され、
ifupdown
実行方法を確認するにはwpa_supplicant
、インターセプトできるファイル内の何らかの構成を渡す必要があります。実行ps fax | grep wpa_supplicant
時の出力を確認しますifupdown
。オプションのパラメーターは、-c
(おそらくオンザフライで生成される) 構成ファイルの名前です。
ifupdown
何らかの理由で乗り換えることに決めた場合は、wicd
さまざまな UI (ncurses、GTK、Qt) によって制御されるデーモンで構成されています。
ちなみに、一部の DHCP クライアントは、wpa_supplicant
独自に生成してワイヤレス接続をセットアップできます (実際にdhcpcd
そのように動作しているのを見たことがあります)。これは、接続の問題をデバッグしようとすると、非常に興味深い (そして邪魔になる) ことがあります。
答え2
これは、不安定なワイヤレス デバイスをデバッグするときに試す順序です。
- 再起動すると問題は解決しますか?
ワイヤレス デバイスに関連するカーネル ドライバーをアンロードしてみてください。次のような内容です。
$ lsmod | grep iw iwlagn 209751 0 iwlcore 195714 1 iwlagn mac80211 229095 2 iwlagn,iwlcore cfg80211 134981 3 iwlagn,iwlcore,mac80211 $ sudo rmmod iwlagn $ sudo rmmod iwlcore $ modprobe iwlagn
経由で報告されているワイヤレス デバイスに関連するメッセージを調査します
dmesg
。例:$ dmesg ... ... [207981.191849] mac80211: Unknown parameter `ieee80211_disable_40mhz_24ghz:Disable' [207988.895378] mac80211: `Disable' invalid for parameter `ieee80211_disable_40mhz_24ghz' [208280.841725] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:d [208280.841727] iwlagn: Copyright(c) 2003-2010 Intel Corporation [208280.841826] iwlagn 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [208280.841857] iwlagn 0000:03:00.0: setting latency timer to 64 [208280.842798] iwlagn 0000:03:00.0: Detected Intel(R) Centrino(R) Wireless-N 1000 BGN, REV=0x6C [208280.863413] iwlagn 0000:03:00.0: Tunable channels: 13 802.11bg, 0 802.11a channels [208280.863582] iwlagn 0000:03:00.0: irq 48 for MSI/MSI-X [208280.898025] iwlagn 0000:03:00.0: loaded firmware version 128.50.3.1 build 13488 [208280.898725] phy1: Selected rate control algorithm 'iwl-agn-rs' [208281.154937] ADDRCONF(NETDEV_UP): wlan0: link is not ready [208282.101156] wlan0: authenticate with 30:46:9a:47:4c:d4 (try 1) [208282.104128] wlan0: authenticated [208282.104164] wlan0: associate with 30:46:9a:47:4c:d4 (try 1) [208282.106911] wlan0: RX AssocResp from 30:46:9a:47:4c:d4 (capab=0x411 status=0 aid=3) [208282.106914] wlan0: associated [208282.111520] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [208292.608637] wlan0: no IPv6 routers present
答え3
hand shake
+ のFAIL
問題も長い間ありました。( gentoo
| Arch
) フォーラムからの解決策もstackexchange
私には役に立ちませんでした。
私は必要最低限のvoid
Linux を使っていて、必須のプログラムだけを使っていますdhcpcd
。wpa_supplicant
最終的にうまくいったのは、何年もかかりましたが、他にチャンスがなかったからです。
- LAN ケーブルのメス コネクタも壊れており、部品ラベル、番号、ヒントのないハーフ ハイトのバリエーションであるため、DigiKey、Farnell、Reichelt、Conrad、Mouser、Amazon などの電子機器販売代理店で交換部品を入手できません。
- 個々のストランドをメインボードにはんだ付けするのは、なんともクレイジーな作業です。自宅ではやらないでください。作業中は、ショートしたり切れたりしないように、細い(非常に細い)柔軟なワイヤが必要です。
- 交換品
WLAN chip
(ハードウェアの故障を除外するため) は、Lenovo ブートローダー内でサポートされているハードコードされていませんでしたhardware whitelist
。はい、本当に素晴らしいです。互換性があるのですが、単にリストに載っていないため失敗しています。すごい、本当にすごいです。Hard coded white list
! Lenovo! 常識ですか?
こうして、試行錯誤とデバッグの時間を積み重ねた結果、別の修正(可能性)が浮かび上がったので、それをコミュニティと共有したいと思います。
再起動後に毎回機能する解決策: 1
sudo wpa_cli # fail
sudo xbps-install -Syv NetworkManager
sudo ln -s /etc/sv/NetworkManager /var/service/
2(起動後に自動的に実行される場合があります。)
sudo sv up NetworkManager
sudo wpa_cli # works half way (scan possible but association fails)
sudo sv down NetworkManager
sudo wpa_cli # fail
sudo sv restart dhcpd
sudo wpa_cli # works
dhcpcd、wpa_supplicant、正しいネットワーク インターフェイスが起動して実行されていること、および /etc/wpa_supplicant/wpa_supplication.conf でネットワーク インターフェイス (例: wlan0 または wlp2s) が使用されていることを確認します。
sudo vi /etc/sv/wpa_supplicant/run # Change all occurrences of the default interface name like e.g. "wlan0" to the correct interface as shown by ip link command, exempli gratia "wlp2s".
NetworkManager が何らかの効果を持っていて、それが修正であるようです。それが何なのかを調査する時間はまだありません。