mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-14 10:09:48 +00:00
Additional cleanup of the picobsd scripts.
Also bump Version to 0.445
This commit is contained in:
parent
279fdba6f6
commit
0b86462de0
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=50205
@ -1 +1 @@
|
||||
VER=0.44
|
||||
VER=0.445
|
||||
|
@ -1,11 +1,10 @@
|
||||
# $Id: Makefile,v 1.4 1999/01/14 23:20:09 abial Exp $
|
||||
# $Id: Makefile.conf,v 1.1 1999/08/22 21:42:29 dwhite Exp $
|
||||
#
|
||||
# Makefile for building PICOBSD kernels
|
||||
|
||||
SRC?=/usr/src
|
||||
CONF?=$(SRC)/sys/i386/conf
|
||||
|
||||
#CONFFILE=PICOBSD${suffix}.${SIZE}
|
||||
CONFFILE=PICOBSD${suffix}
|
||||
COMPILE=$(SRC)/sys/compile/$(CONFFILE)
|
||||
KERNFILE=$(COMPILE)/kernel
|
||||
@ -15,7 +14,6 @@ all: $(KERNFILE)
|
||||
$(KERNFILE): PICOBSD
|
||||
cat PICOBSD | grep -v "MFS_ROOT" > ${CONF}/${CONFFILE}
|
||||
echo "options MFS_ROOT" >> ${CONF}/${CONFFILE}
|
||||
# echo "options MFS_ROOT_SIZE=${SIZE}" >> ${CONF}/${CONFFILE}
|
||||
(cd ${CONF}; \
|
||||
config ${CONFFILE}; \
|
||||
cd ${COMPILE}; \
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/sh -
|
||||
|
||||
#
|
||||
# $Id: build,v 1.12.2.1 1999/02/22 21:25:15 abial Exp $
|
||||
# $Id: build,v 1.14 1999/08/22 21:42:30 dwhite Exp $
|
||||
#
|
||||
# You can set the SRC variable which points to your source tree. It's
|
||||
# /usr/src by default (most people shouldn't change it).
|
||||
@ -15,8 +15,6 @@ SRC=/usr/src
|
||||
EDITOR=${EDITOR:-vi}
|
||||
# LANGUAGE language to be used (en or pl)
|
||||
LANGUAGE=en
|
||||
# TYPE PicoBSD type (isp, router, net, custom)
|
||||
TYPE=${1:-dial}
|
||||
# SITE site-specific files
|
||||
SITE=
|
||||
|
||||
@ -33,11 +31,11 @@ RISU=.build.reply
|
||||
# abort in case of error...
|
||||
set -e
|
||||
|
||||
# Build kernel with previously set parameters.
|
||||
. ../Version
|
||||
|
||||
# assign default values to variables.
|
||||
|
||||
set_defaults() {
|
||||
TYPE=${TYPE:-dial} # PicoBSD type (isp, router, net, custom, ...
|
||||
|
||||
while read name suff sz init mfs_in floppy_in ; do
|
||||
if [ "$name" != "#" -a $name != "" ] ; then
|
||||
@ -94,7 +92,7 @@ main() {
|
||||
(cd ../${TYPE}; make -f ../build/Makefile.conf )
|
||||
echo ""
|
||||
|
||||
./stage1
|
||||
./stage1 2>&1 | tee stage1.out
|
||||
if [ "X$?" != "X0" ] ; then
|
||||
echo ""
|
||||
echo "-> ERROR in \"${i}\" script. Aborting the build process."
|
||||
@ -161,16 +159,8 @@ set_type() {
|
||||
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# Main entry of the script
|
||||
|
||||
set_defaults
|
||||
set_type
|
||||
|
||||
# If $1="package", it creates a neat set of floppies
|
||||
|
||||
if [ X"$1" = X"package" ] ; then
|
||||
shift
|
||||
build_package() {
|
||||
touch build.status
|
||||
echo "##############################################" >>build.status
|
||||
echo "## `date` ">>build.status
|
||||
@ -195,121 +185,186 @@ if [ X"$1" = X"package" ] ; then
|
||||
done
|
||||
done
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
# Set build parameters interactively
|
||||
|
||||
while [ "X${ans}" != "Xn" ] ; do
|
||||
main_dialog() {
|
||||
while [ true ] ; do
|
||||
set_msgs
|
||||
dialog --menu "PicoBSD build menu -- ver 0.44 (20aug1999)" 19 70 12 \
|
||||
1 "${MSG1}" \
|
||||
a "init type: ${INIT}" \
|
||||
e "edit kernel config file for ${TYPE}" \
|
||||
c "edit crunch.conf file for ${TYPE}" \
|
||||
2 "MFS size: ${SIZE}kB" \
|
||||
3 "Language: ${LANGUAGE}" \
|
||||
4 "Site-info: ${SITE}" \
|
||||
5 "Floppy size: ${FLOPPY_SIZE}kB" \
|
||||
6 "MFS bytes per inode: ${MFS_INODES}" \
|
||||
7 "UFS bytes per inode: ${FLOPPY_INODES}" \
|
||||
n "no change, build it" q "quit" 2> ${RISU}
|
||||
dialog --menu "PicoBSD build menu -- ver ${VER} (22aug1999)" 19 70 12 \
|
||||
N "No change, build it" \
|
||||
T "${MSG1}" \
|
||||
K "edit Kernel config file for ${TYPE}" \
|
||||
E "Edit crunch.conf file for ${TYPE}" \
|
||||
S "MFS Size: ${SIZE}kB" \
|
||||
L "Language: ${LANGUAGE}" \
|
||||
I "Init type: ${INIT}" \
|
||||
F "Floppy size: ${FLOPPY_SIZE}kB" \
|
||||
M "MFS bytes per inode: ${MFS_INODES}" \
|
||||
U "UFS bytes per inode: ${FLOPPY_INODES}" \
|
||||
$ "Site-info: ${SITE}" \
|
||||
Q "Quit" \
|
||||
2> ${RISU}
|
||||
ans=`cat ${RISU}`
|
||||
rm ${RISU}
|
||||
case ${ans} in
|
||||
1)
|
||||
T)
|
||||
dialog --menu "Setup the type of configuration" 12 70 5 \
|
||||
dial "dialin (ppp etc.)" \
|
||||
router "router/bridge/mrouter" \
|
||||
net "net admin tool" \
|
||||
isp "isp (ppp and terminal server)" \
|
||||
custom "custom config (need pathname)" 2> ${RISU}
|
||||
if [ $? = 0 ]; then
|
||||
custom "custom config (need pathname)" 2> ${RISU} || rm ${RISU}
|
||||
if [ -f ${RISU} ] ; then
|
||||
TYPE=`cat ${RISU}`
|
||||
set_type
|
||||
fi
|
||||
;;
|
||||
a)
|
||||
I)
|
||||
dialog --menu "Choose your init(8) program" \
|
||||
10 70 2 init "Standard init (requires getty)" \
|
||||
oinit "small init from TinyWare" 2> ${RISU}
|
||||
if [ "$?" = "0" ]; then
|
||||
oinit "small init from TinyWare" 2> ${RISU} || rm ${RISU}
|
||||
if [ -f ${RISU} ] ; then
|
||||
INIT=`cat ${RISU}`
|
||||
fi
|
||||
;;
|
||||
|
||||
e) ${EDITOR} ../${TYPE}/PICOBSD ;;
|
||||
c) ${EDITOR} ../${TYPE}/crunch1/crunch.conf ;;
|
||||
2) dialog --title "MFS Size setup" --inputbox \
|
||||
K) ${EDITOR} ../${TYPE}/PICOBSD ;;
|
||||
|
||||
E) ${EDITOR} ../${TYPE}/crunch1/crunch.conf ;;
|
||||
|
||||
S)
|
||||
dialog --title "MFS Size setup" --inputbox \
|
||||
"MFS size depends on what you need to put on the MFS image. Typically \
|
||||
ranges between 800kB (for very small bridge/router images) to \
|
||||
ranges between 820kB (for very small bridge/router images) to \
|
||||
as much as 2500kB kB for a densely packed image. \
|
||||
Keep in mind that this memory is \
|
||||
totally lost to other programs. Usually you want to keep \
|
||||
this as small as possible. " 10 70 2> ${RISU}
|
||||
SIZE=`cat ${RISU}`
|
||||
if [ "X${SIZE}" = "X" ] ; then
|
||||
eval SIZE=${TYPE}_DFLT_SIZE
|
||||
this as small as possible. " 10 70 2> ${RISU} || rm ${RISU}
|
||||
if [ -f ${RISU} ] ; then
|
||||
SIZE=`cat ${RISU}`
|
||||
if [ "${SIZE}" = "" ] ; then
|
||||
eval SIZE=$"${TYPE}_DFLT_SIZE"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
3) dialog --menu "Please choose language" \
|
||||
10 40 2 en English pl Polish 2> ${RISU}
|
||||
LANGUAGE=`cat ${RISU}`
|
||||
|
||||
L)
|
||||
dialog --menu "Please choose language" \
|
||||
10 40 2 en English pl Polish 2> ${RISU} || rm ${RISU}
|
||||
if [ -f ${RISU} ] ; then
|
||||
LANGUAGE=`cat ${RISU}`
|
||||
fi
|
||||
;;
|
||||
4) dialog --title "Site info setup" --inputbox \
|
||||
|
||||
\$)
|
||||
dialog --title "Site info setup" --inputbox \
|
||||
"Please enter the full path to the directory \
|
||||
containing site-specific setup. \
|
||||
This directory tree must contain files that replace \
|
||||
standard ones in floppy.tree/ and mfs.tree/ . " \
|
||||
10 70 2> ${RISU}
|
||||
SITE=`cat ${RISU}`
|
||||
10 70 2> ${RISU} || rm ${RISU}
|
||||
if [ -f ${RISU} ] ; then
|
||||
SITE=`cat ${RISU}`
|
||||
fi
|
||||
;;
|
||||
5) dialog --menu "Set floppy size" 15 70 4 \
|
||||
|
||||
F)
|
||||
dialog --menu "Set floppy size" 15 70 4 \
|
||||
1440 "1.44MB" 1720 "1.72MB" \
|
||||
2880 "2.88MB" 4096 "4MB" 2> ${RISU}
|
||||
FLOPPY_SIZE=`cat ${RISU}`
|
||||
2880 "2.88MB" 4096 "4MB" 2> ${RISU} || rm ${RISU}
|
||||
if [ -f ${RISU} ] ; then
|
||||
FLOPPY_SIZE=`cat ${RISU}`
|
||||
fi
|
||||
;;
|
||||
6) dialog --title "MFS bytes per inode:" --inputbox \
|
||||
|
||||
M)
|
||||
dialog --title "MFS bytes per inode:" --inputbox \
|
||||
"Enter MFS bytes per inode (typically 4096..65536). \
|
||||
A larger value means fewer inodes but more space on MFS" \
|
||||
10 70 2> ${RISU}
|
||||
MFS_INODES=`cat ${RISU}`
|
||||
10 70 2> ${RISU} || rm ${RISU}
|
||||
if [ -f ${RISU} ] ; then
|
||||
MFS_INODES=`cat ${RISU}`
|
||||
if [ "${MFS_INODES}" = "" ] ; then
|
||||
eval MFS_INODES=$"${TYPE}_DFLT_MFS_INODES"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
7) dialog --title "Floppy bytes per inode:" --inputbox \
|
||||
|
||||
U)
|
||||
dialog --title "Floppy bytes per inode:" --inputbox \
|
||||
"Enter floppy bytes per inode (typically 3072..65536). \
|
||||
A larger value means fewer inodes but more space on the floppy." \
|
||||
10 70 2> ${RISU}
|
||||
FLOPPY_INODES=`cat ${RISU}`
|
||||
10 70 2> ${RISU} || rm ${RISU}
|
||||
if [ -f ${RISU} ] ; then
|
||||
FLOPPY_INODES=`cat ${RISU}`
|
||||
if [ "${FLOPPY_INODES}" = "" ] ; then
|
||||
eval FLOPPY_INODES=$"${TYPE}_DFLT_FLOPPY_INODES"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
n) ;;
|
||||
q) exit 0 ;;
|
||||
*) echo "Unknown option \"${ans}\". Try again."
|
||||
|
||||
N) break 2
|
||||
;;
|
||||
|
||||
Q) exit 0 ;;
|
||||
|
||||
*) echo "Unknown option \"${ans}\". Try again."
|
||||
sleep 2
|
||||
clear
|
||||
;;
|
||||
esac
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
# Call the build procedure
|
||||
main
|
||||
# Install if it's ok.
|
||||
echo ""
|
||||
if [ "X$?" = "X0" ] ; then
|
||||
FILENAME=picobsd.bin
|
||||
echo "The build process was completed successfuly."
|
||||
echo ""
|
||||
echo "Now we are going to install the image on the floppy."
|
||||
echo "Please insert a blank floppy in /dev/fd0."
|
||||
echo "WARNING: the contents of the floppy will be permanently erased!"
|
||||
echo "Your options:"
|
||||
echo " * ^C to abort,"
|
||||
echo " * Enter to install \"${FILENAME}\","
|
||||
echo " * name of other file to install."
|
||||
echo ""
|
||||
read -p "Your choice: " junk
|
||||
if [ "X${junk}" != "X" ] ; then
|
||||
FILENAME=${junk}
|
||||
# Install image
|
||||
do_install() {
|
||||
dialog --title "Build ${TYPE} completed" --inputbox \
|
||||
"\nThe build process was completed successfuly.\n\
|
||||
Now we are going to install the image on the floppy.\n\
|
||||
Please insert a blank floppy in /dev/fd0.\\n
|
||||
WARNING: the contents of the floppy will be permanently erased!\n\
|
||||
\n\
|
||||
Your options:\n\
|
||||
* ^C or [Cancel] to abort,\n\
|
||||
* Enter to install \"${FILENAME}\",\n\
|
||||
* name of other file to install.\n\
|
||||
" 20 70 2> ${RISU}
|
||||
if [ "$?" = "0" ]; then
|
||||
FILENAME=`cat ${RISU}`
|
||||
if [ "${FILENAME}" = "" ] ; then
|
||||
FILENAME=picobsd.bin
|
||||
fi
|
||||
echo "Writing ${FILENAME}..."
|
||||
dd if=${FILENAME} of=/dev/rfd0
|
||||
else
|
||||
echo "Ok, the image is in picobsd.bin"
|
||||
fi
|
||||
echo "Writing ${FILENAME}..."
|
||||
dd if=${FILENAME} of=/dev/rfd0
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# Main entry of the script
|
||||
|
||||
interactive="YES"
|
||||
if [ "$1" = "-n" ] ; then
|
||||
interactive="NO"
|
||||
shift
|
||||
fi
|
||||
TYPE=$1
|
||||
set_defaults
|
||||
set_type
|
||||
|
||||
# If $1="package", it creates a neat set of floppies
|
||||
|
||||
if [ "$1" = "package" ] ; then
|
||||
build_package
|
||||
fi
|
||||
if [ "$interactive" = "YES" ] ; then
|
||||
main_dialog
|
||||
fi
|
||||
main # build ${TYPE}
|
||||
do_install
|
||||
exit 0
|
||||
|
@ -1,50 +1,43 @@
|
||||
#! /bin/sh -
|
||||
|
||||
#
|
||||
# $Id: clean,v 1.7.2.1 1999/02/05 12:15:00 abial Exp $
|
||||
# $Id: clean,v 1.9 1999/08/22 21:42:30 dwhite Exp $
|
||||
#
|
||||
set -e
|
||||
|
||||
if [ $# -lt 1 ]
|
||||
then
|
||||
echo "What to clean? Possible targets are 'dial', 'net', 'isp', 'router' or 'all'"
|
||||
exit 1
|
||||
TARGETS="dial net isp router"
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "What to clean? Possible targets are ${TARGETS} or 'all'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "all" ]
|
||||
then
|
||||
list="dial net isp router"
|
||||
if [ -f picobsd.bin ]
|
||||
then
|
||||
mv -f picobsd.bin picobsd.bin.old
|
||||
fi
|
||||
if [ "$1" = "all" ]; then
|
||||
list=${TARGETS}
|
||||
old="old"
|
||||
else
|
||||
list=$1
|
||||
if [ -f picobsd.bin ]
|
||||
then
|
||||
mv -f picobsd.bin picobsd.bin.$1
|
||||
fi
|
||||
list=$1
|
||||
old=$1
|
||||
fi
|
||||
if [ -f picobsd.bin ]; then
|
||||
mv -f picobsd.bin picobsd.bin.${old}
|
||||
fi
|
||||
|
||||
rm -f kernel kernel.kz fs.PICOBSD *.o *core *.db
|
||||
rm -f kernel kernel.gz fs.PICOBSD *.o *core *.db \
|
||||
.build.reply stage1.out build.status
|
||||
cd ..
|
||||
rm -rf help/tmp_hlp
|
||||
echo "===================== $0 tools started ===================="
|
||||
for i in `ls -d tinyware/[a-z]*` tools/write_mfs_in_kernel
|
||||
do
|
||||
for i in `ls -d tinyware/[a-z]*` tools/write_mfs_in_kernel ; do
|
||||
(cd ${i}; \
|
||||
if [ -f Makefile ]; \
|
||||
then \
|
||||
make clean && make cleandepend;\
|
||||
if [ -f Makefile ]; then \
|
||||
make clean && make cleandepend;\
|
||||
fi)
|
||||
done
|
||||
for j in $list
|
||||
do
|
||||
for j in $list ; do
|
||||
echo "===================== $0 $j started ======================"
|
||||
(cd ${j}/crunch1; \
|
||||
if [ -f Makefile ]; \
|
||||
then \
|
||||
make clean ; \
|
||||
if [ -f Makefile ]; then \
|
||||
make clean ; \
|
||||
fi)
|
||||
echo "=============== $0 $j completed successfuly =============="
|
||||
done
|
||||
|
@ -1,6 +1,6 @@
|
||||
#! /bin/sh -
|
||||
|
||||
# $Id$
|
||||
# $Id: stage1,v 1.9 1999/08/22 21:42:32 dwhite Exp $
|
||||
#
|
||||
# stage1 -- this script fills the mfs for the picobsd kernel
|
||||
|
||||
@ -8,8 +8,9 @@
|
||||
|
||||
set -e # abort in case of untested errors
|
||||
|
||||
MFS_NAME=fs.PICOBSD
|
||||
# fail errno errcode
|
||||
# is the function used to trap errors and print msgs
|
||||
# This function is used to trap errors and print msgs
|
||||
#
|
||||
fail() {
|
||||
errno=$1
|
||||
@ -17,14 +18,14 @@ fail() {
|
||||
echo "--> Error $errno code $errcode"
|
||||
case $errcode in
|
||||
no_vnconfig)
|
||||
echo "Error while doing vnconfig of fs.PICOBSD on /dev/rvn0..."
|
||||
echo "Error while doing vnconfig of ${MFS_NAME} on /dev/rvn0..."
|
||||
echo " Most probably your running kernel doesn't have the vn(4) device."
|
||||
;;
|
||||
disklabel)
|
||||
echo "Error while labeling fs.PICOBSD size $SIZE"
|
||||
echo "Error while labeling ${MFS_NAME} size $SIZE"
|
||||
;;
|
||||
no_mount)
|
||||
echo "Error while mounting fs.PICOBSD (/dev/vn0c) on /mnt"
|
||||
echo "Error while mounting ${MFS_NAME} (/dev/vn0c) on /mnt"
|
||||
;;
|
||||
mtree)
|
||||
echo "Error while making hierarchy in /mnt"
|
||||
@ -41,25 +42,33 @@ fail() {
|
||||
disklabel)
|
||||
echo "Error while doing disklabel on of floppy.img size $FLOPPY_SIZE"
|
||||
;;
|
||||
kernel_compress)
|
||||
echo "Error while copying compressed kernel to disk"
|
||||
;;
|
||||
mfs_compress)
|
||||
echo "Error while copying compressed mfs image to disk"
|
||||
;;
|
||||
missing_kernel)
|
||||
echo "-> ERROR: you must build PICOBSD${suffix} kernel first"
|
||||
;;
|
||||
esac
|
||||
echo "-> Aborting $0"
|
||||
exit 10
|
||||
}
|
||||
|
||||
|
||||
echo "-> Preparing MFS filesystem..."
|
||||
umount /dev/vn0 2> /dev/null || true
|
||||
umount /mnt 2> /dev/null || true
|
||||
vnconfig -u /dev/rvn0 2> /dev/null || true
|
||||
|
||||
dd of=fs.PICOBSD if=/dev/zero count=${SIZE} bs=1k 2> /dev/null
|
||||
dd of=${MFS_NAME} if=/dev/zero count=${SIZE} bs=1k 2> /dev/null
|
||||
|
||||
awk 'BEGIN {printf "%c%c", 85, 170}' | \
|
||||
dd of=fs.PICOBSD obs=1 seek=510 conv=notrunc 2> /dev/null
|
||||
dd of=${MFS_NAME} obs=1 seek=510 conv=notrunc 2> /dev/null
|
||||
|
||||
vnconfig -s labels -c /dev/rvn0 fs.PICOBSD 2>/dev/null || fail $? no_vnconfig
|
||||
vnconfig -s labels -c /dev/rvn0 ${MFS_NAME} 2>/dev/null || fail $? no_vnconfig
|
||||
|
||||
dd if=/boot/boot1 of=fs.PICOBSD conv=notrunc 2> /dev/null
|
||||
dd if=/boot/boot1 of=${MFS_NAME} conv=notrunc 2> /dev/null
|
||||
|
||||
# This command does weird things on 2.2.x systems.
|
||||
# For small image sizes, use std disktypes
|
||||
@ -69,7 +78,7 @@ else
|
||||
disklabel -rw vn0 auto || fail $? disklabel
|
||||
fi
|
||||
|
||||
newfs -i ${MFS_INODES} -m 0 -p 0 -o space /dev/rvn0c 2>&1 >/dev/null
|
||||
newfs -i ${MFS_INODES} -m 0 -p 0 -o space /dev/rvn0c
|
||||
mount /dev/vn0c /mnt || fail $? no_mount
|
||||
|
||||
pwd=`pwd`
|
||||
@ -78,15 +87,12 @@ echo "-> Populating MFS tree..."
|
||||
cd ../${TYPE}
|
||||
make -f Makefile.mfs || fail $? mtree
|
||||
if [ X"${NO_DEVFS}" != X"" ] ; then
|
||||
make -f Makefile.mfs devnodes || fail $? makedevs
|
||||
make -f Makefile.mfs devnodes || fail $? makedevs
|
||||
fi
|
||||
|
||||
# MY_ETC contains files which override the global config in DEFAULT_ETC
|
||||
|
||||
if [ -f floppy.tree/etc/mfs.rc ] ; then
|
||||
MFS_RC=floppy.tree/etc/mfs.rc
|
||||
else
|
||||
MFS_RC=../floppy.tree/etc/mfs.rc
|
||||
MFS_RC=floppy.tree/etc/mfs.rc
|
||||
if [ ! -f ${MFS_RC} ] ; then # no private version. use generic mfs.rc
|
||||
MFS_RC=../${MFS_RC}
|
||||
fi
|
||||
if [ "${INIT}" = "oinit" ] ; then
|
||||
cat ${MFS_RC} | sed -e "s/@VER@/${VER}/g" > /mnt/etc/oinit.rc
|
||||
@ -126,37 +132,19 @@ cd ${pwd}
|
||||
|
||||
# stage2
|
||||
|
||||
#if [ ! -f ${SRC}/sys/compile/PICOBSD${suffix}.${SIZE}/kernel ]; then
|
||||
# echo "-> ERROR: you must build PICOBSD${suffix}.${SIZE} first"
|
||||
# exit 1
|
||||
#fi
|
||||
if [ ! -f ${SRC}/sys/compile/PICOBSD${suffix}/kernel ]; then
|
||||
echo "-> ERROR: you must build PICOBSD${suffix} first"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "-> Preparing kernel..."
|
||||
cp -p ${SRC}/sys/compile/PICOBSD${suffix}/kernel kernel
|
||||
if [ ! -f kernel ]; then
|
||||
echo "-> ERROR: you must build PICOBSD${suffix} kernel first"
|
||||
exit 1
|
||||
fi
|
||||
cp -p ${SRC}/sys/compile/PICOBSD${suffix}/kernel kernel || \
|
||||
fail $? missing_kernel
|
||||
|
||||
echo "-> Preparing kernel with MFS filesystem inside..."
|
||||
df -ik /mnt
|
||||
umount /mnt 2>&1 >/dev/null
|
||||
umount /mnt
|
||||
fsck -p /dev/rvn0c
|
||||
vnconfig -u /dev/rvn0 2>&1 >/dev/null
|
||||
vnconfig -u /dev/rvn0
|
||||
|
||||
#if [ ! -f ../tools/write_mfs_in_kernel/wmik ]; then
|
||||
# (cd ../tools/write_mfs_in_kernel; make)
|
||||
#fi
|
||||
|
||||
#../tools/write_mfs_in_kernel/wmik kernel fs.PICOBSD
|
||||
strip kernel
|
||||
strip --remove-section=.note --remove-section=.comment kernel
|
||||
gzip -9 -n kernel
|
||||
#rm fs.PICOBSD
|
||||
gzip -9 -v -n kernel
|
||||
|
||||
#---- stage3
|
||||
|
||||
@ -164,77 +152,65 @@ gzip -9 -n kernel
|
||||
# by default we are in /usr/src/release/build
|
||||
#
|
||||
|
||||
if [ ! -f kernel.gz ]; then
|
||||
echo "-> ERROR: you must build kernel.gz first"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "-> Preparing ${FLOPPY_SIZE}kB floppy filesystem..."
|
||||
umount /dev/vn0 2> /dev/null || true
|
||||
umount /mnt 2> /dev/null || true
|
||||
vnconfig -u /dev/rvn0 2> /dev/null || true
|
||||
|
||||
dd of=picobsd.bin if=/dev/zero count=${FLOPPY_SIZE} bs=1k 2> /dev/null
|
||||
dd of=picobsd.bin if=/dev/zero count=${FLOPPY_SIZE} bs=1k
|
||||
|
||||
awk 'BEGIN {printf "%c%c", 85, 170}' | \
|
||||
dd of=picobsd.bin obs=1 seek=510 conv=notrunc 2> /dev/null
|
||||
|
||||
#vnconfig -s labels -c /dev/rvn0 picobsd.bin 2>/dev/null
|
||||
vnconfig -c /dev/rvn0 picobsd.bin 2>/dev/null || fail $? vnconfig2
|
||||
vnconfig -c /dev/rvn0 picobsd.bin || fail $? vnconfig2
|
||||
|
||||
dd if=/boot/boot1 of=picobsd.bin conv=notrunc 2> /dev/null
|
||||
|
||||
# XXX todo: right floppy size!
|
||||
disklabel -Brw -b /boot/boot1 -s /boot/boot2 /dev/rvn0 fd1440 2>&1 >/dev/null || fail $? disklabel
|
||||
disklabel -Brw -b /boot/boot1 -s /boot/boot2 /dev/rvn0 fd1440 || \
|
||||
fail $? disklabel
|
||||
|
||||
newfs -i ${FLOPPY_INODES} -m 0 -p 0 -o space /dev/rvn0c 2>&1 >/dev/null
|
||||
newfs -i ${FLOPPY_INODES} -m 0 -p 0 -o space /dev/rvn0c
|
||||
|
||||
mount /dev/vn0c /mnt
|
||||
|
||||
echo "-> `pwd`: Populating floppy filesystem..."
|
||||
echo "-> Populating floppy filesystem..."
|
||||
|
||||
# copy floppy tree excluding private files.
|
||||
(cd ../floppy.tree ; \
|
||||
tar -cvf - --exclude-from ../${TYPE}/floppy.tree.exclude . ) | \
|
||||
(cd /mnt ; tar xvf - )
|
||||
### copy floppy tree excluding private files.
|
||||
excl=../${TYPE}/floppy.tree.exclude
|
||||
if [ -f ${excl} ] ; then
|
||||
excl="--exclude-from ${excl}"
|
||||
echo "Exclude following files from ${excl}:\n==="
|
||||
cat ${excl}
|
||||
echo "===
|
||||
else
|
||||
excl=""
|
||||
fi
|
||||
(cd ../floppy.tree ; tar -cf - ${excl} . ) | (cd /mnt ; tar xvf - )
|
||||
|
||||
# update with private files
|
||||
if [ -d ../${TYPE}/floppy.tree ] ; then
|
||||
(cd ../${TYPE}/floppy.tree ; tar cvf - . ) | (cd /mnt ; tar xvf - )
|
||||
echo "-> update with private files:"
|
||||
(cd ../${TYPE}/floppy.tree ; tar cf - . ) | (cd /mnt ; tar xvf - )
|
||||
fi
|
||||
|
||||
echo "-> `pwd`: Copying language dependent files..."
|
||||
for i in hosts motd ; do
|
||||
files="hosts motd"
|
||||
echo "-> Copying language dependent files: ${files} -> /mnt/etc ..."
|
||||
for i in ${files} ; do
|
||||
cat ../${TYPE}/lang/${i}.${LANGUAGE} | \
|
||||
sed -e "s/@VER@/${VER}/g" > /mnt/etc/${i}
|
||||
done
|
||||
|
||||
if [ "${TYPE}" = "dial" ] ; then
|
||||
cp -p /mnt/etc/master.passwd .
|
||||
pwd_mkdb -d . master.passwd
|
||||
mv spwd.db /mnt/etc/
|
||||
rm pwd.db master.passwd
|
||||
cp -p /mnt/etc/master.passwd .
|
||||
pwd_mkdb -d . master.passwd
|
||||
mv spwd.db /mnt/etc/
|
||||
rm pwd.db master.passwd
|
||||
fi
|
||||
|
||||
if [ "X$?" != "X0" ] ; then
|
||||
echo "-> ERROR while transferring ../${TYPE}/floppy.tree to /mnt..."
|
||||
echo "-> Aborting $0"
|
||||
exit 10
|
||||
fi
|
||||
cp kernel.gz /mnt/kernel.gz || fail $? kernel_compress
|
||||
|
||||
cp kernel.gz /mnt/kernel.gz
|
||||
if [ "X$?" != "X0" ] ; then
|
||||
echo "-> ERROR while transferring kernel.gz to /mnt..."
|
||||
echo "-> Aborting $0"
|
||||
exit 10
|
||||
fi
|
||||
|
||||
gzip -9cv fs.PICOBSD > /mnt/fs.PICOBSD.gz
|
||||
if [ "X$?" != "X0" ] ; then
|
||||
echo "\-> ERROR transferring MFS to /mnt"
|
||||
echo "-> Aborting $0"
|
||||
exit 10
|
||||
fi
|
||||
gzip -9cv ${MFS_NAME} > /mnt/${MFS_NAME}.gz || fail $? mfs_compress
|
||||
|
||||
mkdir /mnt/boot
|
||||
mkdir /mnt/boot/defaults
|
||||
@ -252,20 +228,18 @@ echo "/boot/loader" >/mnt/boot.config
|
||||
cp ${SRC}/sys/boot/forth/loader.4th /mnt/boot/
|
||||
cp ${SRC}/sys/boot/forth/support.4th /mnt/boot/
|
||||
cp ${SRC}/sys/boot/forth/loader.conf /mnt/boot/defaults
|
||||
echo "userconfig_script_load=\"YES\"">/mnt/boot/loader.conf
|
||||
echo "rootfs_load=\"YES\"" >>/mnt/boot/loader.conf
|
||||
echo "rootfs_name=\"fs.PICOBSD\"" >>/mnt/boot/loader.conf
|
||||
echo "rootfs_type=\"mfs_root\"" >>/mnt/boot/loader.conf
|
||||
for i in frames screen
|
||||
do
|
||||
echo "userconfig_script_load=\"YES\"" >/mnt/boot/loader.conf
|
||||
echo "rootfs_load=\"YES\"" >>/mnt/boot/loader.conf
|
||||
echo "rootfs_name=\"${MFS_NAME}\"" >>/mnt/boot/loader.conf
|
||||
echo "rootfs_type=\"mfs_root\"" >>/mnt/boot/loader.conf
|
||||
for i in frames screen ; do
|
||||
cp ${SRC}/share/examples/bootforth/${i}.4th /mnt/boot/
|
||||
done
|
||||
cp ../forth/loader.rc /mnt/boot/loader.rc
|
||||
cp ../forth/menu.4th /mnt/boot/menu.4th
|
||||
(echo "-> Fixing permissions"; cd /mnt; chown -R root *)
|
||||
rm kernel.gz
|
||||
|
||||
df -ik /mnt
|
||||
|
||||
umount /mnt
|
||||
vnconfig -u /dev/rvn0
|
||||
rm kernel.gz ${MFS_NAME}
|
||||
|
Loading…
Reference in New Issue
Block a user