Bonjour Raspberry Pi

In preparation for some robotics I've dug out my Raspberry Pi 2 B and I'm reacquainting myself with it. Tonight's goal: Boot up an old Raspbian Squeeze SD card and get the Pi to identify on the LAN with a domain-name -- rather than having to learn it's IP address -- using avahi (AKA Bonjour or zero-conf mDNS networking).


I went with the Squeeze image I have from 2015 because it was already installed -- to install Jesse past first-boot I'd have to hook up a TV/keyboard/mouse and my home lab is drk and cold tonight.

I had to do just a couple of things

  • Install Avahi-Daemon and enable it on boot
  • Tell it to ignore the Apple gear in my house
  • Reset the hostname on my image to something less generic than raspberrypi since there could be more than one at the Huon Robotics Lab.

Intall Avahi-Daemon

$ sudo apt-get update #it's been two years, so the repo DB is out of date
$ sudo apt-get install avahi-daemon

Tell Avahi to ignore the Apples

Edit /etc/default/avahi-daemon and set AVAHI_DAEMON_DETECT_LOCAL=0

Enable avahi-daemon on boot

I'm unsure if this is enabled after you install it. In Raspbian/Debian the daemons are enabled Unix System V "runlevels" style, using links to rc-files. These can be managed in a friendly way with a tool called sysv-rc-conf. This gives you a text-mode screen with a list of daemons and the runlevels they are enabled for.

$ sudo apt-get install sysv-conf-tool
$ sudo sysv-conf-tool

Make sure avahi-daemon is enabled (has X's) for run-levels 3, 4 and 5 (the multi-user/network run-levels).

Set hostname

I went with "squeeze-pi" because I have no imagination.

Edit /etc/hostname and change raspberrypi to squeeze-pi

Edit /etc/hosts and add squeeze-pi to the list of names for 127.0.0.1 -- I still want the old name to resolve.

reboot

I am now able to SSH to pi@squeeze-pi.local on the LAN, no need to figure out the IP address of the Pi.