Home

Tuto: Ipkg, Sólo Para Entendidos?

pe.tardo

Miembro de honor OpenSpa
Vip OpenSPA
21 May 2009
3.474
464
0
BCN
IPKG
Cuantas veces hemos visto esta extensión: xxx.ipk?
Y, cuantas veces hemos pensado "Juas! esto sólo lo hace gente que saben del tema..."?

Nada más lejos de la realidad.
Que os pareceria un archivo que, después de que hayamos actualizado el frw nos pusiera todo en su sitio:
la camd, su configuración, su script de arranque... y que al reiniciar ya nos apareciera nuestra camd en el panel de control de las camd’s como camd activa...?
Y si, además, nos crea las carpetas que vayamos utilizando? Y si, además de montar las unidades de red, hace copias de seguridad de los archivos que vaya a tocar?, y todo esto de una vez...

Vayamos por partes.
Partimos de la base que tenemos nuestra camd correctamente instalada y funcionando... En realidad, supondremos que tenemos todo funcionando correctamente: la camd, los montajes de red, las carpetas personales... que para algo nos hemos pasado un montón de tiempo instalando, probando, configurando, y guardando copias de seguridad, como para que no funcione todo bien...

Lo primero que haremos será instalar las IPKG-Tools en el deco. Es una herramienta gratuita, la adjunto al final del hilo

Descomprimimos el instalador y lo subimos por FTP a la carpeta /tmp, le damos permisos 755 y lo instalamos:

Código:
root@azboxme:~# ipkg install /tmp/enigma2-ipkg-tools-mips_1.0_mipsel.ipk

Después de esto, hay que reiniciar el deco para que el sistema reconozca los cambios.
La instalación se realizará automáticamente en /media/hdd, tanto si tenemos algo montado allí (disco duro, usb, etc) como si no tenemos nada montado, por lo que, entonces se instalará en la DOM (que nadie se escandalice, que ocupa sólo 1 MB “y pico”), aunque lo interesante es tener, al menos, un usb donde almacenar los archivos que utilizaremos en nuestros paquetes.

Bueno, ya tenemos las ipkg-tools instaladas y a punto para crear nuestros paquetes particulares. Vamos a ello.

Empezaremos por crear la ruta “virtual” de instalación de los archivos que contendrá el .ipk
Creamos en el HDD (o en el usb) una carpeta en la que podamos meter todo, por ejemplo ‘Paquetes’ y, como siempre, le damos permisos 755.

-- Que nos instale la camd --
(por comodidad pondré sólo Cccam, todo lo demás se hace exactamente igual)

Ahora si: dentro de /media/hdd/Paquetes crearemos la ruta en la que se instalarán los archivos:
Primero creamos /etc y /usr, y dentro de ésta creamos /bin y /script, y les damos permisos 755 a todas.
Ya podemos empezar a meterle lo que más nos interesa...

Seguramente tendremos copia en el PC de todos nuestros archivos, sólo tenemos que subirlo a la nueva ruta “virtual”, como si fuéramos a copiarlo en su sitio en el deco:
Cccam_2.1.2 en /usr/bin con permisos 755, CCcam2.1.2_cam.sh en /usr/script, también con atributos 755 y por último subimos nuestra copia de seguridad de Cccam.cfg a /etc con sus permisos correspondientes.

Jejejej... Ya? Ya se puede crear el .ipk???
-NO!!

Antes de crear el paquete, deberemos tener otra cosa: la carpeta CONTROL (en mayúsculas),
en la misma “raiz”, junto a /usr y a /etc, y dentro de CONTROL crearemos el archivo control (en minúsculas) con permisos 755, que contiene los parámetros necesarios para la creación del .ipkg:

Código:
Package: enigma2-3cccam
Version: 2.3
Description: instala 3 versiones completas de cccam
Section: base
Priority: N/A
Maintainer: pe.tardo
License: unknown
Architecture: mipsel
OE: enigma2
Depends: enigma2
Source: N/A

Package:
Es el nombre (una parte) que se le dará a nuestro paquete .ipkg. pero con una sencilla regla:
ÚNICAMENTE podremos utilizar:
- letras de la a a la z, y SÓLO EN MINÚSCULA
- números del 0 al 9, y
- los signos . + y – (el punto, el más, y el menos)

Version:
Formará parte del nombre del paquete, se añadirá automáticamente, y podemos ponerle la versión que queramos, por ejemplo, según las pruebas que hayamos hecho.

Description:
Descripción que queramos darle al paquete sobre qué es lo que instala. Es opcional

Maintainer:
El nombre, nick, foro, web, etc del programador que haya creado el paquete .ipkg. También es opcional

Architecture: mipsel
Esto indica que es un plugin para sistemas basados en arquitectura mipsel (E2). Aparecerá al final del nombre.

El resto de opciones dejadlas como la muestra.

Ahora ya podemos intentar nuestra primera prueba de .ipk. entramos al deco por telnet, vamos a la carpeta /media/hdd/ipkg-tools y, en la consola tecleamos

ipkg-build /media/hdd/Paquetes/

para que nos cree el paquete con lo que encuentre en el directorio /Paquetes

Os pongo los errores más tipicos al crear estos paquetes, fácilmente subsanables.

Si no tenemos la carpeta CONTROL nos dará el siguiente error (Para sacar el error, he intentado hacer un .ipk de la carpeta picon, del usb):

Código:
root@azboxme:/media/hdd/ipkg-tools# ipkg-build /media/usb/picon
ipkg-build: Error: Directory /media/usb/picon has no CONTROL subdirectory.

Si, en el nombre, ponemos algún signo no permitido, como un guión bajo, letras mayúsculas, dos puntos :)), etc, nos aparecerá este error cuando intentemos compilar el .ipk:

Código:
root@azboxme:/media/hdd/ipkg-tools# ipkg-build /media/hdd/Paquetes/
enigma2-CCcam_2.1.2
ipkg-build: Error: Package name  contains illegal characters, (other than [a-z0-9.+-])
Please fix the above errors and try again.
root@azboxme:/media/hdd/ipkg-tools#

Fijaros que la propia herramienta me indica el error:
enigma2-CCcam_2.1.2

Vamos a probarlo así:
enigma2-cccam.2.1.2

Y el resultado:

Código:
root@azboxme:/media/hdd/ipkg-tools# ipkg-build /media/hdd/Paquetes/
ar: creating ./enigma2-cccam.2.1.2_1.0_mipsel.ipk
Packaged content was moved at /media/hdd/Paquetes/ into ./enigma2-cccam.2.1.2_1.0_mipsel.ipk
root@azboxme:/media/hdd/ipkg-tools#

SI!! Ya tenemos nuestro primer paquete .ipk, (lo tenemos en la ruta de las ipkg-tools: /media/hdd/ipkg-tools) ahora lo guardamos, y ya podremos instalar la camd (personalizada con NUESTROS datos) sin más problemas cuando cambiemos el frw

También hay que decir que las ipkg tools, a veces por alguna razón no se instalan bien y nos dan este error:

Código:
root@azboxme:/media/hdd/ipkg-tools# ipkg-build /media/hdd/Paquetes
ipkg-build: line 143: ar: not found
root@azboxme:/media/hdd/ipkg-tools#

Aqui no hay más solución que borrar la carpeta /media/hdd/ipkg-tools, reiniciar, y volver a instalar
 

Adjuntos

  • enigma2-ipkg-tools-mips_1.0_mipsel.rar
    1 MB · Visitas: 130

pe.tardo

Miembro de honor OpenSpa
Vip OpenSPA
21 May 2009
3.474
464
0
BCN
’???’ dijo:
Si vale, pero... y lo de crear carpetas?? Y lo de las copias de seguridad?? Y lo de hacer la cam activa??? No lo veo por ninguna parte!! Yo tengo mis carpetas personalizadas y cada vez que cambio el firm me toca crearlas, y tu dijiste que se hacian solas...

Si, eso fué lo que puse aqui arriba, y algo esto es lo que haremos en esta 2ª parte.

El directorio CONTROL, como puse arriba, además del archivo control puede contener más archivos, pero no unos archivos cualquiera... puede contener 4 archivos más, con sus nombres bien definidos:

preinst
postinst
prerm
postrm

Los cuatro son scripts que se pondrán en funcionamiento en determinados momentos:
pre significa “antes de”, y post significa “después de”, e inst significa “instalación” y rm significa “remove”, o sea, eliminar.
Está claro que lo que conseguimos con esto es que se realicen unas acciones antes y/o después de la instalación del paquete, y/o realizar otras acciones antes y/o de desinstalarlo
Nos fijaremos en los dos que son “inst”, el preinst y el postinst, empezando, como es lógico, por el preinst... es lo que tiene que hacer antes de la instalación...

A base de probar, hemos conseguido que nuestro equipo monte nuestros dispositivos, como el HDD y el usb, y nuestras unidades de red en unas carpetas específicas: algunas ya vienen “de serie” y otras las hemos tenido que crear nosotros. A mi, por ejemplo, me gusta que lo que conecto en el usb frontal se monte en una carpeta que he llamado usbF, puies tengo que crearla, porque no viene en las instalaciones...
Est puedo hacerlo de 2 maneras: con alguna aplicación tipo MAZ, DCC o mediante la consola telnet. Utilizaremos la consola, que para algo es tan versátil, para crear nuestra carpeta:
Código:
root@azboxme:~# cd /media
root@azboxme:/media# mkdir usbF
root@azboxme:/media# chmod 755 usbF

Con estas 3 sencillas instrucciones hemos entrado en /media, hemos creado una carpeta y le hemos dado permisos 755... podeis ir a la ruta y comprobar que si, que se ha creadio y que tiene sus permisos...
Pues hagamos que sea automático!!

Creamos en el PC un archivo de texto, vacio (o podemos aprovechar cualquier otro, se borra el contenido, se renombra y a seguir con el tema), lo pasamos al deco, al interior del directorio CONTROL, y lo renombramos como preinst.
Lo primero que haremos en este archivo es poner, en la primera línea esto:

Código:
 #!/bin/sh
que le indica al sistema que tiene que tratar las siguientes líneas como un script, o sea, realizar las acciones que le indicarán los comandos que sigan.
Pues pongamos nuestro “creador” de la carpeta usbF en el archivo preinst:

Código:
#!/bin/sh
cd /media
mkdir usbF
chmod 755 usbF

Y si lo hacemos más... “bonico”?
Código:
#!/bin/sh
 
######################################################################
# preinst – por pe.tardo
######################################################################
 
#La siguiente instrucción crea la carpeta /media/usbF y le da permisos 755
cd /media
mkdir usbF
chmod 755 usbF

Vale, pues vamos a decirle que cree la carpeta donde se montará el HDD del portátil:

Código:
root@azboxme:~# cd /media
root@azboxme:/media# mkdir Portatil
root@azboxme:/media# chmod 755 Portatil

Bueno... pues al preinst con ella!!

Código:
#!/bin/sh
 
######################################################################
# preinst – por pe.tardo
######################################################################
 
#Las siguientes instrucciones crean la carpeta /media/usbF y le dan permisos 755
cd /media
mkdir usbF
chmod 755 usbF
 
#Las siguientes instrucciones crean la carpeta /media/Portatil y le dan permisos 755
cd /media
mkdir Portatil
chmod 755 Portatil

Bien! ya tenemos 2 a punto de caramelo!! Evidentemente podemos probar, y, de hecho es interesante hacerlo, el funcionamiento del script antes de incluirlo en el paquete .ipk.
Vamos a /media y borramos las carpetas /usbF y /Portatil, y después entraremos en /media/hdd/Paquetes/CONTROL y renombraremos el archivo preinst, añadiéndole la extensión .sh (si no los tenia, le damos atributos 755). Hecho esto, nos vamos a la consola telnet, entramos en CONTROL y ejecutamos preinst.sh, aunque antes vamos a darle un toque más profesional:

Código:
#!/bin/sh
 
######################################################################
# preinst – por pe.tardo
######################################################################
 
#Las siguientes instrucciones crean la carpeta /media/usbF y /media/Portatil y les dan permisos 755
cd /media
mkdir usbF Portatil
chmod 755 usbF Portatil

En una misma instrucción nos crea las 2 carpetas. Ahora si, ya podemos probar su funcionamiento:

Código:
root@azboxme:~# cd /media/hdd/Paquetes/CONTROL
root@azboxme:/media/hdd/Paquetes/CONTROL# preinst.sh
root@azboxme:/media/hdd/Paquetes/CONTROL#
Que ha pasado? Pues, sencillamente que nos ha creado nuestras carpetas y les ha dado los permisos necesarios!!

Bueno, sigamos.
Os habéis fijado que cuando entramos en el CoolTV Guide tenemos una EPG lineal de varios canales y que a la izquierda aparece el picon de cada uno? Los picon aparecen por que los tenemos guardados en el sistema. Si, pero...dónde? Es interesante tener los picon guardados en un usb, asi dejamos la DOM tranquila, y tampoco tenemos que volver a cargarlos cuando cambiamos el frw... Pero para ver los picon en el ColTV Guide necesitamos o bien tenerlos alli, en una carpeta llamada picon, o un enlace simbólico (symlink) en /usr/share/enigma2 que apunte a donde los tengamos (en mi caso, en un usb, concretamente la carpeta picon dentro del usb)...
Y si hacemos que este symlink nos lo cree el preinst? Asi no nos olvidamos de hacerlo cuando actualicemos...

NOTA:
si teneis los picon en la DOM, esta acción seguramente o los borrará, o nos dará error de que ya existe la carpeta picon y que no se puede crear el enlace. Si quereis probar el efecto, cambiadle el nombre al symlink para que no os toque los picon ni os dé error.

Al lio.(Suponemos que teneis los picon almacenados en la carpeta picon del usb: /media/usb/picon) conectamos por ftp y borramos el enlace picon que ya teníamos en /usr/share/enigma2 y las carpetas /media/usbF y /media/Portatil, ya que todo esto lo va a crear el preinst.sh.
Vamos a /media/hdd/Paquetes/CONTROL y editamos preinst.sh añadiéndole esto:
Código:
#Crea el enlace simbólico picon en /usr/share/enigma2 apuntando a /media/usb/picon
ln -s /media/usb/picon /usr/share/enigma2/picon

ln es el comando que nos creará el enlace, -s es el tipo de enlace, /media/usb/picon es la ruta donde apuntará el enlace, y /usr/share/enigma2/picon es dónde (/usr/share/enigma2/) y con qué nombre (/picon) se creará.
Nos tiene que quedar así:

Código:
#!/bin/sh
 
######################################################################
# preinst – por pe.tardo
######################################################################
 
#Las siguientes instrucciones crean las carpetas /media/usbF y /media/Portatil y les dan permisos 755
cd /media
mkdir usbF Portatil
chmod 755 usbF Portatil
 
#Crea el enlace simbólico picon en /usr/share/enigma2 apuntando a /media/usb/picon
ln -s /media/usb/picon /usr/share/enigma2/picon

Salvamos los cambios y probamos desde la consola:

Código:
root@azboxme:~# cd /media/hdd/Paquetes/CONTROL
root@azboxme:/media/hdd/Paquetes/CONTROL# preinst.sh
root@azboxme:/media/hdd/Paquetes/CONTROL#

Mirad en las rutas y vereis como volvemos a tener las carpetas (previsible) y el symlink... jejeje... esto va bien...
 
  • Me gusta
Reactions: milytres

pe.tardo

Miembro de honor OpenSpa
Vip OpenSPA
21 May 2009
3.474
464
0
BCN
’???’ dijo:
Bueno, bueno... eso es muy sencillito… aquí, cuando se montan las carpetas, eh? Y lo de las copias de seguridad?? Y lo demás? Ya veo que esto va para largo...

OK, pues hagamos un poco más.

En /etc encontraremos el archivo fstab. Aquí es donde se guardan las rutas donde se montarán los distintos dispositivos en el arranque del sistema,

En la instalación del frw se crea un fstab “genérico”, que no tiene por qué estar a nuestro gusto, más si utilizamos carpetas personalizadas con nombres no estándar (usbF, Portatil…).
Ahora que tenemos nuestras carpetas personales y hemos conseguido que el fstab esté a nuestro gusto y monte los dispositivos cada uno en su sitio, nada más fácil que añadirlo al paquete .ipk para que se nos instale a la vez que se instala la camd, se crean las carpetas personales y demás parafernalia.

Conectamos por ftp y guardamos una copia del fstab “bueno”, el que tenemos a nuestro gusto, (/etc/fstab) en el pc y esa misma copia la subimos a nuestra “ruta .ipk”: /media/hdd/Paquetes/etc/
Esto hará que, al instalar nuestro paquete .ipk se instale también nuestro fstab personal, el que tiene configuradas las carpetas y los montajes de red a nuestro gusto.

NOTA:
Insistiré en los permisos. Hay que dar, a cada carpeta y archivo que pongamos en la “ruta virtual”, los permisos que llevará definitivamente ANTES de crear el .ipk

[quote name=’???’]
Si, pero esto sólo nos copia nuestro archivo en su sitio…[/quote]

Ya… que tal si hacemos una copia de seguridad?
Volvamos a nuestro preinst.sh y lo abrimos para añadir la instrucción que nos creará la copia de seguridad del fstab original. Añadimos esto:

Código:
 #Hace una copia de seguridad del fstab original antes de instalar el fstab personalizado
mv /etc/fstab /etc/fstab.BAK

mv (move, mover) es el comando que nos sirve tanto para mover de directorio el archivo que se especifique, como para renombrarlo (algo así como “mover de nombre”) en la misma ruta, como para moverlo de sitio con otro nombre. No es necesario cambiar previamente al directorio, si lo especificamos en la linea lo reconocerá igualmente.

En nuestro caso, nos renombrará el archivo fstab: seguirá en la misma ruta pero se le añadirá la extensión .BAK, suficiente para nuestro propósito. Con esto nos aseguramos de tener una copia de seguridad (nunca se sabe…) ANTES de instalar nuestro fstab personalizado.

Probadlo. Entrad por ftp y copiad un archivo cualquiera en cualquier directorio (por ejemplo, una foto img001.jpg en /tmp)
Después de esto, conectamos por telnet y tecleamos:

Código:
root@azboxme:~# mv img001.jpg img001.jpg.BAK
root@azboxme:~#
Accediendo por ftp a /tmp deberiais ver vuestro archivo img001.jpg renombrado como img001.jpg.BAK

Nuestro preinst debería quedarnos así:
Código:
#!/bin/sh
 
######################################################################
# preinst – por pe.tardo
######################################################################
 
#Las siguientes instrucciones crean las carpetas /media/usbF y /media/Portatil y les dan permisos 755
cd /media
mkdir usbF Portatil
chmod 755 usbF Portatil
 
#Crea el enlace simbólico picon en /usr/share/enigma2 apuntando a /media/usb/picon
ln -s /media/usb/picon /usr/share/enigma2/picon
 
#Hace una copia de seguridad del fstab original antes de instalar el fstab personalizado
mv /etc/fstab /etc/fstab.BAK

Ahora vamos a hacer algo un poco más complicado: añadir lineas al final de un archivo ya existente, pero antes haremos una copia de seguridad, manteniendo el archivo original

Aqui nos centraremos en el archivo de sistema rcS que se encuentra en /etc/init.d. Al final de este archivo añadiremos la línea que dará la orden de montar en /media/Portatil nuestra carpeta compartida en el portátil. Lo primero es crear la copia de seguridad (y esta vez es una copia del archivo).

Primero lo probaremos en la consola aprovechando la foto que teníamos en /tmp. la dejaremos con su nombre original (podemos utilizar el MAZ) y luego haremos la copia de seguridad mediante telnet:
Código:
root@azboxme:~# cp img001.jpg img001.jpg.BAK
root@azboxme:~#
Aqui el comando ha sido cp (copy, copiar) y le hemos dicho que haga una copia del archivo con otro nombre, en este caso, le hemos añadido la extensión .BAK.
Abrimos de nuevo preinst.sh y añadimos:

Código:
#Hace una copia de seguridad de rcS y agrega unas líneas al final del archivo
cp /etc/rcS /etc/rcS.BAK

cp también es reconocido desde la raiz, no hace falta cambiar al directorio en el que vamos a trabajar.
Sólo queda añadir la orden de montaje en el nuevo rcS...

Por que hacer una copia del rcS en lugar de renombrarlo y después instalar el nuestro?
Pues, sencillamente, porque rcS lleva muchísimas más cosas: llamadas a procedimientos, hace cargar algunos drivers... y no sabemos si lleva (o puede llevar) instrucciones distintas del rcS de la versión anterior... Por eso lo que interesa es añadir la instrucción del montaje de red, y no tocar nada más

Aclaro que éste será un montaje CIFS. La linea que debemos añadir al final del rcS para el montaje es la misma que utilizaríamos en la consola para lo mismo:

mount -t cifs \\\\192.168.0.14\\azbox /media/Portatil -o username=,password=

se ve la ip del portátil y su carpeta compartida (\\\\192.168.0.14\\azbox) y la carpeta donde queremos que se monte en el deco (/media/Portatil). Hagamos como antes, probémoslo antes en la consola telnet, no sea que algo falle…
El comando que utilizaremos, en este caso, será echo de esta manera:
Código:
 echo "mount -t cifs \\\\192.168.0.14\\dreambox /media/Portatil -o username=,password=" >> rcS
Muy importante:
FIJAROS BIEN que al final de la línea pone esto:

>> rcS

Las dos >> es lo que hace que se AÑADA al final del archivo. Si os equivocais y poneis sólo uno ( > rcS) lo que pasará es que TODO el contenido del archivo SERÁ SUBSTITUIDO por lo que queramos añadir

Este comando hay que ejecutarlo desde la misma carpeta donde se encuentra el archivo que vamos a tocar, para eso, entramos en /etc/init.d
Código:
root@azboxme:~# cd /etc/init.d
root@azboxme:/etc/init.d#

y probamos a añadir la linea (lo probaremos primero en la copia de seguridad .BAK que hemos hecho antes):

Código:
root@azboxme:/etc/init.d# echo "mount -t cifs \\\\192.168.0.14\\azbox /media/Portatil -o username=,password=" >> rcS.BAK

Vayamos a comprobarlo. Vamos a /etc/init.d, abrimos rcS.BAK y buscamos en el final… Vaya hombre!! Y esto?!!

Resulta que por el camino “se han perdido” barras inversas y lo que nos ha copiado es esto:

mount -t cifs \\192.168.0.14\azbox /media/Portatil -o username=,password=

Fijaros que se han perdido la mitad de las barras inversas… Borremos lo que no sirve en rcS.BAK, y probemos con el doble de las que deberia llevar, asi
mount -t cifs \\\\\\\\192.168.0.14\\\\azbox /media/Portatil -o username=,password=

Vamos otra vez a la consola telnet y probamos…
Código:
root@azboxme:/etc/init.d# echo "mount -t cifs \\\\\\\\192.168.0.14\\\\azbox /media/Portatil -o username=,password=" >> rcS.BAK
root@azboxme:/etc/init.d#

Jejejejej… ahora si… Ya sólo falta añadirlo al preinst.
Abriremos el preinst y añadiremos lo que hemos encontrado, y de paso que lo deje "maqueado":

Código:
#!/bin/sh
 
######################################################################
# preinst – por pe.tardo
######################################################################
 
#Las siguientes instrucciones crean las carpetas /media/usbF y /media/Portatil y les dan permisos 755
cd /media
mkdir usbF Portatil
chmod 755 usbF Portatil
 
#Crea el enlace simbólico picon en /usr/share/enigma2 apuntando a /media/usb/picon
ln -s /media/usb/picon /usr/share/enigma2/picon
 
#Hace una copia de seguridad del fstab original antes de instalar el fstab personalizado
mv /etc/fstab /etc/fstab.BAK
 
#Hace una copia de seguridad de rcS y añade unas líneas al final del archivo
#para montar automáticamente la carpeta /azbox del portátil en /media/Portatil
cd /etc/init.d
cp rcS rcS.BAK
echo "# La siguiente línea monta la carpeta /azbox del portátil" >> rcS
echo "# en la carpeta /media/Portatil del deco en modo CIFS:" >> rcS
echo "mount -t cifs \\\\\\\\192.168.0.14\\\\azbox /media/Portatil -o username=,password=" >> rcS

Antes de la línea mount le he dicho que me añada un par de líneas aclaratorias:

echo "# La siguiente línea monta la carpeta /azbox del portátil" >> rcS
echo "# en la carpeta /media/Portatil del deco en modo CIFS:" >> rcS

Al ponerle la almohadilla delante de la línea que será añadida, ya no hay peligro de que se produzca algún efecto no deseado.

Ahora ya tenemos mucho material para trabajar, eh...
 
  • Me gusta
Reactions: milytres

pe.tardo

Miembro de honor OpenSpa
Vip OpenSPA
21 May 2009
3.474
464
0
BCN
Antes que nada, si todavía no lo habeis hecho, habrá que volver a renombrar el preinst y dejarlo como al principio:

preinst

sin el .sh, y aseguraros de que todos los archivos que tengais dentro de CONTROL lleven permisos 755.

Pues ahora si, empezamos la última parte?

Faltaba... dejar la camd activada en el panel de control, no?

Es muy sencillo, sólo hay que añadir 3 archivos a nuestro .ipk:

Resulta que en E2 hay archivos ocultos. Son los que su nombre empieza con un punto. Los que nos interesan los encontraremos en /etc (igual que CCcam.cfg, y que fstab) pero para verlos necesitaremos un cliente ftp que nos dé la opción de visualizar estos archivos.
Yo personalmente utilizo Filezilla, por varias razones básicas: me permite ver los archivos ocultos, me permite asignar permisos a todas las carpetas y subcarpetas (o a los archivos que estan contenidos en ellas, según me interese, y esto es fantástico cuando tienes rutas enormes, como cuando traduces plugins...) de un sólo clic, y también permite buscar archivos en remoto. Pero esto no significa que otros clientes ftp no hagan lo mismo y mejor. Sin embargo, no lo utilizo para editar los archivos, para esto prefiero el MaZ o el DCC.

