Discussion:
Port help wanted/needed?
John Carr
2009-01-21 18:46:12 UTC
Permalink
Hey, all...

Since I've been running NetBSD/sun3 for 5+ years now, I'd like to throw
my hat in the ring to help out the port where I can. While I know of the
list at http://www.netbsd.org/contrib, I'd like to get an idea where I
can help out on the port that will be the most effective based on what
other folks are doing.

While I can't code (sadly, never had time to learn), I have an admin
and security background and can, if nothing else, run -current, run 5.0,
document, etc. I have a 3/60 and access to a 3/50 and can, of course,
run tme somewhere, if needed.

If there's a specific area I can help out, please let me know. Thanks!
j***@yahoo.com
2009-01-21 19:46:28 UTC
Permalink
Actually, there probably are plenty of places you can help, especially with a strong admin and security background.

Some things might involve doing builds. I know you said you were not a coder, but I'm sure you're no stranger to running an automated build or launching a make process to configure, build, and install an application.
If you are willing to do that, the doors are wide open.

Many of the ports run behind the i386 port even at the same release number in some areas. For example, i386 kernels ship with packet filtering and cgd enabled. Yet those types of things are not enabled, and often of unknown status in many ports.

Back in the 1.6 days for Sun3, I had to build packet filtering into my kernel on my own. Even then, I found it didn't work, but only because there was no magic number allocated for it in the kernel. And because no one had tried it, even MAKEDEV didn't have an entry in the script to create the device nodes. I submitted a patch for that and it worked great there after. Then in the 2.0 days, I tried cgd. Again, it wasn't enabled in the kernel, so I had to build one. Once i built it and added the device nodes, life was good. It worked great. There was no reason, other than lack of testers, that either of those things couldn't have been enabled in the release kernels and used by someone.

My Sun 3/80 served as a DNS cache and static web page and ftp server for my DSL line for years quite reliably. Unfortunately about a year and a half ago, the hard disk went bad, and I've still not gotten around to replacing it, but that too will happen one day. Thusly...I don't know how the 3.x and 4.x ports stand as I haven't had the chance to play with them lately.

Another area is pkgsrc builds. Look at what has been done, and see what is needed. I've been working with the hpcmips port the last year. Who knew that the mesa OpenGL port actually worked.....until it was tried.

Consider also that lack of hardware need not block someone from contributing. I've had great success using things like GXEMUL and others to run a specific port in an emulator. I've built the bulk of pkgsrc for hpcmips 4.0 that way.

I think if you just start "doing" you will find a niche into which you can contribute pretty quickly. Some of these lists are pretty quiet, but all it takes sometimes is a newbie to wake up some of the old timers.

-S-
Subject: Port help wanted/needed?
Date: Wednesday, January 21, 2009, 10:46 AM
Hey, all...
Since I've been running NetBSD/sun3 for 5+ years now,
I'd like to throw
my hat in the ring to help out the port where I can. While
I know of the
list at http://www.netbsd.org/contrib, I'd like to get
an idea where I
can help out on the port that will be the most effective
based on what
other folks are doing.
While I can't code (sadly, never had time to learn), I
have an admin
and security background and can, if nothing else, run
-current, run 5.0,
document, etc. I have a 3/60 and access to a 3/50 and can,
of course,
run tme somewhere, if needed.
If there's a specific area I can help out, please let
me know. Thanks!
John Carr
2009-01-23 18:30:06 UTC
Permalink
Post by j***@yahoo.com
Actually, there probably are plenty of places you can help, especially with a strong admin and security background.
Some things might involve doing builds. I know you said you were not a coder, but I'm sure you're no stranger to running an automated build or launching a make process to configure, build, and install an application.
If you are willing to do that, the doors are wide open.
Many of the ports run behind the i386 port even at the same release number in some areas. For example, i386 kernels ship with packet filtering and cgd enabled. Yet those types of things are not enabled, and often of unknown status in many ports.
All very good points. I just wasn't sure if there were areas that folks
were already concentrating where I'd be just wasting my time!

Very true. I'll admit, I haven't run NetBSD as my primary i386 desktop
in a few years now, so I don't know how big the differences are now. I
think it'd be worth it to get it going in a VM and start comparing. I
can start beating on that pretty soon.
Post by j***@yahoo.com
Another area is pkgsrc builds. Look at what has been done, and see what is needed. I've been working with the hpcmips port the last year. Who knew that the mesa OpenGL port actually worked.....until it was tried.
Heh. Good point. I can't say that I've done a meta-pkgs build of gnome
on that thing in the past few years. I've never been able to get it to
complete in the past due to different things. I guess it's time to fire
that back up.
(which, of course, begs the question of who would want to run gnome on a
3/60....)
Post by j***@yahoo.com
Consider also that lack of hardware need not block someone from contributing. I've had great success using things like GXEMUL and others to run a specific port in an emulator. I've built the bulk of pkgsrc for hpcmips 4.0 that way.
I think if you just start "doing" you will find a niche into which you can contribute pretty quickly. Some of these lists are pretty quiet, but all it takes sometimes is a newbie to wake up some of the old timers.
Right on.. thanks for the pointers. I hadn't started playing with tme
until yesterday since I wasn't sure how stable it was... it's excellent
all around. The nice thing is that I'm pretty familiar with NetBSD due
to prior lives, so diving back in has been a breeze...
Izumi Tsutsui
2009-01-23 10:38:20 UTC
Permalink
Post by John Carr
Since I've been running NetBSD/sun3 for 5+ years now, I'd like to throw
my hat in the ring to help out the port where I can. While I know of the
list at http://www.netbsd.org/contrib, I'd like to get an idea where I
can help out on the port that will be the most effective based on what
other folks are doing.
While I can't code (sadly, never had time to learn), I have an admin
and security background and can, if nothing else, run -current, run 5.0,
document, etc. I have a 3/60 and access to a 3/50 and can, of course,
run tme somewhere, if needed.
It's appreciated to simply try 5.0_BETA GENERIC kernel on your 3/60.
ftp://ftp.NetBSD.org/pub/NetBSD-daily/netbsd-5/200901210002Z/sun3/

