Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Mar 2000 10:32:20 -0500
From:      "J. W. Ballantine" <jwb@homer.att.com>
To:        freebsd-stable@FreeBSD.ORG
Subject:   Re: HEADS UP: 3.x -> 4.0-STABLE upgrade instructions [Failure]
Message-ID:  <200003221532.KAA10998@akiva.homer.att.com>

next in thread | raw e-mail | index | archive | help


Sometime in recorded history Warner Losh wrote:


Let me know if the following doesn't work:
>        To update from 3.x to 4.0 stable
>        --------------------------------
>        cd /usr/src
>        make buildworld
>        cd sbin/mknod
>        make install
>        <follow directions to build/install a kernel>
>        <follow rebuild disk /dev entries above>        [*]
>        reboot
>        <in single user>
>        cd /usr/src
>        make -DNOINFO installworld
>        make installworld
>
>        [*] You may need to switch from wd to ad ala 19991210
>
>        To build a kernel
>        -----------------
>        Update config, genassym and go:
>                cd src/usr.bin/genassym
>                make depend all install
>                cd ../../usr.sbin/config
>                make depend all install
>                cd ../../sys/i386/conf
>                config YOUR_KERNEL_HERE
>                cd ../../compile/YOUR_KERNEL_HERE
>                make depend && make
>                make install
>
>        To rebuild disk /dev entries
>        ----------------------------
>
>        MAKEDEV should be copied from src/etc/MAKEDEV to /dev before
>        starting the following:
>
>                For N in the list of disks
>                        MAKEDEV N                       # eg ad0
>                        for M in the list of slices
>                                MAKEDEV NsMa            # eg ad0s1a
>

So, being the brave (and foolish) soul, I set my cvsup releng tag
to RELENG_4 and cvsup the sources with src-all and cvs-crypto.

I then edit /etc/make.conf to set USA_RESIDENT, cd to /usr/src and
do a make buildworld and it starts:


  --------------------------------------------------------------
  >>> Rebuilding the temporary build tree
  --------------------------------------------------------------
  rm -rf /usr/obj/usr/src/i386
  mkdir -p /usr/obj/usr/src/i386/usr/bin
  mkdir -p /usr/obj/usr/src/i386/usr/lib/compat/aout
  mkdir -p /usr/obj/usr/src/i386/usr/games
  mkdir -p /usr/obj/usr/src/i386/usr/libdata/ldscripts
  mkdir -p /usr/obj/usr/src/i386/usr/libexec/elf
  mkdir -p /usr/obj/usr/src/i386/usr/sbin
  mkdir -p /usr/obj/usr/src/i386/usr/share/misc
  mkdir -p /usr/obj/usr/src/i386/usr/include/arpa
  mkdir -p /usr/obj/usr/src/i386/usr/include/g++/std
  mkdir -p /usr/obj/usr/src/i386/usr/include/objc
  mkdir -p /usr/obj/usr/src/i386/usr/include/protocols
  mkdir -p /usr/obj/usr/src/i386/usr/include/readline
  mkdir -p /usr/obj/usr/src/i386/usr/include/rpc
  mkdir -p /usr/obj/usr/src/i386/usr/include/rpcsvc
  mkdir -p /usr/obj/usr/src/i386/usr/include/openssl
  mkdir -p /usr/obj/usr/src/i386/usr/include/security
  mkdir -p /usr/obj/usr/src/i386/usr/include/ss
  ln -sf /usr/src/sys /usr/obj/usr/src/i386/sys
  
  --------------------------------------------------------------
  >>> stage 1: bootstrap tools
  --------------------------------------------------------------
  
Several hours later (well it is a pentium 90) it ends with:
  
  cc -O -pipe -DLIBWRAP -DLOGIN_ACCESS -I/usr/src/secure/usr.sbin/sshd/../../..
/usr.bin/login   -I/usr/obj/usr/src/i386/usr/include  -
  o sshd sshd.o auth-rhosts.o auth-passwd.o auth-rsa.o auth-rh-rsa.o pty.o 
log-server.o login.o servconf.o serverloop.o login_access.o
    -L/usr/obj/usr/src/secure/usr.sbin/sshd/../../lib/libssh -lssh -lcrypt 
