viernes, 27 de septiembre de 2024

Wayland en Raspberry Pi OS de 64 bits: lo que pierdes y lo que cambia

Raspberry Pi OS de 64 bits ya es un sistema estable de verdad y ya hay software que solo funciona en la versión de 64 bits, sobre todo algunos emuladores o juegos pero trae por defecto el compositor Wayland en lugar del clásico X11, porque es más moderno y supuestamente "mejor", sin embargo hay muchos incovenientes y sobre todo cosas que te van a dejar de funcionar en Wayland:

  • Pérdida de rendimiento: no es dramática pero si se nota bastante.
  • No puedes hacer capturas de pantallas o snapshots, un problema si haces manuales o quieres enseñar algo.
  • La consola gráfica no la puedes agrandar o disminuir con la combinación de teclas CTRL + y CTRL -
    Tienes que hacerlo mediante el menú de la ventana.
  • No puedes cambiar las aplicaciones de la Barra de Aplicaciones en el panel de menús.
  • Si en una categoría tienes más aplicaciones de las que caben en la pantalla no podrás desplazarte para ver las que n aparecen.
  • Pasar contenidos con el portapapeles entre aplicaciones es la mayoría de las veces imposible.
  • Diversos problemas con KODI.

Las pruebas se han hecho en una Raspberry Pi 400, recuerda que los modelos antiguos como mi Raspberry Pi 2 solo funciona Raspberry Pi OS 32 bits legacy. 

Sobre las supuestas ventajas... dicen que esta versión tiene problemas de tearing con X11, no lo he experimentado en mi Raspberry pi 400.

En un próximo artículo explicaré como volver a X11 y evitar todos estos inconvenientes.

sábado, 21 de septiembre de 2024

¿Fragmentación? ¡NO! LIBERTAD

Lo que mucha gente llama "fragmentación" es la esencia del software libre, si no todos tendríamos que tragar snap o gnome por ejemplo, algo que no nos gusta a los que queremos optimizar nuestra inversión de hardware ni los problemas de integración que traen esas nuevas paqueterías.

De todas formas se hace bastante drama de este "problema" ya que precisamente un novato escribe el nombre del programa en la aplicación de instalación que trae la distro y le da a instalar, poco le afecta lo que haga "por debajo".

En fin, que hay gente que no entiende bien el concepto de libertad o bien les da miedo tener que tomar sus propias decisiones, ¡con lo fácil que es que otros lo hagan por tí!

 


¡Feliz Día del Software Libre!

viernes, 13 de septiembre de 2024

Las señales del pingüino asesino

Los más avanzados en GNU/Linux ya habéis imaginado que de lo que voy a hablar es del comando kill, mediante el cual podemos mandar mensajes a los diversos procesos que se están ejecutando en nuestro sistema.

Lo primero es identificar el proceso al que vamos a mandar una señal, para ello ejecutamos el comando

ps aux

Pero si lo ejecutamos así nos vamos a peder entre todos los procesos, imaginemos que queremos interactuar en algún programa, por ejemplo, kodi, pa

usuario      180914  0.0  0.0   2608  1700 ?        S    01:29   0:00 /bin/sh /usr/bin/kodi
usuario      180924 81.5  3.9 3016212 316192 ?      SLl  01:29   0:08 /usr/lib/x86_64-linux-gnu/kodi/kodi-x11
usuario      181112  0.0  0.0  11528   720 pts/0    S+   01:29   0:00 grep --color=auto kodi

En la segunda columna aparece el número de proceso, sobre la que podemos interactuar con la siguiente sintaxis.

kill -numeroonombredeseñal numerodeproceso 

El número o nombre de señal es opcional y por defecto es 15 que significa que queremos que se cierre ordenadamente, podría ser uno de estos dos comandos si queremos interactuar sobre el primer proceso de kodi:

kill  180914

ó

kill -15 180914

Supongamos que no se cierra, entonces tendríamos que mandar la señal del cerrado forzado:

kill -9 180914

Pero a pesar del nombre del comando no solo sirve para matar procesos, también los podemos cosas poner en pausa y reanudarlos a continuación, por ejemplo, supongamos un proceso de reproducción de un audio con VLC, lo primero es averiguar el primer número de proceso con el comando:

ps aux | grep -i vlc

usuario      189886  6.2  1.0 1704216 86284 ?       Sl   01:45   0:02 /usr/bin/vlc --started-from-file /home/usuario/audio.mp3
usuario      190291  0.0  0.0  11528   716 pts/1    S+   01:45   0:00 grep --color=auto -i vlc

Pausamos con el comando:

kill -STOP 189886

