I am getting to the serial console via a network to usb to serial relay using a derelict Raspberry Pi. I now see this:
EEPROM: Using RS232 A port. Selftest Completed. Sun Workstation, Model Sun-3/200 Series. ROM Rev 3.0, 16MB memory installed, Serial #13355. Ethernet address 8:0:20:0:4:B1, Host ID 1300342B. Testing 8 Megabytes of Memory ... Completed. Auto-boot in progress... EEPROM boot device...Boot: ie(0,0,0) Requesting Internet address for 8:0:20:0:4:B1The last message indicates that it is trying to get an IP number for itself using the ancient RARP protocol.
su dnf -y install rarpdThat took all of 10 seconds. This expects a file /etc/ethers with a simple format:
08:00:20:00:04:B1 192.168.0.30I also add this entry to /etc/hosts
192.168.0.30 sunnyAnd now I try the usual sort of things to start the service:
vi ethers root@trona:/etc# systemctl start rarpd root@trona:/etc# systemctl enable rarpd Created symlink '/etc/systemd/system/multi-user.target.wants/rarpd.service' → '/usr/lib/systemd/system/rarpd.service'.And I see:
ps -alx | grep rarp 1 0 185771 1 20 0 2560 1532 do_pol Ss ? 0:00 /usr/sbin/rarpd
systemctl stop firewalldI try running wireshark with the capture filter "rarp". This works! I see the Sun sending "who is" packets, and wireshark even associates them with the proper IP -- 192.168.0.30!!
There is a man page for rarpd, and it talks about the default behavior being not to respond if there is not a bootable image in the /tftpboot directory. I decide to run rarpd by hand and give it some options:
systemctl stop rarpd cd /usr/sbin ./rarpd -v -eI should also have given the -d switch to get it to stay at the terminal. However with the -e switch (telling it not to check for a bootable image) it works:
EEPROM boot device...Boot: ie(0,0,0) Requesting Internet address for 8:0:20:0:4:B1 Using IP Address 192.168.0.30 = C0A8001E tftp: time-out.And now it is on to tftp, trying to get some file. I have a strong hunch based on old memories, but I run wireshark with capture filter "port tftp" to see what I can learn. And I am right, it is trying to read a file with the name C0A8001E, which is the ip address in hex. So, let's give it one!
Fedora runs tftpd using the directory /var/lib/tftpboot. Let's see what happens if I do this:
cd /var/lib/tftpboot cp /etc/hosts C0A8001EAnd to check the obvious:
ps -alx | grep tftp 4 0 187297 1 20 0 2836 1788 do_sel Ss ? 0:00 /usr/sbin/in.tftpd -s /var/lib/tftpbootWireshark shows that requests keep being sent to read this file, but my tftp server is not responding.
systemctl restart tftp.serviceNope.
I am starting a new page just for tftp setup.
Note that the "right thing" to do is to have the proper file waiting in the tftp directory (but rarpd must know what directory that is). So you don't really need to run it with the -e switch, just have the file ready.
We start this via "systemctl start rarp.service" -- two files may be significant:
/etc/systemd/system/multi-user.target.wants/rarpd.service /usr/lib/systemd/system/rarpd.serviceBut why two? And which one? The word is that the stuff in /etc is for customizations and the stuff in /usr/lib is the base standard and should not be fooled with. The recommended process is to use "systemctl edit rarpd.service" and add a "snippet".
This would generate /etc/systemd/system/rarpd.service.d/override.conf
This is all well and good, but just what do I put in here to add the -e option to rarpd?
ExecStart= ExecStart=/usr/sbin/rarpd -e $OPTIONS $INTERFACEAfter some searching, I used systemctl edit and typed in the above. When I exit their crazy editor I see:
Successfully installed edited file '/etc/systemd/system/rarpd.service.d/override.conf'.I restart the service, press reset on the sun, but it does not work.
/usr/lib/systemd/system/rarpd.serviceI add the "-e" option as follows:
ExecStart=/usr/sbin/rarpd -e $OPTIONS $INTERFACEThen I do:
systemctl daemon-reload systemctl restart rarpd.serviceAnd it works! So much for this fancy (but useless) systemctl edit business.
Yet, I may have to revisit this someday when and if someone updates rarpd, but I have these notes to help me then.
Much more of this and I'll just go find rarpd source, build and run it myself. Then I can make it look in /var/lib or just make -e the default.
Tom's Computer Info / tom@mmto.org