Prototipo de oglive con X11

browser
Vadim Trochinsky 2025-02-13 09:56:41 +01:00
parent 43e53acdc3
commit 77dc067d91
3 changed files with 96 additions and 78 deletions

View File

@ -110,8 +110,8 @@ fi
#/**
# ogExportVarEnvironment
#@brief Exporta las variables usadas en el proceso de inicio OpenGnsys y las almacena en /tmp
#@param
#@return
#@param
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
@ -119,7 +119,7 @@ fi
#*/ ##
ogExportVarEnvironment ()
{
export CFGINITRD="/tmp/initrd.cfg"
export CFGINITRD="/tmp/initrd.cfg"
OGPROTOCOL="${ogprotocol:-smb}"
[ "$ogunit" != "" ] && OGUNIT="/$ogunit"
# OPTIONS Para samba y local (a nfs no le afecta)
@ -127,16 +127,16 @@ ogExportVarEnvironment ()
DEFOGLIVE="ogclient"
export OGLIVEDIR="${oglivedir:-$DEFOGLIVE}" && echo "OGLIVEDIR=$OGLIVEDIR" >> $CFGINITRD
case "$OGPROTOCOL" in
nfs|NFS)
export SRCOGLIVE="/var/lib/tftpboot" && echo "SRCOGLIVE=$SRCOGLIVE" >> $CFGINITRD
nfs|NFS)
export SRCOGLIVE="/var/lib/tftpboot" && echo "SRCOGLIVE=$SRCOGLIVE" >> $CFGINITRD
export SRCOGSHARE="/opt/opengnsys/client" && echo "SRCOGSHARE=$SRCOGSHARE" >> $CFGINITRD
export SRCOGLOG="/opt/opengnsys/log/clients" && echo "SRCOGLOG=$SRCOGLOG" >> $CFGINITRD
export SRCOGIMAGES="/opt/opengnsys/images$OGUNIT" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD
export SRCOGLOG="/opt/opengnsys/log/clients" && echo "SRCOGLOG=$SRCOGLOG" >> $CFGINITRD
export SRCOGIMAGES="/opt/opengnsys/images$OGUNIT" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD
;;
smb|SMB|cifs|CIFS|samba|SAMBA)
export SRCOGLIVE="tftpboot" && echo "SRCOGLIVE=$SRCOGLIVE" >> $CFGINITRD
export SRCOGSHARE="ogclient" && echo "SRCOGSHARE=$SRCOGSHARE" >> $CFGINITRD
export SRCOGLOG="oglog" && echo "SRCOGLOG=$SRCOGLOG" >> $CFGINITRD
export SRCOGLOG="oglog" && echo "SRCOGLOG=$SRCOGLOG" >> $CFGINITRD
export SRCOGIMAGES="ogimages$OGUNIT" && echo "SRCOGIMAGES=$SRCOGIMAGES" >> $CFGINITRD
;;
local|LOCAL)
@ -149,7 +149,7 @@ ogExportVarEnvironment ()
esac
#punto de acceso al boot-tools live
export DSTOGLIVE="/opt/oglive/tftpboot"
#punto de montaje para unionfs
#punto de montaje para unionfs
export OGLIVERAMFS="/opt/oglive/ramfs" && echo "OGLIVERAMFS=$OGLIVERAMFS" >> $CFGINITRD
#punto de montaje donde se accede al 2nd FS mediante loop
export OGLIVEROOTFS="/opt/oglive/rootfs" && echo "OGLIVEROOTFS=$OGLIVEROOTFS" >> $CFGINITRD
@ -157,13 +157,13 @@ ogExportVarEnvironment ()
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 "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 DSTOGIMAGES="/opt/opengnsys/images" && echo "DSTOGIMAGES=$DSTOGIMAGES" >> $CFGINITRD
##INFORMACION DE OTRAS VARIABLES OBTENDIAS EN OTRAS FUNCIONES ogConfigureNetwork.
#DEVICE
#IPV4DDR
@ -185,8 +185,8 @@ ogExportVarEnvironment ()
#/**
# ogConfigureRamfs
#@brief Configura el initrd para adaptarlo al sistema raiz.
#@param
#@return
#@param
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
@ -194,10 +194,10 @@ ogExportVarEnvironment ()
#*/ ##
ogConfigureRamfs ()
{
mkdir -p $DSTOGLIVE
mkdir -p $OGLIVERAMFS
mkdir -p $OGLIVEROOTFS
mkdir -p $OGLIVEUNIONFS
mkdir -p $DSTOGLIVE
mkdir -p $OGLIVERAMFS
mkdir -p $OGLIVEROOTFS
mkdir -p $OGLIVEUNIONFS
touch /etc/fstab
}
@ -206,8 +206,8 @@ ogConfigureRamfs ()
#/**
# ogLoadNetModule
#@brief Carga en un demerminado modulo de red, requiere compilación previo del modulo
#@param
#@return
#@param
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
@ -226,8 +226,8 @@ ogLoadNetModule ()
#/**
# ogPostConfigureFS
#@brief Configura el sistema raiz, para independizarlo entre los clientes.
#@param
#@return
#@param
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
@ -237,29 +237,29 @@ ogPostConfigureFS()
{
# configuramos el /etc/hostname.
echo $HOSTNAME > /etc/hostname
#configuramos el /etc/hosts
echo "127.0.0.1 localhost" > /etc/hosts
echo "$IPV4ADDR $HOSTNAME" >> /etc/hosts
#configuramos el host.conf
echo "order hosts,bind" > /etc/host.conf
echo "multi on" >> /etc/host.conf
#configuramos el dns anterior ubuntu 12.04 (parámetro del Kernel "ogdns=IP_DNS")
if [ -n "$ogdns" ]; then
mkdir -p /run/resolvconf
echo "nameserver $ogdns" > /run/resolvconf/resolv.conf
fi
#configuramos el uso del servicio http proxy (parámetro del Kernel "ogproxy=URL_Proxy")
if [ -n "${ogproxy}" ]; then
export http_proxy="$ogproxy"
export https_proxy="$ogproxy"
export ftp_proxy="$ogproxy"
export ftps_proxy="$ogproxy"
fi
export ftps_proxy="$ogproxy"
fi
# configuramos el /etc/networks
#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" ")
@ -310,7 +310,7 @@ ogPostConfigureFS()
#Montamos un directorio temporal para permitir instalacion de softare desde el comando apt-get (parametor kernel "ogtmpfs=50" valor en megas
ogtmpfs="${ogtmpfs:-15}"
mount tmpfs /var/cache/apt/archives -t tmpfs -o size=${ogtmpfs}M
#mount tmpfs /var/cache/apt/archives -t tmpfs -o size=${ogtmpfs}M
mkdir -p /var/cache/apt/archives/partial
mkdir -p /run/user/0
@ -336,8 +336,8 @@ ogPostConfigureFS()
# si la red ha sido configurada con el parametro de kernel ip, será el segundo valor.
## ip=iphost:ipnext-server:ipgateway:netmask:hostname:iface:none
## ip=172.17.36.21:62.36.225.150:172.17.36.254:255.255.255.0:prueba1:eth0:none
#@param
#@return
#@param
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
@ -367,13 +367,13 @@ ogGetROOTSERVER ()
fi
export ROOTSERVER
echo "ROOTSERVER=$ROOTSERVER" >> $CFGINITRD
#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 OGSERVERLOG="${oglog:-$ROOTSERVER}" && echo "OGSERVERLOG=$OGSERVERLOG" >> $CFGINITRD
export OGSERVERLIVE="${oglive:-$OGSERVERIMAGES}" && echo "OGSERVERLIVE=$OGSERVERLIVE" >> $CFGINITRD
return 0
}
@ -381,8 +381,8 @@ ogGetROOTSERVER ()
# ogUpdateInitrd
#@brief Actualiza el initrd de la cache desde el servidor. Si el arranque ha sido desde cache, comprueba desde el servidor nueva version del initird.
#@param1
#@return
#@param1
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
@ -406,26 +406,26 @@ ogUpdateInitrd ()
[ -z "$TYPE" ] && return
mount -t $TYPE LABEL=CACHE /tmp/cache || return
mkdir -p /tmp/cache/boot/$OGLIVEDIR
# comparamos los del server
busybox tftp -g -r $OGLIVEDIR/ogvmlinuz.sum $ROOTSERVER
busybox tftp -g -r $OGLIVEDIR/oginitrd.img.sum $ROOTSERVER
SERVERVMLINUZ=`cat ogvmlinuz.sum`
SERVERINITRD=`cat oginitrd.img.sum`
#comparamos los de la cache
CACHEVMLINUZ=`cat /tmp/cache/boot/$OGLIVEDIR/ogvmlinuz.sum`
CACHEINITRD=`cat /tmp/cache/boot/$OGLIVEDIR/oginitrd.img.sum`
echo "MD5 on SERVER: $SERVERVMLINUZ $SERVERINITRD"
echo "MD5 on CACHE: $CACHEVMLINUZ $CACHEINITRD"
cd /tmp/cache/boot/$OGLIVEDIR || mkdir -p /tmp/cache/boot/$OGLIVEDIR
if [ "$CACHEVMLINUZ" != "$SERVERVMLINUZ" ]
then
then
echo "ogvmlinuz updating"
busybox tftp -g -r $OGLIVEDIR/ogvmlinuz $ROOTSERVER
busybox tftp -g -r $OGLIVEDIR/ogvmlinuz.sum $ROOTSERVER
@ -453,13 +453,13 @@ ogUpdateInitrd ()
#@param3 punto de acceso remoto
#@param4 punto de montaje local
#@param5 acceso de lectura tipo ",ro"
#@return
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
#@date 2011/05/24
#*/ ##
ogConnect ()
{
SERVER=$1
@ -467,13 +467,13 @@ ogConnect ()
SRC=$3
DST=$4
READONLY=$5
case "$PROTOCOL" in
nfs)
nfsmount ${SERVER}:${SRC} ${DST} -o nolock${READONLY} 2> /dev/null || mount.nfs ${SERVER}:${SRC} ${DST} -o nolock${READONLY}
;;
smb)
mount.cifs //${SERVER}/${SRC} ${DST} ${OPTIONS}${READONLY}
mount.cifs //${SERVER}/${SRC} ${DST} ${OPTIONS}${READONLY}
;;
local)
# Comprobamos que estatus sea online y que la variable del server no esta vacia.
@ -497,21 +497,21 @@ ogConnect ()
#/**
# ogConnectOgLive
#@brief Conecta con el recurso para usar el sistema raiz externo, remoto o local
#@param1
#@return
#@param1
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
#@date 2011/05/24
#@date 2011/05/24
ogConnectOgLive ()
{
# Si ogprotocol=local, la funcion ogExportVar => SRCOGLIVE=local
if [ "$SRCOGLIVE" == "local" ]
then
then
echo "Montar imagen del sistema root desde dispositivo local"
for i in $(blkid /dev/s* | grep $OGLIVELABEL | awk -F: '{print $2}' | tr -d \"); do export $i; done
# si local usb| cd con partcion es identificada como label $OGLIVELABEL
mount -t $TYPE LABEL=$OGLIVELABEL $DSTOGLIVE
# si local usb| cd con partcion es identificada como label $OGLIVELABEL
mount -t $TYPE LABEL=$OGLIVELABEL $DSTOGLIVE
if [ $? != 0 ]
then
# Si local es particion CACHE es identificada como CACHE
@ -520,8 +520,8 @@ ogConnectOgLive ()
fi
else
# Si ogprotocol es remoto. TODO en smb rw y en nfs ro??
ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE
fi
ogConnect $OGSERVERLIVE $OGPROTOCOL $SRCOGLIVE $DSTOGLIVE
fi
# Si el montaje ha sido correcto, tanto en local como en remoto. Procedemos con la union
ogMergeLive
}
@ -530,21 +530,21 @@ ogConnectOgLive ()
#/**
# ogMergeLive
#@brief Metafuncion para fusionar el initrd con el sistema raiz.
#@param1
#@return
#@param1
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
#@date 2011/05/24
#@date 2011/05/24
ogMergeLive()
{
#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
echo "Usando ogLive por defecto."
export OGLIVEDIR=$DEFOGLIVE
fi
if [ -f $DSTOGLIVE/$OGLIVEDIR/ogclient.sqfs ]
then
then
cat /proc/mounts > /tmp/mtab.preunion
if [ "$og2nd" == "img" ]
then
@ -556,7 +556,7 @@ then
## Montamos el ROOTFS tipo squashfs
mount $DSTOGLIVE/$OGLIVEDIR/ogclient.sqfs $OGLIVEROOTFS -t squashfs -o loop
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.
[ -d $OGLIVEROOTFS/lib32 ] && LIBS=lib32
for i in bin sbin lib $LIBS etc var usr root boot; do
@ -574,8 +574,8 @@ fi
#/**
# ogUnionLiveDir
#@brief fusiona dos directorios con unionfs
#@param1
#@return
#@param1
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
@ -601,8 +601,8 @@ ogUnionLiveDir()
#/**
# ogConfigureLoopback
#@brief Configura la interfaz loopback para cliente torrent
#@param
#@return
#@param
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9 Usando funciones generales de ubuntu
#@author Antonio J. Doblas. Universidad de Malaga.
@ -621,8 +621,8 @@ ogConfigureLoopback()
#/**
# ogConfigureNetworking
#@brief Configura la interfaz de red usada en el pxe
#@param
#@return
#@param
#@return
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author Antonio J. Doblas. Universidad de Malaga.
@ -631,7 +631,7 @@ ogConfigureLoopback()
ogConfigureNetworking()
{
#echo "ogConfigureNetworking: Buscando interfaz a configurar DEVICE"
if [ -n "${BOOTIF}" ]
if [ -n "${BOOTIF}" ]
then
#echo " variable BOOTIF exportada con pxelinux.0 con valor $BOOTIF"
IP=$IPOPTS
@ -685,7 +685,7 @@ if [ -z "${DEVICE}" ]; then
fi
[ -n "${DEVICE}" ] && [ -e /run/net-"${DEVICE}".conf ] && 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"
# return 0
#else
@ -745,7 +745,7 @@ for ROUNDTTT in 2 3 4 6 9 16 25 36 64 100; do
done
# source ipconfig output
if [ -n "${DEVICE}" ]; then
if [ -n "${DEVICE}" ]; then
export DEVICE
export DEVICECFG="/run/net-${DEVICE}.conf"
# En algunos casos, el fichero de configuración está en /tmp.
@ -767,11 +767,11 @@ fi
# ogYesNo
#@brief Gestion de peticiones de usuario en modo ogdebug=true
#@param1 OPTIONS --timeout N --default ANSWER
#@param1 Questions
#@param1 Questions
#@return 1=yes 0=no
#@exception OG_ERR_FORMAT Formato incorrecto.
#@version 0.9
#@author:
#@author:
#@date 2010/05/24
#*/ ##
ogYesNo()
@ -838,7 +838,7 @@ ogYesNo()
ans=$default
else
ans=$(echo $ans | tr '[:upper:]' '[:lower:]')
fi
fi
fi
if [[ "$ans" == 'y' || "$ans" == 'yes' || "$ans" == 'n' || "$ans" == 'no' ]]; then
@ -848,5 +848,5 @@ ogYesNo()
if [[ $ok -eq 0 ]]; then warning "Valid answers are: yes y no n"; fi
done
[[ "$ans" = "y" || "$ans" == "yes" ]]
}
}

View File

@ -0,0 +1,17 @@
#!/bin/bash
# argumentos $0 -qws url
ignored_args="$1"
url="$2"
mkdir -p $HOME/.config/sway
echo "exec OGBrowser $url" > $HOME/.config/sway/config
mkdir -p $HOME/.config/i3
echo "exec OGBrowser $url" > $HOME/.config/i3/config
echo "exec i3" > $HOME/.xinitrc
sway || startx

View File

@ -92,7 +92,7 @@ filesystem_local =
dmraid dmsetup lvm2 e2fsprogs
jfsutils reiserfsprogs reiser4progs xfsprogs mhddfs hfsplus hfsprogs hfsutils nilfs-tools vmfs-tools
btrfs-progs # ogLive a partir de Ubuntu 20.04
zfsutils-linux # ogLive a partir de Ubuntu 16.04
#zfsutils-linux # ogLive a partir de Ubuntu 16.04 -- desactivado temporalmente
android-tools-adb # ogLive a partir de Ubuntu 16.04
android-tools-fastboot # ogLive a partir de Ubuntu 16.04
f2fs-tools
@ -126,6 +126,7 @@ testing =
xwindows =
v86d # VESA Kernel 3.7+
icewm xserver-common xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-video-all xinit i3
#xorg-dev xorg lxde #+300M
#roxterm gparted #+80M
#openbox midori #xvesa en compilacion
@ -133,4 +134,4 @@ xwindows =
ogbrowser = sway libinput-tools hwdata
oggit = python3 python3-git python3-pyxattr python3-libarchive-c python3-pylibacl python3-pip opengnsys-libarchive-c python3-termcolor bsdextrautils opengnsys-pyblkid ntfs-3g-system-compression python3-tqdm