Seattle Wireless Airport Linux

What is it?

AirportLinux is a linux distribution designed for Seattle Wireless Point to Point links.

AirportLinux turns your AppleAirport or OrinocoRg1000 into a small but capable router that forwards packet from wired ethernet to 802.11b iBSS wireless link.

It is designed specifically for use in CxNode and BxNode configurations where you already have a unix based router in place. Additional requirements to your router include TFTP, NFS, and DHCP.

This project is maintained by MattWestervelt.

Download

Download AirportLinux-0.01 Now!

Newer kernel and root filesystem by JustinHuff

How do I install it?

==================================================================

Server stuff:

==================================================================


stuff

------------------------------------------------------------------

TFTP Setup:

------------------------------------------------------------------


mkdir /tftpboot/

mv ./server/vmlinubz.nbi /tftpboot/


You probably already have a commented out tftp config in inetd.conf

if not, put this there.


-- /etc/inetd.conf --

+ tftp dgram udp wait root /usr/sbin/tcpd in.tftpd



------------------------------------------------------------------

NFS Setup:

------------------------------------------------------------------


mkdir /remote/

mv ./airport/ /remote/



-- /etc/exports --

+ /remote/airport rg1k(ro)


------------------------------------------------------------------

DHCP Setup:

------------------------------------------------------------------

# for isc-dhcp 1.0 - 2.9ish:


-- dhcpd.conf --


        host {

                hardware ethernet 00:60:1D:1F:C5:15;

                filename "/tftpboot/vmlinubz.nbi";

                option host-name "rg1k";

                option option-130 "eth0";

                option root-path "/remote/airport";


        }



(note: under openbsd, and I'm sure many others, you must give a name for the host; 'host rg1k')


-- /dhcpd.conf --




# for isc-dhcpd 3.0 and higher:

# The syntax of option-130 changed; you must do something like the following:


--dhcpd.conf---

# this defines what option-130 is

option default_interface code 130 = text;


#



        host rg1k {

                hardware ethernet 00:60:1D:1F:C5:15;

                filename "/tftpboot/vmlinubz.nbi";

                option host-name "rg1k";

                option default_interface "eth0";

                option root-path "/remote/airport";

        }


-- /dhcpd.conf --


==================================================================

Airport stuff:

==================================================================


OK. here's the fun part.


You need to set up your airport to look for an image when it boots

up. To do this, you have to put etherboot firmware on your airport.


Use the java configurator to do upload ./etherboot/etherboot-airport.bin


   You MUST choose the "upload firmware with default settings"



------------------------------------------------------------------

Modify these files on your server. Your airport is all read-only

------------------------------------------------------------------


/etc/passwd - put a crypted password in this or anyone can log into your airport as root.


/etc/ESSID - contains ESSID of your Ad-Hoc network


/etc/hostname.eth1 - contains IP and Netmask of your link

TODO

  1. make better docs, better sample configs
  2. remove _all_ libc5 bits done, see updated version above

  3. 2.4 kernel done, see updated version above

  4. replace wvlan_nocs w/ orinoco_cs driver done, see updated version above

  5. upgrade wireless_tools to a sane version done, see updated version above

  6. signal strength (perhaps w/LED?)
  7. easy-config / installation script
  8. Easy channel config

dmesg

# dmesg

Linux version 2.2.16 (till@tillpc.slac.stanford.edu) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #3 Mon Nov 5 15:59:37 PST 2001

Calibrating delay loop... 16.59 BogoMIPS

Memory: 3064k/4480k available (748k kernel code, 412k reserved, 220k data, 36k init)

Checking if this processor honours the WP bit even in supervisor mode... Ok.

Dentry hash table entries: 1024 (order 1, 8k)

Buffer cache hash table entriess: 2048 (order 1, 8k)

Page cache hash table entries: 1024 (order 0, 4k)

CPU: AMD 02/0a stepping 04

Checking 'hlt' instruction... OK.

POSIX conformance testing by UNIFIX

Linux NET4.0 for Linux 2.2

Based upon Swansea University Computer Society NET3.039

NET4: Unix domain sockets 1.0 for Linux NET4.0.

NET4: Linux TCP/IP 1.0 for NET4.0

IP Protocols: ICMP, UDP, TCP

TCP: Hash tables configured (ehash 4096 bhash 4096)

Starting kswapd v 1.5

Serial driver version 4.27 with no serial options enabled

ttyS00 at 0x03f8 (irq = 4) is a 16550A

Registering PPPoE driver

RAM disk driver initialized: 16 RAM disks of 4096K size

PPP: version 2.3.7 (demand dialling)

TCP compression code copyright 1989 Regents of the University of California

PPP line discipline registered.

eth0: PCnet-ISA II at 0x300, 00 60 1d 1f c5 14, probed IRQ 10, no DMA needed.

lance.c:v1.15ac 1999/11/13 dplatt@3do.com, becker@cesdis.gsfc.nasa.gov, T. Straumann 2001

wvlan: WaveLAN/IEEE PCMCIA driver v1.0.6

wvlan: (c) Andreas Neuhaus <andy@fasta.fh-dortmund.de>

wvlan: de-PCMCIA by Till Straumann, 2001

wvlan: MAC address on eth1 is 00 00 00 00 00 00

wvlan: Found firmware 0x400003 (64.3) - Firmware capabilities : 0-0-0-0-0

major/minor version number seems too big - probably no card detected!

wvlan: Initialization failed (rc: fe)!

wvlan: trying to hack CIS

wvlan: MAC address on eth1 is 00 02 2d 04 63 d5

wvlan: Found firmware 0x8000A (8.10) - Firmware capabilities : 0-1-1-1-1

wvlan: Valid channels: 1 2 3 4 5 6 7 8 9 10 11

#

No modem support

The firmware that's part of the distro didn't support loading with a missing modem. I've hacked up a copy of the firmware to stop hanging on boot if the modem on a rg1000 has been removed.

You can get it here:

http://www.vilos.com/rg1000/linux

Please let me know if it works for you. This should be rolled into the distro, should it prove useful. :)

-EricJohanson

references

Most of the code for this comes from Till Straumann. He's still alive, and just posted some updates:

http://www.slac.stanford.edu/~strauman/pers/airport/airport.html


Has anyone combined AirportLinux with HostAP or HermesAP to create a linux based AP? My interest is to make an active repeater with my current hardware. I'm sure this must be possible with just an AP with a single wlan card (be it with some lowered performance) and not require dual WAP11's or other AP's.


I just discover another project very close of yours in Europe (Belgium), his name is Bubble http://bulles.no-ip.org/bubble/BubbleHome


I'm interested in making my Airport Graphite either a SIP Media Gateway and/or an Answering Machine and/or a Fax/Email gateway. Looks like it's possible using asterix/vgetty/sendmail (since the modem hardware appears to support Voice), not sure if anyone has similar thoughts, or if there's enough memory on the AirPort to support this.

I tried replacing the WLAN card with a ATA flash card (to add a swap partition), but etherboot stops working. Has anyone gotten any luck with this?


==

AirportLinux (last edited 2009-02-24 19:31:33 by c-71-236-241-142)