Vale, pues, Abrimos nuestro programa cliente de FTP y lo configuramos para que nos muestre los archivos ocultos. Conectamos con el deco y entramos en /etc. Al final de las carpetas encontraremos, en primer lugar, 4 archivos cuyo nombre empieza con un punto. Nos quedamos con los 3 primeros, los que están relacionados con la camd:

.ActiveCamd, .CamdReStart.sh, y .CamdStart.sh

.ActiveCamd - contiene únicamente el nombre de la camd que tenemos activa. Es el mismo nombre que aparece en el panel de control cuando elegimos la camd, y es el mismo que aparece en el script de arranque, en la línea "CAMD_NAME="

.CamdReStart.sh - contiene un pequeño script que llama al script de arranque para parar la camd y volver a arrancarla, por eso lo de "ReStart".

.CamdStart.sh - contiene una llamada al script de arranque sólo para arrancar la camd.

Pues no hay que hacer otra cosa que añadirlos a nuestra ruta "virtual", y darle permisos 755 para que puedan ser ejecutados en los reinicios (.ActiveCamd puede llevar permisos 644, ya que no es ningún script que necesite ejecutarse).

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Hemos hablado, al principio, de otro archivo que también cabe dentro del directorio CONTROL: postinst

En realidad se trata de otro script, igual que el preinst, y que realizará las acciones que se le indiquen DESPUÉS de la instalación del paquete.ipk.

Por ejemplo, podemos hacer que nos reinicie el deco para aplicar los cambios de todo lo que hemos hecho:

Código:
reboot

Pero, a estas alturas, podemos hacerlo mejor, no?

Código:
#!/bin/sh

######################################################################
# postinst – por pe.tardo
######################################################################

# Limpia la pantalla, muestra un mensaje confirmando la instalación con éxito, y espera 5 seg.
# para mostrar otro que avisa de que en 5 seg. se reiniciará para activar los cambios
clear
echo La instalación ha concluido satisfactoriamente.
sleep 5
clear
echo En 5 segundos se reiniciará el Azbox para activar los cambios...
sleep 5
reboot

clear comando para limpiar la pantalla
echo muestra en la pantalla lo que le pongamos después
sleep espera (en seg.) el tiempo que le indiquemos, en este caso, para que dé tiempo a leer el mensaje de la pantalla

Luego podemos jugar también con los archivos prerm y postrm, que vienen a ser lo mismo que el preinst y el postinst, pero para realizar antes (prerm) y/o después (postrm) de la DESINSTALACIÖN de nuestro paquete .ipk
Por ejemplo, parar la camd, borrar sus archivos, volver a poner las copias de seguridad como estaban al principio, etc.

Y esto deja la puerta abierta a que cada uno pueda hacer sus propios instaladores con lo que se quiera: camd completas, listas de canales, configuraciones...


Gracias a jpbravo, a quien le robé la idea de su tuto sobre Copia y restauracion de fstab y sus carpetas media center para llevarlo un paso más allá, y a varios compis que me aclararon algunas dudas de los .ipk y comandos linux.
Y lo bueno es que... todo ésto está en el foro, sólo había que ponerlo en orden...

Espero que os haya servido.
 

Adjuntos

  • IPKG, sólo para entendidos.pdf
    152,7 KB · Visitas: 63
  • Me gusta
Reactions: kastell y milytres

milytres

Usuario Destacado
Vip OpenSPA
17 Abr 2010
1.936
174
0
Miedo me da probar el ipk que he adaptado a mis necesidades.
Mañana instalare la PR4 y probare que tal funciona que hoy hay que grabar los carnavales de Cai.
Jajajaja....

Saludos.
 

pacorro2009

Espabilando
Fan de OpenSPA
22 Mar 2007
125
4
0
En el foro
Maravilla de post, tiene que estar marcado ya, que no se pierda por favor.
Miedo me doy yo mismo en cuanto me ponga a probar, jejejje

Podrías haber firmado el PDF para que podamos pasarlo a algún colega, que se sepa quien es el autor.

Saludos y gracias.
 

darkmantk

OpenSpa Team
Miembro del equipo
26 Ago 2009
8.533
2.648
0
Eso petardo acostumbraros a poner el autor y el logo del sitio autorizado a distribuirlo.

Lo digo porque sé que no tardará en llegar esto a unos cuantos que se apropian del trabajo de los demás y lo hacen pasar por suyo.
 

milytres

Usuario Destacado
Vip OpenSPA
17 Abr 2010
1.936
174
0
Acabo de instalar la spz 2.2 PR4 en ext2 y he probado el ipk, algún fallo he cometido, pero lo más importante se instaló, luego a mano he configurado los montajes de red.
Pensaba poner ext2 y luego pasar a ext3 pero me va bien y por ahora lo dejaré así.
Estupendo manual.
Te digo lo mismo que otros compañeros, firma jajaja...

Saludos.

PD: Ya creo que he dado con el fallo:

Puse:

cp /etc/rcS /etc/rcS.BAk

Cuando debí poner:
cd /etc/init.d
cp rcS rcS.BAK

Otro error cometido:
Conectamos por ftp y guardamos una copia del fstab “bueno”, el que tenemos a nuestro gusto, (/etc/fstab) en el pc y esa misma copia la subimos a nuestra “ruta .ipk”: /media/hdd/Paquetes/etc/

Se me olvido copiar el fstab, o mejor dicho lo copié al PC pero no en la "ruta.ipk" jejejeje.

Solucionado.
 

pe.tardo

Miembro de honor OpenSpa
Vip OpenSPA
21 May 2009
3.474
464
0
BCN
Bueno, en las muestras de preinst y postinst ya me puse, un poco pensando en esto,
aunque hay trucos para todo...

Lo mejor para esto es ir probando con archivos de prueba, para ver que comandos no funcionan
desde otra ruta, y evitar males mayores, y también varios dolores de cabeza...
 

Clemente

Usuario Destacado
Vip OpenSPA
13 Jul 2009
8.467
1.356
0
72
Murcia
he colocado esto en los dos decos que tengo, el premium + hd y en el elite y me pasa una cosa curiosa, en los dos tengo los 4 mismos archivos pero con diferentes atributos en el premium + hd los atributros son de 747 y en el elite son de 653, me gustaria saber si estan bien o cuales serian los atributos correctos, los archivios que tengo se llaman AR---DEBIAN-BINARY--IPKG-BUILD y el IPKG-UNBUILD muchas gracias y salu2
 

pe.tardo

Miembro de honor OpenSpa
Vip OpenSPA
21 May 2009
3.474
464
0
BCN
Ponles 755 a todos, el Debian-binary no hace falta, pero a los demás si, son ejecutables.
 

milytres

Usuario Destacado
Vip OpenSPA
17 Abr 2010
1.936
174
0
Probado en el PR4 de la spz 2.2 y funcionó.

¿Como puedo sacar una ipk con la lista de canales y pluging no-ip....?

Saludos.
 

pe.tardo

Miembro de honor OpenSpa
Vip OpenSPA
21 May 2009
3.474
464
0
BCN
Para la lista, mira las rutas de destino en la configuración de Dreamset, Dreamboxedit, Dogsettings, etc,
pero para el plugin no-ip, me parece que lo tienes mal.
 

oct02

Usuario Activo
Fan de OpenSPA
27 Nov 2012
107
13
0
Madrid
Vaya maravilla, me recuerda la primera vez que instalé Debian (Potato ) y había que compilar y paquetizar las aplicaciones que andaban por ahí si querías tener el árbol de directorios limpio y organizado. Probaré todo esto cuando tenga un deco que soporte una imagen enigma más estable que las del Triplex. Mientras tanto a favoritos.


---
Envíado desde tapatalk
 

HSA2000

Aprendiendo...
Loco por OpenSPA
Fan de OpenSPA
19 Ene 2013
461
184
0
52
Hola...

Quiero crear un ipk en el triplex pero intento instalar el plugin enigma2-ipkg-tools-mips_1.0_mipsel para poder compilar el ipk, pero me da el error:
Código:
Unknown package 'dreambox-ipkg-tools-mips'.
Collected errors:
* pkg_hash_fetch_best_installation_candidate: Packages for dreambox-ipkg-tools-mips found, but incompatible with the architectures configured
* opkg_install_cmd: Cannot install package dreambox-ipkg-tools-mips.

Se que para instalar en el triplex se usa el opkg no el ipkg como en otros enigma2...

Haber si alguien puede mostrarme el camino para como compilar un ipk en el triplex...

Salu2...