Port-hp300 archive

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

RE: Difficulty with netbooting - le0: lost carrier when bringing down the netbsd kernel



So...success!

I finally got a chance to get back to this.  Thanks for everyone to pitched in with direction, ideas and commentary.  It was all very helpful and enlightening.

The big hangups were getting bootptap right and properly configuring nfs.

For anyone who might want to follow in my footsteps, here's my process.  I used a raspberry pi as a boot server, but any system where the right versions of rbootd, biitpd and nfs are available should do the trick.

I use screen to manage running the different services when in debug mode.  This allows me to get a much better idea what's going on (and more importantly what's broken).

First steps are to gather the ip information for your network.  Specifically:

netmask,
gateway, 
boot server ip address
intended hp client ip address
the MAC address for the hp

Be aware that I haven't given any thought about how this setup might interact with DNS or DHCP, so if your network breaks, you get to keep both pieces.

Next: Download NetBSD and unpack the sets into a directory.  I used /var/netboot/hp300 so the following instructions will use that directory.  Adjust as necessary.  In the end, this directory should have these directories:

root
usr
home
swap

The last two you will need to create manually.

I also copied the NetBSD release directory into /var/netboot/NetBSD-release/

Copy the kernels from /var/netboot/NetBSD-release/binary/kernel to /var/netboot/hp300/root

Create a swap file by running this within the swap directoy:
dd if=/dev/zero of=hp300.swap bs=4k count=4k

Install and configure rbootd, bootp and an nfs server capable of doing nfs v2.  Apparently, nfs v4 will not work and will interfere with the netbooting service, so you will need to shut it off.

Fortunately, all the default packages of these services available for the current version of raspberry pi OS work for this task.

Next: to configure services.

1) rbootd:

rbootd passes the bootstrapper to the HP.  Install/compile the software and configure it.

a) Copy /var/netboot/NetBSD-release/installation/SYS_UBOOT to /var/lib/rbootd/SYS_UBOOT, creating any directories necessary.
b) Configure etc/rbootd.conf, using the appropriate network information gathered above.   This is mine; 

# /etc/rbootd.conf: provides machines with remote boot loaders
#                   see rbootd(8) for further information:
#
#
# Format:
# ethernet address       bootfile

08:00:09:00:b6:fb         SYS_UBOOT

2) bootpd.
After the bootstrapper has been pulled to the HP and is running, it queries bootpd for information about the network, so it can pull down the NetBSD kernel.  To configure bootpd, edit /etc/bootptab.

ha is the MAC address (without colons)
ip is the intended IP address of the new machine
sm is the netmask
sa is the IP address of the boot server
rp is the directory location of the kernel
pf if the name of the kernel file to bring down

Change the ha to be the MAC address of your HP, lp to be the HP's ip address, sa to be the boot server (in my case, a pi), and sm & gw should be the netmask & gateway for your network.  Put the netbsd kernel in the directory specified by rp  This is my /etc/bootptab:

hp300:\
  :ht=ethernet:\
  :ha=08000900b6fb:\
  :ip=192.168.2.123:\
  :sm=255.255.0.0:\
  :sa=192.168.2.23:\
  :gw=192.168.1.1:\
  :rp=/var/netboot/hp300/root:\
  :bf=netbsd:\
  :vm=rfc1048:

3) NFS
Configure the nfs server in /etc/nfs.conf.  This is what I currently have in there.  Note that the versions settings are important.

[mountd]
debug = all
manage-gids = y
udp = y
manage-gids=y
[rpc]
debug=1
[nfsd]
debug=all
vers2 = y
vers3 = y
vers4 = n
udp = y
tcp = y

Set up the shared directories by editing /etc/exports:

/var/netboot/hp300/root 192.168.2.123(rw,insecure,no_root_squash,no_subtree_check,async)
/var/netboot/hp300/usr  192.168.2.123(rw,insecure,no_root_squash,no_subtree_check,async)
/var/netboot/hp300/home 192.168.2.123(rw,insecure,no_root_squash,no_subtree_check,async)
/var/netboot/hp300/swap 192.168.2.123(rw,insecure,no_root_squash,no_subtree_check,async)

4) Create HP's fstab
Edit /var/netboot/hp300/root/etc/fstab:

192.168.2.23:/var/netboot/hp300/root /     nfs   rw 0 0
192.168.2.23:/var/netboot/hp300/usr /usr  nfs   rw 0 0
192.168.2.23:/var/netboot/hp300/home /home nfs   rw 0 0
/swap/hp300.swap  none  swap  sw 0 0

Get rbootd, bootp and rpc.moutd running as daemons, and it should work.

Debugging:

I run screen to manage multiple sessions, which is very helpful for debugging.  Tmux or any other way of having multiple sessions running should work as well.  In three successive screens/shells I run:

First make sure rbootd is working.  Run these on three separate screens, numbered 1-3:
/usr/sbin/rbootd -d -i eth0
/usr/sbin/bootpd -d4
/usr/sbin/rpc.mountd -F -d all

Power up the HP and go to screen 1.

After a minute or two, you should get a series of requests for the bootstrapper screen 1, and at the same time you should get info on the hp screen that the bootstrap is loading.  After that loads and starts, you should see messages on the HP screen that it's looking for a kernel.

Switch to screen 2

This screen is running bootpd, which tells the bootstrapper info about the network and the kernel location.  You will get a series of log messages like this:

bootpd: info(6):   bootptab mtime: Thu Jan 29 22:40:50 2026
bootpd: info(6):   reading "/etc/bootptab"
bootpd: info(6):   read 1 entries (1 hosts) from "/etc/bootptab"
bootpd: info(6):   recvd pkt from IP addr 0.0.0.0
bootpd: info(6):   bootptab mtime: Thu Jan 29 22:40:50 2026
bootpd: info(6):   request from Ethernet address 08:00:09:00:B6:FB
bootpd: info(6):   found 192.168.2.123 (hp300)
bootpd: info(6):   bootfile="/netbsd"

If all is going well, you should see the kernel loading from the nfs server.

Switch to screen 3

This screen will display nfs mount debug information.  Right away you should see these startup messages:
rpc.mountd: Version 2.8.3 starting
rpc.mountd: from_local: updating local if addr list
rpc.mountd: from_local: checked 7 local if addrs; incoming address not found

As soon as the bootstrapper received the info from bootpd in screen 2, it should attempt to mount the appropriate directory to find he kernel:
rpc.mountd: Received MNT3(/var/netboot/hp300/root) request from 192.168.2.123
rpc.mountd: v4root_create: path '/' flags 0x12403
rpc.mountd: v4root_create: path '/var' flags 0x10403
rpc.mountd: v4root_create: path '/var/netboot' flags 0x10403
rpc.mountd: v4root_create: path '/var/netboot/hp300' flags 0x10403
rpc.mountd: authenticated mount request from 192.168.2.123:1023 for /var/netboot/hp300/root (/var/netboot/hp300/root)
rpc.mountd: granted access to /var/netboot/hp300/root for 192.168.2.123

It will hold at this point for a while as the kernel comes down.

