Motorola Milestone / Droid and 802.11n Access Points

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.

  1. Connect your phone via USB, make sure you enable USB debugging in Settings > Applications > Development.
  2. Get the configuration file from your phone:

    adb pull /system/etc/wifi/tiwlan.ini tiwlan.ini

  3. Change HT_Enable=1 to HT_Enable=0 in the file.

    sed -i -e s/HT_Enable=1/HT_Enable=0/ tiwlan.ini

  4. 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

  5. Start an adb shell on your phone, get root, make /system writable and move the file to the right location:

    adb shell
    su
    mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system
    cp -f /tmp/tiwlan.ini /system/etc/wifi/

  6. Reboot your phone

    reboot

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.

2 Replies to “Motorola Milestone / Droid and 802.11n Access Points”

Comments are closed.