Все тестировалось на официальной прошивке RUU_Vivo_Gingerbread_S_HTC_WWE_2.30.405.1 для HTC Incredible S, с полученным рутом.
Если кратко: по WiFi подключается, адрес получает, в ip route все выглядит нормально, но дальше шлюза ничего не идет. Если же использовать статический IP - все работает.
Для диагностики причины использовал adb logcat, мне не понравились следующие строки:
D/WifiStateTracker( 1421): change state to connected for wifi supplicant state=COMPLETEDТ.е. мне выдается IP 89.249.173.32, пишут, что не смогли получить gateway от dhcp и используют мой же IP как шлюз. При этом в ip route все выглядит замечательно - для default прописан верный шлюз, который DHCP получил как статический маршрут:
D/WifiStateTracker( 1421): gateway from dhcp option 3 is wrong, use gateway2 dhcpcd set: 89.249.173.32
D/WifiStateTracker( 1421): adding routing rule table=>wifi fromIp=all, toIp=all priority=3001
I/ipd ( 1315): IP CMD: /system/bin/ip ro flush table wifi
V/WifiStateTracker( 1421): IP configuration: ipaddr 89.249.173.32 gateway 89.249.173.32 netmask 255.255.255.128 dns1 93.180.4.5 dns2 0 .0.0.0 DHCP server 93.180.4.5 lease 67612 seconds
D/Dhcpcd ( 2901): adding route to 0.0.0.0/0 via 89.249.173.1
Поигравшись с получаемыми значениями в /system/etc/dhcpcd/dhcpcd-hooks/95-configured я понял, что использумая в
setprop dhcp.${interface}.gateway "${new_routers%% *}"переменная new_routers пуста. Немного дописав скрипт, я сделал так, чтобы в gateway прописывался маршрут до 0.0.0.0/0 из статических маршрутов:
#setprop dhcp.${interface}.gateway "${new_routers%% *}"и все заработало!
gateway=`echo ${new_classless_static_routes}|egrep -o "0.0.0.0/0 [0-9\.]*"|cut -c 11-`
if [ -n "${gateway}" ]; then
setprop dhcp.${interface}.gateway "${gateway}"
fi;
Итого: скачиваем оригинальный /system/etc/dhcpcd/dhcpcd-hooks/95-configured , дописываем его, как описанно выше, загружаем обратно в /system/etc/dhcpcd/dhcpcd-hooks/95-configured (например, Root Explorer'ом: очень удобная вещь, одним кликом перемонтирует разделы в RO/RW)
Желательно прикрепить уже отредактированный файл, потому как перестает получать IP вообще, хотя может что то не так забил...
ОтветитьУдалитьПришлите оригинальный файл, отредактирую и выложу.
ОтветитьУдалитьУ меня уже 2.3.5, где все работает и без патча.