This site is a work in progress that hosts the UnWiredAP floppy linux distribution project.

General UnWiredAP is the most basic form of a linux distro that houses what is needed to create a Wireless Access Point. It's created to be used for the SWN initiative. (Hail SWN!!)
The main objective of this project is to end up with one floppy that boots on any computer (over 386), configures its interfaces (ppp, nics, wlans, etc) and runs the hardware as a full blown wireless access point (or better...). All this in a single floppy!!! Yes, I know.. No, I'm not crazy. (Really!!)

The easiest way to do this is to use the wonderful hostap drivers from Jouni Malinen ( The problem is that these drivers only support Prism 2/2.5 chipset based cards (pcmcia or otherwise) and it doesn't seem to broaden the range of supported chipsets in the near future, since they are depended on its specific features. :(

Size does matter in this project, so it's very important to minimize the size of everything in the floppy, including of the kernel image. This is done by selecting only the most important features to put in the kernel and by using UPX (note: use version 1.11 to compress kernel images, it's the only one that works. Thanks floppyfw!). UPX is an executable compression tool that works for many os'es/platforms including linux (i386). It saved me 80k off the kernel gzipped image. I planned to use it on the executables that where put into initrd, but they didn't work(!!) If anyone has any success,mail me! Since there is no support for bunzip2 in the initrd unpacker in the kernel yet, I have to 'gzip -9' the initrd. For those who don't know, initrd is an image of a filesystem (ext2 in our case) that is loaded into memory as a virtual hard drive (ramdisk), that has all the libraries and executables to run our OS (linux). Modules are another think to consider. Due to size limitations, only the most needed modules are stored and used in this floppy. uClibc is used instead of the standard libc library that programs need to run, to minimize even more the size of initrd and still keep a very good functionality level.

Simplicity is another factor that is important in this project, so I use the KISS idea (Keep It Simple Stupid!). Any configuration files are stored in the floppy, not inside initrd.gz, where it's easy to change them. For now, there are only some very basic configuration scripts and files in the config folder:
  • startup: This script is run first and it loads and configures whatever modules are needed. You just put them in the floppy in the "modules" folder and use this script to put them in place and 'modprobe' them. Remember to gzip them to save space!! It then puts all the configuration files in their place, setup the network interfaces and start any daemon you want. You should edit this file to suit your needs.
  • shutdown: This script is run before turning off the computer. Use it to shutdown everything properly.
  • udhcpd.conf: This is a configuration file and is used by the udhcp daemon to enable dhcp support for the access point. I use the "startup" script to install it in place (/etc) and run the daemon.
  • pcmcia.conf: Here you can set parameters to pass to the pcmcia card services.
  • hostap_cs.conf/wlan-ng.conf: These files are used much like the "/etc/pcmcia/config" file that tells the card services which modules to load for what cards.
  • bird.conf/boa.conf/hostapd.conf: Daemon configuration files for bird a routing protocol daemon, boa a http daemon, hostapd a hostap driver daemon.

For now, there is only one floppy image that contain the following:

The disk image is a 1722k image. Almost all disk drives support the 1722K disk and since it provides more space, it's the preferred choice for now.

It boots up, loads the wanted modules, configures the interfaces to run in AP mode with packet forwarding enabled and starts the needed daemons.
The disk now has the pcmcia services enabled by default and setup to use the hostap drivers for the wireless cards. You can change that by editing the 'startup' file in the disk.
You can configure UnWiredAP as you want by changing the files in the config folder.
If you want to check out the contents of initrd.gz you'll have to copy it somewhere locally in your linux box and:

gunzip initrd.gz
mount initrd /mnt -t ext2 -o loop
cd /mnt

Minimum H/W specifications:

  • 486 (whatever) machine
  • a floppy (not even, if you put it on solid state disk)
  • Prism 2/2.5/3 wireless card (pcmcia, plx, pci)
  • 8 megs of memory
  • Good table manners (!)

Installing UnWiredAP You can download the latest version of UnWiredAP from here.
In order to put it on a floppy in Windows or DOS you'll need Hd-copy or a version of rawrite. (I'd suggest Hd-copy, because it can handle 1722K images). Use it to format and copy the image to the disk.
On linux:
  • fdformat /dev/fd0u1722
  • dd if=<imagefile> of=/dev/fd0u1722 bs=1k

You now have a disk with UnWiredAP and a collection of modules allready preinstalled:

  • hostap_cs, hostap_plx
  • prism2_cs, prism2_plx
  • ne, ne2k-pci
  • 8139too, 3c59x
  • bridge module
  • and more..

You should now copy any additional modules you want into the "modules" folder of your UnWiredAP floppy. Select the modules you need to use your hardware (like the ethernet card, serial ports, pcmcia services, etc). All the modules you might need that where compiled with this kernel (2.4.22) can be found here. Just download the latest version of kernel modules. As said before, a very good idea is to compress the modules before you copy them into the UnWiredAP floppy to save space. Use gzip -9 <module file> to do this in linux, and the Windows users can use this to do the same.

IMPORTANT NOTE: Windows NT/2000/XP seem unable to 'see' a 1722k disk eventhough the hardware has no problem to do so with other operating systems like linux, dos, Windows 9x/ME. If anyone has any solutions please drop me a mail.

Once the modules are in place, go in to the "config" folder in the floppy and look at every file there. Change them however you like to suit your needs. In every one, you can see some basic examples of what you might want to put in them, as comments. You should read the readme files and config scripts in the floppy for any further information.  (It Helps !!®)

Now you can boot!
Once you booted UnWiredAP, you  can set the root password from the console with the 'passwd' command and do this to save it into the floppy:

  • mount /dev/fd0u1722 /mnt (mount the floppy on /mnt directory)
  • cp /etc/shadow /mnt/config/ (copy the file your root password is, into the config directory of the floppy)

Things To Do
  • Since UnWiredAP now has a web server, I'll try to make a mini web interface with it. Any help is, as always, welcome!
  • Since it's not yet clear if the security policy implementation of SWN will include IPsec and in what level, (Will we have IPsec security from AP router to AP router or in every computer that connects to each other?) I haven't even began to evaluate if an IPsec implementation (like FreeS/WAN) can or should be included.
  • I'm thinking of using some of the functionality of the NoCatAuth security system to validate/control roaming users and their access to the SWN network. I'll have to look more into this one...
  • Listen to your recomendations..
  • Contact Please feel free to contribute to this project with ideas, pointers, bugfixes, ridiculously large sums of money(!), etc. Logo

    UnWiredAP is released under the terms
    of the GNU Public License.
    See Eric Raymond's page (
    for more details on Open Source licensing.
    UnWiredAP is currently maintained
    by Stergios Tourtouropoulos.

    LastUpdate: September 1 2003