Skip to main content

00: Versión de Linux

01: Lightdm.sh

# SOLO SI EL EQUIPO NO ESTÁ EN DEBIAN 12
# Ejecutar como ADMIN/AGENTE
# PASO 0.1 - Esperar hasta que se reinicie

#/bin/bash

apt update -y
apt upgrade -y
if [ ! -d /etc/lightdm/ ]; then
    apt -y purge sddm
    apt autoremove -y
    apt -y install lightdm
    sed -i 's/#autologin-user=/autologin-user=cvc/g' /etc/lightdm/lightdm.conf
    sed -i 's/#autologin-user-timeout=0/autologin-user-timeout=0/g' /etc/lightdm/lightdm.conf
    rm /etc/systemd/system/startx.service /etc/systemd/system/getty.target.wants/getty\@tty1.service
    rm -r /etc/sddm.conf.d/
    reboot
fi

02:  Networkd.sh

# SOLO SI EL EQUIPO NO ESTÁ EN DEBIAN 12
# Ejecutar como ADMIN/AGENTE
# PASO 0.2 - Esperar 2 minutos

#/bin/bash

if [ ! -f /etc/systemd/network/wired.network ]; then
    curl -L https://comunicacionvisualcanarias.com/_ext/updates/2023_1/files/wired.network -o /etc/systemd/network/wired.network

    ADDRESS=$(ip a | grep "inet" | grep "scope global" | grep -v "dynamic" | awk '{ print $2 }')
    GATEWAY=$(ip route | grep "default via" | awk '{print $3}')

    if [ ! -z $ADDRESS ]; then
        sed -i "s/DHCP=.*/DHCP=no/g" /etc/systemd/network/wired.network
        sed -i "s|Address=.*|Address=$ADDRESS|g" /etc/systemd/network/wired.network
        sed -i "s/Gateway=.*/Gateway=$GATEWAY/g" /etc/systemd/network/wired.network
    fi

    systemctl enable systemd-networkd
    systemctl disable NetworkManager
    apt purge -y network-manager
    systemctl start systemd-networkd
    rm -r /etc/NetworkManager
fi

02:  UpdateLite.sh

# SOLO SI EL EQUIPO NO ESTÁ EN DEBIAN 12
# Ejecutar como ADMIN/AGENTE
# PASO 0.3 - Esperar hasta que se reinicie

#!/bin/bash
# ###############################################################
# ###################### Pre Instalacion ########################
# ###############################################################

if [ -f /home/cvc/system.cfg ]; then
    echo "ya actualizado"
    exit 1
fi

if [ ! -f /home/cvc/system/system.cfg ]; then
    echo "no se puede actualizar, no hay system.cfg"
    exit 1
fi


# Entorno
ID=$(grep 'ID="' /home/cvc/system/system.cfg | cut -d'"' -f2)
CLIENT=$(grep 'CLIENT="' /home/cvc/system/system.cfg | cut -d'"' -f2)
STARTAPP=$(grep 'STARTAPP="' /home/cvc/system/system.cfg | cut -d'"' -f2)
SYNC_MEDIA=$(grep 'SYNC_MEDIA="' /home/cvc/system/system.cfg | cut -d'"' -f2)
SYNC_MUSIC=$(grep 'SYNC_MUSIC="' /home/cvc/system/system.cfg | cut -d'"' -f2)

cd /home/cvc
export HOME=/home/cvc

# Deshabilitar tareas
printf "" | sudo -u cvc crontab -
printf "" | crontab -

# Borrar paquetes innecesarios
apt update -y
apt purge -y kitty nano vim-tiny expect
apt autoremove -y

######## Descargar paquete de instalación
[ -d /tmp/update ] && rm -R /tmp/update
mkdir -p /tmp/update/root
curl -L -o /tmp/update/package.zip "https://comunicacionvisualcanarias.com/_ext/updates/2023_1/package.zip"

######## Copiar contenidos, musica y config
mkdir /tmp/update/media
cp -R /home/cvc/_contenidos/files/* /tmp/update/media/

mkdir /tmp/update/music
cp -R /home/cvc/_musica/files/* /tmp/update/music/

mkdir /tmp/update/network
cp /etc/systemd/network/wired.network /tmp/update/network/wired.network

# Extraer paquete
apt install -y unzip
unzip /tmp/update/package.zip -d /tmp/update/root/


# ################################################################
# ########################  INSTALACIÓN ##########################
# ################################################################

######## Preparar los paquetes
apt upgrade -y
apt install -y alsa-utils xdotool zstd bash-completion neovim scrot lm-sensors htop curl efibootmgr ffmpeg jq moreutils


######## Actualizar debian
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
sed -i 's/non-free/non-free-firmware/g' /etc/apt/sources.list
sed -i 's/non-free-firmware-firmware/non-free-firmware/g' /etc/apt/sources.list
export DEBIAN_FRONTEND=noninteractive
export DEBIAN_PRIORITY=critical
apt update -y
apt-get -y -o "Dpkg::Options::=--force- confdef" -o "Dpkg::Options::=--force-confold" upgrade --without-new-pkgs
apt-get -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" full-upgrade

######## Borrar archivos antiguos
rm -f /home/cvc/FIRST_RUN
rm -rf /home/cvc/mesh
rm -rf /home/cvc/update
rm -rf /home/cvc/system
rm -rf /home/cvc/.config/canal
rm -rf /home/cvc/.config/totem
rm -rf /home/cvc/.config/webviewer
rm -rf /home/cvc/.config/guardias

rm -rf /efi/*
rm -rf /usr/share/plymouth/*

######## Copiar ficheros de actualizacion
cp -R /tmp/update/root/* /

 

# #############################################################
# ###################### CONFIGURACIÓN ########################
# #############################################################

# Permisos
chown -R cvc:cvc /home/cvc/
chown root:root /etc/sudoers /etc/sudoers.d -R

chown root /home/cvc/apps/canal/chrome-sandbox
chmod 4755 /home/cvc/apps/canal/chrome-sandbox
chmod +x /home/cvc/apps/canal/canal

chown root /home/cvc/apps/totem/chrome-sandbox
chmod 4755 /home/cvc/apps/totem/chrome-sandbox
chmod +x /home/cvc/apps/totem/totem

chown root /home/cvc/apps/webviewer/chrome-sandbox
chmod 4755 /home/cvc/apps/webviewer/chrome-sandbox
chmod +x /home/cvc/apps/webviewer/webviewer

chown root /home/cvc/apps/guardias/chrome-sandbox
chmod 4755 /home/cvc/apps/guardias/chrome-sandbox
chmod +x /home/cvc/apps/guardias/guardias

chmod +x /home/cvc/scripts/*
chown cvc:cvc /home/cvc/deploy/deploy.json

chmod +x /home/cvc/.bash_aliases

# Fondo de escritorio
cp /home/cvc/resources/defaults/$CLIENT/BG.png /home/cvc/resources/BG.png

######## Configuración de Apps
# Canal
mkdir -p /home/cvc/.config/canal/_custom
cp -R /home/cvc/resources/defaults/$CLIENT/config/canal/*  /home/cvc/.config/canal/_custom/

# Totem
mkdir -p /home/cvc/.config/totem/_custom
if [ -d /home/cvc/resources/defaults/$CLIENT/config/totem/ ]; then
    cp -R /home/cvc/resources/defaults/$CLIENT/config/totem/*  /home/cvc/.config/totem/_custom/
else 
    cp -R /home/cvc/resources/defaults/cvc/config/totem/*  /home/cvc/.config/totem/_custom/
fi

# cServer
cp -R /home/cvc/resources/defaults/$CLIENT/config/server/*  /home/cvc/apps/server/


######## Reestablecer configuraciones

# Contenidos y musica
cp /tmp/update/media/* /home/cvc/deploy/media/
cp /tmp/update/music/* /home/cvc/deploy/music/

# Configuracion de sistema
sed -i "s/ID=.*/ID=\"$ID\"/g" /home/cvc/system.cfg
sed -i "s/CLIENT=.*/CLIENT=\"$CLIENT\"/g" /home/cvc/system.cfg
sed -i "s/STARTAPP=.*/STARTAPP=\"$STARTAPP\"/g" system.cfg
sed -i "s/SYNC_MEDIA=.*/SYNC_MEDIA=\"$SYNC_MEDIA\"/g" system.cfg
sed -i "s/SYNC_MUSIC=.*/SYNC_MUSIC=\"$SYNC_MUSIC\"/g" system.cfg
sed -i "s/SYNC_POWER=.*/SYNC_POWER=\"true\"/g" system.cfg

cp /tmp/update/network/wired.network /etc/systemd/network/wired.network

# Actualizar Plymouth
cp /home/cvc/resources/defaults/$CLIENT/plymouthd.defaults /usr/share/plymouth/plymouthd.defaults
update-initramfs -u

# Actualizar EFI
cp /vmlinuz /efi/EFI/vmlinuz
cp /initrd.img /efi/EFI/initrd
for i in {0..6}
do
    efibootmgr -B -b 000$i
done
efibootmgr -c -d /dev/sda -p 1 -l "\EFI\boot\bootx64.efi" -L "cvcOS"

# Otras configuraciones
systemctl daemon-reload
systemctl enable hwclock
systemctl set-default graphical.target


# Limpieza final
rm -rf /home/cvc/_apps
rm -rf /home/cvc/_contenidos
rm -rf /home/cvc/_musica
rm -rf /home/cvc/telemetry
apt -y purge *pulse*
apt autoremove -y
apt autoclean

# Configurar cron
printf "" | crontab -
printf "*/10 * * * * /home/cvc/scripts/logger\n* * * * * /home/cvc/scripts/sync\n" | sudo -u cvc crontab -

rm -Rf /tmp/update

reboot

04:  Volume.sh

# SOLO SI EL EQUIPO NO ESTÁ EN DEBIAN 12
# Ejecutar como usuario
# PASO 0.4 - Instantaneo

#/bin/bash

sudo -u cvc amixer set Master 100%