Re: Upgrade to 5.3-BETA1: make installkernel - Stop in /usr/src/sys/modules

From: Ruslan Ermilov <ru_at_freebsd.org>
Date: Tue, 24 Aug 2004 19:44:42 +0300
On Tue, Aug 24, 2004 at 04:40:58PM +0200, Christian Hiris wrote:
> When i upgraded one of my systems from
> 5.2-CURRENT FreeBSD 5.2-CURRENT #1: Sat May 29 14:14:06 CEST 2004     
> admin_at_matrix010.matrix.net:/usr/obj/usr/src/sys/MATRIX001  i386
> to 
> 5.3-BETA1 FreeBSD 5.3-BETA1 #0: Mon Aug 23 16:30:40 CEST 2004     
> admin_at_matrix010.matrix.net:/usr/obj/usr/src/sys/MATRIX001  i386
> "make installkernel" fails during module installation.  
> 
> The directories /usr/src and /usr/obj were NFS-mounted on this machine.  
> 
We don't, strictly speaking, support this type of installation.
We only support it if build host *exactly* matches the install
host, read: it's the same arch, CPU, and it's running the same
__FreeBSD_version world and kernel.

What happens here is that your build machine has newer make(1)
binary that understand the `+' modifier.  The install machine
has an older make(1).  You can try to overcome this problem
by doing: make installkernel -DALWAYS_CHECK_MAKE, but: no
guarantees it will work (I don't know how different your build
and install hosts are), and you'll have to mount /usr/obj
read-write, for this to work.

> matrix001# cd /usr/src
> matrix001# make installkernel
> --------------------------------------------------------------
> >>> Making hierarchy
> --------------------------------------------------------------
> cd /usr/src;  MAKEOBJDIRPREFIX=/usr/obj  MACHINE_ARCH=i386  MACHINE=i386  
> CPUTYPE=  GROFF_BIN_PATH=/usr/obj/usr/src/i386/legacy/usr/bin  
> GROFF_FONT_PATH=/usr/obj/usr/src/i386/legacy/usr/share/groff_font  
> GROFF_TMAC_PATH=/usr/obj/usr/src/i386/legacy/usr/share/tmac 
> PATH=/usr/obj/usr/src/i386/legacy/usr/sbin:/usr/obj/usr/src/i386/legacy/usr/bin:/usr/obj/usr/src/i386/legacy/usr/games:/usr/obj/usr/src/i386/usr/sbin:/usr/obj/usr/src/i386/usr/bin:/usr/obj/usr/src/i386/usr/games:/sbin:/bin:/usr/sbin:/usr/bin 
> make -f Makefile.inc1 hierarchy
> cd /usr/src/etc;                make distrib-dirs
> mtree -eU  -f /usr/src/etc/mtree/BSD.root.dist -p /
> mtree -eU  -f /usr/src/etc/mtree/BSD.var.dist -p /var
> mtree -eU  -f /usr/src/etc/mtree/BSD.usr.dist -p /usr
> mtree -eU  -f /usr/src/etc/mtree/BSD.include.dist  -p /usr/include
> cd /; rm -f /sys; ln -s usr/src/sys sys
> cd /usr/share/man/en.ISO8859-1; ln -sf ../man* .
> cd /usr/share/man;  set - `grep "^[a-zA-Z]" /usr/src/etc/man.alias`;  while 
> [ $# -gt 0 ] ;  do  rm -rf "$1";  ln -s "$2" "$1";  shift; shift;  done
> cd /usr/share/openssl/man;  set - `grep "^[a-zA-Z]" /usr/src/etc/man.alias`;  
> while [ $# -gt 0 ] ;  do  rm -rf "$1";  ln -s "$2" "$1";  shift; shift;  done
> cd /usr/share/openssl/man/en.ISO8859-1; ln -sf ../man* .
> cd /usr/share/nls;  set - `grep "^[a-zA-Z]" /usr/src/etc/nls.alias`;  while 
> [ $# -gt 0 ] ;  do  rm -rf "$1";  ln -s "$2" "$1";  shift; shift;  done
> 
> --------------------------------------------------------------
> >>> Installing kernel
> --------------------------------------------------------------
> cd /usr/obj/usr/src/sys/MATRIX001;  MAKEOBJDIRPREFIX=/usr/obj  
> MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE=  
> GROFF_BIN_PATH=/usr/obj/usr/src/i386/legacy/usr/bin  
> GROFF_FONT_PATH=/usr/obj/usr/src/i386/legacy/usr/share/groff_font  
> GROFF_TMAC_PATH=/usr/obj/usr/src/i386/legacy/usr/share/tmac 
> PATH=/usr/obj/usr/src/i386/legacy/usr/sbin:/usr/obj/usr/src/i386/legacy/usr/bin:/usr/obj/usr/src/i386/legacy/usr/games:/usr/obj/usr/src/i386/usr/sbin:/usr/obj/usr/src/i386/usr/bin:/usr/obj/usr/src/i386/usr/games:/sbin:/bin:/usr/sbin:/usr/bin  
> make KERNEL=kernel install
> thiskernel=`sysctl -n kern.bootfile` ;  if [ "`dirname 
> "$thiskernel"`" != /boot/kernel ] ; then  chflags -R noschg /boot/kernel ;  
> rm -rf /boot/kernel ;  else  if [ -d /boot/kernel.old ] ; then  chflags -R 
> noschg /boot/kernel.old ;  rm -rf /boot/kernel.old ;  fi ;  
> mv /boot/kernel /boot/kernel.old ;  sysctl 
> kern.bootfile=/boot/kernel.old/"`basename "$thiskernel"`" ;  fi
> mkdir -p /boot/kernel
> install -p -m 555 -o root -g wheel kernel /boot/kernel
> cd /usr/src/sys/modules; 
> MAKEOBJDIRPREFIX=/usr/obj/usr/src/sys/MATRIX001/modules KMODDIR=/boot/kernel 
> MACHINE=i386 KERNBUILDDIR="/usr/obj/usr/src/sys/MATRIX001" make  install
> +for: not found
> *** Error code 127
> 
> Stop in /usr/src/sys/modules.
> *** Error code 1
> 
> Stop in /usr/obj/usr/src/sys/MATRIX001.
> *** Error code 1
> 
> Stop in /usr/src.
> *** Error code 1
> 
> Stop in /usr/src.
> 
> 
[...]

> Kernel and world are in sync, I did a "chflags -R noschg *" and "rm -rf *" 
> in /usr/obj before i did the make buildworld and buildkernel. Yesterday I did 
> an upgrade from the same build on another machine, on which 5.3-BETA1 already 
> was installed - the upgrade went fine without the stop 
> in /usr/src/sys/modules. 
>    
> However, I could fix this by doing a reinstall of /usr/src/usr.bin/make before 
> running the installkernel target. 


Cheers,
-- 
Ruslan Ermilov
ru_at_FreeBSD.org
FreeBSD committer

Received on Tue Aug 24 2004 - 14:44:50 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:08 UTC