Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Wireless success: Netgear WG311, madwifi, wpa_supplicant
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Networking & Security
View previous topic :: View next topic  
Author Message
thoughts
Apprentice
Apprentice


Joined: 15 Apr 2004
Posts: 153
Location: Pennsylvania

PostPosted: Fri Jul 22, 2005 8:10 am    Post subject: Wireless success: Netgear WG311, madwifi, wpa_supplicant Reply with quote

It seems like there are 100 different ways to do wireless on Linux, and there is so much incomplete documentation floating around on all of them. I just finally got mine working, so I wanted to post a complete start-to-finish howto.

First of all, I'm running a 2.6.11-gentoo-r9 kernel on a Pentium-III system. My network card is a Netgear WG311 (v1, which isn't shown on the card, it just says WG311) PCI card, which does 802.11b/g. This card uses an Atheros chip:

Code:
[root@host]# lspci
0000:00:0c.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)


First I got the latest baselayout, which was 1.11.13:

Code:
emerge -vabk baselayout


Since baselayout changes /etc so much, and since dispatch-conf regularly borks my files, I make a complete backup of /etc before doing any etc-update or dispatch-conf. The whole of /etc is only a few tens of MB so it's no big deal to backup the whole thing:

Code:
[root@host]# mkdir /arch
[root@host]# cp -a /etc /arch/etc-arch20050722-before-updating-files-from-baselayout


Next I run etc-update to auto-merge trivial /etc changes, but then I exit it (use the "-1" option) and do dispatch-conf to manually merge the non-trivial changes.

OK, back to the topic at hand:

Code:
[root@host]# emerge -vabk wireless-tools
[root@host]# emerge -vabk wpa_supplicant
[root@host]# emerge -vabk madwifi-driver
[root@host]# emerge -vabk madwifi-tools


This gets me wireless-tools-27-r1, wpa_supplicant-0.3.8-r1, madwifi-driver-0.1_pre20050420, and madwifi-tools-0.1_pre20050420.

Merging madwifi-driver told me to do some stuff when it finished, but I ignored it for now.

Next, start the driver and check that the modules all load:

Code:
[root@host]# modprobe ath_pci
[root@host]# lsmod|grep ath
ath_pci                52832  0
ath_rate_amrr           7076  1 ath_pci
wlan                  106652  3 ath_pci,ath_rate_amrr
ath_hal               146864  2 ath_pci


Now put this into /etc/conf.d/net:

Code:
modules=( "wpa_supplicant" )
wpa_supplicant_ath0="-Dmadwifi"
wpa_timeout_ath0=20
# optionally set the IP and router for your wireless card to use.
# if you're using DHCP you can skip these.
ifconfig_ath0=( "192.168.1.10 netmask 255.255.255.0" )
routes_ath0=( "default gw 192.168.1.1" )


Now create /etc/wpa_supplicant.conf by copying it from /etc/wpa_supplicant.conf.example. Delete all the example network blocks at the bottom, and put just this one in:

Code:
network={
   ssid="yourssid"
   psk="very secret passphrase"
   priority=5
}


Since that file now contains your network password, make it readable by only root:

Code:
chmod 0600 /etc/wpa_supplicant.conf


Create your net.ath0 device:

Code:
[root@host]# cd /etc/init.d
[root@host]# ln -s net.eth0 net.ath0


Now your configuration should be complete; just restart the driver:

Code:
[root@host]# rmmod ath_pci ath_rate_amrr wlan ath_hal
[root@host]# lsmod|grep ath
(there should be no output)
[root@host]# modprobe ath_pci


Run iwconfig and ifconfig to see that it's up:

Code:
[root@host]# iwconfig ath0
ath0      IEEE 802.11g  ESSID:"yourssid" 
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:XX:XX:XX:XX:9E   
          Bit Rate:36 Mb/s   Tx-Power:50 dBm   Sensitivity=0/3 
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:4CCD-DCC5-3CC8-2CC9-4CCE-DCC1-9CCC-8CC7   Security mode:restricted
          Power Management:off
          Link Quality=23/94  Signal level=-72 dBm  Noise level=-95 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

[root@host]# ifconfig ath0
ath0      Link encap:Ethernet  HWaddr 00:XX:XX:XX:XX:32 
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:4 dropped:0 overruns:0 frame:4
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:199
          RX bytes:548 (548.0 b)  TX bytes:417 (417.0 b)
          Interrupt:11 Memory:f8d40000-f8d50000


You win!

Now to test it, stop your wired network card:

Code:
[root@host]# /etc/init.d/net.eth0 stop


But now your default route is gone, because it was mapped through eth0:

Code:
[root@host]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 ath0
loopback        localhost       255.0.0.0       UG    0      0        0 lo


So add it back, on ath0:

Code:
[root@host]# route add default gw 192.168.1.1

[root@host]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 ath0
loopback        localhost       255.0.0.0       UG    0      0        0 lo
default         192.168.1.1     0.0.0.0         UG    0      0        0 ath0


Now your network should be working properly.

To make your ath0 start at boot:

Code:
[root@host]# rc-update add net.ath0 default
 * net.ath0 added to runlevel default
 * rc-update complete.


And to stop eth0 from starting anymore:

Code:
[root@host]# rc-update del net.eth0 default
 * net.eth0 removed from the following runlevels: default
 * rc-update complete.


Verify it:

Code:
[root@host]# rc-update show|grep -i net
               local |      default nonetwork
            net.ath0 |      default           
            net.eth0 |
              net.lo | boot                   
            net.ppp0 |                       
            netmount |      default


Finally, edit /etc/modules.autoload.d/kernel-2.6 and add a new line at the bottom that says just "ath_pci" (without quotes); this will load the driver automatically when your system starts.

Now reboot and the wireless network card should be working.

Anthony DiSante
http://encodable.com/
http://nodivisions.com/
Back to top
View user's profile Send private message
LoDown
Apprentice
Apprentice


Joined: 26 Oct 2004
Posts: 189
Location: Louisville, Ky

PostPosted: Fri Jul 22, 2005 8:01 pm    Post subject: Reply with quote

Very nice. Very complete and well laid out. Thanks!
_________________
Please remember to add [SOLVED] to your topic subject line when it is solved.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Networking & Security All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum