Networking with IceBoards¶
IceBoards are booted and configured under the control of their ARM processors, which run a fairly stock Linux kernel (Texas Instruments’ fork of Linux 2.6.37). Boards are largely self-configuring; the major external requirement is the assignment of DHCP addresses.
DHCP Configuration¶
If you’re running Debian or Ubuntu, you can install a DHCP server as follows:
$ sudo apt-get install isc-dhcp-server
The server is configured via /etc/dhcp/dhcpd.conf. Configuration varies slightly with your dhcpd version; a bare-bones version for version 4.3.1 is as follows:
#
# Sample configuration file for ISC dhcpd for Debian
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
shared-network 200-250{
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.47;
}
pool {
range 192.168.1.200 192.168.1.250;
allow unknown-clients;
}
}
You will also likely have to modify /etc/defaults/isc-dhcp-server to instruct your server which Etheret ports to use.
Once your DHCP server is configured, you may restart it as follows:
$ sudo /etc/init.d/isc-dhcp-server restart
If your configuration is invalid, you should see an indication of failure. On success, DHCP activity will be logged to syslog. A successful DHCP transaction looks like the following:
Nov 17 13:57:52 fromme dhcpd: DHCPDISCOVER from 84:7e:40:6f:5c:72 via eth0
Nov 17 13:57:52 fromme dhcpd: DHCPOFFER on 192.168.1.3 to 84:7e:40:6f:5c:72 via eth0
Nov 17 13:57:52 fromme dhcpd: DHCPREQUEST for 192.168.1.3 (192.168.1.1) from 84:7e:40:6f:5c:72 via eth0
Nov 17 13:57:52 fromme dhcpd: DHCPACK on 192.168.1.3 to 84:7e:40:6f:5c:72 via eth0
Multicasting Configuration¶
Data is streamed from the IceBoards over a multicast socket. Unlike Virtex-4 deployments, this means any receiving PCs need to be configured to catch multicast data.
If you can see network lights blinking, but can’t receive any data via McGill’s parser program, try the following:
$ sudo route add -net 224.0.0.0 netmask 240.0.0.0 eth0
On OS X:
$ sudo route -nv add -net 224.0.0.0 -interface en0
Then, try:
$ /path/to/pydfmux/firmware/mcgill/x86_64/parser -t
If the parser receives data, it will dump it to the screen. (You will need to run the “route” command prior to launching the parser, or it will not begin receiving data.)
The “route” command does not persist. If you reboot (or if your network configuration changes), you will need to run it again. Tools like network-manager can usually be configured to include routes automatically.