This project is
dead!!!
The idea of Free Networks is not :-) -- Read
on!
Nowadays, we have nice and cheap Access Points running GNU/Linux. There
is the meshcube (64MB RAM, 32MB
flash, 400MHz) and the Linksys
WRT54G (16 MB, 4 MB flash, 125MHz) as well as the WRT54GS
(32MB RAM, 8 MB, 200MHz flash). These small and quiet 100€-Linux boxes
don't need much electricity (actually, they need a lot less than a PC
running the MobileMeshDisk). Therefore it makes much more sense to buy
one of these devices instead of running a standalone PC -- Okay, you'll
have to buy them first, but this will be much less than the electricity
bill for a standalone MobileMesh-PC in the first year.
Second thing is, that there is a good alternative to the MobileMesh
program itself -- it is called olsr.
So if you think about Mesh Networks,
you should have a look at it. It has a lot of advantages over
MobileMesh. One advantage is that OLSR is still actively developed,
whereas MobileMesh is unmaintained for several years now.
There are several Linux-packages for olsr available at http://olsr.org/index.cgi?action=download.
If your distribution is not among them, you'll need to compile it
yourself what should be easy if you use GNU/Linux anyway. There are
also some
olsr programs) for windows and Mac OS, though I don't know how well
these different programs interoperate with the Linux version from www.olsr.org.
If you need further advice and speak German, the possible best thing to
do is to ask at the mailinglist
of freifunk.net. If you do not speak German, you can also write me an email.
The old page follows:
This is supposed to work with almost
all wireless devices. However, due to lack in hardware I could only
successfully test it with USB-wlan-adapters with atmel chipset, which
are, however, quite
a few.
Please give me some feedback if
you could get it working with other devices as well.
As always: Use at your own risk.
MobileMeshDisk
Page last modified: 13 FEB 2004
About
Idea
Roadmap
Creating the MobileMeshDisk
Troubleshooting (if necessary)
Contact
Links
About
This is a small Linux distribution (at this early stage it is simply a
preconfigured fli4l to which I added
support for mobile mesh and USB wlan). It fits on a normal floppy
disk. By
booting from this floppy disk you can turn an old PC into a wireless
router. The floppy currently comes with:
- mobilemesh
for routing
- a small dhcp-server, so that non-mobilemesh PCs can also take
part in the mesh
network
- a ssh-server (to administrate the router over the network)
- support for several wireless (usb and pcmcia) as well as wired
devices (see the
file config/base.txt after you have unpacked the software)
- the MobileMeshDisk can be created using Windows as well as Linux
It would be easy to add other packages,(e.g.
like QoS for
traffic shaping) since MobileMeshDisk is based on the modular One-Disk-Router fli4l (version 2.1.5) It would also be easy
to extend this version to make it possible to create the router on
harddisk, CD or CompactFlash. Packages for fli4l for such a task are available.
Compared to existing "wireless" distributions (e.g. pebble or Elektra's MobileMesh CD distro)
MobileMeshDisk has the advantage that you will neither need nor will
you have to take care of a harddisk. However, it also has (still) some
disadvantages. At the moment the user will have to enter the module she
wants to use. So USB-hotplugging for instance does not work (yet), the
user will have to "say" which device the floppy disk will have to be
configured for. This is mainly because a floppy disk is somewhat
limited in terms of space. Therefore, only the modules the user has
"asked for" will be written to the floppy disk.
Idea
Take an old Computer (486 and upwards). If it does not already have
USB, then buy a PCI-USB-Adapter(10 $). Buy a Wlan-USB-Adapter
(30 $).
Buy a 5meter USB-Extension-Cable (5 $). Create the floppy disk and put
it into the old Computer. Put that Computer under your roof (or next to
some window), the
Wlan-USB-Adapter should be put in a weather-proof
plastik box on top of the roof. Make leaflets to ask your
neighbours to do the same. This way you can create a wireless network
in your town.
Roadmap
As I said earlier prior to creating the
disk you have to tell the config files which modules you want to
be included on the floppy. This is a big obstruction to "normal users",
who e.g. do simply not know if they have to take the usb-uhci or
usb-ohci module. However, I think this can be overcome more or less
easily. Consider the way the floppy disk is created: All files are
packed in "opt_tar.bz2", which is unpacked when the floppy disk boots.
All information, e.g. IP address, password, hostname etc. is stored in
a normal ASCII file called "rc.cfg". The idea is the following: We
create a floppy disk with an opt_tar.bz2 which simply includes
everything for an out-of-the box mobilemesh floppy (usb hotplugging,
ssh, dhcpd etc.). The image of this floppy disk can then be easily
distributed and written to other floppies. When the floppy disk boots
up, a small script asks the user for a password, IP address, netmask
etc. This is then written to rc.cfg to make the floppy unique.
Unfortunately, I have not much time the next 2 months (who has ;-). If
you can help to achieve this goal or have any other idea, then
please let me know.
Creating
the MobileMeshDisk
Download it here
(md5 files
are to check the files' integrity if you want).
Then unpack it
Under Linux:
tar xjvf mobilemeshdisk-0.1.tar.bz2
Under Windows:
Use WinRar or another
decrompression tool (For completely unpacking this archive the option
"Smart-Tar-CRLF-Conversion" should be switched
off) .
Format the floppy disk
There is going to be quite a bit of software on the floppy, hence we
will format the disk for 1680KB.
Under Linux:
type: "fdformat /dev/fd0u1680" on the command line
Under Windows:
You need to download one of these format tools:
ftp://ftp.tu-clausthal.de/pub/msdos/utils/dskutl/fdformat.zip
ftp://ftp.tu-clausthal.de/pub/msdos/utils/dskutl/hdcp20ad.zip
The floppy disk has to be formatted with 80 tracks, double-sided and 21
sectors/track
Costumize the MobileMeshDisk
Edit "config/base.txt":
- Change PASSWORD='mobilemesh' to something less obvious
- Change ETH_DRV_1='at76c503-rfmd' to the name of the module needed
by your wireless
device (or leave it this way if you have a usb-wlan-adapter with an atmel chip)
- Change IP_ETH_1_IPADDR='10.0.0.1' and
IP_ETH_1_NETMASK='255.255.255.0' (that is the IP address and the
network mask of your MobileMeshDisk router).
- Change MASQ_NETWORK='10.0.0.0/24' to fit IP_ETH_1_IPADDR and
IP_ETH_1_NETMASK.
E.g.:
- If you have IP_ETH_1_IPADDR='10.211.99.1' and
IP_ETH_1_NETMASK='255.255.255.0', then MASQ_NETWORK would be
'10.211.99.0/24'.
- If IP_ETH_1_IPADDR='10.211.99.1' and
IP_ETH_1_NETMASK='255.255.0.0', then MASQ_NETWORK would be
'10.211.0.0/16'
- This is important since the MobileMeshDisk router
will masquerade all non-mobilemesh PCs (these PCs got their IP
addressess from the router via dhcp).
Edit "config/dhcp.txt":
- Change DHCP_RANGE_1='10.0.0.2 10.0.0.128' to fit
IP_ETH_1_IPADDR='10.0.0.1' and IP_ETH_1_NETMASK='255.255.255.0 (this is
the range of IP addresses provided by the dhcp server for all
non-mobilemesh capable PCs, e.g. in this case there could be
simultaniously 126 (128-2) non-mobilemesh PCs)
If you have a PCMCIA-Card, Edit "config/pcmcia.txt":
- Set OPT_PCMCIA='no' to 'yes'
- If necessary adjust PCMCIA_PCIC='i82365' to 'tcic'
Edit "config/usb.txt":
- If you don't have a wireless USB-device change OPT_USB='yes' to
'no' (this will save space on the floppy, since the usb drivers
won't be copied to the floppy disk)
- If you have a wireless USB-device change
USB_LOWLEVEL='usb-ohci' to 'usb-ohci', 'usb-uhci' or 'uhci' (You
can simply try out one after another if you don't know which one fits
the hardware of your old PC)
Create the floppy
Under Linux:
sh mkfloppy.sh
Under Windows:
mkfloppy (you will have to start a DOS session and enter the command in
the DOS box, N.B. "DOS session in windows", by no means a real
old-fashioned DOS)
The Making of ssh-keys
If there has not been an error, take the disk and put it in your old PC
and start it. At booting time new ssh-keys will be created and
stored in /tmp/ssh/. Login to the old PC by entering your previously
chosen password at the login prompt (Don't worry, if the letters you
type for the password are not printed on screen. This is simply for
security reasons, someone else might look at your screen the moment you
type)
Copy these ssh-keys to the floppy disk (the disk is
mounted at /boot) by typing :
cp -R /tmp/ssh /boot
halt
PS: This an American keyboard layout (see here
for a picture of it)
PPS: It is very important to enter "halt" and shutdown the old PC
before removing the disk from the old PC. Otherwise the ssh-keys may
not have been completely written to the floppy disk
Then put the floppy disk in the newer PC again. Then copy the
ssh-keys, which are in the /boot/ssh directory (on your
old PC) to config/etc/ssh (on the PC where you originally created the
floppy).
Under Linux:
su
mount /dev/fd0u1680 -t vfat /floppy/
cp /floppy/ssh/* config/etc/ssh
umount /floppy
exit
Under Windows:
Simply use the Windows Explorer (if the directory config/etc/ssh does
not already exit, then create it).
Change
SSHD_CREATEHOSTKEYS='no' in config/sshd.txt (This way newer keys won't
be created any more
at boot time). Create the floppy again with "sh mkfloppy.sh" (Linux) or
"mkfloppy"
(Windows; in Windows you will have to format the disk again) as you
already did before. This time the newly generated keys
will be copied to floppy instead of the delievered default ssh-keys.
See here
if you want some background information (only in German)
Last Step: Let the world know
about it
Put that PC under your roof (or next to a window) and start
making leaflets to tell your
neighbours to do the same :-)
Troubleshooting
If you have problems let me
know. But
first try to solve the problem yourself, maybe one of the following
will help you:
- If there are any Problems editing the config files, have a look
in the excellent fli4l-dokumentation (the distro this all is based on).
The up-to-date documentation is only available in german
so far. For older English documentation, which still explains almost
everything go here.
- If your old PC can't boot from the floppy disk, make sure booting
from disks is enabled in the bios of your old PC (Press <Del> or
<F2> at startup to enter it). Make sure that floppy disk (often
referred to as "A:\") comes before the harddisk ("C:\") in the
preferred order of boot media
- If MobileMesh doesn't seem to work, make sure that it is running
(with "ps aux"). If you can't see mmrp in the right column of the list,
the it is not running. Try to start it manually with
debugging enabled "mmdiscover -i eth0 -d
/etc/mobilemesh/mmdiscover.debug" and "mmrp -d
/etc/mobilemesh/mmrp.debug", see what it says. Now use "cat
/var/log/messages" to examine
mobilemesh's behaviour.
- If mobilemesh complains about, that there is "no such device"
like eth0. Then use "ifconfig -a" and "iwconfig" to ensure that the
wireless device has been successfully recognized. If "eth0" does not
seem to be available (i.e. iwconfig does not report about it), check
with "lsmod" if the correct modules are
loaded. You should especially take care that the module you have
entered in either config/usb.txt (USB_LOWLEVEL='usb-ohci', 'usb-uhci'
or 'uhci' ) or config/pcmcia.txt (PCMCIA_PCIC='i82365' or 'tcic') shows
up, if you run "lsmod" on the old PC. If they are not, try to load them
by hand "insmod
<module-name>" (e.g. "insmod uhci" and have a look at the output.
If this gives an
error message try another option in
config/usb.txt or config/pcmcia.txt, e.g. if you had
USB_LOWLEVEL='uhci' in config/usb.txt then change it to
USB_LOWLEVEL='usb-ohci'. Create the floppy again and see if it works
now.
If you don't know what else to do, please write me an email!
Links
http://www.freenetworks.org -
International website for free networks
http://freifunk.net - Die Website
für freie Funknetze im deutschsprachigen Raum (erklärt auch die Idee)