jueves, 22 de octubre de 2026

PC híbrido x86 + ARM + NPU: ¿puede Linux aprovechar lo mejor de cada arquitectura?

Durante años elegimos entre potencia y autonomía: o un procesador x86 rápido y hambriento de energía, o un chip ARM eficiente pero limitado en software heredado. Algunas patentes recientes, como las atribuidas a AMD, plantean otra salida: un solo chip con núcleos **x86, ARM y una NPU** conviviendo en el mismo silicio. En este artículo exploramos cómo funcionaría esa idea con Linux, qué parte es sólida y qué parte todavía requiere cautela.


## 1. La idea: cómputo heterogéneo avanzado

La propuesta no es nueva en espíritu. Linux ya sabe manejar **asimetría**: en los smartphones, arquitecturas como big.LITTLE de ARM combinan núcleos pequeños y eficientes con núcleos grandes y potentes, y el kernel decide dónde ejecutar cada tarea. La configuración híbrida x86 + ARM + NPU llevaría ese principio un paso más allá, repartiendo el trabajo entre tres tipos de cómputo:


| Componente | Rol propuesto | Fortaleza |

| Núcleo ARM | Coprocesador de control, siempre encendido | Consumo ultra bajo |

| NPU | Operaciones matriciales (IA) | Eficiencia en inferencia |

| Núcleos x86 | Lógica compleja de propósito general | Rendimiento bruto interactivo |


## 2. El núcleo ARM como procesador de control y tareas auxiliares

En este esquema, el núcleo ARM no compite en fuerza bruta con los x86. Actúa como un **coprocesador de ultra bajo consumo (always-on)** con dos funciones principales:

- **Control de flujo para la NPU:** procesa los *drivers*, gestiona las colas de comandos de la NPU y prepara los tensores de datos en memoria compartida.

- **Aislamiento de tareas de fondo:** con el equipo suspendido o en reposo, el núcleo ARM mantiene un estado mínimo del sistema. Si llega una notificación, un correo o una petición de IA en segundo plano, la procesa y despierta a la NPU para resolverla, **sin encender nunca los núcleos x86**, que consumen mucha más energía.


## 3. Escalar a demanda

La propuesta describe un flujo de trabajo en tres fases, apoyado en el planificador (*scheduler*) de Linux y en sus capacidades de **EAS (Energy Aware Scheduling)**:

1. **Detección:** un proceso solicita una tarea (compilar código, ejecutar un LLM local). El kernel analiza sus requisitos mediante telemetría en tiempo real.

2. **Delegación a la NPU:** si detecta operaciones matriciales puras (IA), el núcleo ARM gestiona el tráfico interno del chip a través de un bus de alta velocidad (un *interconnect fabric*) y asigna la tarea directamente a la NPU.

3. **Despertar del gigante (x86):** si la tarea requiere lógica compleja de propósito general que desborda al núcleo ARM (abrir un compilador, levantar contenedores Docker, renderizado pesado), se realizaría una **migración de contexto en caliente**: en microsegundos los núcleos x86 se encienden, reciben el estado exacto de la tarea, la procesan a máxima velocidad y, al terminar, vuelven a apagarse.


## 4. El beneficio para el ecosistema Linux

Linux es el campeón de la abstracción de hardware. Para el kernel no importa si un núcleo habla x86 o ARM, siempre que compartan el mismo mapa de memoria coherente (arquitectura de memoria unificada). Este diseño apunta al mayor problema actual de las NPU en portátiles con Linux: **el consumo de batería cuando el equipo está inactivo pero procesa IA en segundo plano**. Al delegar la administración al núcleo ARM y el cómputo pesado a la NPU, los núcleos x86 quedan reservados para cuando el usuario exige rendimiento interactivo.


## 5. Validación: qué es sólido y qué requiere cautela

El objetivo de este artículo es comprobar si la combinación tiene sentido técnico. Separemos lo que ya tiene respaldo de lo que todavía es especulativo.


### Lo que es plausible y ya tiene precedentes

- **Un núcleo ARM de bajo consumo como procesador auxiliar.** Es un patrón establecido: los procesadores x86 actuales ya incluyen coprocesadores ARM para seguridad y gestión (como el Platform Security Processor de AMD), y muchos SoC combinan un núcleo pequeño siempre activo con núcleos de aplicaciones.

- **Memoria unificada y coherente entre CPU y aceleradores.** Las APU ya comparten memoria entre CPU y GPU, y el mismo concepto aplica a la NPU.

- **Soporte de NPU en Linux.** Existen drivers de NPU en el kernel, y la gestión de colas de comandos desde un procesador dedicado es una arquitectura razonable.

- **Planificación consciente de la energía.** EAS y los mecanismos de capacidad asimétrica de CPU funcionan hoy en producción en dispositivos ARM.


### Lo que requiere cautela

- **Un solo kernel de Linux no ejecuta hilos entre ISAs distintas.** EAS migra tareas entre núcleos de la *misma* arquitectura de instrucciones. Un binario compilado para x86 no puede continuar su ejecución en un núcleo ARM, y viceversa, porque los registros, el conjunto de instrucciones y el modelo de memoria difieren. Una "migración de contexto en caliente" entre x86 y ARM exigiría un mecanismo muy distinto al de EAS actual.

- **El diseño realista probablemente sea de multiprocesamiento asimétrico.** Es más verosímil que el ARM corra un firmware o RTOS propio (al estilo de los marcos *remoteproc* y OpenAMP) y se comunique con el Linux de los núcleos x86 mediante colas y memoria compartida, que un único Linux repartido entre ambas arquitecturas.

- **Los tiempos en microsegundos son optimistas.** Encender núcleos x86 desde un estado de bajo consumo profundo, restaurar caché y estado de energía suele costar más que eso, aunque la latencia depende mucho del estado de reposo.

- **Una patente no es un producto.** Describir un concepto no garantiza que exista en silicio, ni que funcione como se explica. Conviene revisar el texto exacto de las reivindicaciones antes de atribuir capacidades concretas a AMD.


## 6. Cómo se vería un PC híbrido viable

Combinando lo plausible con lo prudente, un diseño realista tendría esta forma:

1. **Dominio de bajo consumo (ARM):** firmware o sistema mínimo que gestiona eventos, notificaciones y las colas de la NPU mientras el equipo duerme.

2. **Dominio de IA (NPU):** inferencia en segundo plano con memoria compartida y coherente, despertada solo cuando hay trabajo.

3. **Dominio de rendimiento (x86):** Linux completo con todo el software habitual, encendido únicamente cuando el usuario exige potencia interactiva.

4. **Capa de coordinación:** un protocolo claro entre dominios (colas, interrupciones, memoria compartida) en lugar de migrar hilos entre ISAs.


En la práctica, esto cambia la pregunta: no es "cómo mover una tarea entre x86 y ARM", sino "qué tarea pertenece a cada dominio y cómo los coordinamos con la menor energía posible".


## Conclusión

La idea de combinar x86, ARM y NPU en un mismo chip ataca un problema real: la autonomía en portátiles que procesan IA en segundo plano. Linux, por su capacidad de abstraer hardware y su experiencia con sistemas asimétricos, es un candidato natural para aprovecharla. Eso sí, el camino más probable no pasa por un kernel que salte entre arquitecturas, sino por **dominios especializados que cooperan**. Es una dirección prometedora, y seguirla de cerca vale la pena.



domingo, 14 de diciembre de 2025

Paso a paso asciiquarium en Debian

Linux tiene aplicaciones y scripts que hacen de todo, algunas cosas son más divertidas que otras... en mí caso decidí usar un script muy divertido que convierte mí terminal en un acuario (si, como el de MS-Windows.... pero más divertido), animo a todos a que lo prueben y comenten que les parece.

Pasos a seguir para ejecutarlo, solo necesitas unos simples comandos para ejecutarlo en tu terminal favorita (como Alacritty, Kitty, o Termite, Terminator, Foo, etc.).

  1. Instalar librerias y depencidencias para que funcione, usando los comandos:
    sudo apt update
    sudo apt install perl-modules libcurses-perl cpanminus

  2. Descargar el Script desde el site del Author: Kirk Baucom usando el comando:
    wget https://robobunny.com/projects/asciiquarium/asciiquarium_1.1.tar.gz
    Nota: tambien esta disponible desde el portal de GIT de Caludio Matsuoka / asciiquarium

  3. Descomprime y entra en el directorio:
    tar -zxvf asciiquarium.tar.gz
    cd asciiquarium

  4. Mueve el script y dale permisos de ejecución: Copia el archivo ejecutable (asciiquarium) a una ubicación dentro de tu PATH (como /usr/local/bin) para poder ejecutarlo desde cualquier lugar.
    sudo cp asciiquarium /usr/local/bin/
    sudo chmod 0755 /usr/local/bin/asciiquarium

  5. Para ejecutarlo
    Una vez finalizados estos pasos, puedes abrir una terminal y simplemente escribir:
    asciiquarium