When the kernel is downloaded and the HP is starting up, you should see a bunch of requests to mount the various directories:
rpc.mountd: nfsd_fh: found 0x558f7e7290 path /var/netboot/hp300/root
rpc.mountd: check_default: access by 192.168.2.123 ALLOWED (cached)
rpc.mountd: Received MNT3(/var/netboot/hp300/root) request from 192.168.2.123
rpc.mountd: authenticated mount request from 192.168.2.123:1023 for /var/netboot/hp300/root (/var/netboot/hp300/root)
rpc.mountd: granted access to /var/netboot/hp300/root for 192.168.2.123
rpc.mountd: check_default: access by 192.168.2.123 ALLOWED (cached)
rpc.mountd: Received MNT3(/var/netboot/hp300/root) request from 192.168.2.123
rpc.mountd: authenticated mount request from 192.168.2.123:1022 for /var/netboot/hp300/root (/var/netboot/hp300/root)
rpc.mountd: granted access to /var/netboot/hp300/root for 192.168.2.123
rpc.mountd: check_default: access by 192.168.2.123 ALLOWED (cached)
rpc.mountd: Received MNT3(/var/netboot/hp300/usr) request from 192.168.2.123
rpc.mountd: authenticated mount request from 192.168.2.123:1021 for /var/netboot/hp300/usr (/var/netboot/hp300/usr)
rpc.mountd: granted access to /var/netboot/hp300/usr for 192.168.2.123
rpc.mountd: nfsd_fh: inbuf '192.168.2.123 7 \x0647080000000000d6944274f2f7464496a4213c3b367f5c'
rpc.mountd: nfsd_fh: found 0x558f7e6d30 path /var/netboot/hp300/usr
rpc.mountd: check_default: access by 192.168.2.123 ALLOWED (cached)
rpc.mountd: Received MNT3(/var/netboot/hp300/root) request from 192.168.2.123
rpc.mountd: authenticated mount request from 192.168.2.123:1019 for /var/netboot/hp300/root (/var/netboot/hp300/root)
rpc.mountd: granted access to /var/netboot/hp300/root for 192.168.2.123
rpc.mountd: check_default: access by 192.168.2.123 ALLOWED (cached)
rpc.mountd: Received MNT3(/var/netboot/hp300/home) request from 192.168.2.123
rpc.mountd: authenticated mount request from 192.168.2.123:1018 for /var/netboot/hp300/home (/var/netboot/hp300/home)
rpc.mountd: granted access to /var/netboot/hp300/home for 192.168.2.123
rpc.mountd: nfsd_fh: inbuf '192.168.2.123 7 \x01080a0000000000d6944274f2f7464496a4213c3b367f5c'
rpc.mountd: nfsd_fh: found 0x558f7e67d0 path /var/netboot/hp300/home

At this point the machine is well on its way to booting to NetBSD, and it should be a relatively typical boot process from here on out.

That's mainly it.  I wouldn't mind debugging/filling out these instructions for the NetBSD web site, if there is any interest.  Feel free to point out any mistakes/improvements/comments.  I got this working a couple of weeks ago, but I've been too busy to write this up, so there are certainly some details I've left out.

Thanks for all the comments and direction!  It was a fun project.  I should be receiving an SCSI emulator in the next couple of days, so I should be able to write a proper local disk and retire the pi booter.  :) Semifinal plan is installing this machine in my "museum" at work, as a compact example of a late 80s unix minicomputer.

-mike

-----Original Message-----
From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost> 
Sent: Thursday, January 8, 2026 8:58 AM
To: Mike Begley <spam%hell.org@localhost>
Cc: port-hp300%NetBSD.org@localhost; tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: Difficulty with netbooting - le0: lost carrier when bringingdownthenetbsd kernel

Hi,

> With the holidays in the rear view, I picked this project again last 
> night.  I have not yet been successful.
> 
> To recap - I'm trying to netboot NetBSD 10 an 360 using a raspberry pi 
> using the native OS.
> 
> This is my status:
> 
> Bootstrap loader to the HP: Success
> bootp sending bootfile name to HP: Success bootparamd sending 
> filesystem info: Failure tftp serving kernel, and then the rest of the 
> fie system: Not there yet.

The current NetBSD/hp300 bootloader doesn't use bootparamd or tftp to get a kernel (only Sun's firmware requires them to get a bootloader).

Once the NetBSD bootloader is loaded, it just try to
- get IP address and root file system info via BOOTP/DHCP (by default)
- then tries to mount the specified root directory via NFS
- then tries to load the specified kernel from the mounted NFS directory.

