Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Mopd which works with ELF and a.out in Linux and can netboot ULTRIX



On 2020-10-31 11:29 a.m., Maciej W. Rozycki wrote:
  For the record: some 20 years ago I was in a need for a usable `mopd'
daemon under Linux, so I grabbed whatever sources were available, cleaned
some stuff up, added proper packet socket level (data link layer level)
multicast support (no need for allmulti or promiscuous operation), added
FDDI support, i.e. SNAP frame essentially (so that I could boot my
DECstations over DEFZA and DEFTA interfaces, which do support it), and
finally added ELF support so that I didn't have to go through hoops to
boot ELF images.

  I continue using this stuff to this day (most recently earlier this
month), although there are a couple shortcomings, most notably if an
interface `mopd' listens on goes down then the daemon dies and has to be
restarted (I guess a socket error isn't handled correctly; proper event
handling would have to be added for interfaces going down and up, so that
multicast group membership is correctly maintained over the interfaces
listened on, which is all by default).

  Regrettably I was unable to find any package maintainer or proper
upstream sources, so my patches were never submitted anywhere, but I
packaged them into the RPM format (one of the two major Linux package
formats) in the source and a couple of binary forms and published on my
FTP site, in addition to loose patches.  This stuff is still online, so if
anyone is interested, please feel free to have a look at:

<ftp://ftp.linux-mips.org/pub/linux/mips/people/macro/mopd/>

  I'll be happy to have this stuff upstreamed too even now after those 20
years if there's still something missing from whatever `mopd' sources are
considered the reference these days.

   Maciej

Thank you for sharing your version of mopd. I've converted the patches into git commits and put the result at https://github.com/dreamlayers/netbsd-mopd/tree/mwr. In the last commit I do what's necessary to make it build on Ubuntu 20.10, and fix the obvious warnings.

With it I can mopcopy
https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.1/vax/installation/netboot/boot
and get it that to boot from mop format. Directly attempting to boot it in ELF format via mopd falsely assumes load address is 007f0000 and fails. Changing that to zero via a "p.p[0].paddr = 0" in GetELFFileInfo() makes it work. I didn't investigate what's going on there and what's the proper fix.

The ELF support there is totally different from NetBSD mopd, using libelf. Both NetBSD (in the dreamlayers branch) and this mwr branch start with the same mopd-2.5.3.tar.gz code, with only differences in version control IDs. But they diverge, handling some of the same issues but separately.

There definitely is some code there which would be useful for NetBSD. I'm not saying I'm going to do that though. I need to be doing what I love with my free time. Making little changes to mopd which already works to my satisfaction probably won't be something I love, and can easily turn into a sense of obligation and/or desire to please others.

Boris


Home | Main Index | Thread Index | Old Index