Listo ya pueden tener un acurio muy divertido:

miércoles, 18 de junio de 2025

Subsonic instalado en una LXC de Proxmox

Hace ya un tiempo que tengo un Home Server y estoy usando Proxmox para virtualizar servidores de diferentes tipo/aplicaciones, como DNS, VPN, File Server, LDAP, Torrent, etc., etc., por eso uno de los servicios que no podía faltar es el streaming de audio con toda mi galería musical y lo que quería era usar Subsonic que para mí es la mejor app a usar... ok, si a alguien le ayuda dejo el procedimiento paso a paso:

  1. Lo primero será crear el LXC en Proxmox, esta parte es muy sencilla porque se puede usar la web de Helper Scripts para crear el contenedor y convertirlo en media server; hay que conectarse al nodo acceder a la terminal (recuerda crear el LXC con privilegios y acceso ssh para hacer mas facil las tareas de mantenimiento futuros), ejecuta el comando:
    bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/debian.sh)"

  2. Finalizada la instalación, tienes 2 opciones acceder iniciando sesión sobre el LXC o desde el nodo loguearte directamente usando el comando:
    lxc-attach --name 100
    también puedes usar el comando:
    pct enter 100
    Cambia el número 100 por el número del Container ID que se haya asignado.

  3. ya te logueaste, hay que habilitar el repositorio con java8:
    wget http://www.mirbsd.org/~tg/Debs/sources.txt/wtf-bookworm.sources
    sudo mkdir -p /etc/apt/sources.list.d
    sudo mv wtf-bookworm.sources /etc/apt/sources.list.d/
    sudo apt update

  4. Completada esta parte ya tendremos disponible lo que requerimos, ahora instalamos el jdk
    sudo apt install openjdk-8-jdk

  5. Bien procedemos a descargar e instalar Subsonic 
    wget https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.1.3.deb
    sudo dpkg -i subsonic-6.1.3.deb

  6. Por seguridad hay que crear otro usuario para evitar que subsonic tenga acceso a root
    sudo useradd --system subsonic
    sudo gpasswd --add subsonic audio

  7. Ahora hay que editar el archivo "/etc/default/subsonic" para cambiar la cantidad de memoria máxima a usar y agregar el usuario con permisos a la aplicación, este usuario no tendrá más permisos en el computador para evitar riesgos de seguridad, el archivo se modificará así:
    # Type "subsonic --help" on the command line to read an
    # explanation of the different options.
    #
    # For example, to specify that Subsonic should use port 80 (for http)
    # and 443 (for https), and use a Java memory heap size of 200 MB, use
    # the following:
    #
    # SUBSONIC_ARGS="--port=80 --https-port=443 --max-memory=200"

    SUBSONIC_ARGS="--max-memory=150"

    SUBSONIC_USER=subsonic

  8. Por defecto Subsonic busca los archivos multimedia en la dirección: "/var/music", si deseas usar este directorio deberás crearlo y asignarle permisos al usuario subsonic, con el comando:
    sudo mkdir /var/music
    sudo chown subsonic:subsonic /var/music

  9. Reiniciar Subsonic antes de usarlo:
    sudo systemctl restart subsonic

  10. Listo ya puedes iniciar sesión abriendo el navegador e ingresando la URL de tu LXC http://IP:4040, recuerda que la primera vez que ingreses el user/pass=admin, cambialo y generate una cuenta con privilegios para administrar tus librerias. Que te diviertas!

jueves, 15 de mayo de 2025

Como utilizar todo el espacio del disco local en Proxmox

Una vez terminada la instalación borrar la partición local-lvm es una buena forma de aumentar el espacio para almacenar info

  1. Eliminar el volumen lógico y redimensionar: se deben ejecutar los comandos:
    lvremove /dev/pve/data
    lvresize -l +100%FREE /dev/pve/root
    resize2fs /dev/mapper/pve-root

  2. Reiniciar y actualizar la interface
    Después de reiniciar se mostrará la unidad lógica como desconocida, para eliminarla se deberá ir a Datacenter/Storage/seleccionar/remover

  3. Reconfigurar la unidad local: seleccionado la unidad y clic en el botón editar para agregar los tipos de contenido.

  4. Una vez completada esta parte ya se debería de visualizar disponible todo el espacio del almacenamiento.

