Annotation of coherent/b/kernel/tools/kgen, revision 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.