On your own host machine, you'll need a free 9-pin serial port to connect to the Skiff board. This may or may not be an easy thing to do, depending on your hardware and software setup. Assuming you have Linux up and running, the command setserial can show you how the kernel thinks your serial ports are configured
In this example on my machine, /dev/ttyS0 and /dev/ttyS1 (COM1 and COM2 under DOS) have been detected. /dev/ttyS1 is my modem, and /dev/ttyS0 is the port I use to communicate with the board. Your configuration may or may not be as easy to get working. For example, the first computer I tried this on had both a serial mouse and a modem, which took ttyS0 and S1 on IRQ 4 and 3. Getting a third serial port working required paying attention to IRQ sharing and that sort of black magic. The good news is that this is well documented in the Linux Serial Howto, as well as in the setserial manpage.$ setserial -g /dev/ttyS* /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4 /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3 /dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4 /dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
Another possible complication is if you have 25-pin serial ports. In another bizarre twist of computer history, the old-school serial ports had 25 pins, 9 of which were actually used for anything. Some genius since figured out that he could do away with the other 16 pins, leading to the modern 9-pin port. Some computers still have the 25-pin ones, though. It's possible to convert that in some cases with a new connector between the physical port and the serial board or motherboard, but there are two types of connectors, and you need to use the right one. Suffice it to say that getting my setup to work involved re-soldering the connector, but I doubt that anyone else will have that much trouble.
The program that will be used to open the serial port under Linux is called minicom. It's intended to be used for communication with modems, so you need to do a few nonstandard things to use it on a raw serial port. The first thing to do is start minicom in setup mode:
This will bring up a configuration screen. You need to choose "Serial Port Setup", and change it to reflect the proper /dev/ttyS? device. The Bps/Par/Bits setting needs to be 38400 8N1, and both hardware and software flow control need to be turned off. Now save the configuration however you like, and close minicom. Now start minicom again with the -o option. The -o will prevent minicom from trying to initialize the Skiff board as if it were a modem. If you're ready for the moment of truth, flip the power switch. If the phase of the moon is right, you'll see the Skiff boot sequence. Go have a cup of coffee or a beer of your choice to celebrate.$ minicom -s
A better solution is Ethernet. The normal way to hook up the board is to use a standard Ethernet (Cat5 RJ-45) cable to connect to a hub. This is what you'll do in the Skiff lab. No other network setup will be necessary, as the boards will be distributed with the proper network settings already set up. (We will provide more information about the Ethernet connection when we have the Skiff Lab configuration debugged. You will need to connect your board to a specific hub port labeled with your board's hostname.)
In your home environment, it may not be that easy. If you have a hub, the physical connection will be the same as in the lab. If you don't, it's possible to connect the Ethernet card on the Skiff board directly to an Ethernet card on your host computer, but you need to use a "crossover" cable (analogous to the null-modem connection used for the serial connection). This obviously requires a free Ethernet card on your host computer as well.
Once the physical connection is made, you'll need to configure both the Skiff board and the host network. Doing so is beyond the scope of this document, but an excellent introduction to the topic can be found in the The Linux Network Administrators' Guide. It's outdated in a lot of ways (it covers the 1.x series kernels!), but much of the material covered is as good today as it was when it was written in 1996. In particular, the coverage of Ethernets and TCP/IP networks may be a great help if your knowledge of those things is less than adequate.
One thing that will be helpful is knowing how to configure the Skiff board network settings. When you get the board, it will be set up for the network environment of the Skiff lab. The Skiff bootloader feeds the kernel five parameters at boot time: the hostname, IP, netmask, gateway, and NFS server address the board should look for. (If you don't know what an NFS server is, don't worry, because that's only important if the board is to mount its root directory over NFS. We're not messing with that just yet.) You can examine and change these parameters by hitting the spacebar just after turning on the board. This will cause it to stop before loading the kernel and give you a prompt. At this prompt, the "show" command will show the currently saved settings. You can use
to change a variable, andset param value
to save your changes. The parameters of interest here are "ipaddr", "hostname", "gateway", "netmask", and "nfs_server_address".params save
An alternative to hardcoding network settings on the board is to use BOOTP. This is especially useful if you're already using a Linux dhcp server on your home network: dhcpd speaks BOOTP, so configuring your Skiff board is as simple as adding a record to your /etc/dhcpd.conf. We will provide sample configuration scripts if there is interest. See the Program 1 web page for details on how to derive the MAC address of your board.