jueves, 27 de marzo de 2025

Como instalar Anydesk en Debian 12

La idea es actualizar el procedimieto que genere hace ya un tiempo e indicar los pasos para agregar el repositorio de Anydesk, para luego instalar la app y mantenerla actualizada, los pasos son:
  1. Como siempre empezamos por actualizar el sistema:
    sudo apt update ; sudo apt upgrade

  2. Instalaremos los pre-requisitos:
    sudo apt install -y gnupg2 curl

  3. agregaremos la llave GPG:
    curl -fsSL https://keys.anydesk.com/repos/DEB-GPG-KEY|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/anydesk.gpg

  4. Ahora hay que agregar el repositorio al archivo de apt-sources
    echo "deb http://deb.anydesk.com/ all main" > /etc/apt/sources.list.d/anydesk-stable.list

  5. Actualizamos los repositorios
    sudo apt update

  6. Procedemos a hacer la instalación sobre el sistema:
    sudo apt install anydesk

  7. Solo queda iniciar la app y empezar a usarla


domingo, 19 de enero de 2025

Como instalar fastfetch en Debian, fácil y rápido

Fastfech es en mí opinión una mejora en comparación con neofetch o screenfetch, por eso lo instalo casi despues de completar mi lista de apps y herramientas cuando cambio de PC o decido hacer una instalación en limpio, les comento los pasos que yo sigo:

  1. Como siempre lo primero es actualizar usando el comando:
    sudo apt update ; sudo apt upgrade -y

  2. Descargo el archivo .deb usando wget desde la ruta: https://github.com/fastfetch-cli/fastfetch/releases/download/2.34.1/fastfetch-linux-amd64.deb
    wget https://github.com/fastfetch-cli/fastfetch/releases/download/2.34.1/fastfetch-linux-amd64.deb

  3. completada la descarga se instala con el comando:
    sudo dpkg -i fastfetch-linux-amd64.deb

  4. Completada la instalación sólo queda correr el comando: fastfetch

Dejo por aquí esta ayuda para los que quieran instalar fastfetch

domingo, 12 de enero de 2025

Montar unida externa EXFAT automaticamente en FSTAB de Linux Debian

 Este proceimiento espero sirva de ayuda para los usuarios que como yo quieren que una unidad de almacenamiento externo se monte de manera automática en su linux y tenga los datos disponibles para acceso, lectura, escritura, BKP, etc; prefiero usar exfatb en la unidad externa porque es compatible con muchos OS, como Windows, MacOS, Android y otros... cosas que vamos a necesitar:

  1. Una PC con linux
  2. Un disco externo, preferentemente en formato exfat

El procediemito es muy sencillo, pasos:

  1. Conectar la unidad externa al puerto USB y desde la consola con el comando "sudo fdisk -l" identificar los discos y las particiones instaladas:


  2. Luego usamos el comando "sudo blkid" para obtener el ID del disco que vamos a montar y agregar al "fstab".


  3. Pero antes de editarlo, vamos a crear la carpeta en la cual se ubicará el disco montado, con el comando "sudo mkdir /mnt/media"

  4. Toca editar el archivo fstab con el comando "sudo nano /etc/fstab" se mostrará un fichero asi:


  5. Agregamos lo datos del disco que queremos montar automáticamente, en esencua el UID y el formato de ficheros:


  6. Completada esta parte, sólo queda reiniciar y usar; se pueder ver el contenido con el comando "ls -l /mnt/media" y ya puedes compartir este disco con los diferentes usuarios de la red.


Observación: Con el comando "mount -a" podras verificar si hay algun error en el montado y con el comando "df -l" se mostrará los discos montados y sus respectivas rutas:






lunes, 14 de octubre de 2024

Como desactivar el inicio automático de MegaSync en Linux

¿Que es Mega y MegaSync?

Mega: Es un servicio de almacenamiento en la nube que se destaca por su enfoque en la privacidad y seguridad de los datos de sus usuarios. A diferencia de otros servicios similares, en MEGA el cifrado de los archivos es de extremo a extremo y controlado por el usuario, lo que significa que ni siquiera MEGA puede acceder al contenido de tus archivos. 

MegaSync: Es una aplicación de escritorio desarrollada por MEGA, un servicio de almacenamiento en la nube conocido por su enfoque en la privacidad. Esta herramienta te permite:
  • Sincronizar archivos automáticamente
  • Acceder a tus archivos desde cualquier lugar
  • Realizar copias de seguridad
  • Compartir archivos fácilmente

¿Como desactivo el inicio automático?
  • Procedimiento 1
    1. desabilitar el inicio en systemd, para verificar si existe el servicio, en terminal se ingresa el comando:
      systemctl status megasync
    2. Verificado que el servicio se encuentra activo, para desactivarlo se ingresa el comando:
      sudo systemctl disable megasync
    3. Listo, el servicio ya no correra el el siguiente inicio del sistema; pero si lo quieres parar de inmediato, puedes usar el siguiente comando:
      sudo systemctl stop megasync


  • Procedimiento 2
    1. Cuando no encuentras el servicio activo en systemd, lo que hay que hacer es revisar si existe un archivo en el autostart, mirando los directorios:
      • /etc/xdg/autostart
      • ~/.config/autostart
    2. En mi caso el archivo existente te llama "megasync.desktop" con el siguiente contenido:
      [Desktop Entry]
      Type=Application
      Version=1.0
      GenericName=File Synchronizer
      Name=MEGAsync
      Comment=Easy automated syncing between your computers and your MEGA cloud drive.
      TryExec=megasync
      Exec=megasync
      Icon=mega
      Terminal=false
      Categories=Network;System;
      StartupNotify=false
      X-GNOME-Autostart-Delay=60
    3. Para evitar la carga en el inicio del sistema, hay que editar el archivo y agregar la siguiente linea al final: "Hidden=True" dejando el archivo de la siguiente manera:
      [Desktop Entry]
      Type=Application
      Version=1.0
      GenericName=File Synchronizer
      Name=MEGAsync
      Comment=Easy automated syncing between your computers and your MEGA cloud drive.
      TryExec=megasync
      Exec=megasync
      Icon=mega
      Terminal=false
      Categories=Network;System;
      StartupNotify=false
      X-GNOME-Autostart-Delay=60

      #agregado para deterner el autoinicio
      Hidden=True
    4. Liso, ya no se autoiniciará MegaSync con el sistema.

jueves, 4 de julio de 2024

mi router... ese peligroso objeto! -1

Si, ese peligroso objeto conectado a internet que si lo dejas siempre conectado y sin actualizar, parchar, cambiar las claves, puede ser un gran problema para tí y los que se conecten.


¿Que hay en la imagen que significa esas lineas?
En la imagen se puede apreciar un segmento del registro de mi router, son intentos de conexiones via ssh que no es otra cosa que tratar de tener acceso como administrador y poder realizar cambios en el aparato, como por ejemplo modificar los DNS y así poder redirigir el trafico a servidores falsos para capturar tu información o mostrate datos que le interesen al atacante.

¿Pero porque pasa esto?
Sencillo,  muchos no nos preocupamos por la seguridad de los apartos conectados a Internet, esto es aprovechado por maliciosas personas que quieren de alguna manera obtener acceso a tus datos y se valen de todas las artimañas posibles para hacerlo.

¿Para que hacerlo?
Primero el poder acceder al enrutador y tomar control del mismo y con eso poder reireccionar el trafico
DNS y hacerte acceder a servidores falsos, tambien existe la posibilidad de utilizarlo para hacer ataques DDOS,

datos, pensamos que los hacker (mal llamados así) están queriendo descargar datos de la nasa o de alguna empresa con mucho dinero y es cierto, pero también hay muchos maliciosos personajes que con mucho tiempo libre y las ganas obtener dinero fácil utilizan su conocimiento en idear formas de atacar a personas como nosotros que desconocemos que esta pasando... Y peor aún porque 

sábado, 20 de febrero de 2021

Instalar AnyDesk en Debian

La gente de AnyDesk puso a disposición un repositorio para poder instalar su herramienta de conexión remota, el procedimiento para hacer esta instalación como root es:

Agregar la llave de confianza del repositorio:

wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY | apt-key add -

Agregar el repositorio:

echo "deb http://deb.anydesk.com/ all main" > /etc/apt/sources.list.d/anydesk-stable.list

Actualizar las listas:

apt update

instalar AnyDesk:

apt install anydesk

Listo ya puedes usarlo para dar soporte remoto