client’s first configuration

to boot a client via PXE, activate by default the PXE boot:

  • boot it (ethernet plugged with PoE)
  • s during the memory checkup
  • activate the PXE boot
  • let reboot it
Posted in testbed | Leave a comment

voyage debian installation

For the first node to install, let boot it directly after having copied the new debian voyage to the compact flash (requires a CF reader)

  • download the voyage-current, tar -xjvf *****.bz2
  • ./usr/local/sbin/voyage.update
  • configure correctly the partitions, alix target, boot, etc.
  • plug the new CF in the alix node and let reboot it

the instructions: getting_voyage [Voyage Linux]

Posted in testbed | Leave a comment

WMNA 2100 version 2

Unfortunately, the USB NIC we have are the version 2: they do not have the atheros chipset anymore.

The unique (current) solution:

  • apt-get install ndsiwrapper-utils
  • download the windows drivers on the netgear website
  • wine driver to install them (and copy the driver directory present in drive_c/***)
  • ndiswrapper -i driver.inf
  • modprobe ndiswraper
  • that’s all

BUT:

  • it does not support the 5Ghz band (grrr..)
  • I will try to find a way to solve this issue …

To install the wl driver:

  • ln -s /usr/src/linux-headers-2.6.30-voyage/ /lib/modules/2.6.30-voyage/build
  • wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_32-v5_100_82_38.tar.gz (hybrid-portsrc_x86_32-v5_100_82_38.tar)
  • tar -xzvf arch.tar.gz
  • make
  • cp wl.ko /lib/modules/2.6.30-voyage/kernel/net/wireless/
  • rmmod bt43
  • rmmod ssb
  • echo “blacklist ssb” >> /etc/modprobe.d/blacklist.conf
  • echo “blacklist b43″ >> /etc/modprobe.d/blacklist.conf

-> it still doesn’t work….

Posted in admin, client, testbed | Tagged , , , | Leave a comment

Ad-Hoc mode in IEEE 802.11a

By default, the NIC are set-up with US regulatory domain. Thus ad-hoc mode is unavailable (take a look on dmesg).

What to do:

  • apt-get install pkg-config git-core libnl-dev libgcrypt11-dev
  • git clone  git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/crda.git
  • cd crda; make; make install
  • after having installed the correct reg file: git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git
  • You now have a new file  /etc/udev/rules.d/XXXregulatory.rules, containing:
    • KERNEL==”regulatory*”, ACTION==”change”, SUBSYSTEM==”platform”, RUN+=”/sbin/crda”

The interested reader should take a look on wireless.kernel.org

You should now be able to change the reg domain:

  • iw reg set FR / NO, etc.
  • and iw phy0 info should let you know that IBSS (ad hoc mode) is available for some channels in the 5GHz band
Posted in admin, client, testbed | Tagged , , , | Leave a comment

Testbed installation

This could be quite tricky to maintain identical nodes (same packages, same environment). Hopefully, we have all the tools dedicated to clusters which can do most of the job.

After having hesitated longly, we chose to use the debian voyage with the following automatic procedure:

  • PXE boot: a symbolic link in the pxelinux.cf either forces to update the OS or to boot the local compact flash
  • I used the systemimager procedure to bootstrap the node but:
    • the install failed (grub fails, and much more details are boring …)
  • thus, I rewrote almost from scratch the systemimager script:
    • sfdisk is your friend (be careful, you could have to force the CF type since the kernel does not automatically detect the correct characteristics)
    • first parition = the OS
    • second partition = temporary files we will download from our server via scp (you just have to get a private RSA key to login without problems…)
    • dd with the whole CF, using only the first X bytes (the MBR, partition table, etc) but without the second primary partition
    • you remove via ssh the script in pxelinux.cfg to force a local boot for the next time
    • and .. that’s all, you just have to reboot: no problem with grub, etc. since you did a dd with all the stuff!

This method works pretty well: you just have to change pxelinux.cfg (ln -s C*** XXX) to force a re-installation the next time the node reboots..

Obviously some tricks are required and require much time :-)

  • conversion of IP address in hexa to have uniqueness
  • uniqueness of image filenames
  • creation of the script to update the image on the server and to maintain different images
  • the correct sizes for the dd (or you will erase everything…)
  • deactivating the bad modules, finding the reasons for a crash..
  • chrooting for some details, etc.
  • and debuging a node with minicom is quite tricky since to reboot it requires much time!
Posted in IS, testbed | Tagged , , , | Leave a comment

Architecture

We chose a relatively simple architecture:

  • we have one NFS/DHCP/PXE/Rsync/etc server
  • it is also a router/firewall:
    • the mesh network is protected from outside with very restrictive rules
    • but it can have a public access
    • the shorewall scripts are carefully configured
  • all the mesh nodes are connected in Gigabit Ethernet to the firewall/server so that it can retrieve an updated image, mount NFS directories for a management purpore
Posted in IS, testbed | Tagged , , , , | Leave a comment

Our order arrived!

Our provider finally delivered the server and 10 of our mesh nodes.

We will be able to start to set up the testbed!

Posted in testbed | Tagged , , | Leave a comment

Mesh nodes

We hesitated for a long time between:

  1. one classical mini-PC: + no cross-compilation is required + easy to manage , -but more expensive, prone to failure – not in a small form factor
  2. embedded appliances: + PoE + very small + adapted – cross-compilation – less extensible

Finally, we focused on the PC engine hardware (Alix3d2):

  1. it supports Linux
  2. 2 mini-PCI slots
  3. compact flash
  4. 1 Ethernet NIC
  5. USB for wireless dongles
  6. passive PoE
  7. AMD Geode LX800 (5000GHz)
Posted in testbed | Tagged , , | Leave a comment

Linux and IEEE 802.11

This is quite tricky to verify what a NIC is supported by Linux and with which feature.

http://wireless.kernel.org/en/users/Drivers references all the drivers, and what they implement.

We took care to:

  • suport of the mesh mode
  • dual band: IEEE 802.11 a/b/g
  • we should only use old NIC (they are well known and often the bugs have been already solved)

In particular:

  1. AR9220 chipset which supports the IEEE 802.11 abg (ath9k driver, http://wireless.kernel.org/en/users/Drivers/ath9k)
  2. AR9170 chipset for the usb NIC
Posted in testbed | Tagged , , | Leave a comment

Linux and mesh routers

We have the following choices:

  1. Debian Voyage is (http://linux.voyage.hk) allows to execute a Linux on a small mesh router. It supports PC Engines ALIX/WRAP, Soekris 45xx/48xx;
  2. Openwrt (http://openwrt.org) could be quite interesting since it can be executed on very small mesh routers (but these ones have only a very limited number of NIC currently);
  3. Linux Embedded Appliance Firewall (customization by packages, but designed initially for old PC);

I guess Voyage or openwrt would be better since they are the most flexible and permit to change a lot of stuff.

Posted in testbed | Tagged , , | Leave a comment