📄 uml-functions.sh
字号:
#! /bin/sh ## # $Id: uml-functions.sh,v 1.35 2004/10/17 17:38:35 mcr Exp $#setup_make() { TAB=" @" depends="" echo "# RULES for making module" # figure out our base architecture, as we'll need in the Makefiles. SUBARCH=${ARCH-`uname -m`} case $SUBARCH in i?86) SUBARCH=i386;; esac echo "IPSECDIR=${OPENSWANSRCDIR}/linux/net/ipsec" echo "include ${OPENSWANSRCDIR}/Makefile.ver" echo echo "all: " echo "$TAB echo Default make called" echo "$TAB exit 1" echo echo "module/ipsec.o: ${OPENSWANSRCDIR}/packaging/makefiles/module.make \${IPSECDIR}/*.c" echo "$TAB mkdir -p module" echo "$TAB make -C ${OPENSWANSRCDIR} OPENSWANSRCDIR=${OPENSWANSRCDIR} MODBUILDDIR=$POOLSPACE/module MODBUILDDIR=$POOLSPACE/module KERNELSRC=$UMLPLAIN ARCH=um SUBARCH=${SUBARCH} module " echo echo "module26/ipsec.ko: ${OPENSWANSRCDIR}/packaging/makefiles/module26.make \${IPSECDIR}/*.c" echo "$TAB mkdir -p module26" echo "$TAB make -C ${OPENSWANSRCDIR} OPENSWANSRCDIR=${OPENSWANSRCDIR} MODBUILDDIR=$POOLSPACE/module MOD26BUILDDIR=$POOLSPACE/module26 KERNELSRC=$UMLPLAIN ARCH=um SUBARCH=${SUBARCH} module26 " echo}# output should directed to a Makefilesetup_host_make() { host=$1 KERNEL=$2 HOSTTYPE=$3 KERNVER=$4 KERNDIR=`dirname $KERNEL` TAB=" @" hostroot=$host/root depends="" echo "# RULES for host $host" echo echo "$hostroot:" echo "$TAB mkdir -p $host $hostroot" echo depends="$depends $host/root" echo $host/linux : $KERNEL echo "$TAB cp $KERNEL $host/linux" echo depends="$depends $host/linux" echo "# make a hard link copy of the ROOT, but" echo "# make private copy of /var." echo "$hostroot/sbin/init : ${BASICROOT}/sbin/init" echo "$TAB -(cd ${BASICROOT} && find . -print | cpio -pld $POOLSPACE/$hostroot 2>/dev/null )" echo "$TAB rm -rf $hostroot/var" echo "$TAB (cd ${BASICROOT} && find var -print | cpio -pd $POOLSPACE/$hostroot 2>/dev/null )" # make sure that we have /dev, /tmp and /var/run echo "$TAB mkdir -p $hostroot/dev $hostroot/tmp $hostroot/var/run $hostroot/usr/share $hostroot/proc $hostroot/var/log/pluto/peer" # root image may be debian, but we expect rh-style /etc/rc.d echo "$TAB mkdir -p $hostroot/etc/rc.d" echo "$TAB mkdir -p $hostroot/testing $hostroot/usr/src" echo "$TAB if [ ! -d $hostroot/etc/rc.d/init.d ]; then (cd $hostroot/etc/rc.d && ln -fs ../init.d ../rc?.d . ); fi" # nuke certain other files that get in the way of booting echo "$TAB rm -f $hostroot/etc/mtab $hostroot/sbin/hwclock" # set up the timezone echo "$TAB rm -f $hostroot/etc/localtime " # dummy out fsck. echo "$TAB ln -f $hostroot/bin/true $hostroot/sbin/fsck.hostfs" # force it to GMT, otherwise (RH7.1) use host's zoneinfo. if [ -f /usr/share/zoneinfo/GMT ] then echo "$TAB cp /usr/share/zoneinfo/GMT $hostroot/etc/localtime" else echo "$TAB cp /etc/localtime $hostroot/etc/localtime" fi # now remove any files that we shouldn't have copied. echo "$TAB (cd ${TESTINGROOT}/baseconfigs/all && find . -type f -print) | (cd $hostroot && xargs rm -f)" echo "$TAB (cd ${TESTINGROOT}/baseconfigs/$host && find . -type f -print) | (cd $hostroot && xargs rm -f)" # okay, that's all the stock stuff echo depends="$depends $hostroot/sbin/init" # copy global configuration files, and make sure that they are up-to-date. (cd ${TESTINGROOT}/baseconfigs/all && find . -type f -print) | sed -e 's,^\./,,' >makeuml.$$ echo -n >makeuml2.$$ cat makeuml.$$ | while read file do case $file in *~) ;; *CVS/*);; */.\#*);; etc/fstab);; *) echo "$hostroot/$file : ${TESTINGROOT}/baseconfigs/all/$file $hostroot" echo "$TAB rm -f $hostroot/$file && mkdir -p `dirname $hostroot/$file` && cp ${TESTINGROOT}/baseconfigs/all/$file $hostroot/$file" echo echo -n $hostroot/$file ' ' >>makeuml2.$$ esac done nicelists=`cat makeuml2.$$` depends="$depends $nicelists" rm -f makeuml.$$ makeuml2.$$ # copy configuration files, but make sure that they are up-to-date. (cd ${TESTINGROOT}/baseconfigs/$host && find . -type f -print) | sed -e 's,^\./,,' >makeuml.$$ echo -n >makeuml2.$$ cat makeuml.$$ | while read file do case $file in *~) ;; *CVS/*);; etc/fstab);; */.\#*);; *) echo "$hostroot/$file : ${TESTINGROOT}/baseconfigs/$host/$file $hostroot" echo "$TAB rm -f $hostroot/$file && mkdir -p `dirname $hostroot/$file` && cp ${TESTINGROOT}/baseconfigs/$host/$file $hostroot/$file" echo echo -n $hostroot/$file ' ' >>makeuml2.$$ esac done nicelists=`cat makeuml2.$$` depends="$depends $nicelists" rm -f makeuml.$$ makeuml2.$$ # setup the mount of /usr/share echo "$hostroot/etc/fstab : ${TESTINGROOT}/baseconfigs/$host/etc/fstab" echo "$TAB cp ${TESTINGROOT}/baseconfigs/$host/etc/fstab $hostroot/etc/fstab" echo "$TAB echo none /usr/share hostfs defaults,ro,$SHAREROOT 0 0 >>$hostroot/etc/fstab" echo "$TAB echo none /testing hostfs defaults,ro,${TESTINGROOT} 0 0 >>$hostroot/etc/fstab" echo "$TAB echo none /usr/src hostfs defaults,ro,${OPENSWANSRCDIR} 0 0 >>$hostroot/etc/fstab" echo "$TAB echo none /usr/local hostfs defaults,rw,${POOLSPACE}/${hostroot}/usr/local 0 0 >>$hostroot/etc/fstab" echo "$TAB echo none /var/tmp hostfs defaults,rw,${POOLSPACE}/${hostroot}/var/tmp 0 0 >>$hostroot/etc/fstab" depends="$depends $hostroot/etc/fstab" # split Debian "interfaces" file into RH ifcfg-* file echo "$hostroot/etc/sysconfig/network-scripts/ifcfg-eth0: $hostroot/etc/network/interfaces" echo "$TAB mkdir -p $hostroot/etc/sysconfig/network-scripts" echo "$TAB ${TESTINGROOT}/utils/interfaces2ifcfg.pl $hostroot/etc/network/interfaces $hostroot/etc/sysconfig/network-scripts" echo depends="$depends $hostroot/etc/sysconfig/network-scripts/ifcfg-eth0" if [ "X$HOSTTYPE" == "Xopenswan" ] then # install FreeSWAN if appropriate. echo "$hostroot/usr/local/sbin/ipsec : ${OPENSWANSRCDIR}/Makefile.inc ${OPENSWANSRCDIR}/Makefile.ver" echo "$TAB cd ${OPENSWANSRCDIR} && make DESTDIR=$POOLSPACE/$hostroot install" echo depends="$depends $hostroot/usr/local/sbin/ipsec" case ${KERNVER} in 26) DOTO=".ko";; *) DOTO=".o";; esac # update the module, if any. echo "$hostroot/ipsec.o : module${KERNVER}/ipsec${DOTO} $hostroot" echo "$TAB -cp module${KERNVER}/ipsec${DOTO} $hostroot/ipsec.o" echo depends="$depends $hostroot/ipsec.o" # make module startup script startscript=$POOLSPACE/$host/startmodule.sh echo "$startscript : $OPENSWANSRCDIR/umlsetup.sh $hostroot/ipsec.o" echo "$TAB echo '#!/bin/sh' >$startscript" echo "$TAB echo '' >>$startscript" echo "$TAB echo '# get $net value from baseconfig' >>$startscript" echo "$TAB echo . ${TESTINGROOT}/baseconfigs/net.$host.sh >>$startscript" echo "$TAB echo '' >>$startscript" echo "$TAB echo '$POOLSPACE/plain${KERNVER}/linux root=/dev/root rootfstype=hostfs rootflags=$POOLSPACE/$hostroot rw umid=$host \$\$net \$\$UML_DEBUG_OPT \$\$UML_"${host}"_OPT \$\$*' >>$startscript" echo "$TAB chmod +x $startscript" echo depends="$depends $startscript" fi # make startup script startscript=$POOLSPACE/$host/start.sh echo "$startscript : $OPENSWANSRCDIR/umlsetup.sh" echo "$TAB echo '#!/bin/sh' >$startscript" echo "$TAB echo '' >>$startscript" echo "$TAB echo '# get $net value from baseconfig' >>$startscript" echo "$TAB echo . ${TESTINGROOT}/baseconfigs/net.$host.sh >>$startscript" echo "$TAB echo '' >>$startscript" echo "$TAB echo '$POOLSPACE/$host/linux root=/dev/root rootfstype=hostfs rootflags=$POOLSPACE/$hostroot rw umid=$host \$\$net \$\$UML_DEBUG_OPT \$\$UML_"${host}"_OPT \$\$*' >>$startscript" echo "$TAB chmod +x $startscript" echo depends="$depends $startscript" echo "$host : $depends" echo echo}setup_host() { host=$1 KERNEL=$2 KERNDIR=`dirname $KERNEL`
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -