Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Aug 2001 12:19:32 -0700 (PDT)
From:      Rob Mallory <rmallory@ensemble.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/29680: picobsd in -current needs mdconfig
Message-ID:  <200108131919.f7DJJW454033@freefall.freebsd.org>

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

>Number:         29680
>Category:       misc
>Synopsis:       picobsd in -current needs mdconfig
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 13 12:20:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Rob Mallory
>Release:        5.0-current
>Organization:
E
>Environment:
5.0-current Aug 2001

>Description:
/src/release/picobsd/build/Makefile.conf needs $COMPILE  to ref $ARCH/compile, and there is quite a bit of work to UNBLOAT the kernel,
but here is the basic patch to fix up the picobsd script to use mdconfig
instead of deprecated vnconfig.

*** picobsd	Thu Jun 21 08:49:46 2001
--- picobsd_mdconfig	Tue Jul 24 20:10:46 2001
***************
*** 77,87 ****
      SITE=${SITE:-}
      FLOPPY_SIZE=${FLOPPY_SIZE:-1440}
  
-     NO_DEVFS=yes # DEVFS is currently broken. Always set this.
- 
      # Find a suitable vnode
!     VNUM=`mount | awk "/vn/ { num++ } END { printf \"%d\", num }"`
!     log "---> Using vn${VNUM}..."
  
      # Location of the boot blocks (in case you want them custom-built)
      boot1=/boot/boot1
--- 77,85 ----
      SITE=${SITE:-}
      FLOPPY_SIZE=${FLOPPY_SIZE:-1440}
  
      # Find a suitable vnode
!     VNUM=`mount | awk "/md/ { num++ } END { printf \"%d\", num }"`
!     log "---> Using ${VNUM}..."
  
      # Location of the boot blocks (in case you want them custom-built)
      boot1=/boot/boot1
***************
*** 365,371 ****
      log "---> Preparing kernel \"$name\" in $MY_TREE"
      (cd $MY_TREE; export name SRC CONFIG # used in this makefile ;
  	make -v -f ${PICO_TREE}/build/Makefile.conf )
!     cp -p ${SRC}/sys/compile/PICOBSD-${name}/kernel ${BUILDDIR}/kernel || \
  	fail $? missing_kernel
      (cd ${BUILDDIR};
      strip kernel
--- 363,369 ----
      log "---> Preparing kernel \"$name\" in $MY_TREE"
      (cd $MY_TREE; export name SRC CONFIG # used in this makefile ;
  	make -v -f ${PICO_TREE}/build/Makefile.conf )
!     cp -p ${SRC}/sys/i386/compile/PICOBSD-${name}/kernel ${BUILDDIR}/kernel || \
  	fail $? missing_kernel
      (cd ${BUILDDIR};
      strip kernel
***************
*** 445,457 ****
      # installed so you have more space on the disk...
      # For small image sizes, use std disktypes
      if [ ${MFS_SIZE} -lt 1024 ] ; then
! 	disklabel -rw vn${VNUM} fd${MFS_SIZE} || fail $? mfs_disklabel
      else
! 	disklabel -rw vn${VNUM} auto || fail $? mfs_disklabel
      fi
!     newfs -i ${MFS_INODES} -m 0 -p 0 -o space /dev/rvn${VNUM}c > /dev/null
!     mount /dev/vn${VNUM}c ${MFS_MOUNTPOINT} || fail $? no_mount
!     log "`df /dev/vn${VNUM}c`"
  }
  
  # Populate the memory filesystem with binaries and non-variable
--- 443,455 ----
      # installed so you have more space on the disk...
      # For small image sizes, use std disktypes
      if [ ${MFS_SIZE} -lt 1024 ] ; then
! 	disklabel -rw md${VNUM} fd${MFS_SIZE} || fail $? mfs_disklabel
      else
! 	disklabel -rw md${VNUM} auto || fail $? mfs_disklabel
      fi
!     newfs -i ${MFS_INODES} -m 0 -p 0 -o space /dev/md${VNUM}c > /dev/null
!     mount /dev/md${VNUM}c ${MFS_MOUNTPOINT} || fail $? no_mount
!     log "`df /dev/md${VNUM}c`"
  }
  
  # Populate the memory filesystem with binaries and non-variable
***************
*** 480,490 ****
      ln -s /dev/null ${MFS_MOUNTPOINT}/var/run/log
      ln -s /etc/termcap ${MFS_MOUNTPOINT}/usr/share/misc/termcap
  
