Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions scripts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Scripts de Instalación CIAA

Este directorio contiene scripts de automatización para configurar el entorno de desarrollo CIAA en diferentes distribuciones de Linux.

## Descripción General

Los scripts descargan e instalan automáticamente todas las herramientas, dependencias y componentes necesarios para trabajar con CIAA (Computadora Industrial Abierta Argentina).

Todos los scripts descargan los componentes en: **`/home/usuario/CIAA`**

---

## Scripts Disponibles

### 1. `epernia-arch-setup.sh` (Arch Linux)

**Propósito:** Instalación automática completa para Arch Linux y derivados (Manjaro, Endeavour, etc.)

**Qué instala:**
- Dependencias del sistema necesarias (jq, unzip, openocd)
- CIAA-Launcher v1.1 (compilador y herramientas de desarrollo)
- Firmware_v3 (firmware del proyecto)
- EmbeddedIDE (entorno integrado de desarrollo)
- **Templates de Embedded IDE** (plantillas de proyectos)

**Uso:**
```bash
chmod +x epernia-arch-setup.sh
sudo ./epernia-arch-setup.sh
```

**Ubicación de descarga:** `/home/usuario/CIAA/`

---

### 2. `epernia-debian-setup.sh` (Debian/Ubuntu)

**Propósito:** Instalación automática completa para Ubuntu, Debian y distribuciones basadas en apt.

**Qué instala:**
- Dependencias del sistema (jq, unzip, openocd, git, build-essential, gtkterm, cutecom)
- CIAA-Launcher v1.1 (compilador y herramientas de desarrollo)
- Firmware_v3 (firmware del proyecto)
- EmbeddedIDE (entorno integrado de desarrollo)
- **Templates de Embedded IDE** (plantillas de proyectos)

**Uso:**
```bash
chmod +x epernia-debian-setup.sh
sudo ./epernia-debian-setup.sh
```

**Ubicación de descarga:** `/home/usuario/CIAA/`

---

### 3. `download-embedded-ide-templates.sh` (Descarga Individual de Templates)

**Propósito:** Descargar únicamente los templates de Embedded IDE sin necesidad de ejecutar la instalación completa. **Útil si la instalación completa falla o solo necesitas actualizar los templates.**

**Qué descarga:**
- Todos los templates (`.template`) disponibles del repositorio oficial
- Los templates son archivos de plantillas para crear nuevos proyectos en Embedded IDE

**Ubicación de descarga (modificable):**
```bash
DEST="/home/$USER_NAME/CIAA/workspaces/embedded-ide-ws/templates"
```

**Cómo usar:**

1. Abre el script en un editor de texto:
```bash
nano download-embedded-ide-templates.sh
```

2. Si deseas cambiar la ubicación de descarga, modifica la línea:
```bash
DEST="/home/$USER_NAME/CIAA/workspaces/embedded-ide-ws/templates"
```

Por ejemplo, para descargar en otra ubicación:
```bash
DEST="/ruta-personalizada/workspaces/embedded-ide-ws/templates"
```

3. Ejecuta el script:
```bash
chmod +x download-embedded-ide-templates.sh
./download-embedded-ide-templates.sh
```



---

## Notas Importantes

**Los templates se incluyen automáticamente** en los scripts `epernia-arch-setup.sh` y `epernia-debian-setup.sh`

**Usa `download-embedded-ide-templates.sh` solo si:**
- La instalación sin los scripts falla y necesitas recuperar los templates
- Deseas actualizar los templates sin reinstalar todo
- Solo tienes conexión para descargar templates
24 changes: 24 additions & 0 deletions scripts/download-embedded-ide-templates.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

# Usuario actual
USER_NAME="$USER"

# Carpeta destino
DEST="/home/$USER_NAME/CIAA/workspaces/embedded-ide-ws/templates"

# Repositorio
REPO="ciaa/EmbeddedIDE-templates"

mkdir -p "$DEST"
cd "$DEST" || exit 1

# Descargar todos los .template
curl -s "https://api.github.com/repos/$REPO/contents" | \
jq -r '.[] | select(.name | endswith(".template")) | .download_url' | \
while read -r url; do
fname=$(basename "$url")
echo "Descargando $fname..."
curl -s -L -o "$fname" "$url"
done

echo "Descarga finalizada en $DEST"
166 changes: 166 additions & 0 deletions scripts/epernia-arch-setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
#!/bin/bash
set -e

# Detectar el home del usuario real
USER_NAME="${SUDO_USER:-$(whoami)}"
USER_HOME="/home/$USER_NAME"

echo "==================================================="
echo " CIAA-Launcher Automatic Installer for Arch Linux "
echo "==================================================="


# 1. Install required dependencies
echo "[1/6] Installing required dependencies..."
if command -v pacman &>/dev/null; then
sudo pacman -Sy --noconfirm jq unzip openocd
elif command -v apt &>/dev/null; then
sudo apt update && sudo apt install -y jq unzip openocd
elif command -v dnf &>/dev/null; then
sudo dnf install -y jq unzip openocd
else
echo "⚠ Could not detect a supported package manager. Please install 'jq' and 'unzip' manually."
fi

# 2. Download CIAA-Launcher and extract immediately
echo "[2/6] Downloading CIAA-Launcher..."
mkdir -p "$USER_HOME/CIAA"
cd "$USER_HOME/CIAA"

if [ ! -f CIAA_Software_1.1-linux-x64.tar.xz ]; then
curl -L -o CIAA_Software_1.1-linux-x64.tar.xz \
https://github.com/epernia/software/releases/download/r1.1.0/CIAA_Software_1.1-linux-x64.tar.xz

echo "Extracting CIAA-Launcher..."
tar -xf CIAA_Software_1.1-linux-x64.tar.xz -C "$USER_HOME/CIAA" --strip-components=1
rm -f CIAA_Software_1.1-linux-x64.tar.xz
if [ -d "$USER_HOME/CIAA/CIAA_Software_1.1-linux-x64" ]; then
rm -rf "$USER_HOME/CIAA/CIAA_Software_1.1-linux-x64"
fi
fi


# 3. Download and extract firmware_v3
echo "[2/6] Downloading firmware_v3..."
cd $USER_HOME/CIAA
if [ ! -f r1.3.0.zip ]; then
curl -L -o r1.3.0.zip \
https://github.com/epernia/firmware_v3/archive/refs/tags/r1.3.0.zip
fi

echo "Extracting firmware_v3..."
unzip -qo r1.3.0.zip -d $USER_HOME/CIAA
rm -f r1.3.0.zip


# 4. Create .desktop entry
echo "[4/6] Creating desktop entry..."
mkdir -p $USER_HOME/.local/share/applications
cat > $USER_HOME/.local/share/applications/CIAA-Launcher.desktop <<EOF
[Desktop Entry]
Type=Application
Name=CIAA-Launcher
Exec=$USER_HOME/CIAA/CIAA-Launcher
Icon=utilities-terminal
Terminal=false
Categories=Utility;
EOF

chmod +x $USER_HOME/.local/share/applications/CIAA-Launcher.desktop


# 5. Download Embedded IDE templates
echo "[5/6] Downloading Embedded IDE templates..."
DEST="$USER_HOME/CIAA/workspaces/embedded-ide-ws/templates"
mkdir -p "$DEST"
REPO="ciaa/EmbeddedIDE-templates"

cd "$DEST" || exit 1

curl -s "https://api.github.com/repos/$REPO/contents" | \
jq -r '.[] | select(.name | endswith(".template")) | .download_url' | \
while read -r url; do
fname=$(basename "$url")
echo " → Downloading $fname..."
curl -s -L -o "$fname" "$url"
done

# 6. Replace existing install-tools.sh with Arch Linux version
echo "[6/6] Setting up Arch Linux specific tools..."
set -e

# User to run AUR commands
USERNAME="${SUDO_USER:-$(whoami)}"

# Official packages (require root)
OFFICIAL_PACKAGES="git base-devel"

# AUR packages (install as normal user)
AUR_PACKAGES="gtkterm cutecom gconf fuse gksu"

# ---------- Install official packages ----------
echo "[*] Installing official packages..."
pacman -Syyu --noconfirm
for pkg in $OFFICIAL_PACKAGES; do
pacman -S --needed --noconfirm "$pkg"
done

# ---------- Install AUR packages as normal user ----------
if ! command -v paru >/dev/null 2>&1; then
echo "⚠ 'paru' is not installed. Please install paru first."
else
echo "[*] Installing AUR packages as user $USERNAME..."
for pkg in $AUR_PACKAGES; do
sudo -u "$USERNAME" paru -S --noconfirm "$pkg"
done
fi

# ---------- Configure serial port permissions ----------
echo "[*] Configuring permissions for serial ports..."
usermod -aG uucp,lock "$USERNAME"

bash /home/$USERNAME/CIAA/embedded-ide/usr/bin/ftdi-tools.sh --install

# ---------- Load FTDI kernel module ----------
echo "[*] Loading FTDI kernel module..."
if lsmod | grep -q "^ftdi_sio"; then
echo "Module ftdi_sio already loaded."
else
if modinfo ftdi_sio &>/dev/null; then
sudo modprobe ftdi_sio
echo "Module ftdi_sio loaded successfully."
else
echo "Warning: Module ftdi_sio not found on this system."
echo "Make sure you have linux-firmware and kernel modules installed."
fi
fi


echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", MODE="0666"' | \
sudo tee /etc/udev/rules.d/99-ftdi.rules

sudo udevadm control --reload-rules
sudo udevadm trigger



# ---------- OpenOCD fix for Arch Linux ----------
echo "[*] Applying OpenOCD fix for Arch Linux..."
mv $USER_HOME/CIAA/tools/openocd/bin/librt.so.1 $USER_HOME/CIAA/tools/openocd/bin/librt.so.1.bak




echo "[*] Installation finished ✅"
echo "Please log out and back in for group changes to take effect."






echo "=============================================================="
echo " Installation completed! "
echo " You can now launch CIAA-Launcher from rofi or your app menu. "
echo " firmware_v3 installed in: $USER_HOME/CIAA/firmware_v3-r1.3.0 "
echo "=============================================================="
Loading