Port-vax archive

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

Re: VS3100M76 - current



Holm Tiffe wrote:

[..]


Since booting thakes that long wfrom a CD, I've decided to try Netbooting
again, but this isn't possible without some work.

There are netboot files provided for mop.
If you look deeper on this, you will see that those files are ELF format,
and at least my FreeBSD mopd from the ports isn't able to boot them.
I had to use mopcopy to build a mopfile from them, but unfortunately
a look to the sources brings up this:

mopcopy.c:

#ifndef NOELF
# if defined(__NetBSD__)
#  include <sys/exec_elf.h>
# else
#  define NOELF
# endif
# if !defined(EM_VAX)
#  define EM_VAX 75
# endif
#endif /* NOELF */

That means ELF is supported on NetBSD, on nothing other. I don't even try
to compile the needed support in.

I've hacked this a year before and I have a 32bit FreeBSD mopcopy that does
the job, but I don't have the sources anymore and my workstation is a 64bit
system now. (I've hacked in the netboot because I needed to add support
for the rtVAX SGEC)
So please guys, since I don't know how this would work out on other server
architectures, could you please provide an a.out mop file which will work
on NetBSD AND the other Architectures? The needed converter is build on
NetBSD anyways...

The next thing with that file is this:


netio.c from NetBSD VAX boot:

         * Get info for NFS boot: our IP address, our hostname,
         * server IP address, and our root path on the server.
         * There are two ways to do this:  The old, Sun way,
         * and the more modern, BOOTP way. (RFC951, RFC1048)
         */

#ifdef SUPPORT_BOOTP

        /* Get boot info using BOOTP way. (RFC951, RFC1048) */
        printf("Trying BOOTP\n");
        bootp(0);

        if (myip.s_addr) {
                printf("Using IP address: %s\n", inet_ntoa(myip));

                printf("myip: %s (%s)\n", hostname, inet_ntoa(myip));
        } else

#endif /* SUPPORT_BOOTP */
        {
#ifdef  SUPPORT_BOOTPARAMS
                /* Get boot info using RARP and Sun bootparams. */

                printf("Trying BOOTPARAMS\n");
                /* Get our IP address.  (rarp.c) */
                if (rarp_getipaddress(0) == -1)
                        return (errno);

                printf("boot: client IP address: %s\n", inet_ntoa(myip));

                /* Get our hostname, server IP address. */
                if (bp_whoami(0))
                        return (errno);

                printf("boot: client name: %s\n", hostname);

                /* Get the root pathname. */
                if (bp_getfile(0, "root", &rootip, rootpath))
                        return (errno);
#endif
        }
        printf("root addr=%s path=%s\n", inet_ntoa(rootip), rootpath);
        f->f_devdata = s;



someone decided that there is a modern way: "The old, Sun way,
         * and the more modern, BOOTP way. (RFC951, RFC1048)"

BOOTP is providing a root-path, but nobody inide "boot" is interested in
that root-path:

Trying BOOTP
Using IP address: 192.168.50.22
myip: vs3176 (192.168.50.22)
root addr=192.168.50.49 path=
nfs_open: must mount first.
open netbsd.gz: Device not configured
netbsd.gz: boot failed: Device not configured
> boot netbsd.old

wireshark says that my DNSMASQ from my Linksys Router is providing one:

"Boot file name: /tftpboot/netbsd-vax"

So why this is leaved unnused?
In libsa the bootfile is rad but the variable is unnused.

It is really not that easy to dig with an VAX and NetBSD if you not already
have a VAX with a running NetBSD. I've had setup a cross development tree 1
year before, but I have this todo again it seems...

Regards,

Holm


-- 
      Technik Service u. Handel Tiffe, www.tsht.de, Holm Tiffe, 
     Freiberger Straße 42, 09600 Oberschöna, USt-Id: DE253710583
  www.tsht.de, info%tsht.de@localhost, Fax +49 3731 74200, Mobil: 0172 8790 741



Home | Main Index | Thread Index | Old Index