At UX Camp Europe 2010, my Motorola Milestone could not connect to the barcamp wifi, a WPA2/PSK WLAN running on a mesh of Enterasys APs. The phone would not even manage to associate to the AP, the debug log (
adb logcat) showing the following:
E/wpa_supplicant( 3892): ERROR - \ wpa_driver_tista_private_send - error sending \ Wext private IOCTL to STA driver \ (ioctl_cmd = 8021501, res = -1, errno = 95) E/wpa_supplicant( 3892): ERROR - Failed to do tista scan! W/wpa_supplicant( 3892): Failed to initiate AP scan.
So there was never a visible attempt at connecting in the UI.
After a lot of searching, reading source, asking around and debugging, I managed to solve my problem by modifying the configuration of the WLAN driver module (tiwlan.ini) as follows (requires the Android SDK / adb and root access on your phone, or a adb-root recovery partition):
No warranty if you brick your phone, if you don’t feel confident doing this, have someone with Android expertise do it for you or wait for a fix from Motorola. Or try disabling 802.11n (draft-n) in your AP if you can control it.
- Connect your phone via USB, make sure you enable USB debugging in Settings > Applications > Development.
- Get the configuration file from your phone:
adb pull /system/etc/wifi/tiwlan.ini tiwlan.ini
HT_Enable=0in the file.
sed -i -e s/HT_Enable=1/HT_Enable=0/ tiwlan.ini
Push the changed file back onto your phone (you can’t directly overwrite the file in /system/etc/wifi/ because adb is not running as root on the phone):
adb push tiwlan.ini /tmp/tiwlan.ini
Start an adb shell on your phone, get root, make /system writable and move the file to the right location:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system
cp -f /tmp/tiwlan.ini /system/etc/wifi/
Reboot your phone
Your phone should now be able to associate with the AP.
People have reported similar problems with APs by other manufacturers (Enterasys, D-Link, some old Linksys WRT), so this might work for you.