diff options
author | ramon <ramongomez@us.es> | 2016-04-20 15:40:59 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2016-04-20 15:40:59 +0000 |
commit | 3e0afdd2d6b05ef4c3245e61a9a39f0c91d5e357 (patch) | |
tree | 1cf7e5b3d544e88e8d5650d25fc94a92f07502df /client/boot-tools | |
parent | c3adb456d250c47507cccb6b1c254c663bfb2a4d (diff) |
#724: Adaptar la generación de ogLive a la nueva asignación de nombres de los dispositivos de red que realiza Ubuntu 15.10 (deja de utilizar {{{ethN}}}).
git-svn-id: https://opengnsys.es/svn/branches/version1.1@4890 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/boot-tools')
-rw-r--r-- | client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions | 61 | ||||
-rwxr-xr-x | client/boot-tools/includes/etc/initramfs-tools/scripts/oginit | 12 |
2 files changed, 57 insertions, 16 deletions
diff --git a/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions b/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions index 36afe968..38ed4a06 100644 --- a/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions +++ b/client/boot-tools/includes/etc/initramfs-tools/scripts/ogfunctions @@ -2,20 +2,51 @@ #@file ogfunctions.lib #@brief Librería o clase para la gestion del sistema operativo de los clientes OpenGnSys. #@class client -#@version 1.0.5 +#@version 1.1.0 #@warning License: GNU GPLv3+ #*/ ## #/** -# ogExportKernelParameters +# ogGetNetworkDevice +#@brief Devuelve el nombre de dispositivo de red correpondiente al índice indicado. +#@param int_devindex índice de dispositivo de red. +#@return str_devname nombre de dispositivo de red. +#@note Índice 0 debe corresponder a interfaz "lo" y a partir de 1 para las reales. +#@version 1.1.0 - Primera versión de la función. +#@author Ramón Gómez, ETSII Universidad de Sevilla +#@date 2016/04/20 +#*/ ## +ogGetNetworkDevice () +{ +# Mantener retrocompatibilidad con interfaces antiguas tipo eth. +case "$1" in + eth0) ind=1 ;; + eth1) ind=2 ;; + eth2) ind=3 ;; + *) ind="$1" ;; +esac +# Buscar el dispositivo del índice. +dev="" +for f in /sys/class/net/*/uevent; do + source $f + let aux=$IFINDEX-1 + [ "$ind" = "$INTERFACE" -o "$ind" = $aux ] && dev="$INTERFACE" +done +[ -n "$dev" ] && echo "$dev" +} + + +#/** +# ogExportKernelParameters #@brief Exporta los parametros pasados al kernel -#@param -#@return #@exception OG_ERR_FORMAT Formato incorrecto. -#@version 0.7 - -#@author Antonio J. Doblas. Universidad de Malaga. +#@version 0.7 - Primera versión de la función. +#@author Antonio J. Doblas. Universidad de Malaga. #@date 2010/05/24 +#@version 1.1.0 - Sustituir índice de interfaz de red por su dispositivo. +#@author Ramón Gómez, ETSII Universidad de Sevilla +#@date 2016/04/20 #*/ ## ogExportKernelParameters () { @@ -24,6 +55,14 @@ ogExportKernelParameters () do echo $i | grep "=" > /dev/null && export $i done + # Sustituir índice de interfaz de red por su dispositivo. + DEVIND=$(echo "$ip" | cut -f6 -d:) + if [ -n "$DEVIND" ]; then + PRE=$(echo "$ip" | cut -f1-5 -d:) + POST=$(echo "$ip" | cut -f7- -d:) + DEVICE=$(ogGetNetworkDevice $DEVIND) + [ -n "$DEVICE" ] && export ip="$PRE:$DEVICE:${POST:-none}" + fi return 0 } @@ -343,7 +382,7 @@ ogUpdateInitrd () CACHEINITRD=`cat /tmp/cache/boot/oginitrd.img.sum` echo "MD5 on SERVER: $SERVERVMLINUZ $SERVERINITRD" - echo "MD5 on CACHE: $CACHEVMLINUZ $CACHEINITRD" + echo "MD5 on CACHE: $CACHEVMLINUZ $CACHEINITRD" cd /tmp/cache/boot @@ -472,7 +511,8 @@ then mount $DSTOGLIVE/ogclient/ogclient.sqfs $OGLIVEROOTFS -t squashfs -o loop fi # Realizamos la union entre el ogliveram(initrd) y el ogliverootfs(ogclient.sqfs) - for i in etc var lib bin sbin usr root boot; do +# Nota: el orden es muy importante para evitar errores de montaje. + for i in bin sbin etc var lib usr root boot; do ogUnionLiveDir $i done cat /tmp/mtab.preunion > /etc/mtab @@ -581,16 +621,17 @@ else ;; ""|on|any) # Bring up device - DEVICE=eth0 + DEVICE=1 ;; dhcp|bootp|rarp|both) - DEVICE=eth0 + DEVICE=1 ;; *) DEVICE=`echo $IP | cut -f6 -d:` ;; esac fi +DEVICE=$(ogGetNetworkDevice $DEVICE) if [ -z "${DEVICE}" ]; then echo "variable DEVICE con valor $DEVICE no encontrada, llamamos de nuevo a ogconfigure_networking" ogConfigureNetworking diff --git a/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit b/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit index 6f8a30b8..e79eb53d 100755 --- a/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit +++ b/client/boot-tools/includes/etc/initramfs-tools/scripts/oginit @@ -1,7 +1,7 @@ # OpenGnsys oginit -*- shell-script -*- #@file oginit -#@brief Guion modificador inicio initrd para OpenGnSys +#@brief Guion modificador inicio initrd para OpenGnsys #@warning #@version 0.1 - basado en ROOTfs - rootfs over nfs - #@author Antonio J. Doblas Viso. Universidad de Málaga @@ -37,12 +37,12 @@ mountroot () { [ -f /scripts/VERSION.txt ] && OGVERSION=$(cat /scripts/VERSION.txt) - OGVERSION=${OGVERSION:-"OpenGnSys Client"} + OGVERSION=${OGVERSION:-"OpenGnsys Client"} echo; echo; echo "$OGVERSION"; echo; echo - [ "$quiet" != "y" ] && log_begin_msg "Running OpenGnsys /scripts/og-top" - run_scripts /scripts/og-top - [ "$quiet" != "y" ] && log_end_msg + #[ "$quiet" != "y" ] && log_begin_msg "Running OpenGnsys /scripts/og-top" + #run_scripts /scripts/og-top + #[ "$quiet" != "y" ] && log_end_msg # If the root device hasn't shown up yet, give it a little while # to deal with removable devices @@ -59,7 +59,7 @@ mountroot () ogExportKernelParameters # Cambiar resolución de vídeo para kernels que usan el parámetro "video". [ -n "$video" ] && ogChangeVideoResolution - log_success_msg "Checking OpenGnSys Environmnet" + log_success_msg "Checking OpenGnsys Environmnet" ogExportVarEnvironment [ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before configure ramfs structure for OG: y/N " |