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>
