This ended up being a driver issue. I was using drivers from Mediatek, which is the chip manufacturer for the rt5572. I switched to drivers from SparkLAN, which is the producer of the actual USB Wifi card that I am using with the rt5572 on it. They appear to be the same driver but SparkLAN must have tweaked something. Cross compiling and installing the SparkLAN drivers got WPA2 to work.
RT5572 может аутентифицироваться с использованием WPA2, но не может получить IP-адрес от DHCP
У меня есть система с открытым встроенным Linux с беспроводной USB-картой Ralink RT5572. У меня установлен драйвер вместе с wpa_supplicant, и мне нужно иметь возможность подключаться к защищенной сети WPA2. Насколько я могу судить, я могу настроить интерфейс с правильной конфигурацией, и через несколько секунд он аутентифицируется. Я вижу 2 пакета аутентификации на Wireshark, поступающие с устройства, и в журнале говорится, что он прошел. В этот момент я хочу запустить udhcpc или dhclient на интерфейсе, чтобы получить IP-адрес, но ни один из них не будет работать. Я не вижу больше пакетов в сети с устройства. Я также попытался установить статический IP, и даже тогда я не могу пропинговать шлюз или любые другие компьютеры в сети.
Вот мой файл wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant update_config=1 ap_scan=1 network={ ssid="HTC One M9 8506" psk=########################################### scan_ssid=1 key_mgmt=WPA-PSK proto=WPA2 pairwise=CCMP TKIP group=CCMP TKIP auth_alg=OPEN }
Вот мой лог от wpa_supplicant:
som9g45:~# ifup ra0 + '[' ra0 = lo ']' + '[' -n '' ']' + WPA_IFACE=ra0 + '[' -f /etc/wpa_supplicant/functions.sh ']' + . /etc/wpa_supplicant/functions.sh ++ WPA_SUP_BIN=/usr/sbin/wpa_supplicant ++ WPA_SUP_PNAME=wpa_supplicant ++ WPA_SUP_PIDFILE=/var/run/wpa_supplicant.ra0.pid ++ WPA_CLI_BIN=/usr/sbin/wpa_cli ++ WPA_CLI_PNAME=wpa_cli ++ WPA_CLI_PIDFILE=/var/run/wpa_action.ra0.pid ++ WPA_CLI_LOGFILE=/var/log/wpa_action.log ++ WPA_CLI_TIMESTAMP=/var/run/wpa_action.ra0.timestamp ++ '[' -z '' ']' ++ WPA_CTRL_DIR=/var/run/wpa_supplicant ++ '[' -n '' ']' ++ '[' '' = 1 ']' ++ TO_NULL=/dev/null ++ DAEMON_VERBOSITY=--quiet + '[' '!' -x /usr/sbin/wpa_supplicant ']' + '[' '!' -x /usr/sbin/wpa_cli ']' + test_wpa_cli + test_daemon_pidfile /usr/sbin/wpa_cli /var/run/wpa_action.ra0.pid + local DAEMON PIDFILE + '[' -n /usr/sbin/wpa_cli ']' + DAEMON=/usr/sbin/wpa_cli + '[' -f /var/run/wpa_action.ra0.pid ']' + '[' -n /usr/sbin/wpa_cli ']' + '[' -f '' ']' + return 1 + echo 'Initial WPA Checks Pass' Initial WPA Checks Pass + '[' -n '' ']' + '[' -n /etc/wpa_supplicant.conf ']' + '[' '!' -s /etc/wpa_supplicant.conf ']' ++ sed -n 's/[[:space:]]*#.*//g;s/[[:space:]]\+.*$//g;s/^\(ctrl_interface\|DIR\)=\(.*\)/\2/p' /etc/wpa_supplicant.conf + WPA_SUP_CONF_CTRL_DIR=/var/run/wpa_supplicant + '[' -n /var/run/wpa_supplicant ']' + WPA_CTRL_DIR=/var/run/wpa_supplicant + WPA_SUP_CONF='-c /etc/wpa_supplicant.conf -C /var/run/wpa_supplicant' + case "$MODE" in + PHASE=pre-up + echo 'WPA: Configuring Interface' WPA: Configuring Interface + case "$PHASE" in + kill_wpa_supplicant + test_wpa_supplicant + test_daemon_pidfile /usr/sbin/wpa_supplicant /var/run/wpa_supplicant.ra0.pid + local DAEMON PIDFILE + '[' -n /usr/sbin/wpa_supplicant ']' + DAEMON=/usr/sbin/wpa_supplicant + '[' -f /var/run/wpa_supplicant.ra0.pid ']' + '[' -n /usr/sbin/wpa_supplicant ']' + '[' -f '' ']' + return 1 + '[' -S /var/run/wpa_supplicant/ra0 ']' + init_wpa_supplicant + '[' -n '-c /etc/wpa_supplicant.conf -C /var/run/wpa_supplicant' ']' + '[' -n '' ']' + local WPA_SUP_DRIVER WPA_SUP_OPTIONS + '[' -n '' ']' + WPA_SUP_OPTIONS='-B -P /var/run/wpa_supplicant.ra0.pid -i ra0' + '[' -n '' ']' + '[' -n ralink ']' + WPA_SUP_DRIVER=ralink + wpa_msg verbose 'wpa-driver ralink' + '[' -n '' ']' + case "$1" in + shift + echo 'wpa_supplicant: wpa-driver ralink' + wpa_msg verbose '/usr/sbin/wpa_supplicant -B -P /var/run/wpa_supplicant.ra0.pid -i ra0 -D ralink -c /etc/wpa_supplicant.conf -C /var/run/wpa_supplicant' + '[' -n '' ']' + case "$1" in + shift + echo 'wpa_supplicant: /usr/sbin/wpa_supplicant -B -P /var/run/wpa_supplicant.ra0.pid -i ra0 -D ralink -c /etc/wpa_supplicant.conf -C /var/run/wpa_supplicant' + start-stop-daemon --start --oknodo --quiet --name wpa_supplicant --startas /usr/sbin/wpa_supplicant --pidfile /var/run/wpa_supplicant.ra0.pid -- -B -P /var/run/wpa_supplicant.ra0.pid -i ra0 -D ralink -c /etc/wpa_supplicant.conf -C /var/run/wpa_supplicant + '[' 0 '!=' 0 ']' + local WPA_SOCKET_WAIT MAX_WPA_SOCKET_WAIT + WPA_SOCKET_WAIT=0 + MAX_WPA_SOCKET_WAIT=5 + '[' -S /var/run/wpa_supplicant/ra0 ']' + wpa_msg verbose 'ctrl_interface socket located at /var/run/wpa_supplicant/ra0' + '[' -n '' ']' + case "$1" in + shift + echo 'wpa_supplicant: ctrl_interface socket located at /var/run/wpa_supplicant/ra0' + conf_wpa_supplicant + '[' -n '' ']' + '[' ralink = wired ']' + '[' -n '' ']' + wpa_cli_do '' raw ap_scan wpa-ap-scan + '[' -z '' ']' + return 0 + wpa_cli_do '' raw preauthenticate wpa-preauthenticate + '[' -z '' ']' + return 0 + '[' -n '"HTC One M9 8506"' ']' + case "$IF_WPA_SSID" in ++ echo -n '"HTC One M9 8506"' ++ sed 's/^"//;s/"$//' + IF_WPA_SSID='HTC One M9 8506' ++ wpa_cli add_network ++ /usr/sbin/wpa_cli -p /var/run/wpa_supplicant -i ra0 add_network + WPA_ID=1 + wpa_msg verbose 'configuring network block -- 1' + '[' -n '' ']' + case "$1" in + shift + echo 'wpa_supplicant: configuring network block -- 1' + wpa_cli_do 'HTC One M9 8506' ascii set_network ssid wpa-ssid + '[' -z 'HTC One M9 8506' ']' + local WPACLISET_VALUE WPACLISET_VARIABLE WPACLISET_DESC + case "$2" in + WPACLISET_VALUE='"HTC One M9 8506"' + case "$3" in + '[' -z 1 ']' + shift + WPACLISET_VARIABLE='set_network 1 ssid' + case "$4" in + WPACLISET_DESC='wpa-ssid "HTC One M9 8506"' + wpa_msg action 'wpa-ssid "HTC One M9 8506"' + '[' -n '' ']' + case "$1" in + shift + echo -n 'wpa_supplicant: wpa-ssid "HTC One M9 8506" -- ' + wpa_cli set_network 1 ssid '"HTC One M9 8506"' + /usr/sbin/wpa_cli -p /var/run/wpa_supplicant -i ra0 set_network 1 ssid '"HTC One M9 8506"' + wpa_cli_do '' raw set_network priority wpa-priority + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network bssid wpa-bssid + '[' -z '' ']' + return 0 + '[' -s '' ']' + '[' -s '' ']' + '[' -n '' ']' + '[' -n 8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b ']' + wpa_key_check_and_set 8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b + '[' -z 8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b ']' + local KEY KEY_TYPE + case "$1" in + KEY=8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b + ishex 8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b + '[' -z 8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b ']' + case "$1" in + return 0 + '[' 64 -eq 64 ']' + KEY_TYPE=raw + wpa_cli_do 8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b raw set_network psk wpa-psk + '[' -z 8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b ']' + local WPACLISET_VALUE WPACLISET_VARIABLE WPACLISET_DESC + case "$2" in + WPACLISET_VALUE=8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b + case "$3" in + '[' -z 1 ']' + shift + WPACLISET_VARIABLE='set_network 1 psk' + case "$4" in + WPACLISET_DESC='wpa-psk *****' + wpa_msg action 'wpa-psk *****' + '[' -n '' ']' + case "$1" in + shift + echo -n 'wpa_supplicant: wpa-psk ***** -- ' + wpa_cli set_network 1 psk 8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b + /usr/sbin/wpa_cli -p /var/run/wpa_supplicant -i ra0 set_network 1 psk 8f52e37106a9a82444cac6a48d6a7f720d44280cd7901c0c57740316f642d29b + wpa_cli_do '' raw set_network pairwise wpa-pairwise + '[' -z '' ']' + return 0 + wpa_cli_do 'TKIP CCMP' raw set_network group wpa-group + '[' -z 'TKIP CCMP' ']' + local WPACLISET_VALUE WPACLISET_VARIABLE WPACLISET_DESC + case "$2" in + WPACLISET_VALUE='TKIP CCMP' + case "$3" in + '[' -z 1 ']' + shift + WPACLISET_VARIABLE='set_network 1 group' + case "$4" in + WPACLISET_DESC='wpa-group TKIP CCMP' + wpa_msg action 'wpa-group TKIP CCMP' + '[' -n '' ']' + case "$1" in + shift + echo -n 'wpa_supplicant: wpa-group TKIP CCMP -- ' + wpa_cli set_network 1 group 'TKIP CCMP' + /usr/sbin/wpa_cli -p /var/run/wpa_supplicant -i ra0 set_network 1 group 'TKIP CCMP' + wpa_cli_do '' raw set_network mode wpa-mode + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network frequency wpa-frequency + '[' -z '' ']' + return 0 + wpa_cli_do WPA-PSK raw set_network key_mgmt wpa-key-mgmt + '[' -z WPA-PSK ']' + local WPACLISET_VALUE WPACLISET_VARIABLE WPACLISET_DESC + case "$2" in + WPACLISET_VALUE=WPA-PSK + case "$3" in + '[' -z 1 ']' + shift + WPACLISET_VARIABLE='set_network 1 key_mgmt' + case "$4" in + WPACLISET_DESC='wpa-key-mgmt WPA-PSK' + wpa_msg action 'wpa-key-mgmt WPA-PSK' + '[' -n '' ']' + case "$1" in + shift + echo -n 'wpa_supplicant: wpa-key-mgmt WPA-PSK -- ' + wpa_cli set_network 1 key_mgmt WPA-PSK + /usr/sbin/wpa_cli -p /var/run/wpa_supplicant -i ra0 set_network 1 key_mgmt WPA-PSK + wpa_cli_do '' raw set_network proto wpa-proto + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network auth_alg wpa-auth-alg + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network scan_ssid wpa-scan-ssid + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network identity wpa-identity + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network anonymous_identity wpa-anonymous-identity + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network eap wpa-eap + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network eappsk wpa-eappsk + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network nai wpa-nai + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network password wpa-password + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network ca_cert wpa-ca-cert + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network ca_path wpa-ca-path + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network client_cert wpa-client-cert + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network private_key wpa-private-key + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network private_key_passwd wpa-private-key-passwd + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network dh_file wpa-dh-file + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network subject_match wpa-subject-match + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network altsubject_match wpa-altsubject-match + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network ca_cert2 wpa-ca-cert2 + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network ca_path2 wpa-ca-path2 + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network client_cert2 wpa-client-cert2 + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network private_key2 wpa-private-key2 + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network private_key_passwd2 wpa-private-key-passwd2 + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network dh_file2 wpa-dh-file2 + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network subject_match2 wpa-subject-match2 + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network altsubject_match2 wpa-altsubject-match2 + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network eap_methods wpa-eap-methods + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network phase1 wpa-phase1 + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network phase2 wpa-phase2 + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network pcsc wpa-pcsc + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network pin wpa-pin + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network engine wpa-engine + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network engine_id wpa-engine-id + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network key_id wpa-key-id + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network eapol_flags wpa-eapol-flags + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network wep_key0 wpa-wep-key0 + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network wep_key1 wpa-wep-key1 + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network wep_key2 wpa-wep-key2 + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network wep_key3 wpa-wep-key3 + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network wep_tx_keyidx wpa-wep-tx-keyidx + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network proactive_key_caching wpa-proactive-key-caching + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network pac_file wpa-pac-file + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network mode wpa-mode + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network peerkey wpa-peerkey + '[' -z '' ']' + return 0 + wpa_cli_do '' raw set_network fragment_size wpa-fragment-size + '[' -z '' ']' + return 0 + wpa_cli_do '' ascii set_network id_str wpa-id-str + '[' -z '' ']' + return 0 + wpa_cli_do 1 raw enable_network 'enabling network block' + '[' -z 1 ']' + local WPACLISET_VALUE WPACLISET_VARIABLE WPACLISET_DESC + case "$2" in + WPACLISET_VALUE=1 + case "$3" in + WPACLISET_VARIABLE=enable_network + case "$4" in + WPACLISET_DESC='enabling network block 1' + wpa_msg action 'enabling network block 1' + '[' -n '' ']' + case "$1" in + shift + echo -n 'wpa_supplicant: enabling network block 1 -- ' + wpa_cli enable_network 1 + /usr/sbin/wpa_cli -p /var/run/wpa_supplicant -i ra0 enable_network 1 + exit 0 udhcpc (v1.13.3) started SCANNING 0 0 SCANNING 1 0 SCANNING 2 0 SCANNING 3 0 4WAY_HANDSHAKE 4 0 COMPLETED 21 1 Sending discover... Sending discover... Sending discover... COMPLETED 21 1 DHCP network address discovery failure! Setting default address of 192.168.2.127... deleting routers adding default dns 192.168.2.1 No lease, failing
Кто-нибудь когда-либо видел проблему, подобную этой, где вы можете аутентифицировать, но любые пакеты после этого не проходят?
2 ответа на вопрос
Кто-нибудь когда-либо видел проблему, подобную этой, где вы можете аутентифицировать, но любые пакеты после этого не проходят?
На самом деле да. У меня была эта проблема с ключами USB WLAN на базе RT3572 и RT5572 и некоторыми точками доступа от Cisco Systems (бизнес-серии WLC 2500), Hirschmann и Symbol Technologies. Я временно решил эту проблему, переключившись на драйвер сообщества rt2800usb OSS, но этот драйвер имеет довольно низкую производительность по сравнению с драйвером производителя RTxxxxSTA. Ваше решение сработало и для меня с ключами RT3572 и RT5572. Большое спасибо! :)
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Может ли существующее шифрование беспроводной сети реально защитить сеть?
-
3
Каковы различия между оконными менеджерами Linux?
-
5
Существуют ли беспроводные маршрутизаторы, которые позволяют контролировать и регулировать пропускну...
-
5
Поделитесь XP сетевым подключением без перезагрузки?