(it will work even on 4.0.1 userland, without full upgrade)

After 4.0, I added bus_dma(9) support to sun3 and made si(4) SCSI
use bus_dma(9) API, but it was only tested on si(4) at at vme
on TME emulating 3/1x0, and AFAIK there is no report about
si(4) at obio on 3/60.
http://mail-index.NetBSD.org/port-sun3/2007/02/oindex.html

(no one has noticed that even 4.0.1 GENERIC didn't boot on 3/60
until you reported it...)
---
Izumi Tsutsui
John Carr
2009-01-23 18:21:36 UTC
Permalink
Post by Izumi Tsutsui
It's appreciated to simply try 5.0_BETA GENERIC kernel on your 3/60.
ftp://ftp.NetBSD.org/pub/NetBSD-daily/netbsd-5/200901210002Z/sun3/
(it will work even on 4.0.1 userland, without full upgrade)
After 4.0, I added bus_dma(9) support to sun3 and made si(4) SCSI
use bus_dma(9) API, but it was only tested on si(4) at at vme
on TME emulating 3/1x0, and AFAIK there is no report about
si(4) at obio on 3/60.
http://mail-index.NetBSD.org/port-sun3/2007/02/oindex.html
Ok. Will do. I'll start on this today then and begin testing it. I'll
let you know if if it even boots. :)

Work working with -current or _BETA, where's the best place to mention
issues? Here or gnats? I'm not sure how much gnats is used for bug
reports against non-releases.
Post by Izumi Tsutsui
(no one has noticed that even 4.0.1 GENERIC didn't boot on 3/60
until you reported it...)
Very true. I'll give it a thorough testing.

What's the latest on 3/50 support, by the way? I remember a thread from
about '05 or so that mentioned that either miniroot or the INSTALL kernel
was too big now to boot. Has anyone even attempted it?

(and yeah, I'm guessing the amount of folks out there trying to use
NetBSD on a 3/50 is probably down to about 1 at the most, but I'm
curious)
to even boot
David Brownlee
2009-01-23 22:46:04 UTC
Permalink
Post by John Carr
What's the latest on 3/50 support, by the way? I remember a thread from
about '05 or so that mentioned that either miniroot or the INSTALL kernel
was too big now to boot. Has anyone even attempted it?
(and yeah, I'm guessing the amount of folks out there trying to use
NetBSD on a 3/50 is probably down to about 1 at the most, but I'm
curious)
to even boot
The 3/50 has IIRC its framebuffer at 1MB, so the kernel size is
very constrained. Could you try building a kernel with just
about everything disabled for the 3/50?
--
David/absolute -- www.NetBSD.org: No hype required --
John Carr
2009-01-23 23:29:16 UTC
Permalink
Post by David Brownlee
Post by John Carr
What's the latest on 3/50 support, by the way? I remember a thread from
about '05 or so that mentioned that either miniroot or the INSTALL kernel
was too big now to boot. Has anyone even attempted it?
The 3/50 has IIRC its framebuffer at 1MB, so the kernel size is
very constrained. Could you try building a kernel with just
about everything disabled for the 3/50?
Sure thing. I lent it away a few years ago, but I can get it back over
the weekend to give it a try. This one is a stock 3/50 minus the extra 8Mb
board. We'll see what we can do with only 3Mb to work with. I remember
the last time I did get a kernel booting on it (GENERIC, no less) a few
years ago, it was swapping by the time it hit the login prompt.
David Brownlee
2009-01-23 23:37:31 UTC
Permalink
Post by John Carr
Post by David Brownlee
Post by John Carr
What's the latest on 3/50 support, by the way? I remember a thread from
about '05 or so that mentioned that either miniroot or the INSTALL kernel
was too big now to boot. Has anyone even attempted it?
The 3/50 has IIRC its framebuffer at 1MB, so the kernel size is
very constrained. Could you try building a kernel with just
about everything disabled for the 3/50?
Sure thing. I lent it away a few years ago, but I can get it back over
the weekend to give it a try. This one is a stock 3/50 minus the extra 8Mb
board. We'll see what we can do with only 3Mb to work with. I remember
the last time I did get a kernel booting on it (GENERIC, no less) a few
years ago, it was swapping by the time it hit the login prompt.
I think its worth adding a SUN350 kernel config to the tree.
I'm curious to see how much free memory we can get :)
--
David/absolute -- www.NetBSD.org: No hype required --
Izumi Tsutsui
2009-01-24 01:51:54 UTC
Permalink
Post by David Brownlee
Post by John Carr
Post by David Brownlee
The 3/50 has IIRC its framebuffer at 1MB, so the kernel size is
very constrained. Could you try building a kernel with just
about everything disabled for the 3/50?
Sure thing. I lent it away a few years ago, but I can get it back over
the weekend to give it a try. This one is a stock 3/50 minus the extra 8Mb
board. We'll see what we can do with only 3Mb to work with. I remember
the last time I did get a kernel booting on it (GENERIC, no less) a few
years ago, it was swapping by the time it hit the login prompt.
I think its worth adding a SUN350 kernel config to the tree.
I'm curious to see how much free memory we can get :)
The problem is that sun3 ports requires three kernels for installation:
RAMDISK*: kernel with minimum binaries to write miniroot in md_root
INSTALL*: kernel in miniroot for installation
GENERIC*: GENERIC kernel

so we should consider if we will provide all these variants for 3/50.
(I guess single 3_50 would be enough by assuming network boot install)

I've tried to build a shrinked kernel for 3/50 and
it's still ~1.5MB, but NetBSD/sun2 works with 1.7MB
FOURMEG kernel with 4MB RAM, so it will also work on 4MB 3/50.

http://www.ceres.dti.ne.jp/~tsutsui/netbsd/netbsd-sun3-3_50-5.0_BETA-20090124.gz

(IIRC NetBSD 1.1 kernel was ~700KB and OS is ever growing ;-)

---
include "arch/sun3/conf/GENERIC"

no makeoptions COPTS

makeoptions COPTS="-Os -fno-function-cse -fstrength-reduce"

no options INCLUDE_CONFIG_FILE

no options HAVECACHE

no options SYSVMSG
no options SYSVSEM
no options SYSVSHM
no options P1003_1B_SEMAPHORE
no options LKM
no options SYSCTL_INCLUDE_DESCR
options PIPE_SOCKETPAIR

no options COMPAT_SUNOS
no options COMPAT_43
no options COMPAT_10
no options COMPAT_11
no options COMPAT_12
no options COMPAT_13
no options COMPAT_14
no options COMPAT_16
no options COMPAT_AOUT_M68K
no options EXEC_AOUT

no file-system FDESC
no file-system KERNFS
no file-system NULLFS
no file-system PROCFS
no file-system PTYFS

no options NFSSERVER
no options SOFTDEP
no options WAPBL
options NFS_V2_ONLY
options NO_DEV_PTM

no options INET6

no vme0 at mainbus?
no vme1 at mainbus?
no vme2 at mainbus?
no vme3 at mainbus?
no vme4 at mainbus?
no vme5 at mainbus?

no ie0 at obio0
no ie1 at vme2

no si0 at vme2
no si1 at vme2

no xyc0 at vme0
no xyc1 at vme0
no xy* at xyc?
no xdc0 at vme1
no xdc1 at vme1
no xd* at xdc?
no sebuf0 at vme2
no sebuf1 at vme2
no si* at sebuf?
no ie* at sebuf?

no cgfour0 at obmem0
no cgtwo0 at vme2

no pseudo-device accf_data
no pseudo-device accf_http
no pseudo-device bpfilter
no pseudo-device sl
no pseudo-device ppp
no pseudo-device vlan
no pseudo-device vnd

---
Izumi Tsutsui
David Johnson
2009-01-24 22:51:18 UTC
Permalink
Thanks for the answer on this one. I too have a 4MB Sun3/50M that I had
hoped to load NETBSD onto as a diskless workstation. The monochrome
monitor, while difficult to move around, nevertheless has a very crisp
display for B/W editing. But I was unsuccessful at getting through all
the steps diskless boot steps and then quit when I learned that the
kernel was going to be too large in any case.

So thanks for posting this. Time to dust it off and try again.

David Johnson / Birmingham, AL
Post by Izumi Tsutsui
Post by David Brownlee
Post by John Carr
Post by David Brownlee
The 3/50 has IIRC its framebuffer at 1MB, so the kernel size is
very constrained. Could you try building a kernel with just
about everything disabled for the 3/50?
Sure thing. I lent it away a few years ago, but I can get it back over
the weekend to give it a try. This one is a stock 3/50 minus the extra 8Mb
board. We'll see what we can do with only 3Mb to work with. I remember
the last time I did get a kernel booting on it (GENERIC, no less) a few
years ago, it was swapping by the time it hit the login prompt.
I think its worth adding a SUN350 kernel config to the tree.
I'm curious to see how much free memory we can get :)
RAMDISK*: kernel with minimum binaries to write miniroot in md_root
INSTALL*: kernel in miniroot for installation
GENERIC*: GENERIC kernel
so we should consider if we will provide all these variants for 3/50.
(I guess single 3_50 would be enough by assuming network boot install)
I've tried to build a shrinked kernel for 3/50 and
it's still ~1.5MB, but NetBSD/sun2 works with 1.7MB
FOURMEG kernel with 4MB RAM, so it will also work on 4MB 3/50.
http://www.ceres.dti.ne.jp/~tsutsui/netbsd/netbsd-sun3-3_50-5.0_BETA-20090124.gz
(IIRC NetBSD 1.1 kernel was ~700KB and OS is ever growing ;-)
---
include "arch/sun3/conf/GENERIC"
no makeoptions COPTS
makeoptions COPTS="-Os -fno-function-cse -fstrength-reduce"
no options INCLUDE_CONFIG_FILE
no options HAVECACHE
no options SYSVMSG
no options SYSVSEM
no options SYSVSHM
no options P1003_1B_SEMAPHORE
no options LKM
no options SYSCTL_INCLUDE_DESCR
options PIPE_SOCKETPAIR
no options COMPAT_SUNOS
no options COMPAT_43
no options COMPAT_10
no options COMPAT_11
no options COMPAT_12
no options COMPAT_13
no options COMPAT_14
no options COMPAT_16
no options COMPAT_AOUT_M68K
no options EXEC_AOUT
no file-system FDESC
no file-system KERNFS
no file-system NULLFS
no file-system PROCFS
no file-system PTYFS
no options NFSSERVER
no options SOFTDEP
no options WAPBL
options NFS_V2_ONLY
options NO_DEV_PTM
no options INET6
no vme0 at mainbus?
no vme1 at mainbus?
no vme2 at mainbus?
no vme3 at mainbus?
no vme4 at mainbus?
no vme5 at mainbus?
no ie0 at obio0
no ie1 at vme2
no si0 at vme2
no si1 at vme2
no xyc0 at vme0
no xyc1 at vme0
no xy* at xyc?
no xdc0 at vme1
no xdc1 at vme1
no xd* at xdc?
no sebuf0 at vme2
no sebuf1 at vme2
no si* at sebuf?
no ie* at sebuf?
no cgfour0 at obmem0
no cgtwo0 at vme2
no pseudo-device accf_data
no pseudo-device accf_http
no pseudo-device bpfilter
no pseudo-device sl
no pseudo-device ppp
no pseudo-device vlan
no pseudo-device vnd
---
Izumi Tsutsui
David Brownlee
2009-01-24 23:33:02 UTC
Permalink
Post by David Johnson
Thanks for the answer on this one. I too have a 4MB Sun3/50M that I had
hoped to load NETBSD onto as a diskless workstation. The monochrome monitor,
while difficult to move around, nevertheless has a very crisp display for B/W
editing. But I was unsuccessful at getting through all the steps diskless
boot steps and then quit when I learned that the kernel was going to be too
large in any case.
What are you using as a server host? Were you using the Diskless
NetBSD HOW-TO? http://www.netbsd.org/docs/network/netboot/

I suspect it could do with some updating
Post by David Johnson
So thanks for posting this. Time to dust it off and try again.
Let us know how it goes! :)
--
David/absolute -- www.NetBSD.org: No hype required --
David Brownlee
2009-01-25 00:29:40 UTC
Permalink
I've been playing around with Izumi's kernel config, looking
where to save space, and came up with an interesting issue
- specifically how to determine kernel size.

For example the two kernels below are very similar in size
as reported by ls (the second is 673 bytes larger), but
when using 'size' the second is 130620 bytes (just under
128K) smaller.

ls -l: 1360 -rwxr-xr-x 1 abs wheel 1371776 Jan 25 00:07 netbsd
size: 1055608 26916 207584 1290108 13af7c netbsd

ls -l: 1360 -rwxr-xr-x 1 abs wheel 1372449 Jan 25 00:20 netbsd
size: 1056060 26916 76512 1159488 11b140 netbsd

The difference is due to using a slighly patched r1.11
version of netinet/ip_id.c, which does not include a 128K
table for returning a random IP 'id' number.
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/netinet/ip_id.c?only_with_tag=MAIN

The first may look slightly smaller, but the second will use
128K less memory when loaded.

Its almost worth keeping the old netinet/ip_id.c around for
conditional compiling for install and very low memory kernels...
--
David/absolute -- www.NetBSD.org: No hype required --
Christos Zoulas
2009-01-25 00:53:21 UTC
Permalink
Post by David Brownlee
I've been playing around with Izumi's kernel config, looking
where to save space, and came up with an interesting issue
- specifically how to determine kernel size.
For example the two kernels below are very similar in size
as reported by ls (the second is 673 bytes larger), but
when using 'size' the second is 130620 bytes (just under
128K) smaller.
ls -l: 1360 -rwxr-xr-x 1 abs wheel 1371776 Jan 25 00:07 netbsd
size: 1055608 26916 207584 1290108 13af7c netbsd
ls -l: 1360 -rwxr-xr-x 1 abs wheel 1372449 Jan 25 00:20 netbsd
size: 1056060 26916 76512 1159488 11b140 netbsd
The difference is due to using a slighly patched r1.11
version of netinet/ip_id.c, which does not include a 128K
table for returning a random IP 'id' number.
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/netinet/ip_id.c?only_with_tag=MAIN
The first may look slightly smaller, but the second will use
128K less memory when loaded.
Its almost worth keeping the old netinet/ip_id.c around for
conditional compiling for install and very low memory kernels...
Well, you could allocate the array dynamically but using the old ip_id
code we'll lead to predictable sequence numbers again.

christos
p***@pluto.rain.com
2009-01-25 06:33:25 UTC
Permalink
Post by Christos Zoulas
Post by David Brownlee
Its almost worth keeping the old netinet/ip_id.c around for
conditional compiling for install and very low memory kernels...
Well, you could allocate the array dynamically but using the old
ip_id code we'll lead to predictable sequence numbers again.
How much randomness is actually needed? Could it be obtained by
harvesting entropy as needed instead of dedicating a huge array?
John Carr
2009-02-09 19:56:53 UTC
Permalink
Post by David Brownlee
Post by John Carr
What's the latest on 3/50 support, by the way? I remember a thread from
about '05 or so that mentioned that either miniroot or the INSTALL kernel
was too big now to boot. Has anyone even attempted it?
(and yeah, I'm guessing the amount of folks out there trying to use
NetBSD on a 3/50 is probably down to about 1 at the most, but I'm
curious)
to even boot
The 3/50 has IIRC its framebuffer at 1MB, so the kernel size is
very constrained. Could you try building a kernel with just
about everything disabled for the 3/50?
By the way, if there's a need, I can get a 3/50 up with serial console
on a routable IP w/a tftp server. I can do some testing with it, or if
anyone with more coding skills wants access to it, I'm offering it up.

Meanwhile, I'll probably have a little time to work with it this week to
see if we can get a kernel booting on it.
David Brownlee
2009-02-09 20:46:52 UTC
Permalink
Post by John Carr
By the way, if there's a need, I can get a 3/50 up with serial console
on a routable IP w/a tftp server. I can do some testing with it, or if
anyone with more coding skills wants access to it, I'm offering it up.
Meanwhile, I'll probably have a little time to work with it this week to
see if we can get a kernel booting on it.
I'd be very interested to see if the cut down SUN3_50 kernel
boots on it... :)
--
David/absolute -- www.NetBSD.org: No hype required --
David Johnson
2009-02-10 02:57:13 UTC
Permalink
Same here.. If it works I'd like to know what to trim out. My 3/50M
has only 4MB ram.
Post by David Brownlee
Post by John Carr
By the way, if there's a need, I can get a 3/50 up with serial console
on a routable IP w/a tftp server. I can do some testing with it, or if
anyone with more coding skills wants access to it, I'm offering it up.
Meanwhile, I'll probably have a little time to work with it this week to
see if we can get a kernel booting on it.
I'd be very interested to see if the cut down SUN3_50 kernel
boots on it... :)
David Brownlee
2009-02-10 14:32:28 UTC
Permalink
Post by David Johnson
Same here.. If it works I'd like to know what to trim out. My 3/50M
has only 4MB ram.
Are you in a position to test boot a kernel? I can easily make one
available...
David Brownlee
2009-02-10 21:38:06 UTC
Permalink
I have a 3/50M in my basement managerie, but it would probably take me a
couple of days and probably some coaching to get it set up and ready.
Last time I was working with it, I got to the point of tftp server from a PC
and then found out by reading the list that the current kernel would be too
big so progress stopped at that point.  While a Sun 3/50M is definately in
the antique computer category now, I find it enjoyable to recover old
machines and make them work.  It's my alternative to working on cars and a
lot more compact without the unsightly yard effects. 
Where could I download a compacted kernel?
http://mono.org/abs/netbsd-3_50.gz is a stripped down current
kernel...
--
David/absolute -- www.NetBSD.org: No hype required --
David Johnson
2009-02-10 22:31:53 UTC
Permalink
Thanks, I'll work on giving it a go.
Post by David Brownlee
I have a 3/50M in my basement managerie, but it would probably take me a
couple of days and probably some coaching to get it set up and ready.
Last time I was working with it, I got to the point of tftp server from a PC
and then found out by reading the list that the current kernel would be too
big so progress stopped at that point. While a Sun 3/50M is
definately in
the antique computer category now, I find it enjoyable to recover old
machines and make them work. It's my alternative to working on cars
and a
lot more compact without the unsightly yard effects.
Where could I download a compacted kernel?
http://mono.org/abs/netbsd-3_50.gz is a stripped down current
kernel...
David Brownlee
2009-02-19 12:04:47 UTC
Permalink
David,
I received your small build for Sun 3/50.  This evening I finally got all
the requisite equipment out and gave it a try. 
I was able to get the Sun 3/50 to read the file from a tftp server over a
downloaded 1373069 bytes from tftp server
then the screen filled with some binary trash in the screen buffer after
Exception 10 at 00004000
Well this is further than I had gotten before.  I know there isnt much to go
on here in terms of
trying another build.  If you or someone who is watching knows where to go
from here, I'd like to try to get a working build for this old 3/50 with 4M
memory running diskless.
Are you booting the netboot program which is then loading the
kernel, or just the kernel direct?

The latest netboot should be at:

ftp://ftp.netbsd.org/pub/NetBSD-daily/netbsd-5-0-RC2/200902090142Z/sun3/installation/netboot/netboot

As an aside to try to get a working start point, could you
try booting a (much) earlier DISKLESS kernel from
ftp://ftp.netbsd.org/pub/NetBSD-archive/NetBSD-1.6/sun3/binary/kernel/
--
David/absolute -- www.NetBSD.org: No hype required --
David Johnson
2009-02-27 06:18:43 UTC
Permalink
David,

I have been trying to get my Sun3/50 with 4M memory, 10Base2 ethernet,
and diskless to boot from my equally old PC running
NetBSD3.1

I see the Sun3 rarp and get an IP address
then I see Sun3 grab the netboot file from my PC /tftpboot/C0A80264 (aka
netboot)
and begin executing
Next I see some RPC calls being responded to by rpc.bootparamd where it
asked for its name,
the gateway address (I have it set to 192.168.0.21 the IP address of
another NIC in this machine)
Then I see on my PC a request for root path
Post by David Brownlee
Netbsd/Sun3 netboot [1.12]
using IP address 192.168.2.100 = C0A80264
netboot: try netbsd
netboot: trying netbsd.old
open netbsd.old: no such file or directory
netboot: trying netbsd.sun3
open netbsd.old: no such file or directory
filename? [netbsd]:
netboot: netbsd: loadfile failed.

my export directory has the following:
/export/sun350/root/netbsd.gz <--- sun3 kernel
/export/sun350/swap <--- 8 Mbyte swap file
/export/sun350/usr <--- I'm getting a complaint
from mountd about these two
/export/sun350/home <--- I'm getting a complaint from
mountd about these two

Can you see from these cryptic notes where things are going astray?
I think I'm almost there but I'm stumped at the moment.

Thanks,
David
Birmingham, AL
Post by David Brownlee
David,
I received your small build for Sun 3/50. This evening I finally got
all
the requisite equipment out and gave it a try.
I was able to get the Sun 3/50 to read the file from a tftp server over a
downloaded 1373069 bytes from tftp server
then the screen filled with some binary trash in the screen buffer after
Exception 10 at 00004000
Well this is further than I had gotten before. I know there isnt
much to go
on here in terms of
trying another build. If you or someone who is watching knows where
to go
from here, I'd like to try to get a working build for this old 3/50 with 4M
memory running diskless.
Are you booting the netboot program which is then loading the
kernel, or just the kernel direct?
ftp://ftp.netbsd.org/pub/NetBSD-daily/netbsd-5-0-RC2/200902090142Z/sun3/installation/netboot/netboot
As an aside to try to get a working start point, could you
try booting a (much) earlier DISKLESS kernel from
ftp://ftp.netbsd.org/pub/NetBSD-archive/NetBSD-1.6/sun3/binary/kernel/
David Brownlee
2009-02-27 12:36:12 UTC
Permalink
David,
I have been trying to get my Sun3/50 with 4M memory, 10Base2 ethernet, and
diskless to boot from my equally old PC running
NetBSD3.1
I see the Sun3 rarp and get an IP address
then I see Sun3 grab the netboot file from my PC /tftpboot/C0A80264 (aka
netboot)
and begin executing
Next I see some RPC calls being responded to by rpc.bootparamd where it asked
for its name,
the gateway address (I have it set to 192.168.0.21 the IP address of another
NIC in this machine)
Then I see on my PC a request for root path
A gateway should be an IP on the same network, so 192.168.2.X,
though I don't think that is the issue in this case.
Netbsd/Sun3 netboot [1.12]
using IP address 192.168.2.100 = C0A80264
netboot: try netbsd
netboot: trying netbsd.old
open netbsd.old: no such file or directory
netboot: trying netbsd.sun3
open netbsd.old: no such file or directory
netboot: netbsd: loadfile failed.
/export/sun350/root/netbsd.gz <--- sun3 kernel
/export/sun350/swap <--- 8 Mbyte swap file
/export/sun350/usr <--- I'm getting a complaint from
mountd about these two
/export/sun350/home <--- I'm getting a complaint from
mountd about these two
If those are all on the same filesystem you should have a
single entry in exports of the base mountpoint with -alldirs

Is the kernel in /root/ really netbsd.gz - culd you gunzip
it to test?

It may also be worth confirming if boot.net is getting its
answers via bootparams or bootp/dhcp.

Assuming you're still not having any luck, could you:
- Attach your bootparams file
- Run 'tcpdump -s0 -w /tmp/tcpdump.log' during the booting
process (best to not be doing anything else interesting on the
net at the same time :)
--
David/absolute -- www.NetBSD.org: No hype required --
David Johnson
2009-02-28 21:56:21 UTC
Permalink
David,

I very much appreciate the help you have provided. I'm beating the
horse some more. It now boots the kernel but is unable to nfs_mount the
file systems. My server, g21, is running netbsd3.1. I'm working with
Sun3 v 1.6. This pre-built kernel seems to fit my meager 4MB RAM
space. I can no longer find this revision on the ftp sites. The
document "finishing up your installation, diskless NetBSD HOWTO suggests
that NetBSD bootloader can load a netbsd.gz (zipped kernel) among a long
list of possible file names. This doesn't seem to work but the unzipped
kernel with name netbsd works reliably.

I think my remaining problems are in my /etc/exports file and with
mountd on the server and inability of the client to remote nfs mount the
necessary file systems.

My /etc/exports file looks like this in accordance with the diskless
HOWTO for netBSD and generates some errors:
//export/sun350/root -maproot=root:wheel sun350.grid.net
/export/sun350/swap -maproot=root:wheel sun350.grid.net/
-- Sun3/50 reports g21:/export/sun350/swap on /swap no such file or
directory then of course swapctl can turn swapping on

//export/sun350/usr -maproot=nobody:nobody sun350.grid.net/
-- server / mountd complains "line 4 can't change attributes for
/export/sun350/usr to sun350" operation not permitted
-- Sun/350 reports mount_nfs: can't access 'export/sun350/usr
permission denied

//export/sun350/home -maproot=nobody:nobody sun350.grid.net/
-- server / mountd complains "line 4 can't change attributes for
/export/sun350/home to sun350" operation not permitted
-- Sun/350 reports mount_nfs: can't access 'export/sun350/home
permission denied

I tried the -alldirs option but mountd complains about illegal flag option

//export/sun350/ -alldirs sun350.grid.net/ <-- mountd on server
complains about illegal options, the docs don't show example

Do you have an example of an exports file that is of proper form? Or
alternately, what is wrong with my line here? Why is the operation not
permitted by mountd. It stands to reason if it cant be mounted then the
client won't be able to access it.

/export/sun350/usr -maproot=nobody:nobody sun350.grid.net

If anyone has some suggestions about how to clean up these problems, I
think I will shortly be able to fully boot the old Sun3/50 with netbsd1.6.
Any further work with that box will depend on paring down one of the
more recent releases for Sun3.

Thanks,
David
Birmingham, AL
mountd[252]
export/sun350/usr -maproot, line 4 can't change attributes for
/export/sun350/usr to sun350: operation not permitted
export/sun350/home -maproot, line 4 can't change attributes for
/export/sun350/home to sun350: operation not permitted
You need a single line for the base mountpoint on the server, eg
'/' or '/export', with the option -alldirs
b le(0,0,0)
boot: le(0,0,0)
using IP Address 192.168.2.100=C0A80264
booting from tftp server at 192.168.2.21=C0A80215
downloaded 23828 bytes from tftp server.
NetBSD/Sun3 Netboot [1.12]
using IP Address 192.168.2.100=C0A80264
netboot trying netbsd
<<---------------- this is the netbsd-DISKLESS3X kernel gunzipped and
renamed
633160+129072 [64304+44051]=0xD4A80
starting program at 0x4000
Exception 2C at 0004018 <<----- All the
action stops here
Aha - progress :)
netbsd-DISKLESS3X is for the sun3x architecture - sun3/80
You want the kernel without the 'X' :)
David Brownlee
2009-03-01 10:54:14 UTC
Permalink
Post by David Johnson
I very much appreciate the help you have provided. I'm beating the
horse some more. It now boots the kernel but is unable to nfs_mount the
file systems. My server, g21, is running netbsd3.1. I'm working with
Sun3 v 1.6. This pre-built kernel seems to fit my meager 4MB RAM
space. I can no longer find this revision on the ftp sites. The
Look under NetBSD-archive on ftp.netbsd.org
Post by David Johnson
document "finishing up your installation, diskless NetBSD HOWTO suggests
that NetBSD bootloader can load a netbsd.gz (zipped kernel) among a long
list of possible file names. This doesn't seem to work but the unzipped
kernel with name netbsd works reliably.
I think my remaining problems are in my /etc/exports file and with
mountd on the server and inability of the client to remote nfs mount the
necessary file systems.
My /etc/exports file looks like this in accordance with the diskless
//export/sun350/root -maproot=root:wheel sun350.grid.net
/export/sun350/swap -maproot=root:wheel sun350.grid.net/
-- Sun3/50 reports g21:/export/sun350/swap on /swap no such file or
directory then of course swapctl can turn swapping on
//export/sun350/usr -maproot=nobody:nobody sun350.grid.net/
-- server / mountd complains "line 4 can't change attributes for
/export/sun350/usr to sun350" operation not permitted
-- Sun/350 reports mount_nfs: can't access 'export/sun350/usr
permission denied
//export/sun350/home -maproot=nobody:nobody sun350.grid.net/
-- server / mountd complains "line 4 can't change attributes for
/export/sun350/home to sun350" operation not permitted
-- Sun/350 reports mount_nfs: can't access 'export/sun350/home
permission denied
I tried the -alldirs option but mountd complains about illegal flag option
//export/sun350/ -alldirs sun350.grid.net/ <-- mountd on server
complains about illegal options, the docs don't show example
Do you have an example of an exports file that is of proper form? Or
alternately, what is wrong with my line here? Why is the operation not
permitted by mountd. It stands to reason if it cant be mounted then the
client won't be able to access it.
/export/sun350/usr -maproot=nobody:nobody sun350.grid.net
If anyone has some suggestions about how to clean up these problems, I
think I will shortly be able to fully boot the old Sun3/50 with netbsd1.6.
Any further work with that box will depend on paring down one of the
more recent releases for Sun3.
You need to export the mountpoint of that filesystem on the server - do
you have a separate /export ot /export/sun350 filesystem mounted
on the server? If not you probably want

/ -alldirs -maproot=0 sun350.grid.net

Looks like you should be running *very* soon now :)

Note - if you are booting a 1.6 kernel you will need the 1.6 or
earlier userland to match.
David Brownlee
2009-03-02 00:09:04 UTC
Permalink
I think the problems may be related to permissions.  I am able export root
but that is the only one which behaves properly.  I can boot to single user
mode on the 3/50 and can list my / directory (attached -lF listing
sun350~1.txt).  When I try to mount /usr from the Sun350 it says permission
denied.  Neither can I access the swap file remotely.
As an aside, unless you want to share a single exported '/usr'
across multiple client boxes, then it probably makes more
sense to put export/.../usr as export/.../root/usr and
avoid that extra export and mount.

I good few years back I had a single /root mountpoint shared
across multiple machines with a little logic in /etc to
conditionalise config setup based on dhcp hostname, but
that is getting further off topic.
Similarly, mountd complains about my /export/sun350/usr and home
directorys.  I have attached a -lF listing of my /export tree for
inspection.
I've tried -alldirs option on all of the various levels of the /export
directory.
/export -alldirs sun350.grid.net
/export/sun350 -alldirs sun350.grid.net
/export/sun350/root sun350.grid.net
/export -alldirs -maproot:0 sun350.grid.net
mountd complains every time with that option (server is running netbsd3.1)
Is /export a separate filesystem on your server? If not,
on netbsd3.1 I think you may need to have

/ -maproot:root:wheel -alldirs sun350.grid.net

Anyway - move sun350/usr to sun350/root/usr to simplify matters.
/export/sun350/root -maproot:root:wheel sun350.grid.net
From the sun3 console, I can see the exported file system but I can't do
anything with it.  Hence my suspicion of file/directory permisions.
It does sound like permissions - on the client can you
create or alter files in /tmp (assuming that has the correct
chmod 1777 on the server). If the server isn't mapping the client
root access as root then it should end up creating files as
nobody in sun350/root/tmp
I also attached my process list:  I think everyting is running that should
be.  I wonder why I have so many nfsd processes running.  If you spot any
other abberations in the process list please point them out.  I'm not expert
on this stuff, and am trying to learn.
That stuff looks fine... there are multiple nfsds to support
concurrency - each one can be handling a separate IO request
from a client
--
David/absolute -- www.NetBSD.org: No hype required --
David Johnson
2009-03-06 03:59:48 UTC
Permalink
I moved all of my various individual exports directories as they were
shown in the NFS Diskless Boot Howto to /export/root as you suggested
in your email:
*WAS IS*
/export/sun350/root /export/sun350/root
/export/sun350/swap (is an 8Mbyte file) --> /export/sun350/root/swap
/export/sun350/usr
/export/sun350/root/usr
/export/sun350/home
/export/sun350/root/home

My etc/exports now looks like this:
#/etc/export
/ -maproot:root:wheel -alldirs sun350.grid.net <---- this
works without complaint from mountd

I can boot diskless to single user mode but I'm still having trouble
getting swap to work. Your comment about /export being a separate file
system on my server raises questions. I simply did a mkdir /export to
create this tree on my server. But what I'm ending up with is
completely different from what the NFS diskless Howto shows for setup.
I'm wondering what happened in my case and why am I ending up so
different from the HOWTO description?

Is anyone else running a similar configuration (netBSD/v3.1 serving
Sun3-50 /4Mbytes running NetBSD v1.6.1)
Post by David Brownlee
I think the problems may be related to permissions. I am able export
root
but that is the only one which behaves properly. I can boot to
single user
mode on the 3/50 and can list my / directory (attached -lF listing
sun350~1.txt). When I try to mount /usr from the Sun350 it says
permission
denied. Neither can I access the swap file remotely.
As an aside, unless you want to share a single exported '/usr'
across multiple client boxes, then it probably makes more
sense to put export/.../usr as export/.../root/usr and
avoid that extra export and mount.
I good few years back I had a single /root mountpoint shared
across multiple machines with a little logic in /etc to
conditionalise config setup based on dhcp hostname, but
that is getting further off topic.
Similarly, mountd complains about my /export/sun350/usr and home
directorys. I have attached a -lF listing of my /export tree for
inspection.
I've tried -alldirs option on all of the various levels of the /export
directory.
/export -alldirs sun350.grid.net
/export/sun350 -alldirs sun350.grid.net
/export/sun350/root sun350.grid.net
/export -alldirs -maproot:0 sun350.grid.net
mountd complains every time with that option (server is running netbsd3.1)
Is /export a separate filesystem on your server? If not,
on netbsd3.1 I think you may need to have
/ -maproot:root:wheel -alldirs sun350.grid.net
Anyway - move sun350/usr to sun350/root/usr to simplify matters.
/export/sun350/root -maproot:root:wheel sun350.grid.net
From the sun3 console, I can see the exported file system but I can't do
anything with it. Hence my suspicion of file/directory permisions.
It does sound like permissions - on the client can you
create or alter files in /tmp (assuming that has the correct
chmod 1777 on the server). If the server isn't mapping the client
root access as root then it should end up creating files as
nobody in sun350/root/tmp
I checked my /sun350/root/tmp and was able to create a file under
/tmp on the client and its owner group were root/wheel and the
file permissions are drwxrwxrwd
Yet when I try executing swapctl -A I get complaints that swap
cant be mounted.. Argh!!!!
Post by David Brownlee
I also attached my process list: I think everyting is running that
should
be. I wonder why I have so many nfsd processes running. If you spot
any
other abberations in the process list please point them out. I'm not
expert
on this stuff, and am trying to learn.
That stuff looks fine... there are multiple nfsds to support
concurrency - each one can be handling a separate IO request
from a client
David Brownlee
2009-03-06 12:50:27 UTC
Permalink
I moved all of my various individual exports directories as they were shown
in the NFS Diskless Boot Howto to /export/root as you suggested in your
*WAS IS*
/export/sun350/root /export/sun350/root
/export/sun350/swap (is an 8Mbyte file) --> /export/sun350/root/swap
/export/sun350/usr
/export/sun350/root/usr
/export/sun350/home
/export/sun350/root/home
#/etc/export
/ -maproot:root:wheel -alldirs sun350.grid.net <---- this works
without complaint from mountd
Now you have your exports like that you should also be able to
mount home and usr as separate filesystems if you want (though
personally I would leave them as they are)
I can boot diskless to single user mode but I'm still having trouble getting
swap to work. Your comment about /export being a separate file system on my
server raises questions. I simply did a mkdir /export to create this tree on
my server. But what I'm ending up with is completely different from what the
NFS diskless Howto shows for setup. I'm wondering what happened in my case
and why am I ending up so different from the HOWTO description?
I suspect part of it could be related to additional checks
that NetBSD added a while back to prevent multiple NFS
exports of the same base filesystem, so /etc/exports configs
that used to work no longer do.

The diskless howto definitely needs some updating.

For the swap file can you try:
- move the swap file to /export/sun350/swap
- create a directory /export/sun350/root/swap
- Try the following in fstab on the client
server:/export/sun350/swap none swap sw,nfsmntpt=/swap

(According to the swapctl manpage that *should* work).
--
David/absolute -- www.NetBSD.org: No hype required --
David Johnson
2009-03-09 00:12:35 UTC
Permalink
I'm not booting to multi-user mode but it's not quite time to ring the
soup bell:

I get two warnings during boot to multi-user mode as follows:
Building databases:
KVM_mkdb: machdep.booted_kernel: the value is not available: no such
file or dir

and the second more troublesome one:
mount_nfs: g21:/export/sun350/swap on /swap not a directory
swapctl: g21:/export/sun350/swap mount failed

/export/sun350/root/etc/fstab has the following line in it for swap:
g21:/export/sun350/swap none swap sw,nfsmntpt=/swap
g21:/export/sun350/root / nfs r,w

Yet, as recommended in the previous e-mail, the directory
/export/sun350/root/swap is really there as well as
/export/sun350/swap this one is a file. I enlarged it to 16 Mbytes

Sun350 appears to basically running though I'm not sure how it manages
to get fully booted in mult-user mode without a swap file. I only have
4Mbytes of memory.
Post by David Brownlee
Post by David Johnson
I moved all of my various individual exports directories as they were
shown in the NFS Diskless Boot Howto to /export/root as you
*WAS IS*
/export/sun350/root
/export/sun350/root
/export/sun350/swap (is an 8Mbyte file) --> /export/sun350/root/swap
/export/sun350/usr /export/sun350/root/usr
/export/sun350/home /export/sun350/root/home
#/etc/export
/ -maproot:root:wheel -alldirs sun350.grid.net <---- this
works without complaint from mountd
Now you have your exports like that you should also be able to
mount home and usr as separate filesystems if you want (though
personally I would leave them as they are)
Post by David Johnson
I can boot diskless to single user mode but I'm still having trouble
getting swap to work. Your comment about /export being a separate
file system on my server raises questions. I simply did a mkdir
/export to create this tree on my server. But what I'm ending up
with is completely different from what the NFS diskless Howto shows
for setup. I'm wondering what happened in my case and why am I
ending up so different from the HOWTO description?
I suspect part of it could be related to additional checks
that NetBSD added a while back to prevent multiple NFS
exports of the same base filesystem, so /etc/exports configs
that used to work no longer do.
The diskless howto definitely needs some updating.
- move the swap file to /export/sun350/swap
- create a directory /export/sun350/root/swap
- Try the following in fstab on the client
server:/export/sun350/swap none swap sw,nfsmntpt=/swap
(According to the swapctl manpage that *should* work).
David Brownlee
2009-03-09 14:48:53 UTC
Permalink
I'm not booting to multi-user mode but it's not quite time to ring the soup
KVM_mkdb: machdep.booted_kernel: the value is not available: no such file or
dir
Hmm, what is the output of 'sysctl machdep', and can you confirm
that the booted kernel is available as /netbsd in the client's
mounted root filesystem? (I think it pretty much has to be
given your setup?)
mount_nfs: g21:/export/sun350/swap on /swap not a directory
swapctl: g21:/export/sun350/swap mount failed
g21:/export/sun350/swap none swap sw,nfsmntpt=/swap
g21:/export/sun350/root / nfs r,w
Yet, as recommended in the previous e-mail, the directory
/export/sun350/root/swap is really there as well as
/export/sun350/swap this one is a file. I enlarged it to 16 Mbytes
Sun350 appears to basically running though I'm not sure how it manages to get
fully booted in mult-user mode without a swap file. I only have 4Mbytes of
memory.
Thats pretty good going with only 4MB of RAM before framebuffer and
kernel is taken away...

OK, a couple more tests on the client:

a) run 'ls -ld /swap' - can you confirm it sees it as a directory

b) run 'mount g21:/export/sun350/root /swap' - it should mount
another copy of the client's root filesystem on /swap on the
client. Assuming that works just 'umount /swap'.

c) does 'swapctl -A' give the same 'not a directory' error on
the client (or server)
--
David/absolute -- www.NetBSD.org: No hype required --
John Carr
2009-01-26 15:29:49 UTC
Permalink
Post by Izumi Tsutsui
It's appreciated to simply try 5.0_BETA GENERIC kernel on your 3/60.
ftp://ftp.NetBSD.org/pub/NetBSD-daily/netbsd-5/200901210002Z/sun3/
(it will work even on 4.0.1 userland, without full upgrade)
After 4.0, I added bus_dma(9) support to sun3 and made si(4) SCSI
use bus_dma(9) API, but it was only tested on si(4) at at vme
on TME emulating 3/1x0, and AFAIK there is no report about
si(4) at obio on 3/60.
http://mail-index.NetBSD.org/port-sun3/2007/02/oindex.html
(no one has noticed that even 4.0.1 GENERIC didn't boot on 3/60
until you reported it...)
The new kernel boots just fine on the 3/60 and works without issue. I'm
currently running a few bonnie++s in tandem to put it under load to see
if the si(4) to bus_dma(9) is stable on the 3/60. So far it's looking
good!
Izumi Tsutsui
2009-01-29 13:46:18 UTC
Permalink
Post by John Carr
The new kernel boots just fine on the 3/60 and works without issue. I'm
currently running a few bonnie++s in tandem to put it under load to see
if the si(4) to bus_dma(9) is stable on the 3/60. So far it's looking
good!
Thanks.

The major changes on sun3 port after 4.0 is the bus_dma(9) and
device_t/softc (internal structures in device drivers) split,
but it should also be okay since GENERIC just works.

(it means no other port specific changes since 4.0, though :-)
---
Izumi Tsutsui
Loading...