Seguiríamos haciendo nuestras cosas y ya no nos acordaríamos el número del proceso que está detenido algo que podemos saber simplemente tecleando:

jobs

Y para reanudarlo simplemente ejecutamos:

kill -CONT 189886

Podemos obtener el listado completo de señales disponibles con el comando:

kill -l


Fuentes:

viernes, 6 de septiembre de 2024

Ampliando RetroMultiInstaller: carpetas principales (II)

Los próximos primeros viernes de cada mes voy a retomar el análisis de la herramienta que creé para agrupar todos los scripts de instalación que tengo y seleccionarlo con un sencillo menú.

Así cada uno podrá adaptar RetroMultiInstaller a sus necesidades.

Aunque en el anterior artículo ya comenté algo de la estructura interna del programa, en este voy a explicar los directorios esenciales que cuelgan de la carpeta donde descomprimos RMI.

En el directorio donde copiamos Multi-installer hay una serie de directorios que contienen otros directorios y archivos.
La estructura de directorios es la siguiente:

├── commonscripts
├── installers
├── menus
├── shotcuts
│   ├── etc
│   │   └── xdg
│   │       └── menus
│   │           └── applications-merged
│   ├── opt
│   └── usr
│       └── share
│           ├── applications
│           ├── desktop-directories
│           └── pixmaps
└── resources
└── warning
└──tmp

Analizando cada directorio con más detalle:

  • commonscripts: aquí se incluyen todos los scripts de uso común y que llamaremos desde otros scripts.
  • installers: aquí se incluyen los script de instalación, uno por cada programa.
  • menus: son los archivos txt que contienen la definición de los menús.
    Cada archivo tiene la definición de un menú y cada línea de cada menú la definición de un programa a instalar o una categoría que abre un nuevo menú.
  • shotcuts: incluye todos los archivos para crear los accesos directos con sus iconos y las categorías especiales para agruparlos.
    Dentro de este directorio hay una estructura de subdirectorios igual que donde se van a copiar los archivos en el sistema operativo.
  • warning: incluye los archivos de texto con instrucciones u otra información que se mostrará al terminar la instalación del programa.
  • tmp: carpeta donde se crearán los archivos temporales para las instalaciones tales como el código fuente antes de compilar e instalar.

Casi todos los scripts se ejecutarán desde esta carpeta, por lo que siempre deberemos referirnos a ellos con una ruta relativa que parte de esta carpeta.
Todos los archivos que contienen las carpetas installers, menus, shotcuts y warning correspondientes a un programa a instalar, contienen al principio de su nombre la etiqueta que identifica ese programa en minúsculas.

viernes, 30 de agosto de 2024

Una mesa, dos ordenadores de 8 bits

Los aficionados al retro tenemos un eterno problema: el espacio. 

Si tenemos por ejemplo, un Amstrad, un ZX Spectrum y un Commodore y queremos tenerlos siempre montados y operativos necesitaríamos 3 mesas pero, ¿podriamos poner 2 en una sola mesa de manera que los tengamos listos para su disfrute? Pues sí. 


Como veis he conseguido poner mi ZX Spectrum +2 y mi Commodore 64 en una sola mesa con la posibilidad de dejarlos debajo de los monitores cuando no los use y poder aprovechar ese espacio para hacer otra cosa.

 

Para conseguirlo, me he valido de las mesas de ordenador que ya tengo, en concreto de la auxiliar que tengo junto a la que uso para el PC, que es la que usé hace unos días para cambiar la goma del Amstrad.
 
He aprovechado una repisa que tenía del mismo color vengué a la que le he puesto 4 patas de armario de 15 cms de altura así puedo guardar debajo los dos ordenadores cuando no los use y aprovechar ese espacio para otros usos.

Las patas me han salido mucho más baratas en una ferretería local que los precio que he visto por internet que me parecen demasiado subidos.

Hasta en los proyectos más sencillos hay cosas que hay que tener en cuenta, como veis he puesto el ZX Spectrum a la izquierda y el Commodore 64 a la derecha, antes lo había puesto al revés y lo tuve que desmontar, el motivo era donde lleva cada uno el puerto de joystick, el Commodore a la derecha y el ZX Spectrum a la izquierda, de la forma inicial chocarían los conectores y como queda ahora cada uno está a un lado.

Otra cosa que he tenido que cambiar es la regleta por otra especial con interruptores para cada enchufe, ya que la idea es dejarlo todo enchufado pero desconectados cuando no se use, aparte de que el ZX Spectrum +2 NO tiene interruptor de corriente, por lo que con una regleta normal permanecería encendido cuando esté usando del Commodore, a no se que desconecte la clavija o el enchufe, algo incómodo que no quiero hacer.

La solución es una nueva regleta con interruptores independientes para cada enchufe:


Acerca de los monitores, mi idea inicial era poner uno solo para los dos pero tenía dos problemas:

  • Si usaba solo el monitor Amstrad CTM-644 no podría conectar el Commodore 64 que no admite conexión por RGB, a no ser que le hiciera una modificación a un viejo sintonizador analógico para sacarle una entrada RCA, a lo mejor en un futuro.
    Hay que acordarse que el ZX Spectrum NO tiene altavoces y el sonido lo saca de la tele o del conector de audio y este monitor no lleva tampoco altavoces, por lo que, o le pongo unos de PC, o lo conecto al cercano equipo de música o uso cascos.
  • Si uso solo el televisor podía conectar los dos, pero podría tener algún problema con el ZX Spectrum para conseguir la misma calidad que con mi CTM-644, es algo que también probaré más adelante.

 

Bueno, ahora por fin voy a poder disfrutar de estos dos equipos siempre listos para su uso cuando tenga ganas de echar unas partidas o algo de cacharreo.

viernes, 23 de agosto de 2024

Free Basic Compiler: compilar programas Basic en GNU/Linux

Free Basic es un compilador de Basic para GNU/Linux bastante compatible con los clásicos intérpretes Basic de MS-DOS.

Instalación

  1. Instalar los paquetes necesarios para que funcione:
    sudo apt install build-essential gcc libncurses5-dev libffi-dev libgl1-mesa-dev libx11-dev libxext-dev libxrender-dev libxrandr-dev libxpm-dev libtinfo5 libgpm-dev
    utilindex="freebasic"
  2. Descargar la última versión para tu sistema operativo, en nuestro caso GNU/Linux.
  3. Descomprimir en una carpeta y entrar en esa carpeta.
  4. Instalar con el script de instalación que incluye:
    sudo ./install.sh -i
  5. Si se desea se puede desinstalar con el comando:
    sudo ./install.sh -r


Uso

Para compilar un programa:

fbc programa.bas

En este ejemplo, se generará un binario de nombre 'programa'. 

Por cierto, los binarios generados son más pequeños que los creados por QB64, aunque por contra no tenemos una GUI.


Puedes consultar más las opciones del compilador con el comando:

man fbc

En un futuro artículo veremos como adaptar código de Microsoft Basic, GWBasic, QuickBasic, etc... para ser compilado con FreeBasic.
 

Páginas de interés


viernes, 16 de agosto de 2024

Cambiar la goma de la disquetera de mi Amstrad CPC6128, la primera vez

Mi Amstrad CPC6128 me lleva acompañando desde 1989 y, salvo una cara "avería" que tuvo la disquetera en 1993, la goma de la disquetera no se ha cambiado una operación de mantenimiento que llevaba postergando desde entonces hasta que ha dejado de funcionar.

Antes de hacer esta operación, que no había hecho antes y me imponía respeto a pesar de haber reparado varios PC a lo largo de los años, me he estado documentando con manuales y diversos videotutoriales cuyos enlaces he puesto al final del artículo. Si vais ha hacer esto os diré que verlos no es una recomendación, es completamente obligatorio para tener éxito y no liarla parda.

Vamos a ver los pasos que he seguido, tened en cuenta que hay que seguir un orden riguroso para no dejarse nada atrás ni romper nada más. No es la manera más ortodoxa y he ido al grano, es decir, no he desarmado otros elementos para limpiarlos por ejemplo. He tratado de desconectar lo mínimo posible siguiendo la máxima: "si funciona NO lo toques". 

 

Paso 1: Preparar la zona de trabajo

Teniendo en cuenta que el Amstrad CPC6128 se va abrir con un libro, lo ideal es una mesa que pueda albergar el doble de la longitud del Amstrad, en mi caso tengo dos mesas de IKEA que previamente he regulado para que estén exactamente a la misma altura y sea como si fuera una sola muy larga.


Paso 2: Abrir el Amstrad

Damos la vuelta al ordenador y empezamos quitando los tornillos de la parte trasera, son unos 6 tornillos de longitud media y uno algo más grande a la altura de los conectores de vídeo o energía.

 


En mi caso tenía la pegatina del servicio técnico tapando el tornillo grande, algo común en los SAT para limpiarse las manos si alguien hace alguna reparación posterior. 


A continuación retiramos los dos tornillos del lateral de la disquetera.


Es importante tener controlados todos los tornillos que vayamos quitando para luego saber ponerlos en el sitio y momento correspondientes.

Volvemos a dar la vuelta al ordenador para ponerlo otra vez en posición normal y con mucho cuidado vamos separando la parte de arriba de la de abajo, una vez liberado HAY QUE ABRIRLO COMO UN LIBRO, si lo hacemos al revés y forzamos nos cargaríamos los conectores del teclado entre otros.



Paso 3: Extraer la disquetera del ordenador

Hay que hacer dos cosas:

Retirar los dos tornillos que la siguen sujetando a la carcasa, observa que uno de ellos está conectado a un cable de tierra a la placa base, luego hay que dejarlo igual.


Retirar los cables de alimentación y datos, con cuidado de no dañarlos y apuntando como estaban conectados, lo mejor es hacer una fotografía con detalle.

 


También hay que retirar la chapa metálica de sujeción para acceder al interior de la disquetera. 


Paso 4: Acceder a la goma

Esta es la operación más delicada y donde hay más cosas donde liarla.

Retiramos el frontal desatornillando los dos tornillos que la sujetan y tirando hacia afuera con sumo cuidado de no dañar las pestañas.

 


Hay que tener en cuenta cuando la volvamos a poner que el plástico de la parte inferior debe quedar por debajo de la placa inferior de la disquetera.

 

Como es muy común perder el clavito que detecta si un disquete tiene protección de escritura o no, se pueden hacer dos cosas para prevenir esta contingencia:

  • Fijarlo momentáneamente con cinta de carretero.
  • Dejar un disquete dentro. Ésta es la opción que he usado yo.


 

Si al final terminamos perdiendo el clavito, consulta los enlaces del final para ver el vídeo y el artículo en el que se explica como solucionar este problema.

Ahora retiramos los tres tornillitos de la placa inferior de la disquetera, pero que todavía no vamos a retirar porque nos vamos a encontrar más cosas que hay que quitar para no romper nada.

Disquetera de 3", detalle placa inferior
Disquetera de 3", detalle placa inferior (sacada del artículo de AUA: Reparación de disquetera: disc is write protected)

 

También hay que quitar los conectores de los motores, que, en mi disquetera están a los lados.




Finalmente hay que retirar un sensor que hay que dejar exactamente en la misma posición para no tener errores de funcionamiento en la unidad.


Para volver a ponerlo igual hay que señalar con un rotulador indeleble su posición, aunque yo en lugar de retirarlo he quitado el cable del pasador para tener holgura para retirar un poco la placa de abajo, lo suficiente para acceder a la goma, por si muevo el sensor accidentalmente marco igualmente con indeleble su posición.


De esta manera es un poco más incómodo acceder a la goma y sobre todo limpiar los restos de goma si se hubiera deshecho, afortunadamente la mía está entera aunque algo dada de sí.


Con unas pinzas consigo retirar la goma vieja y sustituirla por la nueva, me aseguro que los rodillos funcionan moviendo uno y viendo como se mueve el otro.


Paso 5: Volver a cerrarlo y conectarlo todo

Ahora tenemos que ir cerrando todo y volver a conectar lo que hemos desconectado en el orden inverso, lista de tareas:

  1. Cerrar la disquetera.
  2. Poner el cable del sensor por el pasador.
  3. Conectar los dos motores.
  4. Atornillar la placa inferior de la disquetera. 
  5. Sacar el disquete.
  6. Volver a poner el frontal en su sitio exacto, de manera que la parte más inferior del frontal quede por debajo la placa inferior.
  7. Colocar la placa de sujección a la izquierda de la disquetera.
  8. Colocar la disquetera en su sitio en la carcasa del CPC.
  9. Conectar los cables de alimentación y datos.
  10. Atornillar la disquetera a la carcasa con sus dos tornillos.
  11. Cerrar el CPC como cerraríamos un libro.
  12. Poner los tornillos inferiores de la carcasa y los dos que sujetan la disquetera por su lateral derecho.


Paso 6: Pruebas finales

Una vez cerrado todo toca cruzar los dedos y ver que funciona todo correctamente:

  1. Encendemos el Amstrad y vemos que sigue arrancando correctamente.
  2. Introducimos algunos disquetes y vemos que carga los juegos y programas con normalidad.
  3. Probamos con algún disquete que tenga espacio libre y guardamos el típico programa BASIC del "Hola mundo", si lo hace con normalidad hemos terminado las pruebas con éxito. ¡ENHORABUENA!


Si tienes algún problema con algún disquete comprueba que las revoluciones de tu disquetera son las correctas.

 

Videotutoriales y otros manuales

A continuación pongo los enlaces de donde he sacado información para completar este mantenimiento, en orden de utilidad para la tarea:


Muchas gracias a los compañeros de los foros y grupos de Telegram que me han dado consejos de como proceder y en especial al sr. Rosa que incluso se ha ofrecido para ayudarme a cambiarla y que tenía en la recámara por si la cosa no salía como esperaba.