Yellow Dog Linux v6.x

TOPIC: Enabling Airport Extreme



Introduction
This HOWTO will guide you through the steps of setting up Airport Extreme with YDL v6.x for Apple hardware. It was tested on an Apple 12" PowerBook G4 running a fresh install of YDL v6.0.

This procedure requires 3 steps:
  1. Discover your Airport firmware version.
  2. Extract the Airport Extreme firmware.
  3. Configure your wireless card under Linux.

  1. Discover your Airport Extreme version
    Broadcom is the manufacturer of the Airport Extreme wireless chip for Apple. The Broadcom chip in the Powerbook used to write this HOWTO is the BCM4306 802.11b/g (rev 03). Different versions of the firmware and driver might not be as straightforward. To discover the version of the Airportyou have on your computer, under Linux run this command as root:
    [root@localhost network-scripts]# lspci | grep -i broadcom [ENTER]

    Here's the output I get on my laptop:
    0001:10:12.0 Network controller: Broadcom Corporation BCM4306 802.11b/g
    Wireless LAN Controller (rev 03)
    If you have an earlier or later version, these instructions may or may not work for you. If you run into troubles, join the yellowdog-general mailing list or visit us on #yellowdog at freenode.irc.net. Someone there might be able to help you troubleshoot any problems you might have.


  2. Extract the Airport Extreme firmware
    The first step in getting your Airport Extreme working is to extract the necessary firmware files from your MacOS X drivers. This can be done two ways: a) build and execute the application in MacOS X; or b) build and execute the application in Yellow Dog Linux. Both are fairly simple procedures. I'll demonstrate them both.
    1. Download the firmware driver extraction tool. The first step is to download the application fwcutter which extracts the firmware driver. This can be fetched from here:
      developer.berlios.de/project/showfiles.php?group_id=4547
      ... and save it somewhere convenient.

    2. Decompress and compile fwcutter. In a terminal window (these commands will work in MacOS X or Linux):

      Decompress:
      [chris@localhost ~]# tar -jxf bcm43xx-fwcutter-006.tar.bz2 [ENTER]
      ... then compile:
      [chris@localhost ~]# cd bcm43xx-fwcutter-006 [ENTER]
      [chris@localhost ~]# make [ENTER]
      This should generate the following output:
         cc -O2 -fomit-frame-pointer -std=c99 -Wall -pedantic -D_BSD_\
      SOURCE-DFWCUTTER_VERSION_=006   -c -o fwcutter.o fwcutter.c
         cc -O2 -fomit-frame-pointer -std=c99 -Wall -pedantic -D_BSD_\
      SOURCE-DFWCUTTER_VERSION_=006   -c -o md5.o md5.c
         cc -O2 -fomit-frame-pointer -std=c99 -Wall -pedantic -D_BSD_\
      SOURCE-DFWCUTTER_VERSION_=006 -o bcm43xx-fwcutter fwcutter.o md5.o
      
      ... and you should be left with a binary executeable called bcm43xx-fwcutter.

    3. Extract the firmware from the MacOS X drivers. This will vary slightly depending on if you are doing this in Linux or MacOS. The README file in the bcm43xx-fwcutter-006 folder contains information as to where to find the drivers in MacOS X.

      Using MacOS X
      Extracting the firmware in OSX is almost identical to doing it in Linux (see below), except you'll want to put the firmware somewhere so that you can get it into Linux (either via a USB key, over the network, etc.. This is left to the reader.).
      1. Start by making a directory to store the firmware:
        laptop:~/Desktop/bcm43xx-fwcutter-006 chris$ mkdir firmware
      2. Then extract the firmware into it:
        laptop:~/Desktop/bcm43xx-fwcutter-006 chris$ ./bcm43xx-fwcutter -w firmware \
        /System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS/AppleAirPort2
        This should produce very similar output to the Linux step above. You must now get the contents of the firmware folder into /lib/firmware in your Yellow Dog Linux install.


      Using Linux
      1. Mount the MacOS X partition (/dev/hda3 on my laptop) somewhere handy (/mnt/macosx in my case), you'll need to be root to do this:
        [root@localhost ~]# mount /dev/hda3 /mnt/macosx
      2. If you're already in Linux, you can now run a single command to extract the firmware and put it into the final destination in Linux (/lib/firmware).
      3. In the bcm43xx-fwcutter-006 folder, execute the fwcutter application:
        [root@localhost bcm43xx-fwcutter-006]# ./bcm43xx-fwcutter -w /lib/firmware/ /mnt/macosx/System/Library/Extensions/AppleAirPort2.kext/Contents/MacOS/AppleAirPort2 [ENTER]
        ... this should generate output similar to:
             filename   :  AppleAirPort2
             version    :  3.90.34.0.p18 (405.1)
             MD5        :  85c71d658b650fd2ef546d1d81b113a0
             microcodes :  2 4 5
             pcms       :  4 5
        
           WARNING! This firmware doesn't include support for 802.11a cards.
           WARNING! Use this firmware only for 802.11b/g cards.
        
             microcode  :  2
             revision   :  0x0122
             patchlevel :  0x009a
             date       :  2005-08-15
             time       :  18:44:03
        
             microcode  :  4
             revision   :  0x0122
             patchlevel :  0x009a
             date       :  2005-08-15
             time       :  18:44:03
        
             microcode  :  5
             revision   :  0x0122
             patchlevel :  0x009a
             date       :  2005-08-15
             time       :  18:44:03
        
           extracting bcm43xx_microcode2.fw ...
           extracting bcm43xx_microcode4.fw ...
           extracting bcm43xx_microcode5.fw ...
           extracting bcm43xx_pcm4.fw ...
           extracting bcm43xx_pcm5.fw ...
           extracting bcm43xx_initval01.fw ...
           extracting bcm43xx_initval02.fw ...
           extracting bcm43xx_initval05.fw ...
           extracting bcm43xx_initval06.fw ...
        
      4. This should dump the firmware files in /lib/firmware. To confirm this, a directory listing should produce something like:
           [chris@localhost ~]$ ls -1 /lib/firmware/
           bcm43xx_initval01.fw
           bcm43xx_initval02.fw
           bcm43xx_initval05.fw
           bcm43xx_initval06.fw
           bcm43xx_microcode2.fw
           bcm43xx_microcode4.fw
           bcm43xx_microcode5.fw
           bcm43xx_pcm4.fw
           bcm43xx_pcm5.fw
        


  3. Configure your wireless card under Linux.
    1. From the command line launch system-config-network or from the graphical interface, launch YDL Menu --> Applications --> System Tools --> System Config --> Network.

    2. Add a new Wireless configuration, selecting the Broadcom wireless device. You may want to rename the device to "eth1" for simplicity.

    3. Activate it.

    4. You may verify that the device is up by launching a web browser and giving it a test run, or from a terminal run:
      /usr/sbin/ifconfig [ENTER]
      ... and look for information about device eth1:
      eth1      Link encap:Ethernet  HWaddr 00:03:93:F4:A1:B0
                inet addr:192.168.10.178  Bcast:192.168.10.255  Mask:255.255.255.0
                inet6 addr: fe80::203:93ff:fef4:a1b0/64 Scope:Link
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:68941 errors:0 dropped:0 overruns:0 frame:0
                TX packets:66047 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000
                RX bytes:40837726 (38.9 MiB)  TX bytes:14323985 (13.6 MiB)
                Interrupt:53
      
  4. You are on-line!
To learn more about wireless tools in Linux, visit this HOWTO.
This HOWTO was written by Christopher Murtagh and edited by Kai Staats, Terra Soft Solutions



 
          COPYRIGHT ® 1999-2008. TERRA SOFT SOLUTIONS, INC. ALL RIGHTS RESERVED.

SEARCH TSS

SEARCH LISTS

SEARCH HOWTOS