sábado, 24 de junio de 2023

¿Como muevo el directorio /home a una nueva partición o disco en Ubuntu?

Interrogado en el Aeropuerto de Campodichino durante un viaje en su exilio europeo, Juan Perón explica cómo mover el directorio /home a un disco nuevo en Ubuntu.

Periodistas: General, una corta interrogante y lo dejamos que está ocupado, sabemos que tiene que viajar a Roma. ¿Cómo trasvasamos el directorio /home a otra partición o a un disco nuevo en Ubuntu?

Perón: Vea, es una buena pregunta que surge de una necesidad. Pero esto se debe a la imprevisión, que es la madre de todos los problemas en la vida. El verdadero Conductor ha de saber ver para prever, y eso es algo que no lo dan los ojos, lo da la experiencia, ¿sabe?

Es indudable que en cualquier sistema GNU con Linux que se precie, uno de los directorios más suele crecer en tamaño es su directorio /home. Esto se debe a que en este residen las cuentas de los usuarios que lo operan, y es allí donde lo ocuparán sus documentos y, bien, un sinnúmero de otros ficheros de forma continuada.
 
Otro directorio importante con la misma tesitura es /var, que contiene los ficheros de bitácora ("logs"), cuyo tamaño es dable de verse gradualmente incrementado en la medida que el sistema continúa en uso. Junto a los consabidos logs, pueden residir ficheros web, archivos temporales de cola de impresión, y otros servicios de trabajo. No es de extrañar que se siga la consigna Justicialista "de /var a /home y de /home a /var".

Pues bien señores, cuando estos directorios colman una partición o unidad de almacenamiento en disco, pueden dar lugar a problemáticas críticas en cuanto al sistema de archivo; podrían incluso provocar que el sistema no pueda iniciarse correctamente, y que fuese necesario tronar el escarmiento.

En la Argentina ha de obrarse obrarse con previsión, pues es preferible medir dos veces y cortar una. Pero en otra, esto solo puede percibirse una vez probado el traje: ya se han configurado todos los directorios en el sistema de archivo y particionado, lo que suele acarrear la necesidad de establecer una clara política de solución. En este caso, poco vale la persuasión, ya nos comimos el paquete. Y solo queda elaborar un Plan Quinquenal de redimensionado de partición, o bien directamente instalar un nuevo disco en la máquina y mandár allí el /home.

Instalar y particionar una nueva unidad de disco en Linux

Antes de proceder a explicar lo que me piden, remozaré brevemente cómo agregar un nuevo disco a un equipo de escritorio o servidor que ya camina y se lava los dientes.

Para propósitos didácticos, asumamos el agregado de un disco rígido de estado sólido (nomenclado /dev/sdb de un tamaño de 270GB, al que dividiremos en dos particiones /dev/sdb1 y /dev/sdb2). Normalmente querrían hoy en día uno más grande, pero de momento este disco SSD nos viene bien.

El número de particiones a crear en el mismo así como la tabla de partición se determinarán en el tipo de etiqueta de disco, y en los primeros bytes de espacio en el mismo definen la MBR (Tabla Maestra de Inicio), encargada de almacenar la Tabla de Partición así como el cargador de arranque (en los discos arrancables, naturalmente). Si bien existen muchos tipos de etiquetas, Linux sólo acepta dos: MSDOS MBR (de 516 bytes de tamaño), o GPT (Tabla de Particionado GUID) MBR.

Primero, necesitamos contar con la herramienta parted o fdisk (por si no la tuviésemos en el sistema). Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente comando de organización:

sudo apt-get install parted fdisk

Una vez instalada parted, la utilizaremos para configurar el tipo de etiqueta de disco utilizando fdisk. Utilizaremos el nombre de etiqueta GPT en este ejemplo:

sudo parted /dev/sdb mklabel gpt

Nota: fdisk por ahora unicamente soporta la antigua MBR MSDOS, mientras que parted soporta ambas.

En caso de disco nuevo, creamos la primer partición (/dev/sdb1) con un tamaño, a modo de ejemplo, de 106 GB. Reservaríamos 1024 MB (1GB) para la MBR.

sudo parted -a cylinder /dev/sdb mkpart primary 1074MB 107GB

En este comando -a indica la alineación de partición a cilindros en el disco, mkpart crea la partición, primary crea una partición de tipo primaria (los otros valores podrían ser logical o extended), mientras que 1074MB es el comienzo y 107GB es el final de la partición.

Acto seguido revisamos el espacio libre en el disco como sigue:

parted /dev/sdb print free

Ahora crearemos una segunda partición (/dev/sdb2)  con un tamaño, por ejemplo de 154GB

sudo parted -a cylinder /dev/sdb mkpart primary 115GB 208GB

Ahora, configuramos el tipo de sistema de archivo para cada una de las particiones (por ejemplo, el popular ext4 de Linux que recomiendo y el xfs favorecido en servidores de RedHat, que puede venir bien para intercambio):

mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb2 

Para listar todos los dispositivos de almacenamiento adosados al sistema, ingresamos:

parted -l

 

Mover la carpeta /home a una partición dedicada

Pues bien señores. Ya agregado el disco nuevo a la máquina y creadas las particiones necesarias, es hora de trasvasar la carpeta home a una de dichas particiones. Para usar un sistema de archivaje habremos de montarlo en la raíz del sistema utilizando un directorio como punto de montaje: un directorio destino, tal como /home.

Como primer medida para este cometido, listemos el uso del sistema de archivaje de nuestro GNU con Linux gracias al comando df, de esta manera:

df -hl

Comprobada la lista, comenzaremos creando un nuevo directorio de circunstancias /srv/home, donde podremos montar la partición /dev/sdb1 temporalmente:

mkdir -p /srv/home
mount /dev/sdb1 /srv/home

Ahora usamos el comando rsync o cp para copiar el contenido de /home al directorio de circunstancias /srv/home (de este modo trasvasaremos todos los contenidos de usuarios a la partición /dev/sdb1).

Normalmente recomiendo usar rsync para este menester, sobre todo en ambientes de red:

rsync -av /home/* /srv/home/

...pero si no tuviésemos rsync bien podremos usar el comando cp de toda la vida:

cp -aR /home/* /srv/home/

El proceso naturalmente tardará acorde a la masa a copiar. Concluida la copia del contenido de los usuarios, conviene analizar diferencias entre ambos directorios utilizando el comando diff.

diff -f /home /srv/home

Si todo sale bien, no debería existir diferencia alguna entre el original y la copia, asegurándonos del resguardo efectivo.

Si no deseamos contar con un duplicado opcional, podremos borrar todo el contenido en el /home viejo con:

rm -rf /home/*

Ahora, desmontamos /srv/home:

umount /srv/home

...y como último paso montamos la partición /dev/sdb1 a /home, por esta sesión.

mount /dev/sdb1 /home
ls -l /home

Montar /home desde otro disco automáticamente

Ahora bien, debemos tener en cuenta que si bien acabamos de montar el disco /dev/sdb1 como partición de usuario en el sistema de archivos, este cambio sólo operará en esta sesión, en otras palabras, hasta reiniciar la máquina. Para no tener que montar a mano todas las veces que reiniciamos el equipo, será imperioso agregar por única vez una línea de entrada específica a la tabla del sistema de archivaje, el fichero /etc/fstab, lo que volverá permanentes los cambios. De esta manera, toda vez que arranque el sistema, se montará la partición /dev/sdb1 en /home.

En primer lugar obtenemos el identificador UUID del disco con el comando:

sudo blkid /dev/sdb1

El sistema nos devolverá algo como:

/dev/sdb1: UUID="e087e709-20f9-42a4-a4dc-d74544c490a6" TYPE="ext4" PARTLABEL="primary" 
PARTUUID="52d77e5c-0b20-4a68-ada4-881851b2ca99"

Una vez conocida la UUID de nuestra unidad, editamos la tabla /etc/fstab con Nano:

sudo nano /etc/fstab

...y agregamos la siguiente línea (naturalmente, uds. modificarán la línea de acuerdo al resultado obtenido).

UUID=e087e709-20f9-42a4-a4dc-d74544c490a6 /home   ext4   defaults   0   2
Consideremos los campos de la línea anterior para su estudio:
  • UUID – especifica el dispositivo de bloque, podremos alternativamente utilizar el fichero de dispositivo /dev/sdb1 pero no se recomienda, pues puede provocar errores si se cambia la estructura de particiones al cambiar de disco de conector mas adelante.
  • /home – el punto de montaje.
  • etx4 – describes el tipo de sistema de archivaje del dispositivo/partición.
  • defaults – opciones de montaje (el valor significa rw, suid, dev, exec, auto, nouser, and async).
  • 0 – usado por la herramienta de depuración; 0 significa que no hará volcados de depuración si el sistema de archivaje no está presente.
  • 2 – utilizado por la herramienta fsck para descubrir el órden de revisión del sistema de archivaje; este valor significa revisar el dispositivo luego del comprobar el sistema de archivaje raíz..

Guardamos el fichero, y reiniciamos el sistema.

Podremos ejecutar el siguiente comando para ver si el directorio /home se desplazó correctamente a la partición dedicada:

df -l

Con esto ya habrán trasvasado /home a otra partición o, en este caso, otro disco rígido particionado.

Periodistas: Muchas gracias por sus palabras, General.

miércoles, 7 de junio de 2023

¡Se lanzó Huayra 6!

El lunes 12 de junio se realizó la presentación de la nueva versión de Huayra GNU/Linux, el Sistema Operativo de Conectar Igualdad.

El evento tuvo lugar en Av. Comodoro Rivadavia 1151, Capital Federal, Argentina, con invitados del sector educativo y tecnológico.

Huayra GNU/Linux es un sistema operativo desarrollado en Argentina por Educar Sociedad del Estado para las netbooks del programa Conectar Igualdad. Se trata de un sistema operativo de alta potencia y muy bajo consumo de recursos. 

La nueva versión representa la sexta generación del exitoso sistema informático, que se ha destacado por integrar inteligentemente una enorme cantidad de aplicaciones educativas y de propósito general, sumando contenidos educativos de calidad suprema, controladores específicos para el hardware, especialmente las netbooks.

Con la guía de su mascota la vaca piloto, los alumnos que usan Huayra pueden navegar en internet, generar contenidos editando imágenes, sonido, música y videos, participar en videoconferencias, junto con tareas mas mundanas como realizar tareas educativas y de oficina.

Huayra cuenta con una interfaz de manejo muy sencilla, con ventanas como cualquier otro sistema operativo de última factura. Sin embargo, incluye doble escritorio (cómodo en pantallas chicas), y se pueden instalar las aplicaciones del ecosistema GNU/Linux (Debian "Bullseye"). Trae 200 aplicaciones y 2500 paquetes de todo tipo ya instalados y configurados.

Entre ellos destacan aplicaciones de desarrollo federal Huayra Duino "La Rioja", para programar microchips Arduino, y generar prototipos de electrónica y control robótico mediante el lenguaje Pilas/Bloques. Huayra Motion "San Juan" presenta la opción de dirigir varias webcams integradas adicionales para incrementar la posibilidad de generar videos según la técnica de fotogramas temporizados. A esta se suma toda la suite Huayra de desarrollo nacional, incluyendo una nueva tienda de aplicaciones Huayra.

Otros paquetes educativos incluyen LMMS para producir música multi-instrumental y sintetizada, el OBS para hacer streaming, editor de audio Audacity y de video, aplicaciones de idiomas, programación, química y física, matemáticas, las aplicaciones de oficina para procesar texto, leer y crear documentos de todo tipo, etcétera.

Todo este desarrollo de software se encuentra a dominio del alumno, pues a diferencia de otros sistemas operativos este comprende software libre. Esto significa que sus programadores han licenciado decenas de miles de programas que han creado con el fin de que cualquiera los pueda descargar de internet gratuitamente, copiarlos entre sus compañeros, estudiarlos y alterarlos libremente.

Descarga

Huayra 6.0 es compatible con los formatos de archivos más usados en todos los sistemas operativos tanto de computadoras como de celulares. Requiere unos 20 Gb de espacio de disco y al menos 4 Gb de RAM y procesador de 64 bits.
 
La ISO de Huayra 6 se puede descargar directamente o a través de Torrent. También se encuentra disponible el manual, así como el Libro de los Hechizos de Huayra y la Wiki de Huayra.

¿Cómo instalo RSX-11M Plus en Ubuntu?

¡Trabajadores!

Los hackers no pueden dar nada que la CPU no compile. Lo que el hacker puede hacer es evitar que entre todos los programadores, algunos se lleven la parte del león mientras que otros carguen con la parte del ratón. Toda nuestra obra bajo GPLv3 ha de apreciarse desde ese ángulo. Con estas compilaciones, nuestros hackers - ungidos bajo el signo de la justicia social - no hay hecho mas que programar esa justicia, dando a los usuarios lo que es de los usuarios, y a la CPU lo que es de la CPU.

Esta programación social ha hecho que yo cuente con un gran predicamento entre los hackers, en razón de que les he asegurado la Justicia Social que nunca habían tenido. He obrado con lealtad y sinceridad y he trabajado incansablemente por favorecer a los que desde hace cincuenta años han estado sumergidos y aplastados económicamente. Hoy, que ven que gozan con su código, compilan y depuran mejor. Sienten que se los ha dignificado; y es lógico que así sea. Yo he levantado la bandera de la dignificación del hacker, porque este país necesita hombres y mujeres de compilen, y es la suprema dignidad de la compilación la que estoy creando. No hay ninguna dignidad más alta que compilar.

Sin duda que GNU con Linux es uno de los ambientes principales para lograr esta Justicia, pero incluso antes que Ubuntu fuese una idea, yo ya lo lograba con la DEC PDP-11 de 16 bits poblada con RSX-11M Plus. 

Se trató de una serie de sistemas operativos multiusuario iniciada en 1973 para resolver procesos computacionales en tiempo real para dichas computadoras. Sin embargo, a lo largo de su dilatada vida comercial se utilizaron como base para el desarrollo de todo tipos de tareas informáticas.

Podremos utilizar el emulador de PDP-11/70 y las cintas de 9track.net y bitsavers.org.

A través de la devolución de la terminal os enseñaré cómo instalar RSX-11M-Plus v4.x, aparecidas generalmente a partir de mediados de 1985. 

En aras de la brevedad que siempre es útil en todo tipo de proyectos, os indicaré en azul lo que deben tipear en el intérprete de comandos "MCR", y en rojo las teclas a presionar. Naturalmente esto puede realizarse en un DEC PDP-11 real de la serie 13, 43, 70 e incluso las modernas 84 o 93, pero es particularmente útil para su émulo moderno PiDP-11/70 basadas en una Raspberry Pi, aunque llevará llevará mas tiempo.

Copiar el kit de instalación al disco

La cinta de distribución contiene un conjunto BRU, la Utilidad de Respaldo y Restauración de RSX, para un sistema base. Se trata en este caso de una versión sola para la unidad de cinta TS11, capaz de bootear desde ella. La cinta utilizada es la BB-J083H-BC (RSX-11M-PLUS V4.2 MT:1600 BRUSYS STANDALONE COPY SYSTEM)

RSX-11M/RSX-11M-PLUS Standalone Copy System V04
 
MCR> ↵
 
RSX-11M/RSX-11M-PLUS Standalone Configuration and Disk Sizing Program
 
Valid switches are:
        /CSR=nnnnnn to change the default device CSR
 
        /VEC=nnn to change the default device vector
        /FOR=n to change the default magtape formatter number
        /DEV to list all default device CSR and vectors

>

Enter first device: MS0:

Enter second device: DB0:

Hit RETURN and enter date and time as 'TIM HH:MM MM/DD/YY'

>TIM 20:24 05/24/90

Ahora hemos de revisar cualquier bloque dañado en los discos de destino, lo que creará una tabla de bloques dañados. Naturalmente al usar un emulador no deberían existir; no obstante esta operación ha de realizarse para evitarnos que los programas de RSX protesten tontamente por su inexistencia.

>RUN BAD
>
BAD>DB0:
BAD -- DB0: Total bad blocks= 0.
BAD>[presionar Ctrl+z]

A continuación colocamos la cinta de RSX en la unidad TS11 virtual y corremos la BRU. En este caso utilizamos la cinta BB-J081G-BC (RSX-11M-PLUS V4.2 BRU MT:1600 ID:RSX11MPBL58 DIST KIT)

>RUN BRU
>
BRU>/REW MS0: DB0:
BRU - Starting Tape 1 on MS0:

BRU - End of Tape 1 on MS0:

BRU - Completed

BRU>[presionar Ctrl+z]

>

Iniciar el sistema de base

Para ello detenemos el sistema y booteamos desde el sistema recién creado (dispositivo rp0 en Simh). El sistema de base consiste en una imagen ejecutable que cuenta con una configuración segura por defecto, que podía correr en cualquier modelo de la línea PDP-11 (que cuente con los requerimientos básicos para RSX-11M Plus v4.x, claro está). Existen varios controladores de dispositivos ya configurados en la misma, lo que facilitará el proceso de instalación del sistema completo.

RSX-11M-PLUS V4.2  BL58   1024.KW  System:"Baseline"
>RED DB:=SY:
>RED DB:=LB:
>RED DB:=SP:
>MOU DB:"RSX11MPBL58"
>@[2,54]BASTART.CMD
>SET /CRASHDEV=MM0:
SET -- Crash device MM0: has been successfully loaded
>;
>;
>;      RSX-11M-PLUS V4.2 Distribution Kit
>;
>;      This is the baseline system of the RSX-11M-PLUS V4.2
>;      distribution kit. This system contains an assortment of
>;      devices and may in fact be of some use on your target
>;      system. The main purpose of the baseline system, however,
>;      is to provide a working system environment which may be
>;      used to generate a custom-tailored operating system for
>;      your target hardware. We will now provide instructions
>;      to guide you through the startup procedure.
>;
>;
>;      It is important to specify the correct date and time.
>;      Use the format "DD-MMM-YY HH:MM".
>;
>* Please enter the date and time [S]: 24-MAY-90 20:25

Naturalmente, hemos de saber que cualquier versión de RSX-11M-PLUS anterior a la 4.6 no conforman el bug Y2K, por lo cual no aceptan fechas y operaciones nominales por encima del 31 de diciembre de 1999.

>TIME 24-MAY-90 20:25
>;
>;      Now allocate checkpoint space for use by system utilities.
>;
>ACS SY:/BLKS=1024.
>;
>;      The following information is necessary for this command file
>;      to correctly access the remainder of the distribution kit.
>;
>* Did you receive your RSX-11M-PLUS distribution kit on magnetic tape? [Y/N]: Y
>;
>;      Please enter the name of the magnetic tape drive, which should
>;      still contain the distribution tape. The name is of the form:
>;
>;              MM1: or
>;              MS0: etc...
>;
>* Which tape drive contains the distribution tape [S]: MS0:
>;
>;      We will now set the CSR of the controller that will be
>;      used to bring in the remainder of the distribution kit to
>;      the standard value. If your controller is not at this address
>;      it will be necessary for you to manually configure the system
>;      by issuing the appropriate CON commands. Answer Yes to the
>;      manual configuration question to do this. If your controller
>;      is at the standard address, you do not have to do a manual
>;      configuration.
>;
>CON SET RHC CSR=160000
>CON SET MTA CSR=160000
>CON SET MSA CSR=172522
>CON SET MSA VEC=224
>CON SET MUA CSR=160000
>;
>;      We will now bring on line all devices which were generated into
>;      this baseline image and which exist in your hardware system.
>;
>;      If there is hardware in your system occupying a control
>;      register address which conflicts with a standard DIGITAL
(...)
>;      does occur, rebootstrap the baseline system and answer Yes
>;      to this question.  Instructions will then be provided to help
>;      circumvent the problem.
>;
>* Do you need to do manual configuration? [Y/N]: N
>;
>CON ONLINE ALL
>;
>;      Prepare to bring in the remainder of the distribution kit
>;
>* Is your target system disk an RC25, RK07, or RD52? [Y/N]: N
>;
>;      Since the files in the second backup set are not necessary to generate
>;      your system you may wish to skip the verify pass to save time.
>;
>* Do you want to verify the second backup set? [Y/N]: N
>;
>;      We will now mount the tape in MS0: for access by BRU.
>;
>MOU MS0:/FOR/DENS=1600
>;
>;      Ensure that the BRU task is installed.
>;
>INS $BRU
>;
>;      We will now load the remainder of the distribution kit.
>;
>TIME
20:25:40 24-MAY-90
>;
>BRU /BAC:MPBL58SRC/UFD/NOINI/DENS:1600 MS0: SY:
BRU - Starting Tape 1 on MS0:
 
BRU - End of Tape 1 on MS0:
 
BRU - Completed
 
>;
>DMO MS0:/LOCK=UNLOAD
20:25:46  *** MS0:  -- Dismount complete
DMO -- TT0:    dismounted from MS0:    *** Final dismount initiated ***
>;
>TIME
20:25:46 24-MAY-90
>;
>;      We will now create any UFDs that must be created on your disk(s).
>;      You will not see the UFD commands.
>;
>TIME
20:25:46 24-MAY-90
>;
>;
>;      The preparation of the RSX-11M-PLUS kit is now complete.  The next
>;      time this disk is bootstrapped, this dialog will only be repeated
>;      on request.  We will now record the successful installation in the
>;      log file on the new system disk, and either exit if the installation
>;      was done on line, or proceed with the normal startup sequence if the
>;      baseline system was used.
>;
>SET /UIC=[2,54]
>PIP LB:[1,1]KITIDENT.DAT/AP=LB:[2,54]INSTALOG.DAT
>;
>;
>SET /UIC=[200,200]
>;                      PLEASE NOTE
>;
>;      If you have not yet read the system release notes, please do so
>;      now before attempting to perform a SYSGEN or to utilize the new
>;      features of this system.
>;
>;
>;      In order to start the SYSGEN process, type:
>;
>;      >@SYSGEN
>;
>;      When SYSGEN has completed and your generated system is
>;      running, you may wish to edit several DIGITAL-supplied
>;      prototype command and text files to suit your system
>;      and application:
>;
>;      File                    Purpose
>;      ----                    -------
>;      [0,0]RSX11.SYS          An account/password file
>;                              This file does contain privileged accounts.
>;
>;      [1,2]STARTUP.CMD        (This file) Invoked at bootstrap time to
>;                              control bringing up the system.
>;
>;      [1,2]QMGSTART.CMD       Invoked by STARTUP to start up the Queue
>;                              Manager and spooling system.
>;
>;      [1,2]SHUTUP.CMD         Invoked by SHUTUP when taking down the system
>;                              to perform system dependent shutdown tasks.
>;
>;      [1,2]QMGSTOP.CMD        Invoked by SHUTUP to stop the Queue Manager
>;                              and spooling system.
>;
>;      [1,2]LOGIN.TXT          Displayed on user's terminal when logging in.
>;
>;      [1,2]BATCH.TXT          Displayed at the beginning of each batch log
>;                              file.
>;
>;
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>
>SHO /DEF
DB0:[200,200]  Nonamed  TT0:
Protection UIC:  [200,200]
>


Correr SYSGEN

Ahora que podemos utilizar el sistema de base (antediluviano equivalente a un Pendrive booteable con GNU/Linux). Sin embargo, este no estará optimizado para nuestra configuración de hardware - si siquiera hará uso de toda la memoria emulada ni contará con todos los servicios de dispositivos configurados. 

Para crear una imagen ejecutable final optimizada para nuestra configuración emulada, habremos de correr la utilidad de generación de sistema. Se trata de una serie de comandos que reciden en el UFD [200,200] (el Directorio de Ficheros de Usuario de RSX, similar a un /usr/bin en los similares a UNIX). 

Ya que gracias al comando sho /def anterior vimos que ya estamos situados en UFD [200,200], de modo que podremos el guion SYSGEN.CMD introduciendo @sysgen, de la siguiente manera:

>@SYSGEN
>;
>; RSX-11M-PLUS  V4.2  BL58  SYSGEN
>;
>; COPYRIGHT (c) 1988
>; DIGITAL EQUIPMENT CORP., MAYNARD MA., 01754
>;
>SET /DPRO=[RWED,RWED,RWE,R]
>;
>; To exit from the SYSGEN procedure at any time, type CTRL/Z.
>;
>; If you are unsure of the answer to a question for which a de-
>; fault answer exists, use the default answer.
>;
>;
>;
>;===================================================
>;  Choosing SYSGEN Options      24-MAY-90 at 20:26
>;===================================================
>;
>;
>;
>; Every question is preceded by a question number (for example SU010)
>; which you can use to find the explanation of the question in the
>; RSX-11M-PLUS System Generation and Installation Guide.
>;
>; An explanation of every question is also available by pressing
>; the ESC key (or the ALTMODE key) in response to the question.
>;
>; If you are unfamiliar with the SYSGEN procedure, the explanation of
>; each question can be printed automatically before the question.
>;
>* SU010   Do you always want the explanation printed? [Y/N D:N]: ? [Presionar Intro]
>;
>; SYSGEN always creates saved answer files containing your responses
>; to the SYSGEN questions:
>;
>;    SYSGENSA1.CMD     Setup questions, Executive options
>;    SYSGENSA2.CMD     Peripheral configuration
>;    SYSGENSA3.CMD     Nonprivileged task builds
>;
>; You should perform a PREPGEN first to create saved answer files, and
>; then perform a SYSGEN, specifying those saved answer files as input
>; to the Executive, peripheral, and nonprivileged task build sections.
>;
>* SU020   Do you want to use a saved answer file as input for
>*         the Executive options? [Y/N D:N]: ? [Presionar Intro]
>;
>* SU040   Do you want to use a saved answer file as input for
>*         the peripheral configuration? [Y/N D:N]: ? [Presionar Intro]
>;
>* SU060   Do you want to use a saved answer file as input for
>*         the nonprivileged task builds? [Y/N D:N]: ? [Presionar Intro]
>;
>* SU080   Do you want to do a PREPGEN? [Y/N D:N]: ? [Presionar Intro]
>;
>* SU090   Enter the name of the disk drive containing your
>*         target system disk [ddnn:] [S R:2-5]: DB0:
>;
>ASN DB0:=IN:
>ASN DB0:=OU:
>ASN DB0:=LB:
>ASN DB0:=WK:
>ASN DB0:=TK:
>ASN DB0:=BC:
>ASN DB0:=LI:
>ASN DB0:=OB:
>ASN DB0:=EX:
>ASN DB0:=MP:
>;
>* SU100   Do you want to run Autoconfigure on the host system
>*         hardware? [Y/N D:N]: Y

La función Autoconfigure descubrirá el CSR y el vector de la mayoría de los dispositivos emulados por nosotros. Estos sólo estaban disponibles en las últimas versiones de RSX.

>;
>; Running Autoconfigure:
>;
>INS $ACF
>ACF
>INS $ACO
>ACO SHOW
Processor Type:  11/84          Memory Size:  1024. Kw
 
Options:
 
        Floating Point Processor (FP11)
        Extended Instruction Set (EIS)
        Extended (22-Bit) Addressing
        Cache Memory
 
Name    Vector     CSR      Unit    Type      Remark
RHA      254      176700
                             0      RP04
                             1      RP04
DLA      160      174400
                             0      RL02
                             1      RL02
                             2      RL01
                             3      RL01
MSA      224      172522
DYA      264      177170
YLA      060      177560
 
>ACO SYSGEN
>;
>* SU110   Do you want to override the Autoconfigure results? [Y/N D:N]: ↵
>;
>; You can:
>;
>;    o  do a complete SYSGEN
>;
>;    o  continue a previous SYSGEN from where you left off
>;
>;    o  do an individual section of SYSGEN
>;
>;
>* SU120   Do you want to do a complete SYSGEN? [Y/N D:Y]: ↵
>;
>INS [3,54]MAC/TASK=MACT0
>INS [3,54]PIP/TASK=PIPT0
>INS [3,54]LBR/TASK=LBRT0
>INS [3,54]TKB/TASK=TKBT0
>INS [3,54]VMR/TASK=VMRT0
>;
>;
>;
>;======================================================
>;  Choosing Executive Options      24-MAY-90 at 20:27
>;======================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA1.CMD.
>;
>; Enter a comment for inclusion in the SYSGENSA1 saved answer file.
>; The comment may contain more than one line.  The "V" in the right
>; margin below marks the maximum line length.  When you are done,
>; press RETURN in response to the prompt.
>;                                                                             V
>* Comment [S R:0.-55.]: rsx de peron
>* Comment [S R:0.-55.]:
>;
>* CE020   Do you want the Full-functionality Executive? [Y/N D:Y]: [Presionar Intro]

Es recomendable escoger la opción por defecto, a no ser que - al estilo RSTS/E - se deseen responder muchísimas interrogantes crípticas.

>;
>* CE120   Do you want support for communications products
>*         (such as DECnet, PSI, and LAT)? [Y/N D:N]: Y
>;
>* CE130   What is the system name? [S R:0-6 D:"RSXMPL"]: RSX1
>;
>* CE264   Do you want IP11 industrial I/O subsystem support? [Y/N D:N]: [Presionar Intro]
>;
>* CE270   Do you want to include XDT? [Y/N D:N]: [Presionar Intro]
>;
>* CE280   Enter the crash notification device CSR
>*         address [O R:160000-177700 D:177564]: [Presionar Intro]
>;
>; Note:  Enter both the device and the logical unit number.
>;        For example, MM0: or DL1:.
>;
>; Note:  Enter XX: if you desire loadable DU:, DL:, MU:, MS: or MM:
>;        crash driver support.
>;
>* CE290   On what device and unit do you want crash dumps
>*         to be written? [S R:2-6]: DL0:

Cuando RSX se cuelgue, se detendrá inmediatamente y solicitará cargar un paquete de disco virgen en el dispositivo. Una vez que se cargue el pack y se ponga la CPU a correr nuevamente (debemos ingresar cont en el prompt sim> de simh) ,  escribirá un volcado de núcleo en dicho dispositivo.

>;
>* CE330   Is your system clock programmable (KW11-P)? [Y/N D:N]: [Presionar Intro]
>;
>* CE350   Is your line frequency 50 Hz? [Y/N D:N]: Y
>;
>;
>;
>;=============================================================
>;  Choosing Peripheral Configuration      24-MAY-90 at 20:28
>;=============================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA2.CMD.
>;
>; Enter a comment for inclusion in the SYSGENSA2 saved answer file.
>; The comment may contain more than one line.  The "V" in the right
>; margin below marks the maximum line length.  When you are done,
>; press RETURN in response to the prompt.
>;                                                                             V
>* Comment [S R:0.-55.]: Test system for Simh
>* Comment [S R:0.-55.]:
>;
>;
>;   DB:    controllers: RH11, RH70     devices: RP04, RP05, RP06
>;
>;                        RH Configuration
>;
>;                      Physical Unit Number
>;
>;      0       1       2       3       4       5       6       7
>;
>; RHA  DB0:    DB1:
>;
>;
>;
>;
>;   DL:    controllers: RL11, RLV12    devices: RL01, RL02
>;
>;                        DL Configuration
>;
>;                      Physical Unit Number
>;
>;      0       1       2       3       4       5       6       7
>;
>; DLA  DL0:    DL1:    DL2:    DL3:
>;
>;
>;
>;
>;   CR:    controllers: CM11, CR11
>;
>* CP4004  How many CM/CR11 card readers do you have? [O D:0]: [Presionar Intro]
>;
>;
>;   MS:    controllers: TS11, TU80, TSV05, TK25
>;
>;
>;   DY:    controller:  RX211, RXV21   device:  RX02
>;
>;
>;   LA:    controller:  LPA11
>;
>* CP6204  How many LPA11 lab subsystems do you have? [D R:0.-16. D:0.]: [Presionar Intro]
>;
>;
>;   TT:    controllers: DL11, DLV11    controller mnemonic: YL
>;
>* CP6832  Enter terminal type for YLA [S R:4-6 D:"LA120"]: VT100
>;
>;
>;   TT:    controller:  DJ11           controller mnemonic: YJ
>;
>* CP7204  Enter number of DJ11 asynchronous line
>*         multiplexers [D R:0.-16. D:0.]: [Presionar Intro]
>;
>;
>* CP7604  Do you have any intercomputer communication devices? [Y/N D:N]: [Presionar Intro]

Asegúrese de seleccionar no a esta pregunta si tiene pensado correr DECnete debido a que los dispositivos de red no pueden compartirse entre el controlador de RSX y el controlador DECnet.

>;
>;
>; Enter device mnemonics for any user-supplied drivers.  The driver
>; source files must reside in [11,10] and be named ddDRV.MAC and
>; ddTAB.MAC where dd is the device mnemonic.
>;
>; You may enter the mnemonics on more than one line.  When you have
>; listed all the drivers, press RETURN when asked for the device
>; mnemonic.
>;
>; The device mnemonic must not include a colon.
>;
>* CP9604  Enter device mnemonics for user-supplied drivers [S]: [Presionar Intro]
>;
>;
>; The highest vector among the devices you specified in this SYSGEN
>; is 374(octal).  This is the default response for this question.
>;
>* CP9632  What is the highest interrupt vector
>*         address? [O R:374-774 D:374]: [Presionar Intro]
>;
>;
>;
>;================================================================
>;  Assembling the Executive and Drivers      24-MAY-90 at 23:30
>;================================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA1.CMD.
>;
>PIP RSXMC3.MAC=RSXMC1.MAC,RSXMC2.MAC
>PIP RSXMC.MAC=RSXMC3.MAC,RSXMC0.MAC
>;
>SET /UIC=[1,24]
>PIP [11,10]/NV=[200,200]RSXMC.MAC
>PIP [11,10]/NV=[200,200]SYSTB.MAC
>PIP [11,24]/NV=[200,200]RSXASM.CMD
>PIP [11,24]/NV=[200,200]DRIVERS.ASM
>;
>;
>* AE010   Do you want assembly listings of the Executive and
>*         drivers? [Y/N D:N]: [Presionar Intro]
>;
>ASN NL:=LS:
>;
>;
>* AE030   Do you wish to pause to edit any files before
>*         assembling? [Y/N D:N]: [Presionar Intro]
>;
>SET /UIC=[11,24]
>;
>PIP *.OBJ;*/DE/NM,*.TTY;*
>;
>TIME
23:30:52 24-MAY-90
>;
>MAC @RSXASM
>;
>TIME
23:31:48 24-MAY-90
>;
>MAC @DRIVERS.ASM
>;
>TIME
23:32:31 24-MAY-90
>;
>PIP RSX11M.OBS=*.OBJ
>PIP TTDRV.OBS=*.TTY
>;
>SET /UIC=[200,200]
>PIP /NV=[11,10]RSXMC.MAC
>;
>SET /UIC=[1,24]
>PIP RSXBLD.CMD/PU/NM
>PIP RSX11M.OLB;*/DE/NM
>PIP [200,200]RSXMC.MAC/PU/NM
>;
>LBR RSX11M/CR:256.::256./-EP=[11,24]RSX11M.OBS
>PIP [11,24]RSX11M.OBS;*,*.OBJ;*/DE
>;
>LBR TTDRV/CR:40.:392.:128.=[11,24]TTDRV.OBS
>PIP [11,24]TTDRV.OBS;*,*.TTY;*/DE
>SET /UIC=[200,200]
>;
>;
>;
>;==============================================================
>;  Building the Executive and Drivers      24-MAY-90 at 23:32
>;==============================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA1.CMD.
>;
>;
>; Allocate space to be used later for the system image file.
>;
>SET /UIC=[1,54]
>PIP RSX11M.TMP/CO/BL:1026.=NL:
>;
>SET /UIC=[200,200]
>;
>SET /UIC=[1,24]
>SET /UIC=[200,200]
>SET /UIC=[1,54]
>PIP SYSVMR.CMD=[200,200]SYSVMR.CMD,VMRTTY.CMD
>;
>SET /UIC=[200,200]
>;
>* BE030   Do you want to pause to edit any files before
>*         task-building? [Y/N D:N]: [Presionar Intro]
>;
>SET /UIC=[1,24]
>PIP [1,24]/NV/NM=[200,200]RSXBLD.CMD,RSX11M,DSP11M,LDR11M
>PIP [1,24]/NV=[200,200]DIR11M.CMD,DR211M,DIRCOM,DR2COM,DIR
>PIP [1,24]/NV=[200,200]DR311M.CMD,DR411M,DR3COM,DR4COM
>PIP [1,24]/NV=[200,200]VEC11M.CMD,DCM11M,VECCOM
>;
>TIME
23:33:39 24-MAY-90
>;
>TKB @RSXBLD
>;
>TIME
23:33:53 24-MAY-90
>;
>TKB @[200,200]DRIVERS.BLD
>;
>TIME
23:33:56 24-MAY-90
>SET /UIC=[200,200]
>;
>;
>;
>;=========================================================
>;  Building the Privileged Task      24-MAY-90 at 23:33
>;=========================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA1.CMD.
>;
>;
>* BP040   Do you want the maps of the privileged tasks? [Y/N D:N]: [Presionar Intro]
>;
>ASN NL:=MP:
>;
>SET /UIC=[1,24]
>;
>TIME
23:34:00 24-MAY-90
>;
>TKB @SAVBLD
>;
>TIME
23:34:02 24-MAY-90
>;
>ASN LB:=OU:
>SET /UIC=[200,200]
>;
>;
>;
>;============================================================
>;  Rebuilding Supplied System Tasks      24-MAY-90 at 23:34
>;============================================================
>;
>;
>;
>; The answers to the questions in this section are put in the saved
>; answer file [200,200]SYSGENSA3.CMD.
>;
>;
>* BN010   Do you want to rebuild any system tasks? [Y/N D:N]: [Presionar Intro]
>;
>;
>;
>;==========================================================
>;  Creating the System Image File      24-MAY-90 at 23:34
>;==========================================================
>;
>;
>SET /UIC=[1,54]
>;
>PIP RSX11M.TMP;*/DE/NM
>;
>PIP RSX11M.SYS/CO/NV/BL:1026.=RSX11M.TSK
>;
>ASN LB:=SY:
>VMR @SYSVMR
 
Loading Executive data space
Data space loading completed
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=SYSPAR:-*
VMR -- *DIAG*-Loadable driver larger than 4K
LOA TT:
VMR -- *DIAG*-Installed tasks or commons may no longer fit in partition
SET /TOP=DRVPAR:-*
SECPOL 117734 00172000 00100000  SEC POOL
SYSPAR 117670 00272000 00165300  MAIN
       117624 00272000 00111500  RO COM !DIR11M!
       117434 00403500 00005200  TASK   [...LDR]
       117230 00410700 00033100  TASK   [MCR...]
       117024 00444000 00010100  TASK   [TKTN  ]
       116620 00454100 00003200  TASK   [SHF...]
DRVPAR 116540 00457300 00133100  MAIN
       116474 00457300 00006600  RO COM !TTEXT !
(...)
GEN    113010 00612400 07165400  MAIN
       112744 00612400 00002000  RO COM !DYCOM !
...LDR 12.01  117500  SYSPAR 248. 00005200 LB0:-00143315 FIXED
TKTN   07.00  117070  SYSPAR 248. 00010100 LB0:-00055302 FIXED
(...)
NL0:                    OFL     DRIVER
POOL=1200:13510.:13510.:1720
>SET /UIC=[200,200]
>;
>REM MACT0
>REM PIPT0
>REM LBRT0
>REM TKBT0
>REM VMRT0
>;
>; End of SYSGEN
>;
>TIME
23:34:13 24-MAY-90
>;
>ASN =
>;
>@ <EOF>
>


Bootear el nuevo sistema

Ahora para bootear el sistema que acabamos de instalar, como primer medida debemos guardar la nueva imagen ejecutable y escribir el bloque de arranque.

>BOOT [1,54]RSX11M
RSX-11M-PLUS V4.2   BL58
 
 
>
 SAV/WB
RSX-11M-PLUS V4.2  BL58   1024.KW  System:"RSX1  "
>RED DB:=SY:
>RED DB:=LB:
>RED DB:=SP:
>MOU DB:"RSX11MPBL58"
>@DB:[1,2]STARTUP
>;                      PLEASE NOTE
>;
>;      If you have not yet read the system release notes, please do so
>;      now before attempting to perform a SYSGEN or to utilize the new
>;      features of this system.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YY) [S]: 23:37 24-MAY-90
>TIME 23:37 24-MAY-90
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>BYE
Have a Good Evening
24-MAY-90 23:37 TT0:  logged off RSX1
>
>HELLO
Account or name: SYSTEM
Password: SYSTEM
 
RSX-11M-PLUS V4.2  BL58   [1,54] System     RSX1
24-MAY-90 23:37  Logged on Terminal TT0:  as SYS1
 
Good Evening
 
 
        *****************************************************************
        *                                                               *
        *                    Welcome to RSX-11M-PLUS                    *
        *                                                               *
        *                  Version 4.2  Base level 58                   *
        *                This is file LB:[1,2]LOGIN.TXT                 *
        *                                                               *
        *****************************************************************

Ya deberíamos poder ver los dispositivos instalados virtualmente:

>SHOW DEV
CO0:     TT0: Loaded
TT0:     [1,1]       [1,1] - Logged in  Loaded
VT0:     Loaded
VT1:     Loaded
RD0:     Loaded
DB0:     Public Mounted Loaded Label=RSX11MPBL58 Type=RP04
         Seek_Optimization=Nearest:10. Overlapped_Seeks
 
DB1:     Loaded Type=RP04
         Seek_Optimization=Nearest:10. Overlapped_Seeks
 
DL0:     Loaded Type=RL02
         Seek_Optimization=Nearest:10.
 
DL1:     Loaded Type=RL02
         Seek_Optimization=Nearest:10.
 
DL2:     Loaded Type=RL01
         Seek_Optimization=Nearest:10.
 
DL3:     Loaded Type=RL01
         Seek_Optimization=Nearest:10.
 
MU0:     Loaded Type=TK50
MS0:     Loaded Type=TS11
DY0:     Loaded Type=RX02
DY1:     Loaded Type=RX02
NL0:     Loaded
TI0:
CL0:     TT0:
SP0:     DB0:
LB0:     DB0:
SY0:     DB0:
>

Podremos entender su uso fácilmente a través del manual correspondiente o de un video instructivo:

Siguiendo estas instrucciones es muy simple hacer peronismo, porque es implementar software propugnado el amor entre todos, es hacer prevalecer los valores de la GPLv3 sobre los materiales, es hablar de justicia y programarla; es, en otras palabras, hacer el bien en todas las CPUs.

lunes, 29 de mayo de 2023

¿Cómo bajo videos de YouTube con yt-dlp en Ubuntu?

En su fundamental Actualización Doctrinaria para la Toma del Poder, Juan Perón explica sobre el fenómeno de la lucha telemática, y considera el uso de yt-dlp para descargar videos de YouTube en Ubuntu.

(...)

Se ha hablado mucho de la guerra revolucionaria. La guerra revolucionaria puede llegar a tener características originales en sus formas... pero no es otra cosa que una guerra de guerrillas muy bien organizada, se realice en el campo, se realice en las ciudades, o se realice en las redes de datos. Es otras palabras, según las características del dominio donde se la realice, puede ser guerra de guerrilla urbana, guerra de guerrilla rural o guerra de guerrillas telemática. 

Los profesionales sabemos que no tiene nada de nuevo. La guerra telemática en el fondo no es otra cosa que una clase de guerra revolucionaria - como la que hoy practican las fuerzas de liberación de los países, porque el problema de casi todos los países del mundo, en estos momentos, es un problema de liberación del software.

Existe un principio en el Arte de la Guerra que establece que cuando se tienen las fuerzas suficientes, uno las reúne y las lleva a un campo de batalla y en esa batalla decisiva juega la suerte de su decisión. Pero cuando no se tiene esa fuerza suficiente para vencer en una batalla decisiva, se procede a dividir esta gran batalla (que se podría librar en conjunto), en miles de pequeños combates. Venciendo en cada uno de ellos  - sumando todos estos éxitos tácticos a lo largo del tiempo - en cierta medida equivale a librar una batalla decisiva.

Por este motivo, la acción telemática es librar una guerra de desgaste. 

Al enemigo mas fuerte uno lo va desgastando por partes. Esto obedece a un viejo pensamiento de filosofía UNIX. Una GPLv3 no puede matar a un Googl€, pero sí lo puede fundir. Es decir, sumando código fuente liberado bajo GPLv3, se desgasta y devora cualquier GAFAM que se tenga enfrente...

La guerra telemática - tal cual se la practica hoy en casi todos los países latinoamericanos - es una cosa preparada, organizada, armonizada y coordinada, ¿por qué? Porque el problema común es la dependencia tecnológica, entonces la lucha también tiene que ser común.

En toda acción de guerra telemática, los medios que se emplean son: uno, la potencia de cómputo, por que la potencia lo ata a los elementos de lucha, en cambio el que no tiene la potencia no tiene otro remedio que multiplicar su acción por la transmisión.

La guerra telemática, en consecuencia, se trata de una guerra de movilidad por transmisión: donde está la GAFAM nada, donde la GAFAM no está, se pega con todo, cuando duele y donde duele. 

Indudablemente, que para que esto pueda realizase con éxito (porque el que tiene la fuerza, el que tiene la potencia de cómputo, va a seguir persiguiendo a esa acción de guerrillas y a la larga lo va a acorralar en alguna parte hasta poder aniquilarla). El secreto está en poder liberarse de ese peligro, para lo cual hay que tener una zona, diremos, que sea inmune a toda la acción de las fuerzas.

Eso, por ejemplo, se puede producir por acción territorial. Cuando se hace la guerrilla rural, la montaña, el bosque, donde es posible colocarse detrás de un obstáculo que no pueda ser fácilmente vencido por el otro se pueden obtener zonas inmunes a la acción de la fuerza. Y la lucha de guerrillas urbanas: primero la sorpresa, es el factor fundamental, para realizar en la acción, y después, los medios de movilidad para desaparecer inmediatamente de producido el golpe. En la Guerra Telemática esto lo garantizan los Pubnix, los servidores UNIX de acceso públicos protegidos por criptosistemas que son la zona liberada de una comunidad que resguarda un sentido común a su existencia.

Desde ellos es posible golpear a la ciberoligarquía allí donde más le duele y cuando más le duele. Y - cuando concurre la fuerza que ha de reprimir - se evade. Es decir, la sorpresa y la movilidad por transmisión; ahí están los dos  factores fundamentales... 

Los púbnix pueden garantizar salvoconductos para el desarrollo de herramental de lucha telemática, evadiendo su rastreo, destrucción o eventual inutilización.

Veamos un ejemplo, que podrá aclararlo todo. Yo solía recomendar utilizar youtube-dl para ofrecer copias locales de material audiovisual almacenado en computadoras ajenas. Sin embargo, el desarrollo de tan magno y justiciero programa cesó nominalmente con la versión final youtube-dl-2021.12.17.tar.gz. Indudablemente, esto implicó que transcurridos un par de años, dejase de funcionar adecuadamente, y como consecuencia impide al Pueblo descargar videos de ciertas plataformas de agregado audiovisual telemático.

Sin embargo, podremos encontrar un excelente reemplazo modernizado y funcional en el 2023 en yt-dlp, un fork avanzado del youtube-dl que nos encontrará unidos en lugar de dominados.

Su instalación en Ubuntu es sumamente sencilla. Simplemente abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes Comandos de Organización:

sudo apt update ;
sudo apt install ffmpeg -y

sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp ;
sudo chmod a+rx /usr/local/bin/yt-dlp ;

Y actualizamos la API de los distintos buscadores (muchísimos compendiados en ellos, entre ellos los sitios de agregado de videos más conocidos) mediante el siguiente comando de organización:

sudo yt-dlp -U

El funcionamiento general de yt-dlp replica en gran medida al del clásico youtube-dl. Por ello podremos realizar sus mismas tareas con facilidad. Para bajar un video de YouTube simplemente se agrega su URL, de la siguiente manera:

yt-dlp https://www.youtube.com/watch?v=C93nMIL2jNw

Asimismo, podremos sacarle brillo en la descarga de listas enteras de videos, en caso de necesidad. Esto se realiza automáticamente indicando la URL de una lista de videos, o bien llamando un fichero que contenga las URL individuales con el sufijo -a.

También para extraer música de las canciones para Combatir al Capital con --extract-audio --audio-format best.

Indudablemente yt-dlp consta de numerosas opciones adicionales que se extrañabnan en el programa anterior, las cuales se detallan a fondo en el Manual de yt-dlp.

Por ejemplo, para bajar los mp3 de un disco contenido en YouTube, y ordenarlo con sus metadatos, imagen de tapa, etc en una carpeta, podríamos incluir el siguiente comando largo en un script llamdo /usr/local/bin/bajarmp3:

yt-dlp \
--replace-in-metadata uploader ' - Topic' '' \
--parse-metadata '%(playlist_index)s:%(meta_track)s' --parse-metadata '%(uploader)s:%(meta_album_artist)s' --embed-metadata \
--embed-thumbnail --ppa "EmbedThumbnail+ffmpeg_o:-c:v mjpeg -vf crop=\"'if(gt(ih,iw),iw,ih)':'if(gt(iw,ih),ih,iw)'\"" \
--yes-playlist --format 'bestaudio/best' --extract-audio --audio-format mp3 --audio-quality 0 \
--windows-filenames --force-overwrites -o '%(uploader)s/%(album)s/%(playlist_index)s - %(title)s.%(ext)s' \
--print '%(uploader)s - %(album)s - %(playlist_index)s %(title)s' --no-simulate "$@"

En fin señores, en las circunstancias actuales es preciso que todo el Movimiento se movilice y se incorpore a la acción. La conducta es bien simple y el deber bien claro. Que cada peronista en todo momento y en todo lugar haga más de lo preciso por la liberación de la patria, su pueblo y su software.

Los peronistas han de hacerse la idea de que son ellos y solamente ellos los que han de poner el esfuerzo y si es preciso el sacrificio. La peor de todas las actitudes es permanecer inactivo cuando el destino de la CPU está en juego.

miércoles, 10 de mayo de 2023

¿Cómo instalo el reproductor Musique en Ubuntu?

Aleccionando sobre la suspensión de las elecciones que dieron el triunfo legislativo al Neoperonismo, Juan Perón explica cómo instalar el reproductor Musique en Ubuntu.

¡Trabajadores!

Esta intención de dejar a los pueblos sin ninguna representación no es nueva ni es original, porque todas las dictaduras lo intentan, pero la Historia demuestra elocuentemente que, cuando ello se produce, las consecuencias suelen ser funestas para las mismas dictaduras que lo promueven.

Para que desaparezcan las entidades demoliberales, es preciso que antes desaparezca el demoliberalismo. En el mundo de nuestros días, al desaparecer paulatinamente el sistema capitalista, vienen desapareciendo también los partidos demoliberales, que son su consecuencia.

Pero el lugar común de la ignorancia de estos cuatro señores suele ser el ataque atolondrado a la política, como si de ella dependiera que lo hombres sean malos y mentirosos. Los simples suelen ser partidarios de la "eliminación de la política" porque hay malos políticos, como podrían ser partidarios de la erradicación de la medicina porque hubiera algunos malos médicos. Sin embargo cuando los tontos se ven forzados a mandar no titubean en echar mano a la política: es que ellos son enemigos de la política de los demás.

Los que saben "tomar el rábano por las hojas" y son partidarios de erradicar la política, suelen intentar hacerlo suspendiendo elecciones, sin percatarse que es muy difícil "matar a nadie anulando votos", y cuando las causas siguen generando sus efectos, porque poca importancia tiene la existencia legal cuando está sometida a la existencia real. 

Resulta lo más anacrónico cuando se atenta contra estas formaciones políticas mientras por otro lado se trata de afirmar por todos los medios el sistema que los justifica.

Muchos se esfuerzan por reprender la política, yo me conformaría con comprenderla. Los que despotrican contra ella me dan pena, como me entristecen todos los que despotrican contra las demás ciencias: hay en ello un resentimiento que la impotencia pone a menudo en el espíritu de la incapacidad culposa.

El Pueblo Argentino conoce bien qué es lo que tiene que hacer ante esta ignominiosa acción. Ha atresado sus organizaciones y ya llegará la hora de tronar el escarmiento, la hora de los pueblos a veces suele venir acompañada por leña, que ustedes han de dar con todo.


 

Mientras tanto, puede tronar la música y los bombos. Para ello qué mejor que Musique, el vistoso reproductor musical simple del Justicialismo.

Su instalación es sumamente sencilla empleando la terminal de Ubuntu 22.04LTS. Simplemente abrimos una con Ctrl+Alt+t e ingresamos el siguiente bloque de comandos de organización:

cd /tmp ;
sudo apt install build-essential libgl-dev qt6-base-dev-tools qmake6 qt6-declarative-dev libmpv-dev libtag1-dev libqt6sql6-sqlite qt6-l10n-tools ;
wget https://flavio.tordini.org/files/musique/musique.deb ;
sudo dpkg -i musique.deb

Tras introducir nuestra contraseña se instalará Musique. Podremos iniciar el reproductor desde Aplicaciones / Sonido y Video / Musique.

Al ejecutar el reproductor por primera vez se nos propondrá analizar la carpeta de música, como es típico en este tipo de programas. Esto puede llevar varios minutos dependiendo del tamaño de la misma y de la velocidad del disco (y red de datos, si la misma estuviese en la red local).

El programa podrá ofrecer extender las pistas con etiquetado. Para ello utilizaría el programa libre Finetune (ofrecerá descargarlo instalarlo si no estuviese previamente instalado en el sistema, lo cual requiere pocos segundos).

Una vez completada podremos acceder a la música a través de diferentes criterios. Por defecto se hará a través de enlaces gráficos de los intérpretes.

Cada uno de nuestros artistas favoritos tendrá representados la discografía, y podremos sumar canciones particulares o grupales a una cola de reproducción haciendo doble clic en su avatar.

Naturalmente podremos alterar este funcionamiento por medio de los botones de filtrado, que nos permiten seleccionarlos a través de Álbumes, Géneros, o bien Carpetas.

El reproductor en sí no tiene muchas opciones innecesarias. Iniciamos la reproducción de la pista seleccionada con la barra espaciadora, y podremos adelantar o atrasar la pista con Ctrl+Flecha izquierda y Ctrl+Flecha derecha respectivamente.

Con F11 podremos activar la pantalla entera. La reproducción de la cola se hará en orden numérico, alfabético, o bien podremos activar una reproducción aleatoria con Ctrl+s, y podremos repetirla en bucle con Ctrl+r. Para eliminar la cola de reproducción, utilizamos Ctrl+n.

Con cualquiera de ella le daremos la música que necesita esta camarilla contumaz antidemocrática, y restauraremos los valores que realmente anhela el Pueblo.

viernes, 21 de abril de 2023

¿Cómo instalo el editor GNU moe en Ubuntu?

Desde el chalet de Puerta de Hierro, Juan Perón expone sobre la necesidad de la unión del Tercer Mundo y expone cómo instalar el editor GNU moe en Ubuntu.

(...)

Hace treinta años, buscando la base filosófica de una doctrina que nos permitiera lanzarnos hacia el destino de alcanzar un bienestar para nuestro Pueblo y la grandeza para nuestra Nación, nosotros afirmamos la necesidad de llegar a una Comunidad Organizada. Siempre he pensado que sólo una Comunidad Organizada puede llevar el país a un destino floreciente y, en consecuencia, aumentar el grado de felicidad de los que la componen.

Vivimos en un mundo que cada día nos está demostrando que vienen circunstancias totalmente nuevas en el futuro inmediato. Confiamos que nuestro desarrollo tecnológico sea lo suficientemente prudente como para no ensayar los mismos males cuyas consecuencias estamos viendo sufrir a los países superdesarrollados. El mundo que viene es un mundo nuevo, y en ese mundo nuevo podrán vivir solamente los hombres que tengan la suficiente sensatez para darse cuenta que somos todos hermanos y que todos debemos luchar por el destino común, sin lo cual podríamos sucumbir todos.

Cuando los imperialismos quieran imponernos cómo habremos de organizarnos dentro de la Tierra, será necesario que en el Tercer Mundo haya una entidad que diga: "Señores, aquí las condiciones que ustedes proponen son de dominación; en cambio, las que nosotros proponemos son de creación hermanada". Entonces, cuando las dos terceras partes del mundo hagan sentir su voz en una entidad organizada, los imperialismos van a entrar en razón. Nadie se ha puesto nunca contra el mundo entero, y éste debe ser el camino que tendremos que seguir.

Por eso sostenemos la necesidad de un sistema de redes informáticas unidas que represente a ese Tercer Mundo que ya está en marcha. No vayan a creer que no está organizándose. Ya se está organizando, comienza a pesar, y pesará cada día más, en la medida que seamos capaces conectarnos y rutear paquetes.

Llevar la unidad de las redes de datos latinoamericanas es comenzar la integración del Continente, en ideas y corazones, y en ese trabajo hay que empeñarse.

Ese futuro no está tan lejano como algunos creen; el Siglo XXI lo tendremos dentro de 25 años y el año 2000, según lo han predicho grandes hombres como Spengler, Stuart Mill, y otros grandes filósofos que estudian estos problemas, será el año de las grandes soluciones o del Window$ 2000.

Las herramientas las tenemos, y si no las tenemos, las compilamos. En los sistemas GNU con Linux conocemos como ciencia cierta la existencia de numerosos editores de texto. De todo hay como en botica, y para todos los gustos.

En este caso me he hecho adepto al GNU moe, un editor cuya funcionalidad principal que lo distingue es la de operar en terminales con codificación ISO-5988-15. Esta es un poco más antigua que la UTF-8 universalizada, pero alcanza para suplirnos de problemas en el caso de utilizar antiguas videoterminales, cosa que hago en ocasiones por sacar provecho a lo viejo y vetusto. No hay que tirar un viejo por la ventana todos los domingos, ¿sabe?

Moe no está disponible en Ubuntu, pero su código fuente elaborado en lenguaje C puede ser fácilmente compilable.

Para ello es necesario descargar el código fuente del programa y luego compilarlo. Esto se puede hacer abriendo una terminal con Ctrl+Alt+t e ingresando el siguiente bloque de comandos de organización:

cd /tmp ;
wget http://download.savannah.gnu.org/releases/moe/moe-1.9.tar.lz ;
tar -xf moe-1.9.tar.lz ;
cd moe-1.9/ ;
./configure ;
make ;
sudo make install

Tras ingresar nuestra contraseña de usuario podremos ejecutar el editor moe con:

moe

Además de las flechas de cursor para desplazamientos (junto con Alt+"diamante de WordStar"), podremos escribir texto con presteza. En principio, moe está pensado especialmente para manejar de forma confiable texto codificado en ISO-8859-15, pero puede operar con texto en UTF-8.

Moe usa las teclas de función, de modo que los comandos mas frecuentes se puedan pulsar con una sola tecla.

Tecla de Función Uso
F1, Ctrl+a Ayuda
F2 Guardar fichero
F3 Cargar
F4 Zoom de ventana
F5 Ventana previa
F6 Ventana siguiente
F7 Deshacer
F8 Rehacer
F9 Copiar Bloque
F10 Menú de Opciones
F11 Menú de buffer
F12 Último visitado

Moe intenta racionalizar el uso de las combinaciones de teclas del teclado: 

  • Utiliza la tecla Alt para comandos inofensivos como los movimientos del cursor.
  • La tecla Control se usa para comandos mas “peligrosos” como copiar bloques de texto, borrar líneas, o salir del programa.
  • La tecla Tab se usa para el autocompletado de nombres de fichero y para mostrar y ocultar el navegador del directorio cuando moe pide un nombre de fichero.

Con Ctrl+os podremos dividir la ventana, y conmutar entre las divisiones de ventanas con F5 y F6, en tanto que Ctrl+or refresca la pantalla del terminal.

Las funcionalidades más útiles responden al uso de los bloques de selecciones.

Selección

Ctrl+Barra espaciadora Comienza/Termina selección
Ctrl+KB Comienzo de selección
Ctrl+KK Final de selección
Ctrl+LC Copiar selección
Ctrl+KM Mover selección
Ctrl+KY Borrar selección
Ctrl+KR Lee selección
Ctrl+KI Indentar selección
Ctrl+KU Desindentar selección
Ctrl+OL Pasa la Selección a minúsculas
Ctrl+UL Pasa la Selección a mayúsculas

 En tanto, las funcionalidades de control de línea son simples:

Ctrl+b Justidica párrafo desde la columna
Ctrl+y Borra la línea
Ctrl+OC Centra la línea

Como nota final, como funcionalidad avanzada, podremos hacer uso de expresiones regulares para editar texto a través de scripts. Asimismo, podremos leer el manual de moe para usos más avanzados de moe.

miércoles, 29 de marzo de 2023

Cómo juego Speed Dreams II en Ubuntu?

En la inauguración del Autódromo 17 de Octubre y en ocasión de la largada del "Segundo Gran Premio del General Juan Perón y de la Ciudad de Buenos Aires", Juan Perón enseña cómo instalar el juego de carreras Speed Dreams 2 en Ubuntu.

¡Descamisados!

Que diáfano día para este espectáculo del motor, que tiene como máximos protagonistas a nuestros corredores, y las visitas de las máximas luminarias extranjeras. Donde antes no había sino pastos crecidos, hoy se eleva este magnífico autódromo

Es indudable que el mundo de nuestros días está viviendo un intenso período de evolución que va transformando el concepto de la vida moderna. No comprender esto y no propender a ello en lo político, en lo social, en lo económico, en lo cultural, etc., es colocarse nadando en contra de la corriente. 

En lo político, las nuevas formas llevan hacia un socialismo nacional con el apoyo de los grandes movimientos nacionales como los que se pueden ya observar en toda Europa, Asia, Medio Oriente, África, etc. La reacción, que aún resiste a la evolución indetenible, está echando mano al neocapitalismo, como una forma transaccional para no ceder, pero ese remedio les resultará a la larga peor que la enfermedad.

En lo económico, casi todo el mundo civilizado ha emprendido ya el camino francamente comunitario. El individualismo liberal capitalista es un lujo que ya no se puede dar un mundo superpoblado y, en lo social, todo se encamina hacia comunidades más acordes con las necesidades de los pueblos y los hombres de hoy. Oponerse a todo esto es poner palos en la rueda a un progreso que - con oposición o sin ella - insoslayablemente ha de pasar bajo la bandera a cuadros. 

Hoy cualquier red de datos que hemos tendido para las computadoras del Pueblo nos parecen una pista de Fórmula Uno, y cualquier cablemódem nos avala correr a través de ella como si dirigiésemos un monoposto de Ferrari o Mercedez Benz.

Sin lugar a dudas esto se debe al sistema GNU, que puede hacernos diponer de simuladores de vehículos y que para colmo pueden enlazarse entre sí por medio de conexiones de datos.

 

Podrán descargar la versión 2.3.0 disponible en empaquetado precompilado AppImage.

Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente Comando de organización:

mkdir ~/.speed-dreams/
cd ~/.speed-dreams/ ;
wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-2.3.0-x86_64.AppImage ;
wget https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Speed_Dreams_Icon.svg/48px-Speed_Dreams_Icon.svg.png
chmod +x speed-dreams-2.3.0-x86_64.AppImage;
sudo
speed-dreams-2.3.0-x86_64.AppImage /usr/bin/speed-dreams

Conforme termine de realizarse toda esta tarea, y de descargar los 1,9GB de la imagen binaria, podremos ejecutarlo introduciendo el comando speed-dreams, o bien lanzándolo desde Aplicaciones / Juegos / Speed Dreams 2.

El menú inicial el bastante completo y muy típico de estos juegos de simulación de conducción.

Cada corredor puede tener su perfil de preferencias en el juego, que nos permiten ajustar distintos estilos y sapiencias de conducción, desde una sencilla hasta la más complejas. Naturalmente esto hará caso al nervio y el despliegue de pontencias erogadas por el motor simulado, transmitida al piso virtual.

Para el arte de la conducción puede utilizarse tanto el teclado como - idealmente - algún controlador con volante, palanca de cambios y tres pedales, incluso con motor de resistencia ("force feedback). En ambos casos se puede configurar desde la pantalla de Control, asignada a cada perfil de jugador.

Para realizar cambios de marcha con embrague estoy usando w como embrague, y q o e para rebajar o subir la marcha. De esta forma podremos embragar y rebajar con un rápido w+e, y subir de marcha con w+q. Debemos tener especial cuidado en las configuración de carrera compleja, para no romper la caja de cambios. Podremos así tener la muñeca del chueco.

Naturalmente, es posible utilizar coches con caja secuencial, lo que facilita la cosa al embragar automáticamente con solo una tecla para pistear como un campeón.

Los botones 1-9 activan y desactivan los distintos ítems de presentación de la pantalla.

Podremos conmutar el indicador de marchas, el tacómetro lumínico, el porcentaje de grip de cada cubierta así como temperatura de pastillas de freno, así como un acelerómetro axial, etcétera. Todo confabula una excepcional simulación.

Speed Dreams II cuenta con varios motores de simulación de la física de coches de carreras. En particular, la versión 4 de estos motores es más compleja, pues computa la tenida al piso de las cuatro ruedas en base a su fricción, así como las cargas gravitacionales de los giros y la aceleración. Los circuitos tridimensionales permiten entonces la alta velocidad pero también la tracción diferencial sobre distintas superficies.

Naturalmente, para llegar a buen destino debemos contar con buena muñeca.

Pero, si todo lo anterior es ineludible, lo racional será realizar la evolución en su medida y armoniosamente, porque nada se realiza en la vida de los pueblos en compartimientos estancos, ni al servicio de las parcialidades interesadas. Cuando la evolución se impone, el juego de acciones y reacciones está decidido de antemano: es necesario entonces que la comprensión se produzca para evitar males mayores.


Si tenemos muchas ganas, en lugar del caso anterior podríamos querer compilar el código de Speed Dreams 2. En este caso es un menester que puedo recomendar sólo si deseamos la inclusión de recursos adicionales (autos y circuitos). Para compilarlo en lugar de lo anterior usaríamos:

mkdir /tmp/speed-dreams2/ ;
cd /tmp/speed-dreams2/ ;

wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-base-2.3.0-r8786.tar.xz ;
wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-hq-cars-and-tracks-2.3.0-r8786.tar.xz ;
wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-more-hq-cars-and-tracks-2.3.0-r8786.tar.xz ;
wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-wip-cars-and-tracks-2.3.0-r8786.tar.xz ;
wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-unmaintained-2.3.0-r8786.tar.xz
;
wget https://sourceforge.net/projects/speed-dreams/files/3rd%20party/Sources/post-2.0.0/3rdParty-2.2-src.zip ;
tar -xJf speed-dreams-src-base-2.3.0-r8786.tar.xz ;
tar -xJf speed-dreams-src-hq-cars-and-tracks-2.3.0-r8786.tar.xz ;
tar -xJf speed-dreams-src-more-hq-cars-and-tracks-2.3.0-r8786.tar.xz ;
tar -xJf speed-dreams-src-wip-cars-and-tracks-2.3.0-r8786.tar.xz ;
tar -xJf speed-dreams-src-unmaintained-2.3.0-r8786.tar.xz ;
unzip
post-2.0.0/3rdParty-2.2-src.zip
sudo apt install build-essential cmake libopenscenegraph-dev  freeglut3-dev libvorbis-dev libsdl2-dev libopenal-dev libenet-dev libexpat1-dev libjpeg-dev libplib-dev libpng-dev libcurl4-openssl-dev libsdl2-mixer-2.0-0 ;
mkdir build/ ;
cd build/ ;
cmake -D CMAKE_PREFIX_PATH:STRING=/usr/local \ -D OPTION_OFFICIAL_ONLY:BOOL=ON .. ;
make ;
sudo make install

...y ejecutamos con:

speed-dreams-2