[lug] Panera wireless using Fedora

thad thad.mailist at gmail.com
Sun Jun 14 20:47:09 MDT 2009


I could login to Panera on the fly no issue with Ubuntu and I'm using same
Intel wireless you have.


On 6/14/09, Michael J. Hammel <mjhammel at graphics-muse.org> wrote:
> I've kind of put up with this since F7 and now I'm tired of just
>  settling.  So I'm asking for help on how to get this working.
>
>  I have wireless working on my laptop at home under F11.  No problem.  I
>  have it configured using the "System->Administration->Network" UI.  I
>  use that to start and stop it as needed.  I do not use NetworkManager (I
>  disable it).  I use the "network" service instead.  I have an ipw2200
>  based wireless hardware (Intel Corporation PRO/Wireless 2200BG
>  [Calexico2]).  It is configured using WEP through a Linksys router.
>
>  But I can never get wireless working at free wifi spots, like Panera.
>  I've tried the UI method and I've done it by hand using iwlist scan to
>  get the details and iwconfig to manually configure the device.  It
>  almost never works.  Panera never works.  The local library works but
>  only randomly.  The UI pops up error messages when I try various
>  configurations but the pop up dialog close so fast there is no way to
>  read the error messages.  Based on experiments from the command line it
>  looks like invalid arguments to iwconfig.
>
>  What is the correct way to get a wifi hotspot working under Fedora?  Do
>  I need wpa_supplicant configured?  Is there a Fedora web site devoted to
>  this issue? When adding a new wireless device for the hotspot using the
>  UI, it comes out as eth0:1.  Does eth0 (the original wireless configured
>  for the home) have to be enabled before eth0:1 comes up?  That's the
>  case with wired connections (or at least used to be - haven't tried
>  dual-homed cards in a while).
>
>  BTW, Panera was configured with mode = Master today.  I tried to set
>  that with iwconfig and got an error back that Master was an invalid
>  option to Set Mode.  I tried all the other options too but none of them
>  worked.  I though it had to be Managed (via "mode auto" in iwconfig) but
>  I couldn't get that to work.
>
>  FWIW, here is the shell script I use for panera.  Beneath that is a perl
>  script I use for generic hot spots (no whining about my lousy perl style
>  - that's a problem for another day).  At one point in the past these
>  both worked, but only briefly.  I have no idea what I'm doing wrong. Any
>  tips would be appreciated.
>
>
>  #!/bin/bash
>  # Bring up the Wireless at Panera Bread
>  #-------------------------------------------------------------------------
>  set -x
>  /sbin/ifconfig eth0 down
>  /sbin/ifconfig eth1 down
>
>  # For integrated wireless
>  dev="eth0"
>
>  if [ "$1" = "" ]
>  then
>     # /sbin/service network stop
>
>     # Reload the driver because sometimes it just gets confused.
>     /sbin/rmmod ipw2200
>     /sbin/modprobe ipw2200
>     # /sbin/iwconfig eth0 essid PANERA mode auto ap any channel 3
>     /sbin/iwconfig eth0 essid any mode auto ap 00:03:52:9C:98:20 channel
>  3
>     # /sbin/service network start
>     /sbin/dhclient -1 $dev
>     /sbin/route add default eth0
>     /sbin/route add default gw 192.168.10.1
>  else
>     # Bring the port down
>     killall dhclient
>     /sbin/ifconfig eth0 down
>     cp /etc/resolv.conf.home /etc/resolv.conf
>
>     # Reload the driver because sometimes it just gets confused.
>     /sbin/rmmod ipw2200
>     /sbin/modprobe ipw2200
>  fi
>
>
>
>  !/usr/bin/perl
>  # Bring up the Builtin Wireless card.
>  #-------------------------------------------------------------------------
>  use Getopt::Long;
>
>  # Shutdown the hardware wire connection - we wouldn't be using it if
>  we're
>  # trying to connect via wireless.
>  # By default the builtin card uses eth1
>  my $dev = "eth0";
>
>  # system("ifconfig eth0 down");
>  system("ifconfig $dev down > /dev/null 2>&1");
>  system("killall dhclient > /dev/null 2>&1");
>
>  # Use this to load the driver for the Belkin card - see src/ipw2200
>  # If it doesn't load - no biggie.  We only need it as a backup if the
>  # builtin card doesn't work.
>  # system("modprobe ndiswrapper");
>
>  my $open = 0;
>  my $essid = "";
>  my $channel = "";
>  my $signal = "";
>  my $findAll = 0;
>  my $started = 0;
>
>  my $verbose = 0;
>  $okay = GetOptions ( "findAll"      => \$findAll,
>                      "h|?"          => \$dousage,
>                      "v|verbose"      => \$verbose);
>  if ( !$okay )    { usage(); }
>  if ( $dousage )  { usage(); }
>
>  if ($findAll)
>  {
>     print ("###  Finding all public cells.\n");
>  }
>
>  # open(PD, "iwlist $dev scan| grep -i \"essid:\"|");
>  open(PD, "iwlist $dev scan|");
>  while (<PD>)
>  {
>     chomp();
>     $field = $_;
>
>     # Are we starting a new entry?
>     if ( $field =~ /Address/ ) {
>         if ( $verbose ) { print ("=== Starting new Cell.\n"); }
>         $started = 1;
>         $essid = "";
>         $open = 0;
>         $channel = "";
>         $signal = "";
>         next;
>     }
>     # Have we started a new entry?
>     if ( !$started ) { next; }
>
>     # We're in an entry - check for the ESSID
>     if ( $field =~ /ESSID/ )
>     {
>         if ($verbose) { print ("Examining cell: $field\n"); }
>         # next unless ( $field =~ /Unwired/ );
>         $essid = $field;
>         if ($verbose) { chomp($essid); }
>         $essid =~ s/^.*://;
>         $essid =~ s/\"//g;
>         if ($verbose) { print ("Found cell: $essid\n"); }
>     }
>     if ( ($verbose) && ($essid ne "") ) {
>         print ("Field: $field\n");
>     }
>
>     # We're in an entry and have an ESSID - check if the cell is open
>  access.
>     if ( ($started) && ( $field =~ /off/ ) )
>     {
>         if ( $verbose ) { print ("=== Cell is open access.\n"); }
>         $open = 1;
>     }
>
>     # We're in an entry and have an ESSID - grab the cell channel
>     if ( ($started) && ($field =~ /Channel/) )
>     {
>         $channel = $field;
>         $channel =~ s/^.*Channel //;
>         $channel =~ s/\)//;
>         if ( $verbose ) { print ("=== Cell channel: $channel\n"); }
>     }
>
>     # We're in an entry and have an ESSID - grab the signal level
>     if ( ($started) && ($field =~ /Signal level/) )
>     {
>         $signal = $field;
>         $signal =~ s/^.*level=//;
>         if ( $verbose ) { print ("=== Signal Level: $signal\n"); }
>     }
>     if ( ($started) && ($open) && ($channel ne "") && ($signal ne "") )
>     {
>         if ( !$findAll) { last; }
>         else            { print "Public cell: $essid, channel=$channel,
>  signal level= $signal\n"};
>         if ( $verbose ) { print ("=== Ending Cell.\n"); }
>         $started = 0;
>     }
>  }
>  if ($findAll) { exit(0); }
>  close(PD);
>  if ( $open == 0 ) { print "Couldn't find public cell!\n"; exit(1); }
>  else              { print "Public cell: $essid, channel=$channel, signal
>  level= $signal\n"};
>
>  # We know what the local network ESSID is, so configure for it.
>  print("iwconfig $dev essid \"$essid\" channel $channel mode auto \n");
>  system("iwconfig $dev essid \"$essid\" channel $channel mode auto ");
>
>  # Request an IP address.
>  print("Configuring DHCP on $dev...");
>  if ($verbose) { system("dhclient -1 $dev"); }
>  else          { system("dhclient -1 -q $dev"); }
>  if ( ($? == -1) || ($? & 127) ) {
>     print "Failed.\n";
>     exit(1);
>  }
>  else {
>     $rc = $? >> 8;
>     if ( $rc != 0 ) { print "Failed.\n"; exit(1); }
>     else            { print "Okay.\n"; }
>  }
>
>  # Echo back our configuration.
>  system("ifconfig $dev");
>
>  exit(0);
>
>
>  --
>  Michael J. Hammel
>  mjhammel at graphics-muse.org / http://www.graphics-muse.org
>  ------------------------------------------------------------------------------
>  The most powerful force in the universe is gossip. -- Unknown.
>
>  _______________________________________________
>  Web Page:  http://lug.boulder.co.us
>  Mailing List: http://lists.lug.boulder.co.us/mailman/listinfo/lug
>  Join us on IRC: lug.boulder.co.us port=6667 channel=#hackingsociety
>



More information about the LUG mailing list