Establishing a Mesh Portal

From OLPC
Revision as of 17:47, 13 April 2007 by 18.85.46.120 (talk) (more updates)
Jump to: navigation, search

It's not entirely automatic quite yet; we'll get a more automatic solution in place soon.

Requirements

  • A USB ethernet adapter
  • One OLPC laptop (XO)

What to do

  • Plug the USB ethernet adapter into the XO
  • Stop NetworkManager and dhcdbd scripts
chkconfig --level 2345 NetworkManager stop
chkconfig --level 2345 dhcdbd stop
  • Set your init level to '3'; stopping Sugar and X from starting again.
nano /etc/inittab

find the line with:

id:5:initdefault:

and change the '5' to a '3' so it looks like this instead:

id:3:initdefault:
  • Create an ifcfg file for your USB wired interface. For example, if your wired interface is eth0, create /etc/sysconfig/network-scripts/ifcfg-eth0, which should contain:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

This file will already exist for 'eth0', but if your USB wired interface is _not_ 'eth0', you need to create this file for whatever interface name your wired USB device is.

  • Create an ifcfg file for the mesh interface "msh0". Edit /etc/sysconfig/network-scripts/ifcfg-msh0 to look like the following:
#  Marvell mesh network module
DEVICE=msh0
MODE=ad-hoc
CHANNEL=1
ESSID="olpc-mesh-1"
IPADDR=172.18.16.1
NETMASK=255.255.240.0
NETWORK=172.18.16.0
BROADCAST=172.18.31.255
ONBOOT=yes
  • Install the DHCP daemon
yum -y install dhcp

You may have to try this command twice; yum sometimes runs out of memory doing dependency solving, and terminates before actually installing the RPM.

  • Configure DHCP to serve on the mesh interface. Edit /etc/sysconfig/dhcpd so it looks like this:
# Command line options here
DHCPDARGS="msh0"
  • Set up DHCP to provide leases on the mesh interface. Edit /etc/dhcpd.conf to look like the following. For the "option domain-name-servers", use the domain name servers that your USB Ethernet device returned via DHCP, which should be found in /etc/resolv.conf. Don't leave "option domain-name-servers with the "x.x.x.x" values. If you only have one DNS server, omit the second value from at line.
subnet 172.18.16.0 netmask 255.255.240.0 {
	option routers			172.18.16.1;
	option subnet-mask		255.255.240.0;
	option broadcast-address	172.18.31.255;
	range                           172.18.16.2 172.18.31.254;
	option domain-name-servers	x.x.x.x, x.x.x.x;
	default-lease-time	600;
	max-lease-time 		1800;
}
  • Set DHCP to run on startup
chkconfig --level 345 dhcpd on
  • reboot

and it should all work

Further Reading

More information is available on these topics: