diff options
author | Michael Janczyk | 2006-09-27 17:43:17 +0200 |
---|---|---|
committer | Michael Janczyk | 2006-09-27 17:43:17 +0200 |
commit | ed033ffcf7846ee50ba2786fde43d2dbb70b6ffd (patch) | |
tree | 172fbc8cea44a44900e8dcb57eca20d1e1d5cafb /initramfs | |
parent | Renaming of management-framework to ldap-site-mngmt, minor addition to (diff) | |
download | core-ed033ffcf7846ee50ba2786fde43d2dbb70b6ffd.tar.gz core-ed033ffcf7846ee50ba2786fde43d2dbb70b6ffd.tar.xz core-ed033ffcf7846ee50ba2786fde43d2dbb70b6ffd.zip |
added xen network bridge configuration ./mkdxs... -m "netloop"
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@396 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initramfs')
-rw-r--r-- | initramfs/initrd-stuff/etc/functions | 33 | ||||
-rwxr-xr-x | initramfs/initrd-stuff/init | 7 | ||||
-rwxr-xr-x | initramfs/mkdxsinitrd | 25 |
3 files changed, 58 insertions, 7 deletions
diff --git a/initramfs/initrd-stuff/etc/functions b/initramfs/initrd-stuff/etc/functions index f52a9f41..4a441550 100644 --- a/initramfs/initrd-stuff/etc/functions +++ b/initramfs/initrd-stuff/etc/functions @@ -2,8 +2,9 @@ # (included by init, hwautocfg, servconfig, ... within OpenSLX initial # ramfs) # -# Dirk von Suchodoletz <dvs@OpenSLX.com>, 03-09-2006 +# Dirk von Suchodoletz <dvs@OpenSLX.com>, 26-09-2006 # Felix Endres, 30-04-2006 +# <mj0@uni-freiburg.de> (xenbr), 27-09-2006 # Tobias Maier # # (c) 2006 - RZ Universitaet Freiburg @@ -194,6 +195,33 @@ local n=0 echo $n } ####################################################################### +# configure Xen bridge xenbr0 +xenbr_config () { +modprobe netloop +local vifnum="0" +local bridge="xenbr${vifnum}" +local netdev="eth${vifnum}" +local pdev="p${netdev}" +local vdev="veth${vifnum}" +local vif0="vif0.${vifnum}" +local mac=$(ip link show ${netdev} | sed -n '/^.*link\/ether/p' \ + | sed -e 's/.*ether \(..:..:..:..:..:..\).*/\1/') + +brctl addbr ${bridge} +brctl stp ${bridge} off +brctl setfd ${bridge} 0 +brctl addif ${bridge} ${vif0} +ip link set ${netdev} name ${pdev} +ip link set ${vdev} name ${netdev} +ip link set ${pdev} down arp off +ip link set ${pdev} addr fe:ff:ff:ff:ff:ff +ip link set ${netdev} addr ${mac} arp on +ip link set ${bridge} up +ip link set ${vif0} up +ip link set ${pdev} up +brctl addif ${bridge} ${pdev} +} +####################################################################### # configure IP address statically - first argument the ip address, # second the netmask, then gateway and broadcast address and last # interface. All arguments have to be given. @@ -403,7 +431,8 @@ if [ -n "$FILESRC" ] ; then tftpserver=$(uri_token $FILESRC server) tftpgetunpack $tftp $cfgfile $tftpserver else - cfgdir="client-conf" + # fixme: We need to know the prefix somehow + cfgdir="/tftpboot/client-conf" local tftpserver=$serverip # try to get configuration files successively; start with distro client # and try last distro default ... diff --git a/initramfs/initrd-stuff/init b/initramfs/initrd-stuff/init index 3aea9784..022b45f4 100755 --- a/initramfs/initrd-stuff/init +++ b/initramfs/initrd-stuff/init @@ -3,6 +3,7 @@ # clients version 4 # # Dirk von Suchodoletz <dirk@goe.net>, 07-09-2006 +# <mj0@uni-freiburg.de> (xenbr), 27-09-2006 # # (c) 2006 - RZ Universitaet Freiburg # (c) 2006 - OpenSLX.ORG project @@ -177,6 +178,8 @@ nfsroot=\"${NFSROOT}\"\n" >> /etc/machine-setup # be distinguished from other (dhcp) clients vci=*) VCI=${opts#vci=};; + xenbr) + XENBR=1;; esac done # check if at least one type of IP configuration is availabe @@ -224,6 +227,10 @@ for mod in ${NWMODULES}; do done # set up loopback networking (ipsetup - function defined in /etc/functions) ipsetup 127.0.0.1 255.0.0.0 0.0.0.0 127.255.255.255 lo + +# Xen bridge config +[ -n "$XENBR" ] && xenbr_config + # analyze ip information from the kernel command line and put parts # of it into several variables if [ -n "$IPINFO" ] ; then diff --git a/initramfs/mkdxsinitrd b/initramfs/mkdxsinitrd index ba890cc8..01305cf7 100755 --- a/initramfs/mkdxsinitrd +++ b/initramfs/mkdxsinitrd @@ -7,7 +7,7 @@ # Author(s): Dirk von Suchodoletz <dirk@goe.net>, 18-09-2006 # Nico Dietrich # Felix Endres -# mj0, 13-09-2006 theming added +# <mj0@uni-freiburg.de> (xenbr), 27-09-2006 # # Copyright: (c) 2003 - 2006 - RZ Universitaet Freiburg # (c) 2006 - openslx.org project @@ -62,7 +62,7 @@ D_DEFAULTCOUNTRY="<set in ~/distro-config/distro file>" usage() { echo -e "mkdxsinitrd [-bgh] [-k kernel version] [-i path/file] \ -[-f module(s)] [-n module(s)] [-r path] [-s theme]\n" +[-f module(s)] [-n module(s)] [-m module(s)] [-r path] [-s theme]\n" echo "OPTIONEN" echo " -g Benutze glibc als Basisbibliothek in der ramdisk." echo " -b Use busybox instead of separate binaries." @@ -82,6 +82,9 @@ usage() echo " -n Modulliste" echo " Kernelmodule zum Betrieb der Clientnetzwerkkarten (z.B. e100 tg3" echo " via-rhine)." + echo " -m Modulliste" + echo " Kernelmodule (misc) die nicht von -n bzw. -f abgedeckt werden" + echo " (z.B. xenbr for xen network bridge)." echo " -r path" echo " Pfad zum Wurzelverzeichnis des zu exportierenden Betriebsystems" echo " (z.B. /export/10.1)." @@ -287,7 +290,7 @@ cp -a ${themes}* ${INSTDIR}/usr/share/themes ######################################################################### # End of function declaration -while getopts :bhgk:i:r:o:s:f:n:Sut:d:v:I:V:a: a ; do +while getopts :bhgk:i:r:o:s:f:n:m:Sut:d:v:I:V:a: a ; do case $a in \:|\?) case $OPTARG in @@ -295,6 +298,7 @@ while getopts :bhgk:i:r:o:s:f:n:Sut:d:v:I:V:a: a ; do i) echo "-i requires initrd path parameter";; f) echo "-f requires file system module list parameter";; n) echo "-n requires network module list parameter";; + m) echo "-m requires misc module list parameter";; r) echo "-r requires root dir parameter";; s) echo "-s may require theme name";; t) echo "-t requires tmp dir parameter";; @@ -314,6 +318,7 @@ while getopts :bhgk:i:r:o:s:f:n:Sut:d:v:I:V:a: a ; do i) INITRD_PATH=$OPTARG ;; f) FSMODULES=$OPTARG;; n) NWMODULES=$OPTARG ;; + m) MISCMODULES=$OPTARG ;; r) ROOTDIR=$OPTARG;; s) theme=$OPTARG;; t) INSTDIR=$OPTARG;; @@ -551,7 +556,6 @@ cobi unionctl bin &>/dev/null || \ cobi cowdev bin &>/dev/null || \ echo "Program cowdev not found; could be ignored ..." - # distro specific additional stuff case "${DISTRO}" in debian*) @@ -610,7 +614,8 @@ fi # put all needed modules into initial ramdisk mkdir -p ${INSTDIR}/lib/modules/${KERNVER} -for module in af_packet unix ${NWMODULES} ${FSMODULES} ${DEBUGMODULES}; do +for module in af_packet unix ${NWMODULES} ${FSMODULES} ${MISCMODULES} \ + ${DEBUGMODULES}; do mod=`cd /${ROOTDIR}; find "lib/modules/${KERNVER}" -name ${module}.ko \ 2>/dev/null` @@ -644,6 +649,16 @@ for module in af_packet unix ${NWMODULES} ${FSMODULES} ${DEBUGMODULES}; do cp ${rdirprefix}/fs/jbd/jbd.ko \ ${ddirprefix}/fs/jbd ;; + netloop) + cobi brctl bin &>/dev/null || \ + echo "Program brctl not found; could be ignored ..." + mkdir -p ${ddirprefix}/drivers/xen/netback + mkdir -p ${ddirprefix}/net/bridge + cp ${rdirprefix}/drivers/xen/netback/netloop.ko \ + ${ddirprefix}/drivers/xen/netback &>/dev/null + cp ${rdirprefix}/net/bridge/bridge.ko \ + ${ddirprefix}/net/bridge &>/dev/null + ;; esac fi done |