Establishing a Mesh Portal: Difference between revisions
Jump to navigation
Jump to search
(A few updates) |
(more updates) |
||
Line 3: | Line 3: | ||
==Requirements== |
==Requirements== |
||
* http://www.cozybit.com/projects/mpp-utils/mpp-utils.tar.gz |
|||
* A USB ethernet adapter |
* A USB ethernet adapter |
||
* One OLPC laptop (XO) |
* One OLPC laptop (XO) |
||
Line 10: | Line 9: | ||
* Plug the USB ethernet adapter into the XO |
* Plug the USB ethernet adapter into the XO |
||
⚫ | |||
* Un-gzip and un-tar that somewhere on your mesh portal machine |
|||
* in masquerade.sh from the mpp-utils, change EXTIF to your USB wired interface. If the USB ethernet adapter is plugged in at at boot, this will usually be "eth0". |
|||
* In masquerade.sh, make the following changes (shown here in patch-style form): |
|||
⚫ | |||
# This line results in iptables: Unknown error 4294967295 |
|||
- #$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT |
|||
+ $IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT |
|||
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -j ACCEPT |
|||
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT |
|||
- $IPTABLES -A FORWARD -j LOG |
|||
+ #$IPTABLES -A FORWARD -j LOG |
|||
⚫ | |||
⚫ | |||
<pre> |
<pre> |
||
chkconfig --level 2345 NetworkManager stop |
chkconfig --level 2345 NetworkManager stop |
||
chkconfig --level 2345 network stop |
|||
chkconfig --level 2345 dhcdbd stop |
chkconfig --level 2345 dhcdbd stop |
||
</pre> |
</pre> |
||
Line 50: | Line 32: | ||
id:3:initdefault: |
id:3:initdefault: |
||
</pre> |
</pre> |
||
⚫ | |||
* 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: |
* 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: |
||
Line 57: | Line 37: | ||
<pre> |
<pre> |
||
DEVICE=eth0 |
DEVICE=eth0 |
||
ONBOOT= |
ONBOOT=yes |
||
BOOTPROTO=dhcp |
BOOTPROTO=dhcp |
||
</pre> |
</pre> |
||
Line 63: | Line 43: | ||
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. |
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: |
|||
* Start the wired interface |
|||
<pre>ifup eth0</pre> |
|||
⚫ | |||
# 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 |
* Install the DHCP daemon |
||
Line 78: | Line 70: | ||
<pre> |
<pre> |
||
# Command line options here |
# Command line options here |
||
DHCPDARGS=msh0 |
DHCPDARGS="msh0" |
||
</pre> |
</pre> |
||
Line 84: | Line 76: | ||
<pre> |
<pre> |
||
subnet |
subnet 172.18.16.0 netmask 255.255.240.0 { |
||
⚫ | |||
range 10.0.0.5 10.0.0.254; |
|||
⚫ | |||
⚫ | |||
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; |
|||
⚫ | |||
⚫ | |||
⚫ | |||
option domain-name-servers x.x.x.x, x.x.x.x; |
|||
} |
} |
||
</pre> |
</pre> |
||
Line 100: | Line 92: | ||
</pre> |
</pre> |
||
⚫ | |||
* Configure the mesh interface |
|||
<pre>iwconfig msh0 mode ad-hoc channel 11 essid "olpc-mesh"</pre> |
|||
* Assign the address to the mesh interface |
|||
<pre>ifconfig msh0 10.0.0.1 up</pre> |
|||
* run the mpp.py script |
|||
<pre>python mpp.py</pre> |
|||
and it should all work |
and it should all work |
Revision as of 21:47, 13 April 2007
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: