jueves, 29 de febrero de 2024

Se lanzó Huayra GNU/Linux 6.5

Se ha lanzado la versión 6.5 del sistema operativo Huayra GNU/Linux que se distribuye con las netbooks del gobierno peronista.

Gracias a la incorporación de la versión 12 de Debian, el soporte de hardware ha mejorado gracias a la inclusión de un núcleo de linux mas nuevo, junto a un acceso sencillo a controladores nuevos, lo que mejora el uso de dispositivos y equipamiento.

Se ampliaron los repositorios de programas, lo que da acceso a mas aplicaciones para descargar. Hay miles de paquetes actualizados, incluyendo nuevas versiones de Huayra Duino (La Rioja), Huayra Motion (San Luis), LibreOffice, GIMP, Pilas Bloques, Inkscape, el escritorio Mate, etcétera.

Asimismo, se da acceso a la Tienda de Aplicaciones, un lugar donde encontrar y descargar e instalar de forma gratuira y automatizada cientos de apps libres para tu computadora.

Seguí a Huayra en las redes y participá. ¡Contribui con tus creaciones, proyectos ideas y todo lo que se te ocurra!

WWW: huayra.educar.gob.ar
Twitter: @Huayralinux
Telegram: @HuayraGMULinuxFederal

Asimismo, se presenta la segunda revisión del Libro de Hechizos de Huayra Linux, un manual integral que explica desde los funcionamientos filosóficos y el marco teórico del proyecto, hasta las indicaciones técnicas de cómo instalar el sistema operativo, cómo agregar aplicaciones y como mantenerlo actualizado.

El libro, publicado bajo licencia de libre copia CreativeCommons Atribución-CompartirIgual 4.0 Internacional, reboza de secretos, atajos y trucos para dominar como nunca antes el sistema operativo Huayra Linux y aprovechar al máximo sus virtudes.

El sistema opereativo de 64 bits puede utilizarse tanto en netbooks como en equipos de escritorio. Se puede descargar gratuitamente desde aquí e instalarlo siguiendo estas instrucciones.

miércoles, 21 de febrero de 2024

¿Cómo iniciar una versión de kernel específica en Ubuntu?

¡Trabajadores!

No siempre todos los cambios dan los resultados que queremos. 

Sabemos que Ubuntu es un sistema operativo de tipo GNU, que actualmente cuenta con varias líneas de núcleos de sistema operativo de tipo Linux. Cualquiera de estas pueden servir, pero tienen el sentido de complacer a distintos tipos de afiliados. Por defecto se adjuntan versiones veteranas específicas para servidor, que suelen estar ampliamente probadas, bajo el nombre de linux-generic. Conforme las versiones del kernel genérico de Ubuntu van avanzando, estos núcleos también lo hacen. En el caso de Ubuntu 22.04LTS, esta rama representa a kernels de la línea 5.15.

En el caso de las versiones de Ubuntu para uso en escritorio, se puede decidir instalar kernels de una versión más nuevas, la cual sigue una política de mejoras para hardware ("HWE"). El sentido es contar con soporte para hardware de más moderno desarrollo como el que se suele incluir en las PC más modernas. En el caso particular del Ubuntu 22.04LTS, podremos recurrir a instalar la rama 6.5.xx del Kernel Linux. Ya he explicado que desde un tiempo a esta parte esto se hace realidad efectiva desde la terminal, simplemente ingresando el comando:

sudo apt install linux-generic-hwe-22.04

Y finalmente, también podríamos decidir utilizar una versión de kernel incluso más moderna, de carácter experimental de avanzada, o como se dice en la jerga, "bleeding edge". No suelo recomendarlos en aras de la estabilidad del sistema, pero  naturalmente en el caso de Ubuntu 22.04LTS, se podrían instalar versiones de la rama 6.7.xx del kernel Linux mediante:

sudo apt install linux-generic-hwe-22.04-edge

Aunque un sistema Linux sólo corre un único kernel, es indudable que teniendo en nuestro sistemas las imágenes de varias de estas versiones de kernel, las copias antiguas permanecen como resguardo y reaseguro: nunca es una mala política pues ante cualquier eventualidad con una compilación de kernel (que podría fácilmente inutilizar nuestro entorno), podremos recurrir a alguna de las varias versiones anteriores como remedio.

Pues bien señores, el problema de instalar estas ramas de kernels hwe y hwe-edge, radica en el hecho de que si bien son bastante más avanzados que linux-generic, pueden presentar problemas en algunos casos específicos (sobre todo la rama Edge). Por otro lado, una vez que instalamos un kernel de avanzada, no es tan sencillo retornar a una versión anterior ya que normalmente Ubuntu inicia la última versión de Kernel que esté instalada en el sistema. Esto complica la remoción de las versiones más nuevas del kernel del sistema, si por destino, esta fuese la actitud que nos vemos obligados a tomar. Para hacerlo debemos iniciar un kernel de versión anterior.

Iniciar un kernel instalado específico:

Si tenemos varias versiones de kernel instaladas, al presionar la tecla Mayúsculas durante el arranque del sistema, el arrancador Grub nos presentará un menú de inicio donde deberíamos poder seleccionar la opción de arranque deseada. Usualmente, nos dá algunos segundos para elegir una opción del menú y luego escoge automáticamente la primera opción, que es arrancar el sistema operativo Ubuntu cargando en memoria la versión de kernel más moderna disponible.

Si la versión más moderna del kernel falla o tiene algún inconveniente, lo lógico sería escoger la opción "Advanced" o Avanzadas, y elegir una versión de kernel mas antigua desde el submenú de versiones. Si Ubuntu cargó correctamente, procederíamos a desinstalar la imagen antigua y actualizar el Grub con el comando sudo update-grub.

Sin embargo, existen ocasiones donde esto podría no funcionar: si no tenemos teclado en el servidor, o si se trata de una máquina de acceso remoto, ¡no podríamos escoger la opción!. 

Sin embargo, existe un método podremos especificar la versión de arranque "a mano". Esto implica obligatoriamente editar el fichero de configuración del arrancador grub a mano.

Primero hemos de arrancar el sistema y utilizar la terminal (Ctrl+Alt+t o una conexión SSH), y mediante este enlace podremos obtener un listado de los kernels instalados en tal sistema que Grub reconoce. Esto lo haremos mediante el siguiente comando de organización:

grep -Ei 'submenu|menuentry ' /boot/grub/grub.cfg | sed -re "s/(.? )'([^']+)'.*/\1 \2/"

Este nos devolverá como resultado un listado de Kernels instalados, que ilustran sus números de versión y el lugar que ocupan en el menú de Grub, por ejemplo:

menuentry  Ubuntu
submenu  Advanced options for Ubuntu
    menuentry  Ubuntu, with Linux 6.7.0-15-generic
    menuentry  Ubuntu, with Linux 6.7.0-15-generic (recovery mode)

    menuentry  Ubuntu, with Linux 5.15.0-94-generic
    menuentry  Ubuntu, with Linux 5.15.0-94-generic (recovery mode)
    menuentry  Ubuntu, with Linux 5.15.0-92-generic
    menuentry  Ubuntu, with Linux 5.15.0-92-generic (recovery mode)
menuentry  Memory test (memtest86+.elf)
menuentry  Memory test (memtest86+.bin, serial console)
menuentry  MS-DOS 5.x/6.x/Win3.1 (on /dev/sdf1)

Como vemos, esto nos devuelve las opciones del menú de arranque de Grub. Como es consabido, la primera opción suele ser siempre arrancar Ubuntu con el último kernel instalado. Si quisiéramos arrancar una versión específica más antigua de entre los kernels instalados para nuestro Ubuntu (por ejemplo la que dice "Ubuntu, with Linux 5.15.0-94-generic"), en el menú de Grub deberíamos ir a "Advanced" y elegir la tercera opción de la lista, específicamente "Ubuntu, with Linux 5.15.0-94-generic".

Primero lo respaldamos por precaución:

sudo cp /etc/default/grub /etc/default/grub.bak

...y luego lo editamos para arrancar una versión específica:

sudo nano /etc/default/grub

y cambiar la opción por defecto que elije el Ubuntu (la opción "0"), por otra que elija la opción Advanced y elija la tercera opción de la lista. En este caso, se debe indicar de la siguiente manera:

GRUB_DEFAULT="1>3"

Una vez guardado el fichero, actualizamos Grub para que surta efecto:

sudo update-grub

Esto indica "advanced/5ta opción de la lista de kernels". Tengamos en cuenta que si contamos con las opciones de Recovery mode, estas siempre reciben números pares, y las opciones sin recovery mode reciben números impares (como el 3 en este caso).

Luego podremos reiniciar el sistema con:

sudo reboot

y debería ejecutar el kernel solicitado, el 5.15.0-94-generic. Podríamos comprobarlo con el comando:

uname -a

Desinstalar líneas de kernels hwe

Ahora bien, una vez instalado el Kernel antiguo, en este caso podremos desinstalar ya los kernels mas modernos de las ramas hwe o hwe-edge, según nos planteamos. Para ello podríamos indicar:

sudo apt purge linux-generic-hwe-22.04*

...y una vez desinstalados, podremos también remover las imágenes de núcleos Linux modernas que nos nos interesan ya, por ejemplo, en este caso:

sudo apt purge linux-image-6*

(lo cual borrará todos los kernels superiores a 6). 

Ante estos menesteres jamás debemos olvidar volver a actualizamos el Grub, para que deje de hacer caso a kernels que ya han sido desinstalados:

sudo update grub

Si hicimos bien las cosas, no hemos desinstalado aquellos kernels de la rama 5.x (o la que corresponda a nuestra rama linux-generic de la versión de Ubuntu que estemos utilizando). Para asegurarnos de contar al menos con esta rama linux-generic - pues de lo contrario el sistema no arrancaría - ingresamos el comando de instalación que le corresponde:

sudo apt install linux-generic

Este debería indicar que ya está instalado, pues lo hemos hecho para asegurandos, por supuesto.

Finalmente volvemos a editar el fichero /etc/default/grub con

sudo nano /etc/default/grub

...y volvemos a modificar la línea GRUB_DEFAULT a su valor por defecto, para que quede:

GRUB_DEFAULT="0"

Y tras guardar los cambios del fichero de configuración con Ctrl+o y salir del editor GNU Nano con Ctrl+x, actualizamos Grub para que arranque la versión 5.x del kernel:

sudo update-grub

Si todo va bien, podremos reiniciar el sistema con:

sudo reboot

El sistema debería arrancar el último kernel de la línea linux-generic y habernos deshecho de aquellas líneas partidarias no deseadas.

miércoles, 7 de febrero de 2024

¿Cómo puedo reproducir archivos de música de arcade VGM y VGZ en Ubuntu?

En su Perón, Memorial de Puerta de Hierro (1955-1960), el biógrafo Pavón Pereyra realiza un relato pormenorizado de la estadía en el exilio latinoamericano de Juan Perón, y expone que ya desde Santo Domingo el Conductor enseñaba a instalar Benben, el reproductor de archivos de música sintetizada VGM en Ubuntu.

¡Vean señores!

Hemos de incentivar una explosión insurreccional en la Argentina, que ponga en pie de guerra al Pueblo para combatir al Capital, y de con tierra con los enemigos que acechan a la Patria. Esto no puede sino coadyuvarse con la ayuda de los contumaces, que por su desaprensión y desaguisados no han hecho más que perjudicar a nuestro Pueblo.

Las penurias y desventuras no pueden ser remedio para futuro venturoso; sólo es la alegría de un Pueblo que lleva como Doctrina la noción de la Justicia Social el reaseguro de una victoria total sobre la reacción de gorilas peludos y lampiños por igual. Indudablemente que esto no puede hacerse sino extendiendo a todos un manto de contención y de amor, que venga untado con el más claro adoctrinamiento, notablemente concebido y excelsamente ejecutado.

Esto - que es el sentido de nuestra política de propaganda y agitación - ha de ser propalado en todo espacio y todo aire, consignando así la acción cuyo resultado de victoria es tan irremediable como necesaria.

El bienestar de un Pueblo es la columna de sostén de toda acción de gobierno, pero también una imperecedera memoria ROM. Es así que se garantiza una rebelión de los baudios que jamás será dominable si no se la vierte de sentido creador y software libre.

Siempre digo que llevo en mis oídos la más maravillosa música: aquella que es sintetizada con software libre, y entre ellos títulos de la tierra de oriente. Es que además de MID y MODs, contamos con VGM (Música de Videojuego), un formato de fichero de sonido que contempla la precisión de muestreo con que fue concebida para acompañar a muchas máquinas de entretenimiento del Primer Peronismoo, especialmente sus chips generadores de sonido sintetizado o digitalizado. 

Los .vgm registran con particular celo aquellos comandos enviados a los chips de sonido, lo que permite dar con archivos mucho más pequeños que los equivalentes de sonido digitalizado. Este registro de adoctrinamiento al chip permite - de hecho - recrear a través de software lo oído, con la fidelidad cierta que los tiempos reclaman.

La historia del formato chiptune es larga, y se inicia como una manera de registrar la música para del Sega Master System (1985), que contaba con un generador de tonos digitalizados Texas Instruments SN76489 y un sintetizador de bajo costo Yamaha YM2413 "OPLL" para darle sumo interés al audio. Con el correr del tiempo, fueron incorporándose a la lista implementaciones por software de muchos más chips de síntesis de cometido similar. Hoy, docenas de modelos de chips sintetizadores están contemplados como parte de la estructura VGM, especialmente los Yamaha YM2151 de las máquinas Taito, YM2612 de las de Konami, YM3812 de las Sega, OKI MSM6295, el sintetizador Qsound del chip DL-1425 de Capcom, etcétera (por solo nombrar algunos).

Sin embargo, las Masas Obreras Argentinas me reclamaron una manera de dar rienda suelta a estos mediante una implementación liberada bajo GPLv3 Affero, y como tal os puedo recomendar la sencilla instalación del reproductor Benben Se trata de un reproductor de ficheros VGM para terminal, y sus requerimientos de hardware son bastante contenidos. Una CPU de 4 núcleos y 128 MB de RAM ofician de mínimo.

Para instalarlo en GNU con Linux recurrimos a abrir una terminal con Ctrl+Alt+t y descargamos su imágen binaria ejecutable mediante el siguiente bloque de Comandos de Organización:

cd ~/Descargas ;
wget https://chiselapp.com/user/MistressRemilia/repository/benben/uv/benben-0.3.1-x86_64.AppImage ;
chmod +x ~/Descargas/benben-0.3.1-x86_64.AppImage ;
sudo cp ~/Descargas/benben-0.3.1-x86_64.AppImage /usr/local/bin/benben ;

El Pueblo merece contar con una biblioteca popular de ficheros de música VGM y que mejor de aquellos extraídos de las máquinas de arcade, fichines y consolas japonesas que encontramos en vgmrips.net y otros sitios por el estilo. 

En particular, Benben es capaz de reproducir los ficheros de música clásicos de arcade VGM, pero también los .vgm comprimidos con GNU ZIP, los inefables vgz. También soporta los .vgzst y .vgb, más raros. Para ello simplemente ejecutamos en la terminal:

benben *.vgz

o bien

benben fichero.vgm

Benben se iniciará mostrando las etiquetas de la canción chiptune cargada. Además, Benben responde a varias teclas durante la reproducción. Con la tecla h obtendremos la ayuda.

La barra espaciadora permite pausar/continuar la reproducción de la canción sintetizada. n y p saltan al fichero siguiente y previo de la lista (si cargamos varios ficheros, claro está). 

Contamos con unos pocos efectos: la tecla e activa el efecto de ecualizador, mientras que c el atenuador por software. s opera el mejorador estéreo, y r aplica un efecto de reverberación.

El volumen se controla con la tecla a y la tecla z, que lo suben y lo bajan respectivamente.

Los corchetes incrementan/disminuyen la cantidad de bucles para la canción. Para salir de Benben podemos presionar la tecla q.

Durante la reproducción, benben ilustrará una barra de reproducción en la parte inferior, con un aspecto similar al siguiente:

[EsCr-] 1/1, 1 of 2: |*****************---------------------| 45% [02:20/05:09]

Los caracteres entrecorchetados a la izquierda indican el estado de varios efectos y otra información conexa. De izquierda a derecha, significan:

  • E: Ecualizador on.
  • e: Ecualizador off.
  • S: Mejorador estéreo on.
  • s: Mejorador estéreo off.
  • C: Recorte de sonido on.
  • c: Recorte de sonido off.
  • R: Reverberación on.
  • r: Reverberación off.
  • +: Se encontró una configuración específica para la canción y se la cargó.
  • -: No se encontró una configuración específica para la canción.

martes, 23 de enero de 2024

¿Cómo mando archivos por Internet con croc en Ubuntu?

Desde la Quinta "17 de Octubre", Juan Perón expone sobre la necesidad de la solidaridad y enseña cómo transferir copias de ficheros de par a par con Croc en Ubuntu.

¡Mis queridos descamisados!

De poco sirve la libertad si no se configura en un ambiente de Justicia para con la sociedad en la que vivimos. El individualismo es una noción perniciosa que habilita al poderoso en desmedro de las Masas del Pueblo. Estas son las que deben organizarse para cuidarse a sí mismas, y no ceder a impulsos disolutivos que tienen por fin último el resquebrajamiento de lo que hace humano al hombre.

La solidaridad es uno de los más altos valores humanos, y es uno de los basales de la doctrina que nos da todo: la Justicia Social. Esta es la argamasa en enhebra un tejido social que da sostén a un Estado y a la Nacionalidad que lo justifica. Quien en su desmedro habla, lo hace porque anhela actuar para dar lugar a otro Estado. Y ese no puede ser sino ajeno al Pueblo.

Con los contenidos digitales sucede lo mismo, pues estos surgen del Pueblo. Indudablemente, en las redes de datos, se nos hace sencillo el acto de mantener inconmovible nuestro entretejido social: basta con compartir todos los bytes que podamos, por medio de la copia. Algunos desaprensivos han querido llamar a la compartición telemática con la delincuencia, intentando equiparar al acto de compartir con el del robo por piratería. Pero sabemos que el derecho de propiedad tiene un límite sumamente preciso, que es el de la función social y el de la felicidad del Pueblo. En otras palabras, la doctrina que propugnamos fomenta que cada pseudo-propietario sea un cantor - y uno bueno, porque le tiene que ir a cantar a Gardel. En efecto, podrán compartir ficheros .ogg con fonogramas de Gardel, pues a nadie le podrá reclamar ya, si eso hace feliz a su Pueblo.

En el caso de GNU con Linux, podríamos recurrir a la transferencia telemática de copias de ficheros, por medio de SCP, ya que este programa nos permite utilizar la clara identificación de un destinatario que tiene un sistema similar a UNIX y el sistema de shell seguro (la distribución Ubuntu de GNU entre ellos). También podríamos recurrir a rsync para hacer lo propio con ramas enteras en el árbol de archivaje de nuestro sistema. Sin embargo, para hacerlo efectivo lo procedente, es sabido que el destinatario ha de contar necesariamente con  cuentas de usuario en el otro sistema (amén de puertos abiertos y gran dominio de la infraestructura intermedia de cifrado). Esto no siempre es posible, o sencillo de coordinar.

Sin embargo, en esta ocasión simplificaremos la transferencia haciendo uso de algún programa de transferencia par a par cifrada.  Ya he explicado cómo usar Wormhole para este menester, pero en este caso os haré peritos en el uso de croc, un programa liberado bajo GPLv3 que oficia de transmisor y receptor par a par de archivos y carpetas. 

Croc tiene la ventaja de ser un programa mucho más pequeño, con un uso pensado para la transmisión instantánea entre pares. Por otro lado, permite el uso opcional de intermediarios cooperativos de triangulación telemática (lo que se conoce como "relay").

Veamos como usarlo. En primer lugar, tanto el remitente como el destinatario deben tener instalado croc en su sistema. Esto es sencillo de hacer efectivo en  cualquier sistema GNU con Linux; simplemente debemos abrir un terminal con Ctrl+Alt+t e ingresar por única vez el siguiente comando de organización:

sudo apt install curl ;
curl https://getcroc.schollz.com | bash

Esto lanzará el instalador de la última versión de croc, ante el cual debemos ingresar nuestra contraseña de administrador:

Otra manera de instalarlo puede ser descargar el paquete de instalación pensado para Debian/Ubuntu y derivados, lo que tendrá el mismo resultado:

cd /tmp ;
wget https://github.com/schollz/croc/releases/download/v9.6.6/croc_9.6.6_Linux-64bit.deb ;
sudo dpkg -i croc_9.6.6_Linux-64bit.deb

Asimismo podemos considerar que Croc no es sectario, de modo que se puede dejar instalado en otros sistemas similares a UNIX como BSD, MacO$, e incluso el infame Window$.

Para realizar un envío de un fichero o directorio por Internet a través de croc, debemos operar desde la terminal, de común acuerdo.

Quien desea enviar el fichero, debe ingresar simplemente en su terminal:

croc send fichero-o-directorio

Croc cifrará el fichero en memoria y creará un código-del-envío. Este oficiará de llave de autenticado por contraseña común (“PAKE”). Asimismo, croc quedará en espera del inicio de la transferencia durante un par de minutos, alertando al remitente de la siguiente manera:


Sending 'fichero-o-directorio' (x MB)
Code is: código-del-envío

On the other computer run
croc código-del-envío

El remitente debe poner en conocimiento del compañero destinatario el código-del-envío en forma síncrona (ya que este deberá introducirlo en su propia terminal para iniciar la recepción, dentro de un par de minutos). Por este motivo, lo ideal es transmitir el código-del-envío de manera segura (por ejemplo, a través de chat cifrado punto a punto, o llamada de voz cifrada punto a punto o bien correo electrónico cifrado). 

Nota: Si el código-del-envío se propala en un canal abierto, nada impediría que la transmisión de la copia cifrada fuese apropiado e interceptado por otro destinatario indeseado que estuviese a la escucha.

En cualquier caso, una vez puesto al tanto, el remitente podrá iniciar la transferencia del fichero-o-directorio a través de un canal cifrado en internet, abriendo una terminal en su máquina con Ctrl+Alt+t e ingresando allí el consabido:

croc código-del-envío

Ante esto, ambas máquinas con croc se pondrá a la par, y cotejarán la PAKE, y el destinatario será notificado para que acepte la recepción de fichero-o-directorio (debe aceptar con y o rechazarla con n). 

Al comenzar la transferencia, esta se indicará una barra de progreso).

Al finalizar la transferencia par a par de la copia cifrada, el enlace se cortará indicando la recepción.

Una de las ventajas de croc es la de poder utilizar un tercer proxy cooperativo en la Internet para la triangulación del envío, incluso con una contraseña_del_relay. Esto puede ser útil en aquellos casos donde se desea mantener una pseudo-furtividad entre pares. En este caso especial, el remitente debe utilizar el prefijo --relay maquina.de.relay.com, por ejemplo:

croc --relay maquina.de.relay.com --pass contraseña_del_relay send fichero-o-directorio

...lo que generará el código-del-envío, y ante tal caso, el compañero destinatario deberá utilizar el equivalente.

croc --relay maquina.de.relay.com --pass contraseña_del_relay código-del-envío

Todo se repetirá de una manera análoga al caso de transferencia directa, indicando en la pantalla de ambos distintos mensajes referentes a la inclusión de la máquina de relay (y la contraseña del relay, en caso de que esta lo tenga configurada).

Con esto podremos asegurarnos de enviar bytes por circunvalación, y hacer llegar los datos a donde deben llegar para la Felicidad del Pueblo.



viernes, 19 de enero de 2024

¿Cómo cambio el modo gráfico y la resolución de la consola de Linux?

Reunido con exponentes del sindicalismo en Casa de Gobierno, Juan Perón expone como alterar la resolución de la consola de GNU con Linux.

¡Trabajadores!

Antes que un sistema GNU con Linux pueda siquiera cargarse en memoria, ha de poder presentar al mundo lo que quiere decir.

Indudablemente el sistema de video cobra para ello una enorme importancia. El ambiente de visualización básico al fin y al cabo es la terminal, y esta suele contar con una resolución heredada del viejo y peludo estándar VESA, al que intenta consagrar. Dicho estándar nos habla de una resolución de video sin privilegios, de 640x480 pixeles, adecuada para insuflar la pantalla con 25 filas de 80 columnas de caracteres.

No caben dudas que esto - que debería ser suficiente para todos - choca con los límites de la utilidad práctica de los hombres que trabajan.

La idea básica no era mala, pero somos conscientes que las organizaciones del trabajo nos han solicitado integrar nuevas tipografías, y que si al menos estas no son escalables, al menos puedan elegirse conjuntos de mayor o menor tamaño. Los sindicatos saben que conforme aumenta la resolución de pantalla, el tamaño de las letras disminuye en forma inversamente proporcional.

A la oligarquía poco le ha importado: al fin y al cabo ellos han intentado ocultarle el kernel al Pueblo tras un escritorio gráfico. Pero los Descamisados han comprendido que tienen bajo sus dedos la posibilidad de levantar una o más consolas de terminal, simplemente indicando Ctrl+Alt+(F1-F6).

Estas pueden servir en caso de emergencia para restaurar el sistema, incluso si no hemos cargado un entorno gráfico, o si el mismo nos da problemas. También sabemos que que ante cambios fortuitos y poco pensados, nos podrá servir como remedo para restaurar las leyes...

Pues bien señores, contaremos con una manera de alterar la resolución de la pantalla de la consola de Linux. Esto se hace desde el arrancador Grub, que nos permite utilizar distintos modos gráficos, que avalan diferentes resoluciones gráficas. 

Como dije, el menor denominador será una modesta resolución de 640x480x8, lo que significa 640 píxeles de ancho, por 480 píxeles de alto, con 8 bits de profundidad de color (256 colores en total). Este estándar SVGA es superado, sin embargo, en la mayoría de las máquinas actuales de mas potencia, por el Full HD, cuyo estándar se revela de 1920x1080x24 (nos ofrece una gran resolución y gama de color). Ciertas máquinas portátiles no tan encumbradas cuentan con dispositivos de video capaces de presentar un máximo de 1366x768x16, que también es común.

El procedimiento para cambiar la resolución de nuestra consola Linux implica entonces modificar a mano las configuración del arrancador Grub, por medio de la cadena GRUB_GFXPAYLOAD_LINUX. Se afectará así la(s) consola(s) que podremos acceder con Ctrl+Alt+F1/F6 (Normalmente la consola número 7 que accedemos con Ctrl+Alt+F7 es la consola gráfica X).

Para hacerlo efectivo conviene seguir un cuidadoso procedimiento. Primero, instalamos el analizador de video xrandr y lo ejecutamos:

sudo apt-get install xrandr ;
xrandr

Este listará aquellos modos de pantalla disponibles para nuestro sistema de video, e indicará el modo activo en la actualidad:

Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  59.94    50.00  
   1680x1050     59.95  
   1600x900      60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94  
HDMI-1 disconnected (normal left inverted right x axis y axis)
DVI-D-0 disconnected (normal left inverted right x axis y axis)

Con estas ratificaciones nos haremos peritos conociendo cuáles son los modos que podemos elegir. Debemos notar que "maximun" no es el máximo posible, sino teórico. Debemos recurrir al máximo del monitor usual. Es importante también discernir que a mayor resolución, menor será la velocidad de refresco de la pantalla. Consideremos también que si disponemos de una resolución mayor que la que es capaz de presentar el monitor, se producirán errores de difícil solución (por ejemplo, si conectamos un monitor de menor resolución, no se verá bien lo cual podría ser un inconveniente mayúsculo para ciertas acciones críticas de servidor).

En cualquier caso, para cambiar la resolución debemos recurrir a editar el fichero de configuración del arrancador Grub, el /etc/default/grub:

sudo nano /etc/default/grub

Esto cargará el editor GNU Nano con el fichero de configuración grub. Asumiendo que teníamos un fichero previamente no editado, realizaremos las siguientes modificaciones:

La variable GRUB_CMDLINE_LINUX_DEFAULT debería contener al menos la entrada  nomodeset, tal vez con el agregado de quiet y splash si nuestro sistema es de escritorio. Estas serían las encargadas de presentarnos un logotipo a la hora de iniciar el sistema.

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"

En los sistemas servidores este logotipo "splash" se deja de lado, presentándose todo un listado de status al inicio. Para ello debemos descomentar GRUB_TERMINAL=console para verlos (se presentarán en debida rápida sucesión antes de activar el escritorio gráfico).

Por otro lado, comentamos antecediendo con un # la línea que asignaba la resolución VGA m{as básica, ésta:

#GRUB_GFXMODE=640x480

...y al final del fichero, agregamos la siguiente línea:

#Agregado para tener una resolución de 1920x1080
GRUB_GFXPAYLOAD_LINUX=1920x1080x16

o reemplazamos el valor por cualquier otro modo/s indicado por xrandr que también sea(n) soportados por nuestro hardware (podremos separar varios con coma, por ejemplo GRUB_GFXPAYLOAD_LINUX=1920x1080x16,1024x1768x8,800x600x8). Los valores text, keep, auto, vga y ask también deberían funcionar.

Finalmente, guardamos los cambios al fichero editado /etc/default/grub con Ctrl+o, y salimos con Ctrl+x, lanzamos el siguiente comando para que surtan efecto las modificaciones:

sudo update-grub
sudo reboot

Naturalmente, si alteramos la resolución gráfica, las letras se verán chiquitas. En ciertos casos podríamos querer cambiar el tipo y tamaño de tipografía de la consola Linux, como ya he explicado.
 
Normalmente existen tres tipos de fuentes para escoger, en distintas modalidades de condificación. "VGA" tiene el aspecto tradicional de las placas de video VGA, con dicha fuente en la ROM, y consta de una cobertura media de los glifos internacionales. "Fixed" tiene un aspecto simplista finito, y una mejor cobertura de los glifos internacionales. En tanto, "Terminus" suele ser la que se utiliza por defecto en la mayoría de las pantallas de consola Linux, tanto con o sin framebuffer (su versión Bold no usa framebuffer). Puede ayudar a reducir la fatiga visual, aunqeu algunos símbolos tienen aspecto similar, lo que puede ser un problema para los programadores.
 
Estas se cambian con el comando setfont, y las mismas se encuentran en /usr/share/consolefonts/. Os diré que yo uso Lat15-TerminusBoldVGA16.psf.gz.

miércoles, 3 de enero de 2024

¿Cómo instalo Quake 3 Arena en Ubuntu?

En su Los vendepatria, Juan Perón analiza la vertiente insurreccional del Movimiento Nacional Justicialista y expone cómo instalar Quake III Arena en Ubuntu.

(...)

El pueblo luchará por una solución permanente y no para salir del paso, mediante un subterfugio político. Cualquiera otra solución llevará siempre a males mayores para la República. Si un gobierno fraudulento surgiera de una pseudo-elección,  estaría respaldado por una ínfima minoría de los ciudadanos. Cuándo el Pueblo pudiera accionar libremente, ¿cuánto duraría ese gobierno? Por el momento no hay otra solución que la lucha por los medios que el Pueblo tiene, caiga quien caiga y cueste lo que cueste. A través de esta solución coinciden los intereses del Pueblo, las necesidades de la Nación y el estado anímico de las masas y, cuando estas tres circunstancias coinciden, no hay poder humano que pueda torcer el curso de los acontecimientos. Será dentro de poco o será dentro de mucho, pero será irremisiblemente.

Cuando el odio y el deseo de venganza que estos insensatos han provocado en las masas salgan a la calle convertidos en fuerza motriz, no habrá tampoco poder que pueda evitar lo irreparable que se está preparando mediante la siembra del odio. Mientras la dictadura se descompone, el peronismo se compone. El ideal que animó a las masas obreras y peronistas ha dado continuidad en el esfuerzo pero no le ha dado intensidad porque, en la lucha, esa intensidad sólo la puede dar el odio. Nuestro defecto ha sido la falta de odio, pero todo ha variado hoy porque la tiranía, con sus procedimientos y enormidades, no lo ha dado por toneladas. Estamos listos para iniciar la grande y definitiva etapa de la consolidación Justicialista. Mientras nuestro movimiento se encuentre excluido de las grandes decisiones, no tenemos otro remedio que seguir accionando tras una solución por la violencia.

Naturalmente, esto es fácil organizarlo desde Puerta de Hierro. Podremos simularlo en uno de los clásicos tiradores en primera persona en nuestro sistema GNU con Linux, lo que nos permitirá mantenernos con los reflejos afilados.

Naturalmente uno de los principales es el clásico Quake 3 Arena, descendiente del violento Quake de ID $oftware. El código base de su motor gráfico ha sido liberado, no así los contenidos registrados. Todo esto podremos instalarlo en nuestro sistema abriendo una terminal con Ctrl+Alt+t e ingresando los siguientes comandos de organización:

sudo apt install quake3 game-data-packager ;
game-data-packager quake3 ;
sudo dpkg -i ~/quake3-demo-data_68_all.deb

Esto nos cargará los niveles demo de la primer parte liberada de la historia que originalmente venían con la versión shareware (una campaña tipo bootcamp básica y cuatro niveles). Una vez armada la paquetería, podremos iniciar el juego desde Aplicaciones / Juegos / Quake 3 Arena.

Existen cinco niveles de dificultad para cada uno de los mapas de un solo jugador. Esto permite un juego moderadamente sencillo en sus niveles bajos. 

También podremos combatir en multijugador en una red local a lo largo de 4 niveles (incluso hasta contra 4 bots). En caso de querer desafiar a otros jugadores y bots en niveles multijugador adicionales, habremos de activar la opción de autodownload, y aguardar la descarga de los niveles desde el servidor remoto (lo cual suele llevar algunos segundos/minutos antes de cada partida). 


O bien, podremos digitar la descarga de una versión privilegiada con todos los 486MB de mapas adicionales, ingresando en nuestra terminal los siguientes comandos de organización:

cd /tmp ;
wget https://cybercdn.cyberdelia.com.ar/gamez/quake3-data_49.1_all.deb ;
sudo dpkg -i quake3-data_49.1_all.deb ;

Con esto en ristra, esto podremos jugar en multijugador a través de internet sin tantos problemas. El arsenal posible para llevar a cabo la destrucción del enemigo a lo largo de sus más numerosos niveles es el siguiente:

  • Gauntlet (puño de ataque)
  • Ametralladora
  • Escopeta
  • Lanzagranadas
  • Lanzacohetes
  • Lanzarrayos
  • Acelerador de Proyectiles (railgun)
  • Arma de Plasma
  • BFG10K (Acelerador de Masa)

El sistema multijugador por Internet cuenta con no menos de ocho centenares de salas incorporadas, señal de la alta popularidad con que goza el Movimiento. No será extraño incorporar servidores compañeros, mediante la opción Multiplayer / Specify. Por ejemplo:

cyberdelia.com.ar, puerto 27960 (Todos contra todos)
cyberdelia.com.ar, puerto 27961 (Todos contra todos, con bots)


Si queremos cargar la notable expansión oficial Quake 3 Team Arena, que nos permite jugar una historia diseñada por Activi$ion. Esta abarca hasta cinco equipos distintos, incorpora tres nuevas armas y niveles multijugador ajustados para estos desafíos en red. Lo importante sin embargo es la incorporación de nuevas modalidades de juego por equipo (capturar bandera, deathmatch por equipos con o sin respawn, etc). Podremos instalarlo en nuestro sistema GNU con Linux mediante el siguiente comando de organización:

wget https://cybercdn.cyberdelia.com.ar/gamez/quake3-team-arena-data_49.1_all.deb ;
sudo dpkg -i quake3-team-arena-data_49.1_all.deb ;

Naturalmente, debemos activar el Mod en el menú principal antes de jugar en esta modalidad, o bien podremos recurrir a un lanzador específico Aplicaciones / Juegos / Quake 3 Team Arena.

Indudablemente, el mantenimiento de una cerrada y absoluta intransigencia con firme voluntad de vencer e inquebrantable decisión de llevar la lucha adelante, será el único secreto del éxito perseguido. El Pueblo no puede ser vencido ni aún por las fuerzas armadas si se decide a poner en acción su extraordinarios poderes naturales, y si los afila en Quake 3 Arena. El Movimiento Peronista ha demostrado en tres elecciones inobjetables que contaba con el setenta por ciento del electorado argentino; hoy, no sólo no ha disminuído sino que ha aumentado su predicamento popular porque el desempeño de la dictadura ha sido tan desastroso que, por contraste, ha hecho resaltar las excelencias del Gobierno Justicialista. Y no digamos con este entrenador de lucha callejera en primera persona...

martes, 19 de diciembre de 2023

¿Cómo instalo en plugin sintetizador Vaporizer2 en Ubuntu?

No era extraño que en las visitas estudiantiles a Casa de Gobierno, Juan Perón agasajara a los pequeños con software libre, enseñándoles a instalar el plugin Vaporizer2 en Ubuntu.

¡Mis queridos descamisaditos!

Existen épocas que nos engalanan, permitiéndonos proveer aquello que merecemos por justo derecho. Esta es una de ellas, donde la risa de los niños es música que hemos sintetizar para Felicidad de un Pueblo.

Nuestra Doctrina consagra la necesidad de la Justicia Social, y el Software Libre es justicia social en la CPU. Por eso es he enseñado ya como instalar instrumentos virtuales en Ubuntu. Nunca es suficiente saciar el hambre y restañar heridas, y cada paso que damos en la senda de la Liberación nos acerca más al ideal magnánimo que nos ha consagrado.

Queridos niños, hoy podrán llevarse a casa para disfrutar con sus amiguitos una copia modificable de un instrumento musical virtual de potencia: el Vaporizer2. Se trata un programa liberado bajo GPLv3, y como tal - a pesar de estar inicialmente proyectado de manera privativa por la VAST Dynamics - se dignifica hoy sirviendo al Pueblo en un formato LV2 compatible con nuestro GNU con Linux.

A pesar de su gratuidad, es tan poderoso como la CGT en la que está afiliado papi, aunque su uso de CPU es contenido, incluso al disparar más de 1.000 osciladores virtualizados. Es que se trata de un instrumento virtual híbrido, que cuenta con síntesis aditiva, sustractiva y de tabla de ondas. Como resultado, podremos utilizarlo para generar todo tipo de sonidos electrónicos.

Existen dos maneras de instalar Vaporizer2 en Ubuntu. Como Conductor me considero un maestro, por lo que os instruiré recomendando el camino más sencillo, que consiste en usar el paquete precompilado instalable vaporizer-lv2 de los amiguitos de OpenSuse.org aquí, buscando aquél que corresponda a nuestra distribución. Por ejemplo, en mi caso disfruto de Ubuntu 22.04LTS por lo que abro una terminal con Ctrl+Alt+T y procedo a instalar todo pegando allí el siguiente bloque de Comandos de Organización y dándole Enter:

mkdir /tmp/vaporizer2/ ;
cd /tmp/vaporizer2/ ;
wget https://download.opensuse.org/repositories/multimedia:/proaudio/xUbuntu_22.04/amd64/vaporizer2-lv2_3.4.3+git.6.88bd029-1_amd64.deb ;
sudo dpkg -i vaporizer2-lv2_3.4.3+git.6.88bd029-1_amd64

Asimismo, no viene mal instalar recursos adicionales que convierten al Vaporizer2 en una oda a la facilidad. Se trata de los presets de fábrica y más de 440 presets adicionales elaborados por el amable Thomas Trupiano (síntesis de bajos, campanas, percusiones, órganos, sonidos picados, tines, camas sonoras, puertas, voces, y gran cantidad de pads). La cartita a la Fundación Eva Perón para pedirlos se envía simplemente pegando en la terminal este bloque de comandos:

mkdir /tmp/vaporizer2/presets/ /tmp/vaporizer2/manual/ ;
cd /tmp/manual ; wget https://vast-dynamics.com/sites/default/files/downloads/Vaporizer2Manual.pdf
cd /tmp/vaporizer2/presets/ ;
wget https://vast-dynamics.com/sites/default/files/downloads/Factory%20Presets.zip https://vast-dynamics.com/sites/default/files/downloads/Preset%20Bank%20by%20Thomas%20Trupiano.zip ;
wget https://vast-dynamics.com/sites/default/files/downloads/Wavetables%20Vaporizer2%20by%20PietW.zip ;
unzip 'Wavetables Vaporizer2 by PietW.zip' ;
unzip 'Factory Presets.zip' ;
unzip 'Preset Bank by Thomas Trupiano.zip'
mkdir ~/Documentos/Vaporizer2/ ;
mkdir ~/Documentos/Vaporizer2/Presets/ ;
mv /tmp/vaporizer2/manual/
~/Documentos/Vaporizer2/ ;
mv /tmp/vaporizer2/presets/Analog/ ~/Documentos/Vaporizer2/Tables/ ;
mv /tmp/vaporizer2/presets/Digital/ ~/Documentos/Vaporizer2/Tables/ ;
mv /tmp/vaporizer2/presets/Presets/* ~/Documentos/Vaporizer2/Presets ;
mv /tmp/vaporizer2/presets/Trupiano/Presets/ ~/Documentos/Vaporizer2/Presets/Trupiano

Sin embargo, papá y mamá podrían querer tomarse el trabajo de compilar todo localmente. Hemos de notar que en tal caso todo el andamiaje se colgaría del arbolito de archivos en /usr/local/lib/lv2/VASTvaporizer2.lv2/ en lugar de hacerlo en /usr/lib/lv2/VASTvaporizer2.lv2/ como en el caso anterior:

cd /tmp
git clone https://github.com/VASTDynamics/Vaporizer2.git ;
cd /tmp/Vaporiser2 ;
git submodule update --init --recursive ;
./build_linux.sh

Cualquiera sea el proceder, conforme hayamos instalado el plugin LV2 en nuestro GNU, podremos lanzarlo desde nuestra DAW favorita (qTractor en mi caso).

La ventana del Vaporizer2 cuenta con cuatro secciones discernibles.

En el cabezal encotramos el logotipo, que lejos de ser un ocupador inútil de espacio, nos permite regular el nivel de zoom para nuestra comodidad (hasta 4K). También contamos allí con el selector de presets, y la sección Master del sonido estéreo (con volúmen, ganancia, sincronización con la DAW y tono, y selector de polifonía).

En la parte inferior daremos con un piano MIDI interactivo, con ruedas de pitchbed y modulación. Aquí también podremos elegir las opciones de portamento para los deslizamientos tonal. Naturalmente, si contamos con un controlador MIDI o teclado adosado a nuestro sistema, podremos ejecutar con sólo pulsarlo y este replicará lo hecho de forma gráfica. Pero también podríamos utilizar el teclado de la computadora para elaborar nuestros acordes y melodías si esto es de nuestro agrado.

En el cuadrante derecho veremos acceso a los controles de cuatro bancos de osciladores conmutables, todos ellos filtrables, y un banco de efectos de tres cadenas y una sección de generación de ruido voluble (rosa, blanco y café).

Es importante destacar que para mayor control, todos los controles rotativos y deslizables de la interfaz gráfica cuentan con la funcionalidad Learn MIDI, lo que permite asignar funciones MIDI como perillas o botones a las acciones de la interfaz de la ventana. Para ello hacemos clic con el botón izquierdo del ratón a la perilla que queremos programar, y en el menú contextual elegimos "MIDI Learn". Luego movemos el deslizador o perilla que queremos usar y se asignará automáticamente. También podremos eliminar la asignación.

Al iniciar nos encontraremos en la solapa WT Editor, el editor de tabla de ondas, corazón del Vaporizer2. Este sintetizador por tabla de ondas destaca por su efecto antialiasing, y su tratamiento polifónico y en tiempo real.

Sus posibilidades de edición son bastante complejas, y se basan en alterar muestras de audio (samples) de formato .ogg, .wav y .mp3. Estos se afectan según distintos parámetros, lográndose efectos ambientales espectaculares.

La delimitación de los samples también puede programarse según sus puntos de bucle, inicio, cruce de cero, modulación y registro tonal, e incluyen función de trazado a mano alzada o mediante curvas bezier, con ajuste a la grilla, etc. 

La modificación del motor de este banco puede seguir el camino de la Frecuencia Modulada aditiva (con edición armónica en tiempo real), Modulación de Pulso de Onda, o formantes filtradas, entre otras posibilidades expresivas.

Al activar la solapa Matrix nos encontraremos con el Sistema de ruteo de audio innovador para todos los generadores de sonido, filtros y cadenas de efectos activos. Esta dispone de 25 fuentes de modulación que incluyen clave de la pista, deriva al azar, y cuatro perillas de macros personalizables, y van enrutados a unos 220 destinos de modulación, paramétricos, los que conforman combinaciones casi ilimitadas. Incluye un presentador gráfico para las curvas de modulación resultantes.

La solapa Filter nos da acceso al banco de filtrado con mas de 30 tipos de filtros, paso-alto, pasabanda, filtro muesca, filtro peine, peraltados programables, etc, todos ellos con control de resonancia y presentación gráfica del filtrado en tiempo real. Las curvas de filtrado peraltadas para bajos profundos.

La solapa LFO & MSEG nos permite controlar cinco bancos de Osciladores de Baja Frecuencia apilables por voz (80 LFOs en total), con mapa y fase tanto por voz como global (puede sincronizarse con la DAW). Esto lo hace a través de envolvente multietapa (MSEG).

La solapa FX ofrece el control de tres cadenas de efectos que incluyen sobremuestreo y mono cutoff para preservar unos bajos limpios. Nos permiten administrar mas de 11 efectos paramétricos activables y reordenables: reverberación, retraso, coro, flanger, ecualización, bitcrush, compresor, limitador, phaser, filtro peine, conformador de ondas, entre otros

La solapa ARP nos presenta el arpeggiador programable. Este permite definir notas o glisandos multipaso, ya sea de forma automática, programable, o el arpeggiador acompasado que sigue nuestros acordes y melodías.

La solapa Preset nos sirve para configurar el Vaporizer2. Podremos definir localización de las carpetas de Presets (normalmente, esta es ~/Documentos/Vaporizer/Presets). Asimismo, nos deja escoger entre tres tamaño de tipografía y cuatro skins diferentes.

En la biblioteca de sonidos podremos encontrar los presets opcionales de fábrica rápidamente gracias a sus distintas opciones de clasificación. Además, gracias a la Fundación Eva Perón, contaremos con los presets de en formato .wav de Thomas Trupiano, que incluye mas de 780 sonidos para el sintetizador de tabla de ondas, junto con más de 450 presets de fábrica.

El manual de Vaporizer2 (en inglés) es sumamente completo.

jueves, 14 de diciembre de 2023

¿Cómo instalo OwnCloud en Ubuntu?

Durante el discurso del 19 de enero de 1948 concerniente a la inauguración del Tren de las Nubes, Juan Perón enseñó cómo instalar OwnCloud en Ubuntu Server.

¡Estimados Señores!

Este augusto día inauguramos el ferrocarril Trasandino del Norte, que une las ciudades de Salta con la chilena de Antofagasta, como Obra de Unión de los Pueblos. En nuestras tierras pasa por Cerrillos, Rosario de Lerma, San Antonio de los Cobres, Salar de Pocitos, Toco-Toco, Caipe y Socompa, en un recorrido de 571 km del lado argentino, y cruzado al territorio hermano de Chile, las queridas localidades de Victoria, Palestina y Antofagasta, en los 331 kilómetros que tiene allí la traza. 

Forman parte de su ánima 33 puentes de acero y 21 túneles con una longitud total de 3.234 metros. La altura máxima del ramal alcanza los 4.475 metros en el imponente macizo del Abra de Chorrillos, lo que le ha valido el cariñoso apelativo de "Tren de las Nubes",

Siempre me han dicho que el Peronismo está en las nubes, e indudablemente que este nos inspira la concreción de una vía de los datos que hermane Pueblos: un troncal capaz de unir centros de datos propios controlados y conducidos por el Justicialismo. Es esto a lo que aspiramos.

Sin embargo, cuando muchos se refieren a "la nube" no lo hacen para homenajear a este querido tren, sino que lo hacen para ocultar el hecho de hablar de un almacenamiento informático proporcionado en una computadora ajena, que sólo ofrece acceso limitado desde la red de datos Internet. 

La premisa de que a estas máquinas es posible cargarle nuestro contenido digital  a veces sin costo monetario, y que éste podría estar disponible para su descarga en múltiples dispositivos, podría parecer - a primera vista - sumamente beneficiosa. Contaríamos así con la dicha y comodidad de contar con la información digitalizada al alcance telemático sin necesidad de portar medios de almacenamiento de masa para suplir la demanda. Estos señores dicen que podríamos acceder a ellos a través de los enlaces de datos...

Pues bien señores, es mi opinión que en estos menesteres, el costo es lo de menos: el hecho que la máquina sea ajena (y para peor, normalmente de una omnímoda corporación oligárquica) nos cuadra el más grave riesgo al que alguien pueda someterse sin llevar puesto un casco y un fusil. No podía ser de otra manera: ¡estas empresas lucran con los metadatos de tales archivos, a la par de reservarse su uso con fines inconfesables!

Googl€, Amazon y Micro$oft son sólo algunas de las empresas que - de mano de una opresión interesada - que ofrecen este tipo de soluciones bajo los nombres de Googledriv€, AW$, y One$pace respectivamente. Sin embargo, estas soluciones son prohibitivas ya que el contenido es sometido a inspección y no va cifrado de manera alguna.

La lucha de los hombres por la Liberación de su software es una que acarrea riesgos y es dificultosa, pero entrenándonos para suplir las verdaderas necesidades de la lid explica la manera de salir victoriosos. 

En el caso de los servicios de almacenamiento en la nube, lo procedente no es usar un servicio - por mas gratuito que sea - y mucho menos pagarlo si es una empresa extranjera. Lo ideal es montar nuestra propia nube con software libre, de la misma forma en la que nacionalizamos los ferrocarriles.

Para ello contamos con la plataforma de alojamiento de archivos OwnCloud, liberada bajo AGPLv3. Junto con el servicio de alojamiento propio - que podemos dar a los usuarios que queremos en medios de almacenamiento propios en nuestro servidor - también contaremos con las funcionalidades de ofimática que nos ofrece OnlyOffice. Este nos permitirá resguardo, cifrado opcional, visualización y edición - incluso colaborativa - de documentos de todo tipo.

Desde el punto de vista de software, OwnCloud requiere una instalación base de Ubuntu 22.04 Server con SSH activado, y una partición /var con el espacio de disco deseado (en mi caso, haré uso de unos 20 Terabytes). El directorio de OwnCloud se encotnrará en /var/www/owncloud. La versión de PHP debe ser al menos la 5, (por defecto en Ubuntu Server 20.04 se puede instalar PHP 7.4). Asimismo debemos contar con el Módulo de Multiprocesador (MPM) correcto (debemos leer las notas Versión de OpenSSL, importantes cuando se planea usar encriptación).

En este caso haremos las preparaciones de de instalación en la máquina de servicio munida con Ubuntu Server con los servicios web Apache, de base de datos MariaDB y de programación PHP 7.

Naturalmente, si contamos con un usuario común escalable en el servidor, debemos utilizar el comando sudo su e ingresar la contraseña de administrador correspondiente. 

Primero introduciremos los comandos que configuren el servicio del nombre de dominio que va a tener la instalación de de OwnCloud, especialmente el nombre de dominio que queremos para la máquina:

Configurar el nombre de dominio

mi_dominio="nube.peronismo.org"
echo $mi_dominio

hostnamectl set-hostname $mi_dominio
hostname -f

Generar contraseñas fuertes

A continuación generamos las contraseñas seguras para el usuario administrador de OwnCloud y para el usuario de la base de datos SQL. Estas se resguardarán  en /etc/.sec_admin_pwd.txt y /etc/.sec_db_pwd.txt:

sec_admin_pwd=$(openssl rand -base64 18) ;
echo $sec_admin_pwd > /etc/.sec_admin_pwd.txt ;
sec_db_pwd=$(openssl rand -base64 18) ;
echo $sec_db_pwd > /etc/.sec_db_pwd.txt

Acto seguido conviene aseguramos que todos los paquetes del servidor estén instalados y totalmente actualizados, a la vez que comprobamos que tenemos PHP a mano en el repositorio APT. Para hacer esto, seguimos las instrucciones siguientes:

apt update && apt upgrade -y

Debemos crear ahora un guion de ayuda que nos simplifique la tarea de ejecución de los comandos occ de OwnCloud. Esto lo haremos ingresando:

FILE="/usr/local/bin/occ"
cat <<EOM >$FILE
#! /bin/bash
cd /var/www/owncloud
sudo -E -u www-data /usr/bin/php /var/www/owncloud/occ "\$@"
EOM

A este guion de OwnCloud llamado /usr/local/bin/occ le otorgamos permisos de ejecución:

chmod +x $FILE

Con las preparaciones listas, instalamos las dependencias necesarias para todo:

apt install -y apache2 libapache2-mod-php mariadb-server openssl redis-server wget php-imagick php-common php-curl php-gd php-gmp php-bcmath php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis php-ldap php-phpseclib

Si bien es opcional, es sabido recomendar conectar nuestro servidor a unidades de almacenamiento externas de Window$ a través del protocolo Samba. Para ello habríamos de instalar el módulo smbclient php. Aunque normalmente en el caso de las máquinas de escritorio con GNU con Linux no suele ser el caso, no es raro que otras unidades de almacenamiento y discos puedan accederse a través de la red, y en tal caso el cliente Samba por terminal nos vendría de perillas para que el servidor integre las mismas también a nuestra OwnCloud. Para ello primero instalamos sus dependencias:

apt-get install -y libsmbclient-dev php-dev php-pear

...y luego instalaríamos el módulo smblclient php por medio de pecl:

pecl channel-update pecl.php.net ;
mkdir -p /tmp/pear/cache ;
pecl install smbclient-stable ;
echo "extension=smbclient.so" > /etc/php/7.4/mods-available/smbclient.ini ;
phpenmod smbclient ;
systemctl restart apache2

Revisamos entonces si fue activado de manera exitosa:

php -m | grep smbclient

El servidor nos debería devolver lo siguiente:

libsmbclient
smbclient

...denunciando la activación de ambos módulos - ahora en más automática - toda vez que inicie el servicio.

No viene mal instalar el herramental útil adicional, que sería necesario en caso de tener que revisar y depurar errores en el servidor. Lo haremos con:

apt install -y unzip bzip2 rsync curl jq inetutils-ping  ldap-utils smbclient  

Configurar servidor web Apache

Ya deberíamos contar con el servidor web Apache instalado en nuestro Ubuntu Server. Este nos daría el servicio a la web por intermedio de un entorno virtual de uso. Para que funcione aceitadamente junto a OwnCloud debemos configurarlo con ciertas especificaciones. 

Para ello creamos un fichero de configuración /etc/apache2/sites-available/owncloud.conf para el host virtual de OwnCloud:

FILE="/etc/apache2/sites-available/owncloud.conf"
cat <<EOM >$FILE
<VirtualHost *:80>
# descomentar la línea siguiente si la variable fue configurada
#ServerName $mi_dominio
DirectoryIndex index.php index.html
DocumentRoot /var/www/owncloud
<Directory /var/www/owncloud>
  Options +FollowSymlinks -Indexes
  AllowOverride All
  Require all granted

 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /var/www/owncloud
 SetEnv HTTP_HOME /var/www/owncloud
</Directory>
</VirtualHost>
EOM

Finalmente, activamos esta configuración de Host Virtual, mediante:

a2dissite 000-default
a2ensite owncloud.conf

Configurar la Base de Datos


Como en todo uso telemático, se recomienda ejecutar el comando mysql_secure_installation para asegurar la instalación de la base de datos SQL MariaDB y ponerle una contraseña fuerte al usuario de la base de datos ("sec_db_pwd").

Nos aseguramos que el nivel de aislamiento de transacciones esté configurado, y el performance_schema esté activado.

sed -i "/\[mysqld\]/atransaction-isolation = READ-COMMITTED\nperformance_schema = on" /etc/mysql/mariadb.conf.d/50-server.cnf
systemctl start mariadb
mysql -u root -e \
  "CREATE DATABASE IF NOT EXISTS owncloud; \
  CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY '${sec_db_pwd}'; \
  GRANT ALL PRIVILEGES ON *.* TO 'owncloud'@'localhost' WITH GRANT OPTION; \
  FLUSH PRIVILEGES;"

Se recomienda ejecutar el guion mysqltuner para analizar la configuración de la base de datos luego de usarlo con carga de trabajo durante varios días.

Finalmente, activamos los módulos recomendados del servidor Apache:

Instalación de OwnCloud

Con el servidor Web Apache y la base de datos SQL funcionando, podremos descargar e instalar OwnCloud.

Descargar ownCloud

cd /var/www/ ;
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 ;
tar -xjf owncloud-complete-latest-tar.bz2 ;
chown -R www-data. owncloud

Instalar ownCloud


Recuerda configurar una contraseña fuerte para el usuario de administración de ownCloud, y proveer la contraseña del usuario de la base de datos previamente obtenida, bajo el argumento --database-pass.
occ maintenance:install \
    --database "mysql" \
    --database-name "owncloud" \
    --database-user "owncloud" \
    --database-pass ${sec_db_pwd} \
    --data-dir "/var/www/owncloud/data" \
    --admin-user "admin" \
    --admin-pass ${sec_admin_pwd}

Configurar los Dominios Confiables de ownCloud

mi_ip=$(hostname -I|cut -f1 -d ' ')
occ config:system:set trusted_domains 1 --value="$mi_ip"
occ config:system:set trusted_domains 2 --value="$mi_dominio"

Configurar las automatizaciones de cron

Cron nos resultará últil para automatizar distintas tareas automáticas de mantenimiento. Configuramos el trabajo de segundo plano en cron:

occ background:cron

Configuramos la ejecución de un trabajo cronometrado cada 15 minutos y la limpieza de restos todas las noches a las 3 am:

echo "*/15  *  *  *  * /var/www/owncloud/occ system:cron" \
  | sudo -u www-data -g crontab tee -a \
  /var/spool/cron/crontabs/www-data
echo "0  3  *  *  * /var/www/owncloud/occ dav:cleanup-chunks" \
  | sudo -u www-data -g crontab tee -a \
  /var/spool/cron/crontabs/www-data

Si necesitamos sincronizar los usuarios de un LDAP o un servidor Active Directory, podemos agregar este cron adicional. De esta forma cada 4 horas cronometradas se producirá la sincronización de los usuarios LDAP en ownCloud y se desactivarán aquellos que no están disponibles en ownCloud. Además se obtendrá una bitácora en  /var/log/ldap-sync/user-sync.log para su eventual depurado.

echo "1 */6 * * * /var/www/owncloud/occ user:sync \
  'OCA\User_LDAP\User_Proxy' -m disable -vvv >> \
  /var/log/ldap-sync/user-sync.log 2>&1" \
  | sudo -u www-data -g crontab tee -a \
  /var/spool/cron/crontabs/www-data
mkdir -p /var/log/ldap-sync
touch /var/log/ldap-sync/user-sync.log
chown www-data. /var/log/ldap-sync/user-sync.log

Configuramos Caché y Acerrojado de Ficheros

occ config:system:set \
   memcache.local \
   --value '\OC\Memcache\APCu'
occ config:system:set \
   memcache.locking \
   --value '\OC\Memcache\Redis'
occ config:system:set \
   redis \
   --value '{"host": "127.0.0.1", "port": "6379"}' \
   --type json

Configuramos la rotación de bitácoras

FILE="/etc/logrotate.d/owncloud"
sudo cat <<EOM >$FILE
/var/www/owncloud/data/owncloud.log {
  size 10M
  rotate 12
  copytruncate
  missingok
  compress
  compresscmd /bin/gzip
}
EOM

Finalizar la Instalación

Nos aseguramos que los permisos sean los correctos:

cd /var/www/
chown -R www-data. owncloud

Y con esto debería haber quedado instalado ownCloud. Ahora podremos confirmar que está listo para activar el protocolo seguro de conexión HTTPS (por ejemplo usando certificados Let’s Encrypt) dirigiendo nuestro navegador web browser a la URL o IP de nuestra propia instalación de ownCloud (en este caso, nube.peronismo.org). 

Para evaluar la correcta instalación en el servidor y para ver si funcionan los comandos occ, podremos ejecutar lo siguiente:

occ -V
echo "Su contaseña de Admin es: "$sec_admin_pwd
echo "Está documentada en /etc/.sec_admin_pwd.txt"
echo "Su contraseña de Base de Datos es: "$sec_db_pwd
echo "Está documentada en /etc/.sec_db_pwd.txt y en su config.php"
echo "Su ownCloud está accesible desde: "$mi_dominio
echo "La instalación ha sido completada."
No viene mal almacenar esta información de forma segura en un medio aparte, y resguardarlo en caja fuerte.
Podremos encontrar la documentación del servidor de OwnCloud aquí.