Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!bunyip.cc.uq.oz.au!s1.elec.uq.oz.au!clary From: clary@s1.elec.uq.oz.au (Clary Harridge) Newsgroups: comp.os.386bsd.questions Subject: diskless FreeBSD hangup Date: 18 Mar 94 06:48:23 GMT Organization: University of Queensland Lines: 226 Message-ID: <clary.763973303@s1.elec.uq.oz.au> NNTP-Posting-Host: s3.elec.uq.oz.au X-Newsreader: NN version 6.5.0 #2 (NOV) I am having trouble setting up a diskless client using FreeBSD my diskless client boots and then hangs after printing the message biomask 40 ttymask 12 netmask 0 I get the same result with both the pc and sc serial i/o drivers. I have found after halting the kernel with ddb compiled that there are 4 procs running pid proc addr uid ppid pgrp flag stat comm wchan 3 0 0 0 3 1 update update 2 0 0 0 3 1 pagedaemon psleep 1 0 0 0 1 1 swapper netio 0 0 0 0 3 1 swapper sched I can ping the diskless client from my FreeBSD server I can cause panic: init died if I remove /sbin/init on the client. So it seems that process 1 starts reading init but init does not really get going properly. Can anyone suggest what might be wrong here? Details of my diskless setup is as follows ================================================================ <server> spc.pc.elec.uq.oz.au FreeBSD host <client> c1.pc.elec.uq.oz.au diskless client <tftp_root> /tftpboot <client_root> /export/root/c1 <client_swap> /export/swap/c1 <swap_size> 50000 1) Configure a bootp server. c1:\ :ht=ethernet:\ :ha=0000c004271c:\ :sm=255.255.255.0:\ :ip=130.102.180.11:\ :hn:\ :vm=rfc1048:\ :ds=130.102.180.1 130.102.96.1:\ :gw=130.102.180.1:\ :hd=/tftpboot/:\ :bf=/tftpboot/386bsd: 2) Configure a tftp server. on spc.pc.elec.uq.oz.au /etc/inetd.conf contains tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot bootps dgram udp wait root /usr/libexec/bootpd bootpd 3) Build a diskless kernel. machine "i386" # cpu "I386_CPU" cpu "I486_CPU" ident DISKLESS timezone -10 #Eastern Australia, no DST maxusers 10 maxfdescs 2048 #Max file descriptors per process # see ddb / ddbsym manuals options DDB # kernel debugger options INET #InterNETworking options NFS #Network File System # options PCFS #MSDOS File System # options QUOTA #disk quotas options "COMPAT_43" #Compatible with BSD 4.3 # disable UDP checksums options "TCP_COMPAT_42" #TCP/IP compatible with 4.2 options XSERVER #Xserver options UCONSOLE #X Console support options DISKLESS config "386bsd" swap on nfs size 50000 controller isa0 controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr disk fd0 at fdc0 drive 0 disk fd1 at fdc0 drive 1 # old console driver # device pc0 at isa? port "IO_KBD" tty irq 1 vector pcrint # new console driver hangs at scgetc /scintr 15 Mar device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr device npx0 at isa? port "IO_NPX" irq 13 vector npxintr #For high speed serial lines. device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr # device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr # parallel ports # device lpt0 at isa? port "IO_LPT3" tty irq 7 vector lptintr # ethernet #device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr device ed0 at isa? port 0x280 net irq 3 iomem 0xd0000 vector edintr # kernel debugger pseudo-device ddb pseudo-device loop pseudo-device ether pseudo-device log pseudo-device pty 8 pseudo-device speaker pseudo-device swappager pseudo-device vnodepager pseudo-device devpager Install the kernel in /tftpboot and spc:/export/root/c1 4) Create a client root filesystem and swap file on the NFS server. spc:/export/root/c1 # ll total 621 1 drwxrwxr-x 13 root wheel 1024 Mar 18 12:07 . 1 drwxr-xr-x 3 root bin 512 Mar 13 1980 .. 1 -rw-r--r-- 2 root wheel 657 Oct 28 15:00 .cshrc 11 -rwxr-xr-x 1 root wheel 10953 Feb 25 1980 .profile 592 -rwxr-xr-x 1 root wheel 593920 Mar 18 11:01 386bsd 1 drwxr-xr-x 2 root bin 512 Mar 9 1980 bin 4 drwxrwxr-x 3 root wheel 4096 Mar 9 1980 dev 2 drwxrwxr-x 7 root wheel 2048 Mar 18 12:02 etc 1 drwxr-xr-x 2 root wheel 512 Mar 9 1980 fd0 1 drwxr-xr-x 2 root wheel 512 Mar 7 1980 proc 1 drwxrwxr-x 3 root wheel 512 Mar 9 1980 root 1 drwxr-xr-x 2 bin bin 1024 Mar 18 10:18 sbin 1 drwxr-xr-x 2 root wheel 512 Mar 23 1980 swap 1 drwxr-xr-x 2 root wheel 512 Feb 18 1980 tmp 1 drwxrwxr-x 12 root wheel 512 Mar 23 1980 usr 1 drwxrwxr-x 18 root wheel 512 Mar 7 1980 var spc:/export/swap # ll total 2 1 drwxr-xr-x 2 root bin 512 Mar 17 15:32 . 1 drwxr-xr-x 4 bin bin 512 Mar 13 1980 .. 0 -rw-r--r-- 1 root bin 0 Mar 17 15:32 c1 ** spc:/etc # cat exports /export/root/c1 -root=0 c1.pc.elec.uq.oz.au /export/swap -root=0 c1.pc.elec.uq.oz.au /usr -root=0 c1.pc.elec.uq.oz.au ** spc:/export/root/c1/etc # cat fstab spc:/export/root/c1 / nfs rw 0 0 spc:/usr /usr nfs rw 0 0 ** spc:/export/root/c1/etc # cat myname c1.pc.elec.uq.oz.au ** # From: @(#)netstart 5.9 (Berkeley) 3/30/91 routedflags=-q timedflags=NO xntpdflags="NO" ntpdate="NO" rwhod=NO sendmail_flags=NO #kerberos_server=YES nfs_server=YES #name_server=YES #gated=YES ........ ........ ifconfig ed0 inet up $hostname netmask my-netmask # set the address for the loopback interface ifconfig lo0 inet localhost # use loopback, not the wire route add $hostname localhost echo -n ' route' ; route add default -net spc ** spc:/export/root/c1/etc # diff rc /etc/rc 4d3 < echo "starting rc on c1.pc" > /dev/console 64c63 < mount -a -t nonfs --- > mount -a 211d209 < mount -a -t nfs >/dev/null 2>&1 & # XXX shouldn't need background ** 5) Create a diskless configuration file. diskless_cfg -rootfs /export/root/c1 -swap /export/swap/c1 \ -hostname c1.pc.elec.uq.oz.au spc:/export/root/c1 # ll /tftpboot/ total 597 1 drwxr-xr-x 2 root wheel 512 Mar 15 1980 . 1 drwxrwxr-x 29 root wheel 1024 Mar 18 10:01 .. 592 -rwxr-xr-x 1 root wheel 593920 Mar 18 11:01 386bsd 1 -rw-r--r-- 1 root wheel 384 Mar 18 10:46 cfg.130.102.180.11 ** 6) Compile the netboot.com program. spc:/sys/i386/netboot # rcsdiff main.c 82a83,92 > *(p++) = '/'; > *(p++) = 't'; > *(p++) = 'f'; > *(p++) = 't'; > *(p++) = 'p'; > *(p++) = 'b'; > *(p++) = 'o'; > *(p++) = 'o'; > *(p++) = 't'; > *(p++) = '/'; ================================================================ Please email any suggestions. -- regards Dept. of Electrical Engineering, Clary Harridge University of Queensland, QLD, Australia, 4072 Phone: +61-7-365-3636 Fax: +61-7-365-4999 INTERNET: clary@s1.elec.uq.oz.au