[Fuhu Nabi 2] rnjmur:
Thought I would share some info I found when I ran into the wifi problem on my daughter's nabi. I did some searches on the internet and the typical answer I found for solving the wifi issue was "reset the device" or "unroot and return to stock rom - flash all updates and reroot". Being a glutton for punishment, and the fact I didn't want to reset the device, I searched and searched and was able to fix my daughter's wifi without doing a reset or unroot/reroot. Before I get into it I wanted to mention that wifi failures can happen for a number of reasons so while this worked for myself, it may not work for you.

Some prerequisites:

Most importantly; you need a rooted device. If you do not have root access you will not be able to write files or access the commands to fix the issue I am about to outline.

Some knowledge of linux would be helpful, but not necessarily required.

Lets get started:

Warning! It goes without saying but I will say it anyways - you can mess up your nabi by rooting it. Some of the commands below could mess up your nabi bad. If this scares you then you probably should not proceed any further. I am not responsible for any damage you do to your nabi.

Commands are listed between ' and ' - do not use the ' when inputing the commands.

Note: The first two/three steps are not necessary but they do give you insight as to how I was able to determine my problem. If following this doesn't fix the problem for you the logcat output may give you some important info that you can google that may help you fix your particular problem.

Note: Steps 5 and on can be skipped if you have a text editor (vi or nano) on your device. If you have a text editor loaded simply edit the conf file directly.

1. You will need to run the command 'adb logcat' in a command-line window and in your appropriate directory. Adb is available as part of the android sdk but can also be found stand alone since most people do not need the sdk.

2. Try to turn on the wifi. You should see the output of your adb logcat window scroll some data. If the wifi is not attempting to turn on at all sometimes you can move between the settings options then go back to the wifi settings and move the slider. If you cannot get your wifi to turn on you can scroll the window up and attmept to find the data from when the device started up. In the output you should see lines that talk about wlan0 and probably something that says "failed" somewhere. In my case I could see where the wlan0 enabled but then a few lines down it said something about "Line: 25 failed" and "failed to parse file".

3. The file is actually a configuration file used by the wifi kernal module/driver. In my case this file had become corrupted.

4. Set adb in root mode (won't work if the device does not have root access) by running 'adb root' at the command-line. You may need to click on an "allow root permission" window on the actual device after running this command.

5. Run 'adb pull /data/misc/wifi/wpa_supplicant.conf' from command-line. If this does not work then do the following:

a. Run 'adb shell' from command line.

b. 'su'

c. 'cat /data/misc/wifi/wpa_supplicant.conf' - copy the output from the command and paste into a text editor (see note in step 6 on why NOT to use notepad).

d. Save the file as wpa_supplicant.conf, preferrably in the same diretory as adb.

e. 'exit' twice should exit you from the adb shell and return you to your command-line. If all else failes a "ctrl-c" should drop you out of adb.

6. Use a text editor to open wpa_supplicant.conf. The file should be located int he same directory as adb. If you are using Windows I would strongly suggest you NOT use notepad. Notepad will typically change all the EOLs (End Of Line) from \n to \r\n which will really mess things up worse.

7. In the file you should see "network={" entries. There maybe one entry, there maybe many entries. You can remove all lines between "network={" and "}" including the latter themselves. If you see your 'home' network listed you can leave it as the only entry and make sure its priority is set to 1 but it maybe better to remove it as well just in case it contains part of the corrupted data.

8. Save the file.

9. Do 'adb push wpa_supplicant.conf /data/misc/wifi/wpa_supplicant.conf' from command-line. If this does not work then do the following:

a. Run 'adb push wpa_supplicant.conf /sdcard/wpa_supplicant.conf' from command-line.

b. Run 'adb shell'

c. 'su'

d. 'dd if=/sdcard/wpa_supplicant.conf of=/data/misc/wifi/wpa_supplicant.conf'

e. Do 'exit' twice to exit the adb shell. If all else fails then a "ctrl-c" should drop you ot of adb.

10. If the wpa_supplicant file was corrupted then the wifi should now be able to enable and you should now be able to connect to a network.

I hope this is helpful to at least a few people.