Auto-setting Time

Every time Genera boots, it asks for the time. However, Genera clearly uses the RFC 868 Time Protocol. So, I thought I'd try to make my local Linux server (named HELIUM in our namespace) serve it up.

This is handled by the openbsd-inetd package in Ubuntu 12.04 LTS. This can be enabled by editing /etc/inetd.conf and adding two lines:

linux:~# fgrep time /etc/inetd.conf  
#daytime        stream  tcp nowait  root    internal
# Port 37 time protocol for Symbolics computers
time        stream  tcp nowait  root    internal  
time        dgram   udp wait    root    internal  

You can reload the inetd server but it's just as easy to do a shutdown -r now.

You can test that it's working with rdate which you can install on your Mac using brew install rdate:

Admiral-iMac:~$ rdate -u -p 192.168.1.98  
rdate: [192.168.1.98]    Mon Jul  4 12:58:58 2016  

Now, if I power-off autoboot Genera on the XL1201, it goes straight to the Genera banner without asking me for the time. Indeed, we can see that the XL1201 queried and received the time via UDP:

linux:~# tcpdump -n udp port 37  
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode  
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes  
13:14:43.682115 IP 192.168.1.92.1026 > 255.255.255.255.37: UDP, length 0  
13:14:43.684023 IP 192.168.1.98.37 > 192.168.1.92.1026: UDP, length 4  

This was done by sending a request packet to the broadcast address (255.255.255.255), so it didn't even know who would respond. The service isn't even explicitly shown in the HELIUM host:

Host HELIUM in Namespace Editor

Anyway, the good thing about this is that I now don't need to set the time every time Genera boots. This also means that my project to get Genera to fully auto-boot and be usable by someone with a console-less XL400 is one step closer.

Douglas Fields

Writing LISP and Haskell since 1990