-     if [ "${NO_DEVFS}" != "" ] ; then
- 	(cd ${MFS_MOUNTPOINT}/dev ; ln -s /dev/MAKEDEV ;
- 	    ./MAKEDEV ${MY_DEVS}; rm MAKEDEV)
-     fi
- 
      (
      cd ${BUILDDIR}/crunch
      log "---> Making and installing crunch1 from `pwd`..."
--- 478,483 ----
***************
*** 530,544 ****
      (log "---> Fixing permissions"; cd ${MFS_MOUNTPOINT}; chown -R root . )
      df -ik ${MFS_MOUNTPOINT}
      umount ${MFS_MOUNTPOINT}
!     fsck -p /dev/rvn${VNUM}c
!     vnconfig -u vn${VNUM}
  }
  
  # free as much as possible from the vnode
  free_vnode() {
      umount ${MFS_MOUNTPOINT}    2> /dev/null || true
!     umount /dev/vn${VNUM}       2> /dev/null || true
!     vnconfig -u vn${VNUM} 2> /dev/null || true
  }
  
  final_cleanup() {
--- 523,537 ----
      (log "---> Fixing permissions"; cd ${MFS_MOUNTPOINT}; chown -R root . )
      df -ik ${MFS_MOUNTPOINT}
      umount ${MFS_MOUNTPOINT}
!     fsck -p /dev/md${VNUM}c
!     mdconfig -a -t vnode -u ${VNUM}
  }
  
  # free as much as possible from the vnode
  free_vnode() {
      umount ${MFS_MOUNTPOINT}    2> /dev/null || true
!     umount /dev/md${VNUM}       2> /dev/null || true
!     mdconfig -d -u ${VNUM} 2> /dev/null || true
  }
  
  final_cleanup() {
***************
*** 555,568 ****
      echo "---> fail: Error <$errno> error code <$errcode>"
      case $errcode in
      no_vnconfig)
! 	echo "Error while doing vnconfig of ${imgname} on /dev/rvn${VNUM}..."
  	echo "   Most probably your running kernel doesn't have the vn(4) device."
  	;;
      mfs_disklabel)
  	echo "Error while labeling ${MFS_NAME} size ${MFS_SIZE}"
  	;;
      no_mount)
! 	echo "Error while mounting ${MFS_NAME} (/dev/vn${VNUM}c) on ${MFS_MOUNTPOINT}"
  	;;
      mtree)
  	echo "Error while making hierarchy in ${MFS_MOUNTPOINT}"
--- 548,561 ----
      echo "---> fail: Error <$errno> error code <$errcode>"
      case $errcode in
      no_vnconfig)
! 	echo "Error while doing vnconfig of ${imgname} on /dev/md${VNUM}..."
  	echo "   Most probably your running kernel doesn't have the vn(4) device."
  	;;
      mfs_disklabel)
  	echo "Error while labeling ${MFS_NAME} size ${MFS_SIZE}"
  	;;
      no_mount)
! 	echo "Error while mounting ${MFS_NAME} (/dev/md${VNUM}c) on ${MFS_MOUNTPOINT}"
  	;;
      mtree)
  	echo "Error while making hierarchy in ${MFS_MOUNTPOINT}"
***************
*** 599,605 ****
      dd if=/dev/zero of=${imgname} count=${imgsize} bs=1k 2> /dev/null
      dd if=${boot1}  of=${imgname} conv=notrunc 2> /dev/null
  
!     vnconfig -c -s labels vn${VNUM} ${imgname} || fail $? no_vnconfig
  }
  
  
--- 592,598 ----
      dd if=/dev/zero of=${imgname} count=${imgsize} bs=1k 2> /dev/null
      dd if=${boot1}  of=${imgname} conv=notrunc 2> /dev/null
  
!     mdconfig -a -t vnode -u ${VNUM} -f ${imgname} || fail $? no_vnconfig
  }
  
  
***************
*** 619,630 ****
      log "---> Labeling floppy image"
      b2=${BUILDDIR}/boot2 # modified boot2
      perl -pne 's/\/boot\/loader/\/kernel\0\0\0\0\0/' ${boot2} > ${b2}
!     disklabel -Brw -b ${boot1} -s ${b2} vn${VNUM} fd${FLOPPY_SIZE} || \
  	fail $?  floppy_disklabel
  
!     newfs -i ${FLOPPY_INODES} -m 0 -p 0 -o space /dev/vn${VNUM}c > /dev/null
  
!     mount /dev/vn${VNUM}c ${MFS_MOUNTPOINT}
  
      # preload kernel, compress with kgzip and copy to floppy image
      (
--- 612,623 ----
      log "---> Labeling floppy image"
      b2=${BUILDDIR}/boot2 # modified boot2
      perl -pne 's/\/boot\/loader/\/kernel\0\0\0\0\0/' ${boot2} > ${b2}
!     disklabel -Brw -b ${boot1} -s ${b2} md${VNUM} fd${FLOPPY_SIZE} || \
  	fail $?  floppy_disklabel
  
!     newfs -i ${FLOPPY_INODES} -m 0 -p 0 -o space /dev/md${VNUM}c > /dev/null
  
!     mount /dev/md${VNUM}c ${MFS_MOUNTPOINT}
  
      # preload kernel, compress with kgzip and copy to floppy image
      (

>How-To-Repeat:
(cd /src/release/picobsd/build; ./picobsd) in -current
>Fix:

Hopefully the patch above will provoke a few people into fixing the rest of the broken things related to picobsd in -current.  
Commiting this patch sooner rather than later would be _nice_,
since I always like to base my firewall-floppy off of -current.


>Release-Note:
>Audit-Trail:
>Unformatted:

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




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