Active Topics

 



Notices


Reply
Thread Tools
Posts: 4,556 | Thanked: 1,624 times | Joined on Dec 2007
#11
Maybe there's an error in the instruction on line 31 of the code? (count how many lines down). Maybe the internet tablets don't support the protocal or something is missing? I see it needs wireless tools.
__________________
Originally Posted by ysss View Post
They're maemo and MeeGo...

"Meamo!" sounds like what Zorro would say to catherine zeta jones... after she slaps him for looking at her dirtily...
 
Posts: 30 | Thanked: 7 times | Joined on Nov 2007
#12
Suggest you look at the DD-WRT script "autoAP". This may give you some ideas.


From the wiki
"AutoAP is a script that continuously scans for open Wi-Fi connections, tests them for validity, and connects to the strongest signal. If the connection is lost, the script scans again and finds the strongest valid signal again, and maintains a continuous connection to the internet in a mobile or portable environment. The script paremeters are highly configurable, including ability to configure secure connections. "

Parameters include:
Filters to avoid logging onto specific SSIDs
Filters giving preferential logging onto specific SSIDs, including encyption key values


Script can also verify that successful wifi connection also allows internet access.

I would love to see something like this adapted to run on the Nokia tablets.

See
http://www.dd-wrt.com/wiki/index.php/Autoap
and
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=6575
 
Posts: 14 | Thanked: 2 times | Joined on Aug 2008
#13
See, I looked at AutoAP...It's not the same kind of 'script' in the sense that the code is just there and easy to look at...At least not for me. The script uses the router interface / commands and wouldn't be easy to port to the N810, at least not that specific script. The best thing to use is a bash / sh based script that takes advantage of wireless-tools. I was working with a friend earlier who's more experienced with scripting in bash to work out the bugs in that script I posted- It seems to be our best bet. I wish I had more experience in this sort of stuff. I'm going to resume work on it when I return in a few days. Until then, if anyone wants to take a whack at running/debugging it on the N810, xterm, chmod 777 the file (copy and paste the script in notepad, save it as something.sh, copy it over), and run it in root. Have fun :P
 
Posts: 121 | Thanked: 28 times | Joined on Oct 2007
#14
To bad it's not like the old dlink/linksys and windows where you can just put in ssid "ANY" all CAPS and it will auto connect to any open access point .
Maybe it works the same way i did not test it on linux or n810 ..

Computerfreek274

Last edited by computerfreek; 2008-09-01 at 15:10.
 
Posts: 15 | Thanked: 1 time | Joined on Sep 2008
#15
Hello,

I'm new around here and also in need of a script of this kind. I took the previously posted script and adapted it a bit to my needs. This sort of works for me on an n810. It chooses the strongest AP and connects to it. Sadly, even if the connection can be established, I can't get the tablet to switch to a "connected" state, so for now one has to manually reconnect with the statusbar applet if the connection via this script worked.

I'd be very grateful if anybody adds improvements. Especially the parsing code is quite slow.
Lateron I also want to add the possibility to manually choose the AP to connect to. But the biggest problem for now is the unability to get the tablet connected and "online" on the commandline.

Code:
#!/bin/bash
# Finds the strongest unencrypted AP and tries to connect to it via dhcp
# Call this script like "wifi.sh wlan0"
echo hi

if [ `whoami` != "root" ];then
echo "Sorry, you need to be root to run this program"
exit 1
fi

interface=wlan0
ifconfig $interface up

# Proggy
while true
do
iwlist $interface scan > $TEMP
NumAPs=`cat $TEMP | grep ESSID | wc -l`
BestAP=0
BestQuality=-1
BestESSID=""
echo APs: $NumAPs
for i in `seq 1 $NumAPs`;
do
# Check if AP is encrypted
Encryption=`cat $TEMP | grep Encryption | head -n$i | tail -n1 | cut -d":" -f2`
if [ $Encryption = "off" ]; then
# Find AP with the highest quality
ESSID=`cat $TEMP | grep ESSID | head -n$i | tail -n1 | cut -d"\"" -f2`  
MODE=`cat $TEMP | grep Mode | head -n$BestAP | tail -n1 | cut -d":" -f2`
QUALITY=`cat $TEMP | grep Quality | head -n$i | tail -n1 | cut -d":" -f2 | cut -d"/" -f1 | sed 's/ //g'`
echo ESSID=$ESSID Mode=$MODE Quality=$QUALITY
if [ "$QUALITY" -gt "$BestQuality" ]; then
BestQuality=$QUALITY
BestAP=$i
BestESSID=$ESSID
fi
fi
done
if [ $BestAP -gt 0 ]; then
timeout 2 mplayer /usr/share/sounds/ui-new_email.wav > /dev/null 2>&1 &
# Yay, we found an unencrypted AP:
echo
#ESSID=`cat $TEMP | grep ESSID | head -n$BestAP | tail -n1 | cut -d"\"" -f2`
CHANNEL=`cat $TEMP | grep Channel | head -n$BestAP | tail -n1 | cut -d":" -f2 | sed 's/Channel //g' | sed 's/)//g'`
echo Connecting to \"$BestESSID\"  Channel $CHANNEL
echo
# Connect
iwconfig $interface essid "$BestESSID" channel $CHANNEL mode managed #$MODE 
sleep 3
iwconfig #2>&1 | grep ESSID
echo
if ping -c2 `udhcpc -i $interface -n -q 2>&1 | grep dns | cut -d" " -f3`
then
echo
ping -c 1 www.google.com
echo
echo very well
echo
read a
ifconfig $interface down
ifconfig $interface up
else
echo
echo bad
echo
ifconfig $interface down
ifconfig $interface up
fi
fi
done
# Cleanup
 
Posts: 15 | Thanked: 1 time | Joined on Sep 2008
#16
Forgot to add, this runs with sh:

sh /path/toscript

bash is not needed.

Bye
 
Reply


 
Forum Jump


All times are GMT. The time now is 14:44.