Annotation of coherent/b/kernel/tools/kgen, revision 1.1.1.1

1.1       root        1: # kgen version 1.0.2
                      2: #
                      3: # Copyright 1992, Mark Williams Company
                      4: #
                      5: # Link and patch a kernel with configuration used when COHERENT was installed.
                      6: #
                      7: # Usage:  kgen [new-kernel-name [lib-directory]]
                      8: #
                      9: #   new-kernel-name defaults to "/testcoh"
                     10: #   lib-directory defaults to "/conf"
                     11: 
                     12: #-------------------------------------
                     13: #
                     14: # Initialization.
                     15: #
                     16: TARGET=${1-/testcoh}
                     17: KDIR=${2-/conf}
                     18: 
                     19: #
                     20: # The following files describe the installed configuration.
                     21: #
                     22: PATCHFILE=/conf/gen/patches
                     23: LDKERFILE=/conf/gen/ldker
                     24: KBDFILE=/conf/gen/kbd
                     25: 
                     26: #
                     27: # If no slash in TARGET, prepend one
                     28: #
                     29: if echo $TARGET | grep -v "/" > /dev/null
                     30: then
                     31:        TARGET="/"$TARGET
                     32: fi
                     33: 
                     34: #
                     35: # If TARGET not at root level, abort.
                     36: #
                     37: if echo $TARGET | grep -v "^/.*" > /dev/null
                     38: then
                     39:        echo "New kernel must be in root directory in order to boot."
                     40:        echo "$0 aborted."
                     41:        exit 1
                     42: fi
                     43: 
                     44: #
                     45: # Ask before overwiting a kernel file.
                     46: #
                     47: if [ -f $TARGET ]
                     48: then
                     49:        echo -n "File $TARGET already exists.  Overwrite? "
                     50:        read ANS
                     51:        if [ x${ANS} != xy ]
                     52:        then
                     53:                echo "$0 aborted."
                     54:                exit 1
                     55:        fi
                     56: fi
                     57: 
                     58: set -e
                     59: 
                     60: #-------------------------------------
                     61: echo "Fetching configuration files..."
                     62: 
                     63: # Fetch patch file created during installation.
                     64: sed -e 's/\/mnt\/coherent/$TARGET/' < $PATCHFILE > /tmp/patches
                     65: chmog 555 bin bin /tmp/patches
                     66: 
                     67: PATCH=
                     68: PATCH="${PATCH} drvl+60=lpcon"
                     69: PATCH="${PATCH} drvl+100=asycon"
                     70: PATCH="${PATCH} drvl+180=ptycon"
                     71: PATCH="${PATCH} drvl+460=semcon"
                     72: #PATCH="${PATCH} drvl+480=shmcon"
                     73: #PATCH="${PATCH} drvl+500=msgcon"
                     74: 
                     75: UNDEF=
                     76: UNDEF="$UNDEF -u lpcon"
                     77: UNDEF="$UNDEF -u flcon"
                     78: UNDEF="$UNDEF -u asycon"
                     79: UNDEF="$UNDEF -u ptycon"
                     80: UNDEF="$UNDEF -u semcon"
                     81: #UNDEF="$UNDEF -u shmcon"
                     82: #UNDEF="$UNDEF -u msgcon"
                     83: 
                     84: . $LDKERFILE
                     85: 
                     86: KB=`cat $KBDFILE`
                     87: 
                     88: #-------------------------------------
                     89: echo "Linking Target File..."
                     90: 
                     91: cd $KDIR
                     92: /bin/ld $UNDEF $HDUNDEF -K -o $TARGET -e stext ker386.o $KB kl386.a
                     93: 
                     94: #-------------------------------------
                     95: echo "Patching Target File..."
                     96: 
                     97: /conf/patch $TARGET $PATCH $HDPATCH                               
                     98: /conf/asypatch -v $TARGET < /etc/default/async
                     99: 
                    100: export TARGET
                    101: /tmp/patches
                    102: rm /tmp/patches
                    103: 
                    104: /bin/chmog 400 sys sys $TARGET
                    105: 
                    106: echo "\nNew kernel is $TARGET.\n"
                    107: echo "To test this kernel:"
                    108: echo "  /etc/shutdown to single-user mode"
                    109: echo "  sync"
                    110: echo "  Press reset."
                    111: echo "  During reboot, press SPACE at the prompt to abort default boot."
                    112: echo "  Type `basename $TARGET` at the question mark and press ENTER.\n"
                    113: echo "To make the new kernel the default start-up kernel:"
                    114: echo "  ln -f $TARGET /autoboot\n"
                    115: echo -n "Press ENTER to continue."
                    116: read JUNK

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.