The upstream source assumes you will use a traditional hard-wired serial port, but those are getting rare. Rather than refactor the code, I've just made the Debian package always open the device /dev/REG. Associated with this, the package delivers a udev rules file that creates a /dev/REG symlink to /dev/ttyS0. If you need some other device linked, creating an appropriate udev rule is likely the best way to do that. The 'port' field in the REG line of the eggrc file will be ignored, so just leave it set to '0'. - - - - - The systemd service file used to invoke the daemon hard-codes virtual terminal 8 as the place to run the eggsh program. That means you can use Alt-F8 on your system's console to go see what the program is doing. Note that we're assuming the machine running this program is not running X. If it is, you may need to tweak the service file to pick some other virtual terminal. - - - - - If the EGG computer is behind a firewall, it must be programmed to allow UDP packets on port 2510 outgoing packet and UDP port 1105 for an incoming connection. This allows the bidirectional communication required for the data to be transmitted. What happens is that your program sends an "awake" packet when it has unsent data. The server in Princeton responds with a "data request" packet, and then the EGG program will send the data.