I have a laptop (Ubuntu), two Pi (Raspbian and Arch) and a Netgear FS108 network switch. I can make any of the computers communicate via WiFi, but I want them to communicate via the switch (wired). I've been told that I need to assign IP addresses, but I don't know how to go about it. What should I do?
The simple approach is to let all hosts attached to your switch generate link-local addresses IPv4. They are in the 169.254/16 block. OS X and Windows hosts will do this by default in absence of a DHCP server.
On Linux, some distributions don't enable this functionality by default so you need to set it up by hand. It is known as Zero Configuration Networking. I thought Ubuntu came with Avahi already installed, but perhaps it's not running?
# install avahi
sudo apt-get install avahi-daemon
# set up a low-priority route
route add default dev eth0 metric 99
route add -net 169.254.0.0 netmask 255.255.0.0 dev eth0 metric 99
# run the auto-ip daemon
/usr/sbin/avahi-autoipd --daemonize --syslog --wait eth0
To check what hosts are present, from Linux you can do a broadcast ping:
ping -b 169.254.255.255