Go Down

Topic: How to Disable WiFi (Read 13941 times) previous topic - next topic

ssci

In some countries, it is prohibited to use WiFi without a government permit (certification). If you live in such country, this memo can help you.

You may think it is very easy to disable WiFi interface using the OpenWRT bare control panel LuCi.
http://arduino.local/cgi-bin/luci/admin/network/wireless

However, you will be noticed that Yun will reboot every 60 seconds if the WiFi interface is disabled. This behavior is intended by the Yun developer. You have to bypass or "fool" the WiFi detection function in Yun. This requires a small modification to the Yun's Linux part.

Here is an Arduino sketch to make such modification.
https://gist.github.com/sgk/6641198
https://gist.github.com/sgk/6641198/raw/c6c36b2c8a9d62036b11335f6515ce3c5ce03ee6/PatchYun.ino

After successfully compiling and running the sketch on Yun, just open a Serial Monitor. You will see messages like "Paching..." and "...Done.". If you see a blue LED to light without flashing, the modification is successful. The sketch does following changes.


  • Remove a utility that enables the WiFi hardware.

  • Disable to run the WiFi detection daemon which reboots after 60 seconds if WiFi could not be enabled.

  • Changed the blue LED meaning to indicate the Linux boot completion by lighting (not flashing).

  • Protect the above changes to continue after the factory reset.



I filed an issue for this, and I hope Yun will have this functionality in the next release.
https://github.com/arduino/linino/issues/5

Federico Fissore

Have you upgraded the Yún? If you've just got it, then it needs to be upgraded! Check out the tutorial

Federico Fissore

We added a note and a link to the sketch in the product page
Have you upgraded the Yún? If you've just got it, then it needs to be upgraded! Check out the tutorial


simon_schvartzman

Shigeru , I'm not clear as what should I do if I want to be able to switch between WiFi enabled and WiFi disabled .

In other words lets say i want the user to send a command from the console, at initialization time, to decide if the connection is going to be by Wireless (WiFi enabled) or Cable (WiFi disabled).

Many thanks in advance for your help.

Federico Fissore

Shigeru's patch is good for disabling wifi in countries where we still lack proper certification and make the patch resist a factory reset. It's not a general approach for disabling wifi.

If you want to control wifi status, take a look at this post for instructions on how to disable/re-enable it: http://forum.arduino.cc/index.php?topic=188821.msg1399080#msg1399080
Have you upgraded the Yún? If you've just got it, then it needs to be upgraded! Check out the tutorial

simon_schvartzman

Federico, thanks for your prompt answer. I guess I lack enough (Linux?) experience to understand how to edit the file as suggested on the Post. Besides, is it possible to do it under program control? Could you give some guidelines as how should it be done?

Once again many thanks for your support.

Federico Fissore

Connect to you yun via SSH (using putty or ssh, depending on your OS) then issue
opkg update
opkg install nano
nano is a text editor. Issue nano /etc/rc.local and so forth
Have you upgraded the Yún? If you've just got it, then it needs to be upgraded! Check out the tutorial

simon_schvartzman

Federico, per your response, as I will need to connect the Yun to another computer it is my understanding that I won't be able to do it (WiFi enable/disable) just under Yun's own control. Am I correct?

Thanks

Federico Fissore

Sorry I missed that: can you rephrase it?
Have you upgraded the Yún? If you've just got it, then it needs to be upgraded! Check out the tutorial

simon_schvartzman

My whole point is that I want to be able to enable/disable the WiFi 100% under control of the Arduino sketch running on the Yun.

Hope is clear now.

Federico Fissore

I think you could issue "wifi down" (use runShellProgram). I've never used it though
Have you upgraded the Yún? If you've just got it, then it needs to be upgraded! Check out the tutorial

simon_schvartzman

Federico, many thanks for the Hint, I tried it and works like a charm!

        p.runShellCommand("wifi down");  //disconnect wifi to save energy

When I want to use the WiFi again is just a matter of sending:

       p.runShellCommand("wifi up");  //connect wifi before transmitting


Savings of 30 mA !!!

LoFiCase

Hello,
The Yun is my very first in the arduino world,its been pretty fun and a great experience so far.
The unit works great but when i ran this patch I can't seem to get Wifi working anymore so the patch works a charm shutting it off.

Now after spending some time reading I realized its not a practical way of disabling it and feeling a bit embarrassed about it  :P
So here I am.I tried all 3 methods of resetting but it seems to be written to a part of (flash?) memory that dosen't get reset.

Instead of like how it was before the patch (blue wlan led flashing) it stays solid blue even after all resets and wifi don't work
and appears disabled in the logon page when using ethernet.

At first I was wanting to shut it off since I was wanting to experiment on the ethernet side, now that i done some of that was wanting to turn wifi back on to give that a go.

So my question is could some kind person make a reverse patch or a way to get wifi going again?  :smiley-roll-sweat:
Here i am breaking stuff already lol anyways I would be greatful  :)

Federico Fissore

You can try replacing file /lib/firstboot/20_reset_clear_jffs with the one you can download from here
https://github.com/arduino/linino/blob/master/trunk/package/base-files/files/lib/firstboot/20_reset_clear_jffs
Then issue a factory reset (press the wlan rst button for more than 30 seconds)
Have you upgraded the Yún? If you've just got it, then it needs to be upgraded! Check out the tutorial

Go Up