Merge pull request 'refs #2594 save a log of early init' (#26) from oginit-log into main

Reviewed-on: #26
filebeat-home 3.12.1
Natalia Serrano 2025-08-06 10:42:48 +02:00
commit ddac2c471c
4 changed files with 596 additions and 532 deletions

View File

@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [3.12.1] - 2025-08-05
### Added
- Save a log of early init (oginit/ogfuncions)
## [3.12.0] - 2025-07-31 ## [3.12.0] - 2025-07-31
### Changed ### Changed

View File

@ -1 +1 @@
OpenGnsys Client 3.12.0 OpenGnsys Client 3.12.1

View File

@ -19,6 +19,7 @@
#*/ ## #*/ ##
ogGetNetworkDevice () ogGetNetworkDevice ()
{ {
echo "ogGetNetworkDevice()" >>/tmp/oginit.log
# Mantener retrocompatibilidad con interfaces antiguas tipo eth. # Mantener retrocompatibilidad con interfaces antiguas tipo eth.
case "$1" in case "$1" in
eth0) ind=1 ;; eth0) ind=1 ;;
@ -26,13 +27,17 @@ case "$1" in
eth2) ind=3 ;; eth2) ind=3 ;;
*) ind="$1" ;; *) ind="$1" ;;
esac esac
echo "ind ($ind)" >>/tmp/oginit.log
# Buscar el dispositivo del índice. # Buscar el dispositivo del índice.
dev="" dev=""
for f in /sys/class/net/*/uevent; do for f in /sys/class/net/*/uevent; do
echo "source $f" >>/tmp/oginit.log
source $f source $f
let aux=$IFINDEX-1 let aux=$IFINDEX-1
echo "aux ($aux)" >>/tmp/oginit.log
[ "$ind" = "$INTERFACE" -o "$ind" = $aux ] && dev="$INTERFACE" [ "$ind" = "$INTERFACE" -o "$ind" = $aux ] && dev="$INTERFACE"
done done
echo "dev ($dev)" >>/tmp/oginit.log
[ -n "$dev" ] && echo "$dev" [ -n "$dev" ] && echo "$dev"
} }
@ -50,18 +55,20 @@ done
#*/ ## #*/ ##
ogExportKernelParameters () ogExportKernelParameters ()
{ {
echo "ogExportKernelParameters()" >>/tmp/oginit.log
GLOBAL="cat /proc/cmdline" GLOBAL="cat /proc/cmdline"
for i in `${GLOBAL}` for i in `${GLOBAL}`; do
do echo $i | grep "=" > /dev/null && export $i && echo "export $i" >>/tmp/oginit.log
echo $i | grep "=" > /dev/null && export $i
done done
# Sustituir índice de interfaz de red por su dispositivo. # Sustituir índice de interfaz de red por su dispositivo.
DEVIND=$(echo "$ip" | cut -f6 -d:) DEVIND=$(echo "$ip" | cut -f6 -d:)
echo "DEVIND ($DEVIND)" >>/tmp/oginit.log
if [ -n "$DEVIND" ]; then if [ -n "$DEVIND" ]; then
PRE=$(echo "$ip" | cut -f1-5 -d:) PRE=$(echo "$ip" | cut -f1-5 -d:)
POST=$(echo "$ip" | cut -f7- -d:) POST=$(echo "$ip" | cut -f7- -d:)
DEVICE=$(ogGetNetworkDevice $DEVIND) DEVICE=$(ogGetNetworkDevice $DEVIND)
[ -n "$DEVICE" ] && export ip="$PRE:$DEVICE:${POST:-none}" echo "DEVICE ($DEVICE)" >>/tmp/oginit.log
[ -n "$DEVICE" ] && export ip="$PRE:$DEVICE:${POST:-none}" && echo "export ip=$PRE:$DEVICE:${POST:-none}" >>/tmp/oginit.log
fi fi
return 0 return 0
} }
@ -80,6 +87,7 @@ ogExportKernelParameters ()
#*/ ## #*/ ##
ogChangeVideoResolution () ogChangeVideoResolution ()
{ {
echo "ogChangeVideoResolution()" >>/tmp/oginit.log
# Variables locales. # Variables locales.
local DRIVER MODE local DRIVER MODE
# Mostrar resolución y driver por defecto si solo hay una opción disponible. # Mostrar resolución y driver por defecto si solo hay una opción disponible.
@ -119,6 +127,7 @@ fi
#*/ ## #*/ ##
ogExportVarEnvironment () ogExportVarEnvironment ()
{ {
echo "ogExportVarEnvironment()" >>/tmp/oginit.log
export CFGINITRD="/tmp/initrd.cfg" export CFGINITRD="/tmp/initrd.cfg"
OGPROTOCOL="${ogprotocol:-smb}" OGPROTOCOL="${ogprotocol:-smb}"
[ "$ogunit" != "" ] && OGUNIT="/$ogunit" [ "$ogunit" != "" ] && OGUNIT="/$ogunit"
@ -126,6 +135,8 @@ ogExportVarEnvironment ()
export OPTIONS=" -o user=opengnsys,pass=og" export OPTIONS=" -o user=opengnsys,pass=og"
DEFOGLIVE="ogclient" DEFOGLIVE="ogclient"
export OGLIVEDIR="${oglivedir:-$DEFOGLIVE}" && echo "OGLIVEDIR=$OGLIVEDIR" >> $CFGINITRD export OGLIVEDIR="${oglivedir:-$DEFOGLIVE}" && echo "OGLIVEDIR=$OGLIVEDIR" >> $CFGINITRD
echo "CFGINITRD ($CFGINITRD) OGPROTOCOL ($OGPROTOCOL) OGUNIT ($OGUNIT) OGLIVEDIR ($OGLIVEDIR)" >>/tmp/oginit.log
export CFGINITRD="/tmp/initrd.cfg"
case "$OGPROTOCOL" in case "$OGPROTOCOL" in
nfs|NFS) nfs|NFS)
export SRCOGLIVE="/var/lib/tftpboot" && echo "SRCOGLIVE=$SRCOGLIVE" >> $CFGINITRD export SRCOGLIVE="/var/lib/tftpboot" && echo "SRCOGLIVE=$SRCOGLIVE" >> $CFGINITRD
@ -147,22 +158,20 @@ ogExportVarEnvironment ()
export SRCOGIMAGES="images" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD export SRCOGIMAGES="images" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD
;; ;;
esac esac
#punto de acceso al boot-tools live echo "SRCOGLIVE ($SRCOGLIVE) SRCOGSHARE ($SRCOGSHARE) SRCOGLOG ($SRCOGLOG) SRCOGIMAGES ($SRCOGIMAGES)" >>/tmp/oginit.log
export DSTOGLIVE="/opt/oglive/tftpboot" export DSTOGLIVE="/opt/oglive/tftpboot" #punto de acceso al boot-tools live
#punto de montaje para unionfs export OGLIVERAMFS="/opt/oglive/ramfs" && echo "OGLIVERAMFS=$OGLIVERAMFS" >> $CFGINITRD #punto de montaje para unionfs
export OGLIVERAMFS="/opt/oglive/ramfs" && echo "OGLIVERAMFS=$OGLIVERAMFS" >> $CFGINITRD export OGLIVEROOTFS="/opt/oglive/rootfs" && echo "OGLIVEROOTFS=$OGLIVEROOTFS" >> $CFGINITRD #punto de montaje donde se accede al 2nd FS mediante loop
#punto de montaje donde se accede al 2nd FS mediante loop export OGLIVEUNIONFS="/opt/oglive/unionfs" && echo "OGLIVEUNIONFS=$OGLIVEUNIONFS" >> $CFGINITRD #punto de union entre LOCALROOTIMG y LOCALROOTRAM
export OGLIVEROOTFS="/opt/oglive/rootfs" && echo "OGLIVEROOTFS=$OGLIVEROOTFS" >> $CFGINITRD export OGLIVELABEL="ogClient" #etiquta para los dispositivos offline
#punto de union entre LOCALROOTIMG y LOCALROOTRAM echo "DSTOGLIVE ($DSTOGLIVE) OGLIVERAMFS ($OGLIVERAMFS) OGLIVEROOTFS ($OGLIVEROOTFS) OGLIVEUNIONFS ($OGLIVEUNIONFS)" >>/tmp/oginit.log
export OGLIVEUNIONFS="/opt/oglive/unionfs" && echo "OGLIVEUNIONFS=$OGLIVEUNIONFS" >> $CFGINITRD
#etiquta para los dispositivos offline
export OGLIVELABEL="ogClient"
#echo "puntos de montajes para los demas accesos" #echo "puntos de montajes para los demas accesos"
#echo "acceso al client, engine, scritps, interfaz" #echo "acceso al client, engine, scritps, interfaz"
export DSTOGSHARE="/opt/opengnsys" && echo "DSTOGSHARE=$DSTOGSHARE" >> $CFGINITRD export DSTOGSHARE="/opt/opengnsys" && echo "DSTOGSHARE=$DSTOGSHARE" >> $CFGINITRD
export DSTOGLOG="/opt/opengnsys/log" && echo "DSTOGLOG=$DSTOGLOG" >> $CFGINITRD export DSTOGLOG="/opt/opengnsys/log" && echo "DSTOGLOG=$DSTOGLOG" >> $CFGINITRD
export DSTOGIMAGES="/opt/opengnsys/images" && echo "DSTOGIMAGES=$DSTOGIMAGES" >> $CFGINITRD export DSTOGIMAGES="/opt/opengnsys/images" && echo "DSTOGIMAGES=$DSTOGIMAGES" >> $CFGINITRD
echo "DSTOGSHARE ($DSTOGSHARE) DSTOGLOG ($DSTOGLOG) DSTOGIMAGES ($DSTOGIMAGES)" >>/tmp/oginit.log
##INFORMACION DE OTRAS VARIABLES OBTENDIAS EN OTRAS FUNCIONES ogConfigureNetwork. ##INFORMACION DE OTRAS VARIABLES OBTENDIAS EN OTRAS FUNCIONES ogConfigureNetwork.
#DEVICE #DEVICE
@ -194,6 +203,7 @@ ogExportVarEnvironment ()
#*/ ## #*/ ##
ogConfigureRamfs () ogConfigureRamfs ()
{ {
echo "ogConfigureRamfs()" >>/tmp/oginit.log
mkdir -p $DSTOGLIVE mkdir -p $DSTOGLIVE
mkdir -p $OGLIVERAMFS mkdir -p $OGLIVERAMFS
mkdir -p $OGLIVEROOTFS mkdir -p $OGLIVEROOTFS
@ -215,9 +225,9 @@ ogConfigureRamfs ()
#*/ ## #*/ ##
ogLoadNetModule () ogLoadNetModule ()
{ {
if [ -n "$ognetmodule" ] echo "ogLoadNetModule()" >>/tmp/oginit.log
then if [ -n "$ognetmodule" ]; then
echo "Cargando modulo de red $ognetmodule" echo "Cargando modulo de red $ognetmodule" |tee -a /tmp/oginit.log
modprobe ${ognetmodule} modprobe ${ognetmodule}
fi fi
} }
@ -235,6 +245,8 @@ ogLoadNetModule ()
#*/ ## #*/ ##
ogPostConfigureFS() ogPostConfigureFS()
{ {
echo "ogPostConfigureFS()" >>/tmp/oginit.log
echo "IPV4ADDR ($IPV4ADDR) HOSTNAME ($HOSTNAME)" >>/tmp/oginit.log
# configuramos el /etc/hostname. # configuramos el /etc/hostname.
echo $HOSTNAME > /etc/hostname echo $HOSTNAME > /etc/hostname
@ -249,10 +261,12 @@ ogPostConfigureFS()
#configuramos el dns anterior ubuntu 12.04 (parámetro del Kernel "ogdns=IP_DNS") #configuramos el dns anterior ubuntu 12.04 (parámetro del Kernel "ogdns=IP_DNS")
if [ -n "$ogdns" ]; then if [ -n "$ogdns" ]; then
mkdir -p /run/resolvconf mkdir -p /run/resolvconf
echo "writing 'nameserver $ogdns' to /run/resolvconf/resolv.conf" >>/tmp/oginit.log
echo "nameserver $ogdns" > /run/resolvconf/resolv.conf echo "nameserver $ogdns" > /run/resolvconf/resolv.conf
fi fi
#configuramos el uso del servicio http proxy (parámetro del Kernel "ogproxy=URL_Proxy") #configuramos el uso del servicio http proxy (parámetro del Kernel "ogproxy=URL_Proxy")
echo "ogproxy ($ogproxy)" >>/tmp/oginit.log
if [ -n "${ogproxy}" ]; then if [ -n "${ogproxy}" ]; then
export http_proxy="$ogproxy" export http_proxy="$ogproxy"
export https_proxy="$ogproxy" export https_proxy="$ogproxy"
@ -263,6 +277,7 @@ ogPostConfigureFS()
# configuramos el /etc/networks # configuramos el /etc/networks
#read -e NETIP NETDEFAULT <<<$(route -n | grep eth0 | awk -F" " '{print $1}') #read -e NETIP NETDEFAULT <<<$(route -n | grep eth0 | awk -F" " '{print $1}')
NETIP=$(route -n | grep eth0 | awk -F" " '{print $1}') && NETIP=$(echo $NETIP | cut -f1 -d" ") NETIP=$(route -n | grep eth0 | awk -F" " '{print $1}') && NETIP=$(echo $NETIP | cut -f1 -d" ")
echo "NETIP ($NETIP)" >>/tmp/oginit.log
echo "default 0.0.0.0" > /etc/networks echo "default 0.0.0.0" > /etc/networks
echo "loopback 127.0.0.0" >> /etc/networks echo "loopback 127.0.0.0" >> /etc/networks
echo "link-local 169.254.0.0" >> /etc/networks echo "link-local 169.254.0.0" >> /etc/networks
@ -274,6 +289,7 @@ ogPostConfigureFS()
#enlace si iniciamos desde ogprotocolo=local { cdrom, usb, cache } . #enlace si iniciamos desde ogprotocolo=local { cdrom, usb, cache } .
# monta el raiz del dispositivo local en /opt/og2fs/tftpboot - acceso al fichero .sqfs # monta el raiz del dispositivo local en /opt/og2fs/tftpboot - acceso al fichero .sqfs
# y monta el sistema root sqfs en /opt/og2fs/2ndfs # y monta el sistema root sqfs en /opt/og2fs/2ndfs
echo "LOCALMEDIA ($LOCALMEDIA) ogprotocol ($ogprotocol) ogstatus ($ogstatus)" >>/tmp/oginit.log
#[ "$LOCALMEDIA" == "CACHE" ] && ln -s $DSTOGLIVE /opt/opengnsys/cache #[ "$LOCALMEDIA" == "CACHE" ] && ln -s $DSTOGLIVE /opt/opengnsys/cache
#[ "$ogprotocol" == "local" ] && ln -s ${OGLIVEROOTFS}/opt/opengnsys/* /opt/opengnsys/ #[ "$ogprotocol" == "local" ] && ln -s ${OGLIVEROOTFS}/opt/opengnsys/* /opt/opengnsys/
if [ "$ogprotocol" == "local" ]; then if [ "$ogprotocol" == "local" ]; then
@ -282,16 +298,21 @@ ogPostConfigureFS()
# Montamos CACHE # Montamos CACHE
# Si existe particion identificada como CACHE se monta. # Si existe particion identificada como CACHE se monta.
DEVICECACHE=$(blkid -L "CACHE") DEVICECACHE=$(blkid -L "CACHE")
echo "DEVICECACHE ($DEVICECACHE)" >>/tmp/oginit.log
if [ "$DEVICECACHE" != "" ]; then if [ "$DEVICECACHE" != "" ]; then
# Se monta diferente segun el dispositivo de cache igual o no al de ogclient. # Se monta diferente segun el dispositivo de cache igual o no al de ogclient.
DEVICEOGLIVE=$(df |grep $DSTOGLIVE|awk '{print $1}') DEVICEOGLIVE=$(df |grep $DSTOGLIVE|awk '{print $1}')
echo "DEVICEOGLIVE ($DEVICEOGLIVE)" >>/tmp/oginit.log
if [[ "$DEVICECACHE" == "*$DEVICEOGLIVE*" ]];then if [[ "$DEVICECACHE" == "*$DEVICEOGLIVE*" ]];then
echo "running 'mount --bind $DSTOGLIVE /opt/opengnsys/cache'" >>/tmp/oginit.log
mount --bind $DSTOGLIVE /opt/opengnsys/cache mount --bind $DSTOGLIVE /opt/opengnsys/cache
else else
echo "running 'mount $DEVICECACHE /opt/opengnsys/cache'" >>/tmp/oginit.log
mount $DEVICECACHE /opt/opengnsys/cache mount $DEVICECACHE /opt/opengnsys/cache
fi fi
if [ "$ogstatus" == "offline" ]; then if [ "$ogstatus" == "offline" ]; then
[ -d /opt/opengnsys/cache/log ] || mkdir /opt/opengnsys/cache/log [ -d /opt/opengnsys/cache/log ] || mkdir /opt/opengnsys/cache/log
echo "running 'mount --bind /opt/opengnsys/cache/log /opt/opengnsys/log'" >>/tmp/oginit.log
mount --bind /opt/opengnsys/cache/log /opt/opengnsys/log mount --bind /opt/opengnsys/cache/log /opt/opengnsys/log
fi fi
fi fi
@ -300,9 +321,14 @@ ogPostConfigureFS()
# Si estatus distinto de online buscamos un dispositivo con etiqueta repo # Si estatus distinto de online buscamos un dispositivo con etiqueta repo
# y si no existe montamos la cache como repo (si existe). # y si no existe montamos la cache como repo (si existe).
TYPE=$(blkid | grep REPO | awk -F"TYPE=" '{print $2}' | tr -d \") TYPE=$(blkid | grep REPO | awk -F"TYPE=" '{print $2}' | tr -d \")
echo "TYPE ($TYPE)" >>/tmp/oginit.log
if [ "$TYPE" == "" ]; then if [ "$TYPE" == "" ]; then
[ -d "/opt/opengnsys/cache$DSTOGIMAGES" ] && mount --bind /opt/opengnsys/cache$DSTOGIMAGES $DSTOGIMAGES if [ -d "/opt/opengnsys/cache$DSTOGIMAGES" ]; then
echo "running 'mount --bind /opt/opengnsys/cache$DSTOGIMAGES $DSTOGIMAGES'" >>/tmp/oginit.log
mount --bind /opt/opengnsys/cache$DSTOGIMAGES $DSTOGIMAGES
fi
else else
echo "running 'mount -t $TYPE LABEL=REPO $DSTOGIMAGES'" >>/tmp/oginit.log
mount -t $TYPE LABEL=REPO $DSTOGIMAGES &>/dev/null mount -t $TYPE LABEL=REPO $DSTOGIMAGES &>/dev/null
fi fi
fi fi
@ -323,7 +349,6 @@ ogPostConfigureFS()
mkdir -p /dev/shm mkdir -p /dev/shm
mount tmpfs -t tmpfs /dev/shm mount tmpfs -t tmpfs /dev/shm
chmod 1777 /dev/shm chmod 1777 /dev/shm
} }
@ -345,6 +370,8 @@ ogPostConfigureFS()
#*/ ## #*/ ##
ogGetROOTSERVER () ogGetROOTSERVER ()
{ {
echo "ogGetROOTSERVER()" >>/tmp/oginit.log
echo "NFSROOT ($NFSROOT)" >>/tmp/oginit.log
# get nfs root from dhcp # get nfs root from dhcp
if [ "x${NFSROOT}" = "xauto" ]; then if [ "x${NFSROOT}" = "xauto" ]; then
# check if server ip is part of dhcp root-path # check if server ip is part of dhcp root-path
@ -365,14 +392,17 @@ ogGetROOTSERVER ()
NFSROOT=${ROOTSERVER}:${NFSROOT} NFSROOT=${ROOTSERVER}:${NFSROOT}
fi fi
fi fi
echo "NFSROOT now ($NFSROOT)" >>/tmp/oginit.log
export ROOTSERVER export ROOTSERVER
echo "ROOTSERVER=$ROOTSERVER" >> $CFGINITRD echo "ROOTSERVER=$ROOTSERVER" >> $CFGINITRD
echo "ROOTSERVER ($ROOTSERVER)" >>/tmp/oginit.log
#si oglive no oglive=R #si oglive no oglive=R
export OGSERVERIMAGES="${ogrepo:-$ROOTSERVER}" && echo "OGSERVERIMAGES=$OGSERVERIMAGES" >> $CFGINITRD export OGSERVERIMAGES="${ogrepo:-$ROOTSERVER}" && echo "OGSERVERIMAGES=$OGSERVERIMAGES" >> $CFGINITRD
export OGSERVERSHARE="${ogshare:-$ROOTSERVER}" && echo "OGSERVERSHARE=$OGSERVERSHARE" >> $CFGINITRD export OGSERVERSHARE="${ogshare:-$ROOTSERVER}" && echo "OGSERVERSHARE=$OGSERVERSHARE" >> $CFGINITRD
export OGSERVERLOG="${oglog:-$ROOTSERVER}" && echo "OGSERVERLOG=$OGSERVERLOG" >> $CFGINITRD export OGSERVERLOG="${oglog:-$ROOTSERVER}" && echo "OGSERVERLOG=$OGSERVERLOG" >> $CFGINITRD
export OGSERVERLIVE="${oglive:-$OGSERVERIMAGES}" && echo "OGSERVERLIVE=$OGSERVERLIVE" >> $CFGINITRD export OGSERVERLIVE="${oglive:-$OGSERVERIMAGES}" && echo "OGSERVERLIVE=$OGSERVERLIVE" >> $CFGINITRD
echo "OGSERVERIMAGES ($OGSERVERIMAGES) OGSERVERSHARE ($OGSERVERSHARE) OGSERVERLOG ($OGSERVERLOG) OGSERVERLIVE ($OGSERVERLIVE)" >>/tmp/oginit.log
return 0 return 0
} }
@ -397,50 +427,50 @@ ogGetROOTSERVER ()
ogUpdateInitrd () ogUpdateInitrd ()
{ {
echo "ogUpdateInitrd()" >>/tmp/oginit.log
local OGLIVEDIR local OGLIVEDIR
OGLIVEDIR=${oglivedir:-"ogclient"} OGLIVEDIR=${oglivedir:-"ogclient"}
echo "OGLIVEDIR ($OGLIVEDIR)" >>/tmp/oginit.log
cd /tmp cd /tmp
mkdir /tmp/cache mkdir /tmp/cache
TYPE=$(blkid -po export $(blkid -L CACHE) 2>/dev/null | awk -F= '$1=="TYPE" { print $2}') TYPE=$(blkid -po export $(blkid -L CACHE) 2>/dev/null | awk -F= '$1=="TYPE" { print $2}')
echo "TYPE ($TYPE)" >>/tmp/oginit.log
# Salir si no se detecta caché. # Salir si no se detecta caché.
[ -z "$TYPE" ] && return [ -z "$TYPE" ] && return
echo "running 'mount -t $TYPE LABEL=CACHE /tmp/cache'" >>/tmp/oginit.log
mount -t $TYPE LABEL=CACHE /tmp/cache || return mount -t $TYPE LABEL=CACHE /tmp/cache || return
echo "running 'mkdir -p /tmp/cache/boot/$OGLIVEDIR'" >>/tmp/oginit.log
mkdir -p /tmp/cache/boot/$OGLIVEDIR mkdir -p /tmp/cache/boot/$OGLIVEDIR
# comparamos los del server # comparamos los del server
busybox tftp -g -r $OGLIVEDIR/ogvmlinuz.sum $ROOTSERVER busybox tftp -g -r $OGLIVEDIR/ogvmlinuz.sum $ROOTSERVER
busybox tftp -g -r $OGLIVEDIR/oginitrd.img.sum $ROOTSERVER busybox tftp -g -r $OGLIVEDIR/oginitrd.img.sum $ROOTSERVER
SERVERVMLINUZ=`cat ogvmlinuz.sum` SERVERVMLINUZ=`cat ogvmlinuz.sum`
SERVERINITRD=`cat oginitrd.img.sum` SERVERINITRD=`cat oginitrd.img.sum`
#comparamos los de la cache #comparamos los de la cache
CACHEVMLINUZ=`cat /tmp/cache/boot/$OGLIVEDIR/ogvmlinuz.sum` CACHEVMLINUZ=`cat /tmp/cache/boot/$OGLIVEDIR/ogvmlinuz.sum`
CACHEINITRD=`cat /tmp/cache/boot/$OGLIVEDIR/oginitrd.img.sum` CACHEINITRD=`cat /tmp/cache/boot/$OGLIVEDIR/oginitrd.img.sum`
echo "MD5 on SERVER: $SERVERVMLINUZ $SERVERINITRD" echo "MD5 on SERVER: $SERVERVMLINUZ $SERVERINITRD" |tee -a /tmp/oginit.log
echo "MD5 on CACHE: $CACHEVMLINUZ $CACHEINITRD" echo "MD5 on CACHE: $CACHEVMLINUZ $CACHEINITRD" |tee -a /tmp/oginit.log
cd /tmp/cache/boot/$OGLIVEDIR || mkdir -p /tmp/cache/boot/$OGLIVEDIR cd /tmp/cache/boot/$OGLIVEDIR || mkdir -p /tmp/cache/boot/$OGLIVEDIR
if [ "$CACHEVMLINUZ" != "$SERVERVMLINUZ" ] if [ "$CACHEVMLINUZ" != "$SERVERVMLINUZ" ]; then
then echo "ogvmlinuz updating" |tee -a /tmp/oginit.log
echo "ogvmlinuz updating"
busybox tftp -g -r $OGLIVEDIR/ogvmlinuz $ROOTSERVER busybox tftp -g -r $OGLIVEDIR/ogvmlinuz $ROOTSERVER
busybox tftp -g -r $OGLIVEDIR/ogvmlinuz.sum $ROOTSERVER busybox tftp -g -r $OGLIVEDIR/ogvmlinuz.sum $ROOTSERVER
DOREBOOT=true DOREBOOT=true
fi fi
if [ "$CACHEINITRD" != "$SERVERINITRD" ] if [ "$CACHEINITRD" != "$SERVERINITRD" ]; then
then echo "oginitrd updating" |tee -a /tmp/oginit.log
echo "oginitrd updating"
busybox tftp -g -r $OGLIVEDIR/oginitrd.img $ROOTSERVER busybox tftp -g -r $OGLIVEDIR/oginitrd.img $ROOTSERVER
busybox tftp -g -r $OGLIVEDIR/oginitrd.img.sum $ROOTSERVER busybox tftp -g -r $OGLIVEDIR/oginitrd.img.sum $ROOTSERVER
DOREBOOT=true DOREBOOT=true
fi fi
cd /; umount /tmp/cache cd /; umount /tmp/cache
[ "$DOREBOOT" == "true" ] && reboot -f [ "$DOREBOOT" == "true" ] && reboot -f
} }
@ -462,25 +492,33 @@ ogUpdateInitrd ()
ogConnect () ogConnect ()
{ {
echo "ogConnect()" >>/tmp/oginit.log
SERVER=$1 SERVER=$1
PROTOCOL=$2 PROTOCOL=$2
SRC=$3 SRC=$3
DST=$4 DST=$4
READONLY=$5 READONLY=$5
echo "SERVER ($SERVER) PROTOCOL ($PROTOCOL) SRC ($SRC) DST ($DST) READONLY ($READONLY)" >>/tmp/oginit.log
OPTIONS_LOG_SAFE=$(echo "$OPTIONS" |sed -e 's/pass=.*/pass=***/')
case "$PROTOCOL" in case "$PROTOCOL" in
nfs) nfs)
echo "running 'nfsmount ${SERVER}:${SRC} ${DST} -o nolock${READONLY} || mount.nfs ${SERVER}:${SRC} ${DST} -o nolock${READONLY}'" >>/tmp/oginit.log
nfsmount ${SERVER}:${SRC} ${DST} -o nolock${READONLY} 2> /dev/null || mount.nfs ${SERVER}:${SRC} ${DST} -o nolock${READONLY} nfsmount ${SERVER}:${SRC} ${DST} -o nolock${READONLY} 2> /dev/null || mount.nfs ${SERVER}:${SRC} ${DST} -o nolock${READONLY}
;; ;;
smb) smb)
echo "running 'mount.cifs //${SERVER}/${SRC} ${DST} ${OPTIONS_LOG_SAFE}${READONLY}'" >>/tmp/oginit.log
mount.cifs //${SERVER}/${SRC} ${DST} ${OPTIONS}${READONLY} mount.cifs //${SERVER}/${SRC} ${DST} ${OPTIONS}${READONLY}
;; ;;
local) local)
# Comprobamos que estatus sea online y que la variable del server no esta vacia. # Comprobamos que estatus sea online y que la variable del server no esta vacia.
echo "ogstatus ($ogstatus) SERVER ($SERVER) SRC ($SRC)" >>/tmp/oginit.log
if [ "$ogstatus" != "offline" -a "$SERVER" != "" -a "$SRC" != "" ]; then if [ "$ogstatus" != "offline" -a "$SERVER" != "" -a "$SRC" != "" ]; then
# Comprobamos que existe un servicio de samba. # Comprobamos que existe un servicio de samba.
echo "running 'smbclient -L $SERVER -N'" >>/tmp/oginit.log
smbclient -L $SERVER -N &>/dev/null smbclient -L $SERVER -N &>/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "running 'mount.cifs //${SERVER}/og${SRC} ${DST} ${OPTIONS_LOG_SAFE}${READONLY}'" >>/tmp/oginit.log
mount.cifs //${SERVER}/og${SRC} ${DST} ${OPTIONS}${READONLY} mount.cifs //${SERVER}/og${SRC} ${DST} ${OPTIONS}${READONLY}
fi fi
# TODO: buscar condicion para NFS # TODO: buscar condicion para NFS
@ -505,21 +543,27 @@ ogConnect ()
#@date 2011/05/24 #@date 2011/05/24
ogConnectOgLive () ogConnectOgLive ()
{ {
echo "ogConnectOgLive()" >>/tmp/oginit.log
echo "SRCOGLIVE ($SRCOGLIVE)" >>/tmp/oginit.log
# Si ogprotocol=local, la funcion ogExportVar => SRCOGLIVE=local # Si ogprotocol=local, la funcion ogExportVar => SRCOGLIVE=local
if [ "$SRCOGLIVE" == "local" ] if [ "$SRCOGLIVE" == "local" ]; then
then echo "Montar imagen del sistema root desde dispositivo local" |tee -a /tmp/oginit.log
echo "Montar imagen del sistema root desde dispositivo local" for i in $(blkid /dev/s* | grep $OGLIVELABEL | awk -F: '{print $2}' | tr -d \"); do
for i in $(blkid /dev/s* | grep $OGLIVELABEL | awk -F: '{print $2}' | tr -d \"); do export $i; done echo "export $i" >>/tmp/oginit.log
export $i
done
# si local usb| cd con partcion es identificada como label $OGLIVELABEL # si local usb| cd con partcion es identificada como label $OGLIVELABEL
echo "running 'mount -t $TYPE LABEL=$OGLIVELABEL $DSTOGLIVE'" >>/tmp/oginit.log
mount -t $TYPE LABEL=$OGLIVELABEL $DSTOGLIVE mount -t $TYPE LABEL=$OGLIVELABEL $DSTOGLIVE
if [ $? != 0 ] if [ $? != 0 ]; then
then
# Si local es particion CACHE es identificada como CACHE # Si local es particion CACHE es identificada como CACHE
echo "mount failed, running 'mount LABEL=CACHE $DSTOGLIVE'" >>/tmp/oginit.log
mount LABEL=CACHE $DSTOGLIVE mount LABEL=CACHE $DSTOGLIVE
#export LOCALMEDIA=CACHE #export LOCALMEDIA=CACHE
fi fi
else else
# Si ogprotocol es remoto. TODO en smb rw y en nfs ro?? # Si ogprotocol es remoto. TODO en smb rw y en nfs ro??
echo "running 'ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE'" >>/tmp/oginit.log
ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE
fi fi
# Si el montaje ha sido correcto, tanto en local como en remoto. Procedemos con la union # Si el montaje ha sido correcto, tanto en local como en remoto. Procedemos con la union
@ -538,33 +582,38 @@ ogConnectOgLive ()
#@date 2011/05/24 #@date 2011/05/24
ogMergeLive() ogMergeLive()
{ {
echo "ogMergeLive()" >>/tmp/oginit.log
#Si existe en el punto de acceso del del oglive el fichero ogclient.sqfs #Si existe en el punto de acceso del del oglive el fichero ogclient.sqfs
if [ ! -d $DSTOGLIVE/$OGLIVEDIR ]; then if [ ! -d $DSTOGLIVE/$OGLIVEDIR ]; then
echo "Usando ogLive por defecto." echo "Usando ogLive por defecto."
export OGLIVEDIR=$DEFOGLIVE export OGLIVEDIR=$DEFOGLIVE
fi fi
if [ -f $DSTOGLIVE/$OGLIVEDIR/ogclient.sqfs ] echo "OGLIVEDIR ($OGLIVEDIR) og2nd ($og2nd)" >>/tmp/oginit.log
then if [ -f $DSTOGLIVE/$OGLIVEDIR/ogclient.sqfs ]; then
cat /proc/mounts > /tmp/mtab.preunion cat /proc/mounts > /tmp/mtab.preunion
if [ "$og2nd" == "img" ] if [ "$og2nd" == "img" ]; then
then
#Montamos el ROOTFS tipo img, para desarrolladores #Montamos el ROOTFS tipo img, para desarrolladores
#TODO: comprobar que se tiene acceso de escritura #TODO: comprobar que se tiene acceso de escritura
echo "running 'losetup /dev/loop0 $DSTOGLIVE/$OGLIVEDIR/ogclient.img -o 32256'" >>/tmp/oginit.log
losetup /dev/loop0 $DSTOGLIVE/$OGLIVEDIR/ogclient.img -o 32256 losetup /dev/loop0 $DSTOGLIVE/$OGLIVEDIR/ogclient.img -o 32256
echo "running 'mount /dev/loop0 $OGLIVEROOTFS'" >>/tmp/oginit.log
mount /dev/loop0 $OGLIVEROOTFS mount /dev/loop0 $OGLIVEROOTFS
else else
## Montamos el ROOTFS tipo squashfs ## Montamos el ROOTFS tipo squashfs
echo "running 'mount $DSTOGLIVE/$OGLIVEDIR/ogclient.sqfs $OGLIVEROOTFS -t squashfs -o loop'" >>/tmp/oginit.log
mount $DSTOGLIVE/$OGLIVEDIR/ogclient.sqfs $OGLIVEROOTFS -t squashfs -o loop mount $DSTOGLIVE/$OGLIVEDIR/ogclient.sqfs $OGLIVEROOTFS -t squashfs -o loop
fi fi
# Realizamos la union entre el ogliveram(initrd) y el ogliverootfs(ogclient.sqfs) # Realizamos la union entre el ogliveram(initrd) y el ogliverootfs(ogclient.sqfs)
# Nota: el orden es muy importante para evitar errores de montaje. # Nota: el orden es muy importante para evitar errores de montaje.
[ -d $OGLIVEROOTFS/lib32 ] && LIBS=lib32 [ -d $OGLIVEROOTFS/lib32 ] && LIBS=lib32
echo "LIBS ($LIBS)" >>/tmp/oginit.log
for i in bin sbin lib $LIBS etc var usr root boot; do for i in bin sbin lib $LIBS etc var usr root boot; do
echo "ogUnionLiveDir $i" >>/tmp/oginit.log
ogUnionLiveDir $i ogUnionLiveDir $i
done done
[ -L /etc/mtab ] || cat /tmp/mtab.preunion > /etc/mtab [ -L /etc/mtab ] || cat /tmp/mtab.preunion > /etc/mtab
else else
echo "Fichero imagen del cliente no encontrado" echo "Fichero imagen del cliente no encontrado" |tee -a /tmp/oginit.log
return 1 return 1
fi fi
} }
@ -582,10 +631,12 @@ fi
#@date 2011/05/24 #@date 2011/05/24
ogUnionLiveDir() ogUnionLiveDir()
{ {
echo "ogUnionLiveDir()" >>/tmp/oginit.log
TMPDIR=/$1 #dir TMPDIR=/$1 #dir
FUSE_OPT="-o default_permissions -o allow_other -o use_ino -o nonempty -o suid" FUSE_OPT="-o default_permissions -o allow_other -o use_ino -o nonempty -o suid"
UNION_OPT="-o cow -o noinitgroups" UNION_OPT="-o cow -o noinitgroups"
UBIN="unionfs-fuse" UBIN="unionfs-fuse"
echo "TMPDIR ($TMPDIR) FUSE_OPT ($FUSE_OPT) UNION_OPT ($UNION_OPT) UBIN ($UBIN)" >>/tmp/oginit.log
mkdir -p $OGLIVERAMFS$TMPDIR mkdir -p $OGLIVERAMFS$TMPDIR
U1STDIR="${OGLIVERAMFS}${TMPDIR}=RW" U1STDIR="${OGLIVERAMFS}${TMPDIR}=RW"
@ -593,7 +644,9 @@ ogUnionLiveDir()
UNIONDIR=${OGLIVEUNIONFS}${TMPDIR} UNIONDIR=${OGLIVEUNIONFS}${TMPDIR}
ulimit -n 4096 ulimit -n 4096
mkdir -p $UNIONDIR $TMPDIR mkdir -p $UNIONDIR $TMPDIR
echo "running '$UBIN $FUSE_OPT $UNION_OPT ${U1STDIR}:${U2NDDIR} $UNIONDIR'" >>/tmp/oginit.log
$UBIN $FUSE_OPT $UNION_OPT ${U1STDIR}:${U2NDDIR} $UNIONDIR $UBIN $FUSE_OPT $UNION_OPT ${U1STDIR}:${U2NDDIR} $UNIONDIR
echo "running 'mount --bind $UNIONDIR $TMPDIR'" >>/tmp/oginit.log
mount --bind $UNIONDIR $TMPDIR mount --bind $UNIONDIR $TMPDIR
} }
@ -614,6 +667,7 @@ ogUnionLiveDir()
#*/ ## #*/ ##
ogConfigureLoopback() ogConfigureLoopback()
{ {
echo "ogConfigureLoopback()" >>/tmp/oginit.log
# for the portmapper we need localhost # for the portmapper we need localhost
ifconfig lo 127.0.0.1 ifconfig lo 127.0.0.1
#/etc/init.d/portmap start #/etc/init.d/portmap start
@ -631,10 +685,10 @@ ogConfigureLoopback()
#*/ ## #*/ ##
ogConfigureNetworking() ogConfigureNetworking()
{ {
#echo "ogConfigureNetworking: Buscando interfaz a configurar DEVICE" echo "ogConfigureNetworking()" >>/tmp/oginit.log
if [ -n "${BOOTIF}" ] echo "ogConfigureNetworking: Buscando interfaz a configurar DEVICE" >>/tmp/oginit.log
then if [ -n "${BOOTIF}" ]; then
#echo " variable BOOTIF exportada con pxelinux.0 con valor $BOOTIF" echo " variable BOOTIF exportada con pxelinux.0 con valor ($BOOTIF)" >>/tmp/oginit.log
IP=$IPOPTS IP=$IPOPTS
temp_mac=${BOOTIF#*-} temp_mac=${BOOTIF#*-}
# convert to typical mac address format by replacing "-" with ":" # convert to typical mac address format by replacing "-" with ":"
@ -648,20 +702,22 @@ then
fi fi
done done
unset IFS unset IFS
# look for devices with matching mac address, and set DEVICE to echo "IP ($IP) bootif_mac ($bootif_mac)" >>/tmp/oginit.log
# appropriate value if match is found. # look for devices with matching mac address, and set DEVICE to appropriate value if match is found.
for device in /sys/class/net/* ; do for device in /sys/class/net/* ; do
if [ -f "$device/address" ]; then if [ -f "$device/address" ]; then
current_mac=$(cat "$device/address") current_mac=$(cat "$device/address")
if [ "$bootif_mac" = "$current_mac" ]; then if [ "$bootif_mac" = "$current_mac" ]; then
DEVICE=${device##*/} DEVICE=${device##*/}
echo "current_mac ($current_mac) of device ($device) equals bootif_mac ($bootif_mac), setting DEVICE to ($DEVICE)" >>/tmp/oginit.log
break break
fi fi
fi fi
done done
else else
#echo "variable BOOTIF no exportada, intentamos detectar que interfaz se ha iniciado" echo "variable BOOTIF no exportada, intentamos detectar que interfaz se ha iniciado" >>/tmp/oginit.log
IP=$ip IP=$ip
echo "IP ($IP)" >>/tmp/oginit.log
#TODO Detectar que interfaz se ha iniciado #TODO Detectar que interfaz se ha iniciado
case "$IP" in case "$IP" in
none|off) none|off)
@ -678,29 +734,34 @@ else
DEVICE=`echo $IP | cut -f6 -d:` DEVICE=`echo $IP | cut -f6 -d:`
;; ;;
esac esac
echo "DEVICE ($DEVICE)" >>/tmp/oginit.log
fi fi
DEVICE=$(ogGetNetworkDevice $DEVICE) DEVICE=$(ogGetNetworkDevice $DEVICE)
echo "DEVICE now ($DEVICE)" >>/tmp/oginit.log
if [ -z "${DEVICE}" ]; then if [ -z "${DEVICE}" ]; then
echo "variable DEVICE con valor $DEVICE no encontrada, llamamos de nuevo a ogconfigure_networking" echo "variable DEVICE con valor $DEVICE no encontrada, llamamos de nuevo a ogconfigure_networking" |tee -a /tmp/oginit.log
ogConfigureNetworking ogConfigureNetworking
fi fi
[ -n "${DEVICE}" ] && [ -e /run/net-"${DEVICE}".conf ] && return 0 [ -n "${DEVICE}" ] && [ -e /run/net-"${DEVICE}".conf ] && echo "/run/net-$DEVICE.conf exists" >>/tmp/oginit.log && return 0
#if [ -n "${DEVICE}" ] && [ -e /run/net-"${DEVICE}".conf ]; then #if [ -n "${DEVICE}" ] && [ -e /run/net-"${DEVICE}".conf ]; then
# echo "variable DEVICE con valor $DEVICE y fichero /run/net-$DEVICE encontrados" # echo "variable DEVICE con valor $DEVICE y fichero /run/net-$DEVICE encontrados" |tee -a /tmp/oginit.log
# return 0 # return 0
#else #else
# echo "variable DEVICE con valor $DEVICE encontrada, procedemos a configurala y a crear el fichero /run/net-$DEVICE" # echo "variable DEVICE con valor $DEVICE encontrada, procedemos a configurala y a crear el fichero /run/net-$DEVICE" |tee -a /tmp/oginit.log
#fi #fi
# Activamos la interfaz antes de configurar. # Activamos la interfaz antes de configurar.
echo "running 'ip address flush $DEVICE'" >>/tmp/oginit.log
ip address flush $DEVICE ip address flush $DEVICE
echo "running 'ip link set dev $DEVICE up'" >>/tmp/oginit.log
ip link set dev $DEVICE up ip link set dev $DEVICE up
# Si no se detecta señal portadora volver a configurar. # Si no se detecta señal portadora volver a configurar.
sleep 1 sleep 1
CARRIER=$(cat /sys/class/net/${DEVICE}/carrier) CARRIER=$(cat /sys/class/net/${DEVICE}/carrier)
if [ "$CARRIER" != "1" ] echo "CARRIER ($CARRIER)" >>/tmp/oginit.log
then if [ "$CARRIER" != "1" ]; then
ogConfigureNetworking ogConfigureNetworking
fi fi
@ -708,27 +769,29 @@ fi
# Documentation/filesystems/nfsroot.txt # Documentation/filesystems/nfsroot.txt
# Documentation/frv/booting.txt # Documentation/frv/booting.txt
for ROUNDTTT in 2 3 4 6 9 16 25 36 64 100; do for ROUNDTTT in 2 3 4 6 9 16 25 36 64 100; do
echo "ROUNDTTT ($ROUNDTTT)" >>/tmp/oginit.log
# The NIC is to be configured if this file does not exist. # The NIC is to be configured if this file does not exist.
# Ip-Config tries to create this file and when it succeds # Ip-Config tries to create this file and when it succeds creating the file, ipconfig is not run again.
# creating the file, ipconfig is not run again.
if [ -e /run/net-"${DEVICE}".conf ]; then if [ -e /run/net-"${DEVICE}".conf ]; then
echo "/run/net-$DEVICE.conf exists" >>/tmp/oginit.log
break; break;
fi fi
echo "IP ($IP)" >>/tmp/oginit.log
case "$IP" in case "$IP" in
none|off) none|off)
return 0 return 0
;; ;;
""|on|any) ""|on|any)
# Bring up device # Bring up device
echo "Setting $DEVICE with option:on|any and Variable IP= $IP: ipconfig -t ${ROUNDTTT} ${DEVICE} " echo "Setting $DEVICE with option:on|any and Variable IP= $IP: ipconfig -t ${ROUNDTTT} ${DEVICE} " |tee -a /tmp/oginit.log
ipconfig -t ${ROUNDTTT} ${DEVICE} ipconfig -t ${ROUNDTTT} ${DEVICE}
;; ;;
dhcp|bootp|rarp|both) dhcp|bootp|rarp|both)
echo "Setting $DEVICE with option:dhcp|bootp|rarp|both and Variable IP= $IP: ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE} " echo "Setting $DEVICE with option:dhcp|bootp|rarp|both and Variable IP= $IP: ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE} " |tee -a /tmp/oginit.log
ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE} ipconfig -t ${ROUNDTTT} -c ${IP} -d ${DEVICE}
;; ;;
*) *)
echo "Setting $DEVICE with option * and Variable IP= $IP: ipconfig -t ${ROUNDTTT} -d $IP " echo "Setting $DEVICE with option * and Variable IP= $IP: ipconfig -t ${ROUNDTTT} -d $IP " |tee -a /tmp/oginit.log
ipconfig -t ${ROUNDTTT} -d $IP ipconfig -t ${ROUNDTTT} -d $IP
# grab device entry from ip option # grab device entry from ip option
NEW_DEVICE=${IP#*:*:*:*:*:*} NEW_DEVICE=${IP#*:*:*:*:*:*}
@ -738,6 +801,7 @@ for ROUNDTTT in 2 3 4 6 9 16 25 36 64 100; do
# wrong parse, possibly only a partial string # wrong parse, possibly only a partial string
NEW_DEVICE= NEW_DEVICE=
fi fi
echo "NEW_DEVICE ($NEW_DEVICE)" >>/tmp/oginit.log
if [ -n "${NEW_DEVICE}" ]; then if [ -n "${NEW_DEVICE}" ]; then
DEVICE="${NEW_DEVICE}" DEVICE="${NEW_DEVICE}"
fi fi
@ -746,19 +810,23 @@ for ROUNDTTT in 2 3 4 6 9 16 25 36 64 100; do
done done
# source ipconfig output # source ipconfig output
echo "DEVICE ($DEVICE)" >>/tmp/oginit.log
if [ -n "${DEVICE}" ]; then if [ -n "${DEVICE}" ]; then
export DEVICE export DEVICE
export DEVICECFG="/run/net-${DEVICE}.conf" export DEVICECFG="/run/net-${DEVICE}.conf"
# En algunos casos, el fichero de configuración está en /tmp. # En algunos casos, el fichero de configuración está en /tmp.
[ ! -f $DEVICECFG -a -f ${DEVICECFG/run/tmp} ] && mv ${DEVICECFG/run/tmp} $DEVICECFG [ ! -f $DEVICECFG -a -f ${DEVICECFG/run/tmp} ] && mv ${DEVICECFG/run/tmp} $DEVICECFG
echo "source'ing DEVICECFG ($DEVICECFG)" >>/tmp/oginit.log
source $DEVICECFG source $DEVICECFG
echo "DEVICE=$DEVICE" >> $CFGINITRD echo "DEVICE=$DEVICE" >> $CFGINITRD
echo "DEVICECFG=$DEVICECFG" >> $CFGINITRD echo "DEVICECFG=$DEVICECFG" >> $CFGINITRD
echo "exportando variable DEVICE con valor = $DEVICE y DEVICECFG con valor $DEVICECFG" echo "exportando variable DEVICE con valor = ($DEVICE) y DEVICECFG con valor ($DEVICECFG)"
# Compatibilidad con versiones anteriores. # Compatibilidad con versiones anteriores.
ln -fs $DEVICECFG /tmp ln -fs $DEVICECFG /tmp
else else
# source any interface as not exaclty specified # source any interface as not exaclty specified
NET_STAR=/run/net-*.conf
echo "source'ing ($NET_STAR)" >>/tmp/oginit.log
source /run/net-*.conf source /run/net-*.conf
fi fi
} }
@ -777,6 +845,7 @@ fi
#*/ ## #*/ ##
ogYesNo() ogYesNo()
{ {
echo "ogYesNo()" >>/tmp/oginit.log
local ans local ans
local ok=0 local ok=0
local timeout=0 local timeout=0

View File

@ -32,10 +32,12 @@
#@date 2013/02/18 #@date 2013/02/18
#*/ #*/
og_ask() {
echo "$1" >>/tmp/oginit.log
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "$1: y/N "; [ $? == 0 ] && sh || echo " "
}
# Parameter: Where to mount the filesystem mountroot () {
mountroot ()
{
[ -f /scripts/VERSION.txt ] && OGVERSION=$(cat /scripts/VERSION.txt) [ -f /scripts/VERSION.txt ] && OGVERSION=$(cat /scripts/VERSION.txt)
OGVERSION=${OGVERSION:-"OpenGnsys Client"} OGVERSION=${OGVERSION:-"OpenGnsys Client"}
echo; echo; echo "$OGVERSION"; echo; echo echo; echo; echo "$OGVERSION"; echo; echo
@ -44,42 +46,38 @@ mountroot ()
#run_scripts /scripts/og-top #run_scripts /scripts/og-top
#[ "$quiet" != "y" ] && log_end_msg #[ "$quiet" != "y" ] && log_end_msg
# If the root device hasn't shown up yet, give it a little while
# to deal with removable devices
. /scripts/functions . /scripts/functions
. /scripts/ogfunctions . /scripts/ogfunctions
# If the root device hasn't shown up yet, give it a little while
# to deal with removable devices
sleep 2 sleep 2
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before get OG variables: y/N "
[ $? == 0 ] && sh || echo " " og_ask "Stop before get OG variables"
set -a set -a
log_success_msg "Checking kernel parameters" log_success_msg "Checking kernel parameters"
ogExportKernelParameters ogExportKernelParameters
# Cambiar resolución de vídeo para kernels que usan el parámetro "video". [ -n "$video" ] && ogChangeVideoResolution # 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 ogExportVarEnvironment
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before configure ramfs structure for OG: y/N "
[ $? == 0 ] && sh || echo " " og_ask "Stop before configure ramfs structure for OG"
ogConfigureRamfs ogConfigureRamfs
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before configure netmoule specified in kernel parameters: y/N "
[ $? == 0 ] && sh || echo " " og_ask "Stop before configure netmoule specified in kernel parameters"
ogLoadNetModule ogLoadNetModule
#[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/og-premount" #[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/og-premount"
#run_scripts /scripts/og-premount #run_scripts /scripts/og-premount
#[ "$quiet" != "y" ] && log_end_msg #[ "$quiet" != "y" ] && log_end_msg
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before configure networking: y/N "
[ $? == 0 ] && sh || echo " " og_ask "Stop before configure networking"
if [ -n "$oglive" ] if [ -n "$oglive" ]; then
then while !(ping -c 1 $oglive &> /dev/null); do
while !(ping -c 1 $oglive &> /dev/null)
do
ogConfigureNetworking ogConfigureNetworking
done done
fi fi
@ -88,59 +86,50 @@ mountroot ()
log_success_msg "config loopback" log_success_msg "config loopback"
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before detect rootserver: y/N " og_ask "Stop before detect rootserver"
[ $? == 0 ] && sh || echo " "
ogGetROOTSERVER && log_success_msg "Get Info from pxe server and ckeck distribuited OG services " ogGetROOTSERVER && log_success_msg "Get Info from pxe server and ckeck distribuited OG services "
if [ "$ogdebug" == "true" -a "$ogupdateinitrd" == "true" ]; then if [ "$ogupdateinitrd" == "true" ]; then
ogYesNo --timeout 5 --default no "Stop before check updating initrd: y/N " og_ask "Stop before check updating initrd"
[ $? == 0 ] && sh || echo " "
fi fi
# Actualizar Initrd si se solicita o si no se corresponde con su kernel.
if [ "$ogupdateinitrd" == "true" -o ! -d /lib/modules/$(uname -r) ]; then if [ "$ogupdateinitrd" == "true" -o ! -d /lib/modules/$(uname -r) ]; then
ogUpdateInitrd ogUpdateInitrd # Actualizar Initrd si se solicita o si no se corresponde con su kernel.
fi fi
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before connect and merging the rootfs -ogLive- with $OGSERVERLIVE: y/N "
[ $? == 0 ] && sh || echo " " og_ask "Stop before connect and merging the rootfs -ogLive- with $OGSERVERLIVE"
ogConnectOgLive && log_success_msg "Merge the initrd with the remote rootfs -ogLive- on $OGSERVERLIVE" || sh ogConnectOgLive && log_success_msg "Merge the initrd with the remote rootfs -ogLive- on $OGSERVERLIVE" || sh
# si es necesario realiza ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE # si es necesario realiza ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before connect with client dir SHARE -engine,scripts,interface, -share- on $OGSERVERSHARE : y/N "
[ $? == 0 ] && sh || echo " " og_ask "Stop before connect with client dir SHARE -engine,scripts,interface, -share- on $OGSERVERSHARE "
ogConnect $OGSERVERSHARE $OGPROTOCOL $SRCOGSHARE $DSTOGSHARE ogConnect $OGSERVERSHARE $OGPROTOCOL $SRCOGSHARE $DSTOGSHARE
if [ $? -ne 0 -a "$SRCOGSHARE" != "$DEFOGSHARE" ]; then if [ $? -ne 0 -a "$SRCOGSHARE" != "$DEFOGSHARE" ]; then
ogConnect $OGSERVERSHARE $OGPROTOCOL $DEFOGSHARE $DSTOGSHARE && SRCOGSHARE=$DEFOGSHARE ogConnect $OGSERVERSHARE $OGPROTOCOL $DEFOGSHARE $DSTOGSHARE && SRCOGSHARE=$DEFOGSHARE
fi fi
unset DEFOGSHARE unset DEFOGSHARE
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before connect with client dir LOG STORAGE on $OGSERVERLOG : y/N "
[ $? == 0 ] && sh || echo " " og_ask "Stop before connect with client dir LOG STORAGE on $OGSERVERLOG "
ogConnect $OGSERVERLOG $OGPROTOCOL $SRCOGLOG $DSTOGLOG ogConnect $OGSERVERLOG $OGPROTOCOL $SRCOGLOG $DSTOGLOG
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before connect with REPOSITORY STORAGE on $OGSERVERIMAGES : y/N "
[ $? == 0 ] && sh || echo " " og_ask "Stop before connect with REPOSITORY STORAGE on $OGSERVERIMAGES "
ogConnect $OGSERVERIMAGES $OGPROTOCOL $SRCOGIMAGES $DSTOGIMAGES ,ro ogConnect $OGSERVERIMAGES $OGPROTOCOL $SRCOGIMAGES $DSTOGIMAGES ,ro
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before doing the postconfiguration: y/N " og_ask "Stop before doing the postconfiguration"
[ $? == 0 ] && sh || echo " "
ogPostConfigureFS ogPostConfigureFS
setupcon -k setupcon -k
[ "$ogdebug" == "true" ] && ogYesNo --timeout 5 --default no "Stop before calling oginit with /etc/inittab: y/N "
[ $? == 0 ] && sh || echo " "
if [ "$oginit" ] og_ask "Stop before calling oginit with /etc/inittab"
then if [ "$oginit" ]; then
echo "exec oginit ($oginit)" >>/tmp/oginit.log
exec $oginit exec $oginit
else else
echo "exec regular init" >>/tmp/oginit.log
exec init exec init
fi fi
} }