Subject: Son of diskless boot
To: None <port-i386@NetBSD.ORG>
From: maximum entropy <entropy@zippy.bernstein.com>
List: port-i386
Date: 05/23/1997 02:44:00
I'm still working on getting this system to come up cleanly using
netboot.com (the libsa version). If I configure and build a system
and boot it with netboot, the system can't determine its boot device,
hence it can't determine its root device.
At the point where it stops, the kernel prints:
boot device: <unknown>
root device:
I have to manually enter "ep0" at the root device prompt, then it asks
me:
file system (default nfs):
and I tap return. Things then proceed normally.
So as I said the last time I brought this up, I tried the following
config line (and several variations) to explicitly specify where the
root device is:
config netbsd root on ep0 type nfs
But config complains:
tanstaafl# config FOO
FOO85: netbsd says root on ep0, but there's no ep0
*** Stop.
Is there a correct way to do what I mean, or have I encountered a bug
in config?
As a workaround, I manually edited swapnetbsd.c after doing a config:
#include <sys/param.h>
#include <sys/conf.h>
const char *rootspec = "ep0";
dev_t rootdev = NODEV; /* wildcarded */
dev_t dumpdev = NODEV; /* unspecified */
struct swdevt swdevt[] = {
{ NODEV, 0, 0 }, /* unspecified */
{ NODEV, 0, 0 }
};
extern int nfs_mountroot __P((void));
int (*mountroot) __P((void)) = nfs_mountroot;
As you can see, I changed rootspec from NULL to "ep0". With that
minor change, the system boots without manual intervention:
boot device: <unknown>
nfs_boot: using network interface 'ep0'
nfs_boot: client_addr=0xce1453ce
nfs_boot: server_addr=0xce1453c1
nfs_boot: hostname=tanstaafl
I'd like to learn the "real" way to do this, as manually editing
swapnetbsd.c each time is a real pain. Unfortunately NetBSD doesn't
seem to have a chapter in the SMM for config...and the one from the
4.4BSD-Lite is hopelessly out of date.
Can anyone give me a clue?
Thanks,
entropy
p.s.: system is -current, network card is 3c509.
p.p.s.: Here is my config file:
# $NetBSD: GENERIC,v 1.74 1997/03/26 01:16:23 perry Exp $
#
# GENERIC -- everything that's currently supported
#
include "arch/i386/conf/std.i386"
#options I386_CPU # CPU classes; at least one is REQUIRED
options I486_CPU
#options I586_CPU
#options I686_CPU
#options MATH_EMULATE # floating point emulation
options VM86 # Virtual 8086 emulation
# Some BIOSes don't get the size of extended memory right. If you
# have a broken BIOS, uncomment the following and set the value
# properly for your system.
#options BIOSEXTMEM=... # size of extended memory
#options DUMMY_NOPS # speed hack; recommended
options XSERVER,UCONSOLE
options INSECURE # insecure; allow /dev/mem writing for X
maxusers 32 # estimated number of users
options RTC_OFFSET=0 # hardware clock is this many mins. west of GMT
#options NTP # NTP phase/frequency locked loop
options DDB # in-kernel debugger
#makeoptions DEBUG="-g" # compile full symbol table
options DIAGNOSTIC # internal consistency checks
options KTRACE # system call tracing, a la ktrace(1)
options SYSVMSG # System V-like message queues
options SYSVSEM # System V-like semaphores
options SYSVSHM # System V-like memory sharing
#options SHMMAXPGS=1024 # 1024 pages is the default
options COMPAT_NOMID # compatibility with 386BSD, BSDI, NetBSD 0.8,
options COMPAT_09 # NetBSD 0.9,
options COMPAT_10 # NetBSD 1.0,
options COMPAT_11 # NetBSD 1.1,
options COMPAT_12 # NetBSD 1.2,
options COMPAT_43 # and 4.3BSD
options TCP_COMPAT_42 # TCP bug compatibility with 4.2BSD
#options COMPAT_SVR4 # binary compatibility with SVR4
#options COMPAT_IBCS2 # binary compatibility with SCO and ISC
options COMPAT_LINUX # binary compatibility with Linux
options COMPAT_FREEBSD # binary compatibility with FreeBSD
options EXEC_ELF32 # 32-bit ELF executables (SVR4, Linux)
options USER_LDT # user-settable LDT; used by WINE
#options LKM # loadable kernel modules
file-system FFS # UFS
#file-system LFS # log-structured file system
file-system MFS # memory file system
file-system NFS # Network File System client
file-system CD9660 # ISO 9660 + Rock Ridge file system
file-system MSDOSFS # MS-DOS file system
file-system FDESC # /dev/fd
file-system KERNFS # /kern
file-system NULLFS # loopback file system
#file-system PORTAL # portal filesystem (still experimental)
file-system PROCFS # /proc
#file-system UMAPFS # NULLFS + uid and gid remapping
file-system UNION # union file system
#options QUOTA # UFS quotas
options NFSSERVER # Network File System server
options FIFO # FIFOs; RECOMMENDED
#options GATEWAY # packet forwarding
options INET # IP + ICMP + TCP + UDP
#options MROUTING # IP multicast routing
#options NS # XNS
#options NSIP # XNS tunneling over IP
#options ISO,TPIP # OSI
#options EON # OSI tunneling over IP
#options CCITT,LLC,HDLC # X.25
#options PFIL_HOOKS # pfil(9) packet filter hooks
#config netbsd root on ? type ?
config netbsd root on ? type nfs
#options COMCONSOLE=0,CONADDR=0x3f8,CONUNIT=0,CONSPEED=9600
options EISAVERBOSE # verbose EISA device messages
#options PCIVERBOSE # verbose PCI device messages
mainbus0 at root
#pci0 at mainbus0 bus ?
eisa0 at mainbus0
#ppb* at pci? dev ? function ? # PCI-PCI bridges
#pci* at ppb? bus ?
#pchb* at pci? dev ? function ? # PCI-Host bridges
#pcib* at pci? dev ? function ? # PCI-ISA bridges
#isa* at pcib? # ISA on PCI-ISA bridge
isa* at mainbus0 # all other ISA
#apm0 at mainbus0 # Advanced power management
npx0 at isa? port 0xf0 irq 13 # math coprocessor
#pc0 at isa? port 0x60 irq 1 # generic PC console device
vt0 at isa? port 0x60 irq 1
com0 at isa? port 0x3f8 irq 4 # standard PC serial ports
com1 at isa? port 0x2f8 irq 3
com2 at isa? port 0x3e8 irq 5
#com3 at isa? port 0x2e8 irq 9
#ast0 at isa? port 0x1a0 irq 5 # AST 4-port serial cards
#com* at ast? slave ?
#boca0 at isa? port 0x100 irq 5 # BOCA 8-port serial cards
#com* at boca? slave ?
#rtfps0 at isa? port 0x1230 irq 10 # RT 4-port serial cards
#com* at rtfps? slave ?
#cy0 at isa? iomem 0xd4000 irq 12 # Cyclades serial cards
#cy* at pci? dev ? function ? # Cyclades serial cards
lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports
lpt1 at isa? port 0x278
lpt2 at isa? port 0x3bc
lms0 at isa? port 0x23c irq 5 # Logitech bus mouse
lms1 at isa? port 0x238 irq 5
mms0 at isa? port 0x23c irq 5 # Microsoft InPort mouse
mms1 at isa? port 0x238 irq 5
#pms0 at pckbd? irq 12 # PS/2 auxiliary port mouse
#aha0 at isa? port 0x330 irq ? drq ? # Adaptec 154[02] SCSI controllers
#aha1 at isa? port 0x334 irq ? drq ? # Adaptec 154[02] SCSI controllers
#scsibus* at aha?
#ahb* at eisa? slot ? # Adaptec 174[024] SCSI controllers
#scsibus* at ahb?
#ahc0 at isa? port ? irq ? # Adaptec 284x SCSI controllers
ahc* at eisa? slot ? # Adaptec 274x, aic7770 SCSI controllers
#ahc* at pci? dev ? function ? # Adaptec [23]94x, aic78x0 SCSI controllers
scsibus* at ahc?
#aic0 at isa? port 0x340 irq 11 # Adaptec 152[02] SCSI controllers
#scsibus* at aic?
#bha0 at isa? port 0x330 irq ? drq ? # BusLogic [57]4X SCSI controllers
#bha1 at isa? port 0x334 irq ? drq ? # BusLogic [57]4X SCSI controllers
#bha* at eisa? slot ?
#bha* at pci? dev ? function ?
#scsibus* at bha?
#ncr* at pci? dev ? function ? # NCR 538XX SCSI controllers
#scsibus* at ncr?
#sea0 at isa? iomem 0xc8000 irq 5
#scsibus* at sea?
#uha0 at isa? port 0x330 irq ? drq ? # UltraStor [13]4f SCSI controllers
#uha1 at isa? port 0x334 irq ? drq ? # UltraStor [13]4f SCSI controllers
#uha* at eisa? slot ? # UltraStor 24f SCSI controllers
#scsibus* at uha?
#wds0 at isa? port 0x350 irq 15 drq 6 # WD7000 and TMC-7000 controllers
#wds1 at isa? port 0x358 irq 11 drq 5
#scsibus* at wds?
#isp* at pci? dev ? function ? # Qlogic ISP 10x0 SCSI controllers
#scsibus* at isp?
sd* at scsibus? target ? lun ? # SCSI disk drives
st* at scsibus? target ? lun ? # SCSI tape drives
cd* at scsibus? target ? lun ? # SCSI CD-ROM drives
ch* at scsibus? target ? lun ? # SCSI autochangers
ss* at scsibus? target ? lun ? # SCSI scanners
uk* at scsibus? target ? lun ? # SCSI unknown
fdc0 at isa? port 0x3f0 irq 6 drq 2 # standard PC floppy controllers
#fdc1 at isa? port 0x370 irq ? drq ?
fd* at fdc? drive ?
#mcd0 at isa? port 0x300 irq 10 # Mitsumi CD-ROM drives
wdc0 at isa? port 0x1f0 irq 14 # ST506, ESDI, and IDE controllers
wdc1 at isa? port 0x170 irq ?
wd* at wdc? drive ?
# note: the wt driver conflicts unpleasantly with ed devices at the
# same I/O address. The probe reprograms their eeproms. Don't
# uncomment it unless you are actually using it.
#wt0 at isa? port 0x300 irq 5 drq 1 # Archive and Wangtek QIC tape drives
#ed0 at isa? port 0x280 iomem 0xd0000 irq 9 # WD/SMC, 3C503, and NE[12]000
#ed1 at isa? port 0x250 iomem 0xd8000 irq 9 # ethernet cards
#ed2 at isa? port 0x300 iomem 0xcc000 irq 10
#eg0 at isa? ... # 3C505 ethernet cards
#el0 at isa? port 0x300 irq 9 # 3C501 ethernet cards
ep0 at isa? port ? irq ? # 3C509 ethernet cards
#ie0 at isa? port 0x360 iomem 0xd0000 irq 7 # StarLAN and 3C507
#ie1 at isa? port 0x300 irq 10 # EtherExpress
#le0 at isa? port 0x320 irq 10 drq 7 # IsoLan, NE2100, and DEPCA
#ep* at eisa? slot ? # 3C579 ethernet cards
#fea* at eisa? slot ? # DEC DEFEA FDDI cards
#le* at pci? dev ? function ? # PCnet-PCI based ethernet cards
#de* at pci? dev ? function ? # DC21X4X-based ethernet cards
#ep* at pci? dev ? function ? # 3C590 ethernet cards
#fpa* at pci? dev ? function ? # DEC DEFPA FDDI cards
#pss0 at isa? port 0x220 irq 7 drq 6 # Personal Sound System
#sp0 at pss0 port 0x530 irq 10 drq 0 # sound port driver
#sb0 at isa? port 0x220 irq 7 drq 1 # SoundBlaster
#wss0 at isa? port 0x530 irq 10 drq 0 # Windows Sound System
#pas0 at isa? port 0x220 irq 7 drq 1 # ProAudio Spectrum
#gus0 at isa? port 0x220 irq 7 drq 1 flags 6 # Gravis Ultra Sound (flags is record drq for full-duplex)
#spkr0 at pckbd? port 0x61
# Joystick driver. Probe is a little strange; add only if you have one.
#joy0 at isa? port 0x201
# PnP bus and devices should be declared last
#isapnp0 at isa?
#ep* at isapnp?
#sb* at isapnp?
#joy* at isapnp?
include "arch/i386/conf/GENERIC.local"
pseudo-device loop 1 # network loopback
pseudo-device bpfilter 8 # packet filter
pseudo-device sl 2 # CSLIP
pseudo-device ppp 2 # PPP
pseudo-device tun 2 # network tunneling over tty
#pseudo-device ipfilter # ip filter
pseudo-device pty 64 # pseudo-terminals
pseudo-device tb 1 # tablet line discipline
pseudo-device vnd 4 # paging to files
pseudo-device ccd 4 # concatenated disk devices
--
entropy -- it's not just a good idea, it's the second law.