-lcrypto -lutil -lz -lwrap
  gzip -cn /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/sshd.8 > 
sshd.8.gz
  ===> etc
  ===> etc/sendmail
  rm -f freebsd.cf
  (cd /usr/src/etc/sendmail &&  m4 -D_CF_DIR_=/usr/src/etc/sendmail/../../contr
ib/sendmail/cf/ /usr/src/etc/sendmail/../../contrib/sen
  dmail/cf/m4/cf.m4 freebsd.mc) > freebsd.cf
  chmod 444 freebsd.cf
  you have mail in /var/mail/root
  
I then continue on with:
  
  # cd sbin/mknod
  # make install
  install -c -s -o root -g wheel -m 555   mknod /sbin
  install -c -o root -g wheel -m 444 mknod.8.gz  /usr/share/man/man8
  # cd /usr/src/usr.bin/genassym
  # make depend all install
  install -c -s -o root -g wheel -m 555   genassym /usr/bin
  install -c -o root -g wheel -m 444 genassym.8.gz  /usr/share/man/man8
  # cd ../../usr.sbin/config
  # make depend all install
  install -c -s -o root -g wheel -m 555   config /usr/sbin
  install -c -o root -g wheel -m 444 config.8.gz  /usr/share/man/man8
  # cd ../../sys/i386/conf
  # config GENERIC
  /usr/libexec/ld-elf.so.1: Shared object "libc.so.4" not found
  
Ah ha, the famous "libc.so.4" not found error, quick check the
 archives and find I need to set LD_LIBRARY_PATH to point to
  /usr/obj/usr/src/lib/libc
I do this and start from that point in the instructions:
  
  # cd /usr/src/sys/i386/conf
  # config GENERIC
  Don't forget to do a ``make depend''
  Kernel build directory is ../../compile/GENERIC
  # cd ../../compile/GENERIC
  # make depend && make
  cc -c -O -Wreturn-type -Wcomment -Wredundant-decls -Wimplicit  
-Wnested-externs -Wstrict-prototypes -Wmissing-prototypes  -Wpointer-
  arith -Winline -Wuninitialized -Wformat -Wunused  -fformat-extensions -ansi  
-nostdinc -I- -I. -I../.. -I../../../include  -D_KERNEL
   -include opt_global.h -elf  ../../i386/i386/genassym.c
  genassym genassym.o >assym.s
  rm -f param.c
  
And a couple of hours later:
  
  sh ../../conf/newvers.sh GENERIC 
  cc -c -O -Wreturn-type -Wcomment -Wredundant-decls -Wimplicit  
-Wnested-externs -Wstrict-prototypes -Wmissing-prototypes  -Wpointer-
  arith -Winline -Wuninitialized -Wformat -Wunused  -fformat-extensions -ansi  
-nostdinc -I- -I. -I../.. -I../../../include  -D_KERNEL
   -include opt_global.h -elf   vers.c
  linking kernel
     text    data     bss     dec     hex filename
  2174751  142284  123136 2440171  253beb kernel
  
At this point I feel really brave and:
  
  #  make install
  chflags noschg /kernel
  mv /kernel /kernel.old
  install -c -m 555 -o root -g wheel -fschg  kernel /kernel
  
  
Having commited to this point I then:
  
  # cp /usr/src/etc/MAKEDEV .
  # ./MAKEDEV all  

Although this may have been not needed, since I'm using da devices,
   not wd.

I then shutdown now to single user mode, cd to /usr/src and
 do ``make -DNOINFO installworld''.  This starts and continues to /bin/test
 where it fails due to a kernel failure.


When I try to reboot the system, with the RELENG_4 kernel I get:
 / not unmounted cleanly, run fsck and reboot.
I go into single user mode and run fsck ; fsck -p ; fsck /dev/da0s1a
 and a few sync's thrown in just for good luck, but still the same error.
When I try to reboot with kernel.old (3.4-STABLE), it fails.

Other than reinstalling the 3.4-RELEASE binaries, and thoughts on how to
 set / to showin it was unmounted cleanly??

thanks for any advice or thoughts,

Jim Ballantine











To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200003221532.KAA10998>