> Question for the experts - is this the expected order?  I'm pretty 
> sure it is, but sometimes I get the impression that tftp is step 3.
> 
> Using tcpdump I can see inbound traffic on port 111, but nothing outbound:
> 
> 00:38:54.842747 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], 
> proto UDP (17), length 104) 192.168.2.123.1023 > 192.168.2.23.111: [no 
> cksum] UDP, length 76
> 00:38:54.842990 IP (tos 0x0, ttl 64, id 44675, offset 0, flags [DF], 
> proto UDP (17), length 56) 192.168.2.23.111 > 192.168.2.123.1023: [bad 
> udp cksum 0x8618 -> 0xf3b4!] UDP, length 28

I guess these sunrpc (on port 111) requests are for NFS mount.

On my HP9000/425t boot,
"tcpdump -i re0 -n ether host 08:00:09:27:86:a7"
("re0" is on my host's NIC and the Ethernet address is my 425t one) on my server shows:

```
01:14:12.860400 08:00:09:27:86:a7 > 00:e0:4c:68:02:38 Unknown DSAP 0xf8 Unnumbered, ui, Flags [Command], length 50
	0x0000:  f8f8 0300 0000 0608 0609 0100 ffcb 802b  ...............+
	0x0010:  0000 0002 4850 5333 3030 2020 2020 2020  ....HPS300......
	0x0020:  2020 2020 2020 2020 0953 5953 5f55 424f  .........SYS_UBO
	0x0030:  4f54                                     OT
01:14:12.860534 00:e0:4c:68:02:38 > 08:00:09:27:86:a7 Unknown DSAP 0xf8 Unnumbered, ui, Flags [Command], length 30
	0x0000:  f8f8 0300 0000 0609 0608 8100 ffcb 802b  ...............+
	0x0010:  0003 0002 0953 5953 5f55 424f 4f54       .....SYS_UBOOT
01:14:12.863347 08:00:09:27:86:a7 > 00:e0:4c:68:02:38 Unknown DSAP 0xf8 Unnumbered, ui, Flags [Command], length 46
	0x0000:  f8f8 0300 0000 0608 0609 0200 0000 0000  ................
	0x0010:  0003 0100 4850 5333 3030 2020 2020 2020  ....HPS300......
	0x0020:  2020 2020 2020 2020 0953 5953 5f55       .........SYS_U
01:14:12.863396 00:e0:4c:68:02:38 > 08:00:09:27:86:a7 Unknown DSAP 0xf8 Unnumbered, ui, Flags [Command], length 274
	0x0000:  f8f8 0300 0000 0609 0608 8200 0000 0000  ................
	0x0010:  0003 8000 424f 4f54 3433 0000 0002 1000  ....BOOT43......
	0x0020:  0000 0000 0001 0001 0000 0000 0000 0000  ................
	0x0030:  0000 0000 013d 0000 0000 0000 0000 0000  .....=..........
	0x0040:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0050:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0060:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0070:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0080:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0090:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x00a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x00b0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x00c0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x00d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x00e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x00f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0100:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0110:  0000                                     ..

==> HP LIF directory info is xfered, and then the HP firmware tries to
    load specified SYS_UBOOT (actually "BOOT43" in LIF) is transfered
    from host's rbootd(8) to hp425t firmware

[..snip..]

01:14:13.282431 00:e0:4c:68:02:38 > 08:00:09:27:86:a7 Unknown DSAP 0xf8 Unnumbered, ui, Flags [Command], length 1478
	0x0000:  f8f8 0300 0000 0609 0608 8200 0001 36e0  ..............6.
	0x0010:  0003 0000 0000 0000 0000 0000 0000 0000  ................
	0x0020:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0030:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0040:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0050:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0060:  007b 007d 0000 0000 0000 0000 0000 0000  .{.}............
	0x0070:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0080:  005b 005d 0000 ffff ffff ffff ffff ffff  .[.]............
	0x0090:  ffff ffff ffff ffff ffff ffff ffff ffff  ................
	0x00a0:  ffff ffff ffff ffff ffff ffff ffff ffff  ................
	0x00b0:  ffff ffff ffff ffff ffff ffff ffff ffff  ................
	0x00c0:  ffff ffff ffff ffff ffff ffff ffff 5c7c  ..............\|
	0x00d0:  090a 2fff ffff ffff ffff ffff ffff ffff  ../.............
	0x00e0:  ffff 3fff 08ff ffff ffff ffff ffff ffff  ..?.............
	0x00f0:  ffff ffff ffff ffff ffff ffff ffff ffff  ................
	0x0100:  ffff ffff ffff 0060 3c1b 007f 0000 0a09  .......`<.......
	0x0110:  0000 0000 0000 000a 0000 0000 0000 0009  ................
	0x0120:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0130:  0000 0000 0800 0000 0000 0000 0000 1b0d  ................
	0x0140:  000a 302e 2c2b 3132 332d 3435 362a 3738  ..0.,+123-456*78
	0x0150:  392f 4528 291e 3132 3334 3536 3738 3930  9/E().1234567890
	0x0160:  2b27 1b1d 2a1c 2c2e 2f20 0f10 0b0c 1117  +'..*.,./.......
	0x0170:  0512 1419 1509 0113 0406 0708 0a0d 1a18  ................
	0x0180:  0316 020e 0000 007e 3e7f 007f 0000 0a09  .......~>.......
	0x0190:  0000 0000 0000 000a 0000 0000 0000 0009  ................
	0x01a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x01b0:  0000 0000 7f00 0000 0000 0000 0000 1b0d  ................
	0x01c0:  000a 302e 2c2b 3132 332d 3435 362a 3738  ..0.,+123-456*78
	0x01d0:  392f 607c 5c7e 2122 2324 2526 5e28 293d  9/`|\~!"#$%&^()=
	0x01e0:  3f2f 7b7d 407c 3b3a 5f20 4f50 4b4c 5157  ?/{}@|;:_.OPKLQW
	0x01f0:  4552 5459 5549 4153 4446 4748 4a4d 5a58  ERTYUIASDFGHJMZX
	0x0200:  4356 424e 0000 0060 3c1b 007f 0000 0a09  CVBN...`<.......
	0x0210:  0000 0000 0000 000a 0000 0000 0000 0009  ................
	0x0220:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0230:  0000 0000 0800 0000 0000 0000 0000 1b0d  ................
	0x0240:  000a 302e 2c2b 3132 332d 3435 362a 3738  ..0.,+123-456*78
	0x0250:  392f 4528 295e 3132 3334 3536 3738 3930  9/E()^1234567890
	0x0260:  2b27 5b5d 2a5c 2c2e 2d20 6f70 6b6c 7177  +'[]*\,.-.opklqw
	0x0270:  6572 7479 7569 6173 6466 6768 6a6d 7a78  ertyuiasdfghjmzx
	0x0280:  6376 626e 0000 0060 1c1b 007f 0000 0a09  cvbn...`........
	0x0290:  0000 0000 0000 000a 0000 0000 0000 0009  ................
	0x02a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x02b0:  0000 0000 0800 0000 0000 0000 0000 1b0d  ................
	0x02c0:  000a 302e 2c2b 3132 332d 3435 362a 3738  ..0.,+123-456*78
	0x02d0:  392f 4528 291e 3132 3334 3536 3738 3930  9/E().1234567890
	0x02e0:  2d3d 1b1d 3b27 2c2e 2f20 0f10 0b0c 1117  -=..;',./.......
	0x02f0:  0512 1419 1509 0113 0406 0708 0a0d 1a18  ................
	0x0300:  0316 020e 0000 007e 7c7f 007f 0000 0a09  .......~|.......
	0x0310:  0000 0000 0000 000a 0000 0000 0000 0009  ................
	0x0320:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0330:  0000 0000 7f00 0000 0000 0000 0000 1b0d  ................
	0x0340:  000a 302e 2c2b 3132 332d 3435 362a 3738  ..0.,+123-456*78
	0x0350:  392f 607c 5c7e 2140 2324 255e 262a 2829  9/`|\~!@#$%^&*()
	0x0360:  5f2b 7b7d 3a22 3c3e 3f20 4f50 4b4c 5157  _+{}:"<>?.OPKLQW
	0x0370:  4552 5459 5549 4153 4446 4748 4a4d 5a58  ERTYUIASDFGHJMZX
	0x0380:  4356 424e 0000 0060 5c1b 007f 0000 0a09  CVBN...`\.......
	0x0390:  0000 0000 0000 000a 0000 0000 0000 0009  ................
	0x03a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x03b0:  0000 0000 0800 0000 0000 0000 0000 1b0d  ................
	0x03c0:  000a 302e 2c2b 3132 332d 3435 362a 3738  ..0.,+123-456*78
	0x03d0:  392f 4528 295e 3132 3334 3536 3738 3930  9/E()^1234567890
	0x03e0:  2d3d 5b5d 3b27 2c2e 2f20 6f70 6b6c 7177  -=[];',./.opklqw
	0x03f0:  6572 7479 7569 6173 6466 6768 6a6d 7a78  ertyuiasdfghjmzx
	0x0400:  6376 626e 0000 fff1 194c fff1 19cc fff1  cvbn.....L......
	0x0410:  1a4c 0000 001f fff0 f517 fff1 1a4c fff1  .L...........L..
	0x0420:  19cc fff1 194c 0000 0000 0000 0000 0000  .....L..........
	0x0430:  0017 fff0 f517 fff1 18cc fff1 184c fff1  .............L..
	0x0440:  17cc 0000 0000 0000 0000 0000 0000 fff0  ................
	0x0450:  f517 0000 0000 0000 0000 0000 0000 0000  ................
	0x0460:  0000 0000 0000 0047 8000 0000 0000 0000  .......G........
	0x0470:  4000 0000 8000 0000 c008 0000 0001 0000  @...............
	0x0480:  000a fff0 fb9c fff0 2dd4 fff0 2d98 fff0  ........-...-...
	0x0490:  2ef0 fff0 3106 fff0 32c6 fff0 2d9c fff1  ....1...2...-...
	0x04a0:  1b6c 0000 0001 0000 0000 0000 0001 fff1  .l..............
	0x04b0:  1dac fff1 1b30 0000 0000 ffff ffff fff0  .....0..........
	0x04c0:  27ec fff0 285a fff0 2890 fff0 2374 fff0  '...(Z..(...#t..
	0x04d0:  23ce fff0 23d0 0000 0000 0000 0000 0000  #...#...........
	0x04e0:  0000 1200 0000 0000 2500 0000 0000 0000  ........%.......
	0x04f0:  0000 0300 0000 0000 0000 0000 c350 0000  .............P..
	0x0500:  c350 fff0 fa15 fff0 fa1d fff0 f9e2 fff0  .P..............
	0x0510:  f9ed fff0 f9fb fff0 fa06 fff0 fa14 fff0  ................
	0x0520:  fa1c 0000 0000 6382 5363 0000 0400 6469  ......c.Sc....di
	0x0530:  736b 206c 6162 656c 2063 6f72 7275 7074  sk.label.corrupt
	0x0540:  6564 006e 6f20 6469 736b 206c 6162 656c  ed.no.disk.label
	0x0550:  0000 0000 0001 ffff ffff ffff ffff ffff  ................
	0x0560:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0570:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0580:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x0590:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x05a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
	0x05b0:  0000 0000 0000 ffff ff00 ffff ffff ffff  ................
	0x05c0:  0000 fff4 34d0                           ....4.
01:14:13.290966 08:00:09:27:86:a7 > 00:e0:4c:68:02:38 Unknown DSAP 0xf8 Unnumbered, ui, Flags [Command], length 46
	0x0000:  f8f8 0300 0000 0608 0609 0300 0000 0000  ................
	0x0010:  0003 05b4 4850 5333 3030 2020 2020 2020  ....HPS300......
	0x0020:  2020 2020 2020 2020 0953 5953 5f55       .........SYS_U


==> SYS_UBOOT has been xfered, and then the loaded bootloader starts here

01:14:19.693754 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 08:00:09:27:86:a7, length 300
01:14:19.694144 IP 192.168.20.1.67 > 192.168.20.29.68: BOOTP/DHCP, Reply, length 300

==> The loaded NetBSD/hp300 bootloader gets its IP address via BOOTP/DHCP

01:14:19.797818 ARP, Request who-has 192.168.20.1 tell 192.168.20.29, length 50
01:14:19.797829 ARP, Reply 192.168.20.1 is-at 00:e0:4c:68:02:38, length 28
01:14:19.799021 IP 192.168.20.29.1023 > 192.168.20.1.111: UDP, length 76
01:14:19.799088 IP 192.168.20.1.111 > 192.168.20.29.1023: UDP, length 28
01:14:19.800629 IP 192.168.20.29.1023 > 192.168.20.1.1008: UDP, length 92
01:14:19.800795 IP 192.168.20.1.1008 > 192.168.20.29.1023: UDP, length 68
01:14:19.803201 IP 192.168.20.29.1023 > 192.168.20.1.111: UDP, length 76
01:14:19.803249 IP 192.168.20.1.111 > 192.168.20.29.1023: UDP, length 28

==> The bootloader tries to mount the server's directory via NFS

01:14:19.804862 IP 192.168.20.29.1023 > 192.168.20.1.2049: NFS request xid 4 104 lookup fh 18,0/74402693 "netbsd"
01:14:19.804908 IP 192.168.20.1.2049 > 192.168.20.29.1023: NFS reply xid 4 reply ok 236 lookup fh 18,0/74394689

==> The bootloader looks up "netbsd" as a kernel to be loaded

01:14:19.809743 IP 192.168.20.29.1023 > 192.168.20.1.2049: NFS request xid 5 104 read fh 18,0/74394689 1024 bytes @ 0
01:14:19.809810 IP 192.168.20.1.2049 > 192.168.20.29.1023: NFS reply xid 5 reply ok 1152 read
01:14:19.820229 IP 192.168.20.29.1023 > 192.168.20.1.2049: NFS request xid 6 104 read fh 18,0/74394689 1024 bytes @ 1024
01:14:19.820274 IP 192.168.20.1.2049 > 192.168.20.29.1023: NFS reply xid 6 reply ok 1152 read
 :
 
==> The bootloader loads the "netbsd" kernel file

I should update netboot descriptions in www.NetBSD.org page, but maybe you have to check the following settings on your Pi server:

BTW, it would be nice to try Ebihara-san's NetBSD/evbarm image on your Pi (so that I don't have to investigate Linux specific server settings :-)  https://mail-index.netbsd.org/port-arm/2025/12/02/msg009481.html 

1) /etc/exports file to specify NFS root dir to be exported like:

```
/nfsroot -maproot=root:wheel
```

(the directory name should be replaced per your settings)

2) /etc/rc.conf file to start necessary daemons:

```
rpcbind=YES		rpcbind_flags="-l"	# -l logs libwrap
mountd=YES		mountd_flags=""		# NFS mount requests daemon
nfs_server=YES					# enable server daemons
dhcpd=YES		dhcpd_flags=""
```

3) /etc/dhcpd.conf to start dhcpd (maybe your settings are ok):

```
ddns-update-style none;

default-lease-time 600;
max-lease-time 28000;

subnet 192.168.20.0 netmask 255.255.255.0 {
  server-name="192.168.20.1";
  next-server 192.168.20.1;
  range dynamic-bootp 192.168.20.200 192.168.20.220;
  option broadcast-address 192.168.20.255;
  option routers 192.168.20.1;
}

host hp425t {
  use-host-decl-names off;
  hardware ethernet 08:00:09:27:86:a7;
  fixed-address 192.168.20.29;
  server-name "server-name";
  option root-path "/nfsroot";
}
```
or so.

You can also check NFS export settings on your Pi server by "showmount -e" command (at least on NetBSD) like:

```
# showmount -e
Exports list on local host:
/nfsroot			hp425t
```

Thanks,
---
Izumi Tsutsui


Home | Main Index | Thread Index | Old Index