Mi viejo MacBookPro Retina del 2013, con Debian GNU/Linux y 8GB de RAM iba bastante lento al usar Firefox con múltiples pestañas.
Estas optimizaciones le dieron una nueva vida sin gastar dinero en hardware.
Problema
Firefox es un devorador de RAM. Con varias pestañas abiertas, especialmente sitios web modernos (aplicaciones JavaScript pesadas), es fácil saturar 8GB de RAM. Cuando esto ocurre, el sistema empieza a usar swap en disco, lo que causa congelaciones y lentitud extrema.
Solución en dos partes
1. Optimizar Firefox
Instalar uBlock Origin:
Ve a: Menú → Complementos → Buscar «uBlock Origin»
Bloquear ads y scripts innecesarios libera fácilmente 1-2GB de RAM
Activar suspensión automática de pestañas:
Opción A – Configuración nativa:
about:config
Busca browser.tabs.unloadOnLowMemory y actívalo (true)
Opción B – Extensión (más control):
Instala la extensión «Auto Tab Discard»
Configura para suspender pestañas después de X minutos sin uso
Reducir historial de sesión (opcional):
about:config
Busca browser.sessionhistory.max_entries y reduce a 5-10 (default: 50)
Alternativa: Probar Brave Si Firefox sigue siendo muy pesado, Brave es un navegador basado en Chromium pero más eficiente con la RAM:
bash
sudo apt install brave-browser
2. Configurar zram (RAM comprimida)
¿Qué es zram? zram crea un dispositivo de swap comprimido en RAM. En vez de escribir al disco cuando se llena la memoria (lento), comprime datos en la propia RAM (rápido). Típicamente logra ratios de compresión 2-3:1, dando efectivamente 10-12GB de RAM «útil» en un sistema de 8GB.
Instalación:
bash
sudo apt install zram-tools
Configuración:
bash
sudo nano /etc/default/zramswap
Configura así:
bash
# Algoritmo de compresión (lz4 es rápido)
ALGO=lz4
# Porcentaje de RAM a usar para zram (50% = ~4GB)
PERCENT=50
# Comenta SIZE si usas PERCENT#SIZE=512# Prioridad alta (usa zram antes que swap en disco)
PRIORITY=100
zramctl
# Deberías ver algo como:# NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT# /dev/zram0 lz4 3.8G ...
free -h
# Verás el swap total aumentado
3. Ajustar swappiness (opcional)
Por defecto, Linux usa valor 60 de swappiness, que significa que empieza a usar swap relativamente pronto. Con zram, puedes bajarlo para que use más la RAM física primero:
bash
# Ver valor actual
cat /proc/sys/vm/swappiness
# Configurar permanentemente a 10
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Resultados esperados
Después de aplicar estas optimizaciones:
Firefox puede manejar más pestañas sin saturar el sistema
Menos «congelaciones» cuando la RAM se llena
Cambio entre aplicaciones más fluido
Reducción drástica del uso de swap en disco (menos desgaste SSD)
Sistema más responsive en general
Monitorizar el sistema
Para ver zram en acción:
bash
# Ver uso en tiempo real
watch -n 2 zramctl
# Ver estadísticas detalladas
watch -n 2 'cat /sys/block/zram0/mm_stat'
Hardware testado
MacBook Pro Retina 13″ (2013) con 8GB RAM
Debian con XFCE
Firefox con desarrollo web (múltiples pestañas, DevTools)
Conclusión
Con estas optimizaciones, un sistema de 8GB puede comportarse casi como uno de 10-12GB para la mayoría de tareas. No sustituye tener más RAM física para cargas de trabajo muy pesadas (compilaciones masivas, virtualización intensiva), pero para desarrollo web, programación backend ligera y uso diario, la diferencia es notable.
Cómo resolver problemas gráficos complejos en Intel UHD Graphics 620 mediante diagnóstico sistemático y parámetros del kernel
Hace dos meses, mi Slimbook Pro 2019 comenzó a mostrar síntomas que cualquier técnico habría diagnosticado como «hardware muerto»: pantalla interna parpadeando constantemente, sistema extremadamente lento, sesiones gráficas que se colgaban al arrancar. Después de cinco años de funcionamiento perfecto, parecía que había llegado el momento de reemplazarlo.
Sin embargo, la persistencia y un enfoque sistemático de diagnóstico demostraron que incluso los problemas más graves pueden tener soluciones inesperadas. Este es el relato completo de cómo conseguí que un portátil «desahuciado» volviera a funcionar perfectamente, incluso ejecutando Cinnamon con efectos activados.
Estado Inicial: Síntomas del Problema
Hardware afectado:
Slimbook Pro (2019) con Intel Core i7 Comet Lake-U
Intel UHD Graphics 620 integrada
Sistema operativo: Debian GNU/Linux
Monitor externo: IProda PD182Kpn (portátil, ideal para complementar el portátil)
Síntomas observados:
Pantalla interna parpadeando constantemente en negro (problema principal)
Sistema extremadamente lento, incluso con monitor externo conectado
Sesiones gráficas que fallan al arrancar o se cuelgan
Interfaz gráfica prácticamente inusable
Modo consola funcionando correctamente
Contexto temporal: El portátil funcionó perfectamente desde 2019 hasta aproximadamente julio-agosto de 2025, cuando los problemas aparecieron súbitamente sin cambios significativos en hardware o software.
Primera Fase: Diagnóstico y Descarte de Causas Obvias
Análisis de Logs del Sistema
El primer paso fue examinar los logs del kernel para identificar la causa raíz:
sudo dmesg | grep -i "i915"
Los logs revelaron información crítica sobre el controlador de Intel Graphics:
i915 0000:00:02.0: [drm] Found cometlake/ult (device ID 9b41)
WARNING: CPU: 0 PID: 176 at drivers/gpu/drm/i915/display/intel_pps.c:974 intel_pps_on_unlocked
Hallazgo clave: Error en la secuencia de encendido del panel (Panel Power Sequence), indicando problemas en la gestión de energía de la pantalla interna.
En este punto, el sistema mostró renderizado por software (llvmpipe), indicando que la aceleración hardware había fallado, explicando la extrema lentitud del sistema.
Segunda Fase: Estrategias de Solución Sistemática
Intento 1: Parámetros del Controlador i915
Basándome en la investigación sobre problemas conocidos del Intel UHD Graphics 620 en Comet Lake, implementé los primeros parámetros correctivos en GRUB:
Resultado: Mejoras temporales que no persistían entre reinicios, y la pantalla interna seguía parpadeando durante el arranque.
Tercera Fase: El Breakthrough – Gestión de Energía PCIe y Desactivación a Nivel Kernel
Identificación del Problema Real
Un análisis más profundo de los logs reveló errores críticos que habían pasado desapercibidos:
sudo tail -f /var/log/Xorg.0.log
(WW) modeset(0): hotplug event: connector 106's link-state is BAD, tried resetting the current mode. You may be left with a black screen if this fails...
Este mensaje aparecía repetidamente cada 1-2 segundos, indicando que el problema no era el renderizado gráfico sino la estabilidad de la conexión de los displays.
La Solución Dual: PCIe ASPM + Desactivación de Pantalla Interna
La solución final requirió dos enfoques complementarios:
Desactivar la gestión de energía PCIe que causaba inestabilidad
Desactivar completamente la pantalla interna a nivel de kernel para evitar que cause conflictos
sudo nano /etc/default/grub
# Configuración que solucionó el problema
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=igfx_off i915.enable_prs=0 i915.modeset=1 i915.enable_rc6=0 i915.enable_guc=2 i915.enable_dc=0 plymouth.enable=0 i915.enable_fbc=0 video=HDMI-2:1920x1080@60 video=eDP-1:d pcie_aspm=off"
Parámetros clave explicados:
Gestión de energía y estabilidad:
pcie_aspm=off: Crítico – Desactiva Active State Power Management de PCIe, resuelve errores «link-state BAD»
intel_iommu=igfx_off: Evita conflictos de mapeo de memoria con gráficos Intel
plymouth.enable=0: Desactiva pantalla de arranque problemática
video=HDMI-2:1920x1080@60: Fuerza resolución específica para el monitor externo
video=eDP-1:d: Desactiva completamente la pantalla interna a nivel de kernel (el parámetro :d significa «disabled»)
¿Por qué era Necesaria la Desactivación a Nivel Kernel?
La pantalla interna parpadeante no solo era molesta visualmente, sino que causaba inestabilidad en todo el subsistema gráfico. Los intentos de desactivarla a nivel de Xorg (xrandr --output eDP-1 --off) llegaban demasiado tarde: el kernel ya había inicializado ambas pantallas y la interna ya había comenzado a causar problemas.
El parámetro video=eDP-1:d instruye al kernel para que ignore completamente la pantalla interna durante el arranque, evitando que se inicialice y cause conflictos con el controlador de display.
Cuarta Fase: Verificación del Éxito
Resultados Inmediatos
Tras el reinicio con la configuración final:
# Verificación de aceleración hardware
glxinfo | grep "OpenGL renderer"
# Resultado: Mesa Intel(R) UHD Graphics (CML GT2)
# Test de rendimiento
vblank_mode=0 glxgears
# Resultado: ~7500 FPS
# Benchmark completo
glmark2 --fullscreen
# Puntuación: 590 (excelente para gráficos integrados)
Cambios observados:
Pantalla interna completamente silenciosa – sin parpadeos desde el arranque
Arranque limpio – sin errores «link-state BAD» en los logs
Aceleración hardware restaurada – renderizado por hardware, no software
Sistema responsivo – rendimiento normal restaurado
Resultados Finales
Estado Actual del Sistema
Hardware gráfico:
Aceleración hardware completamente funcional
Intel UHD Graphics 620 operando a pleno rendimiento
Monitor externo IProda PD182Kpn funcionando a 1920×1080@60Hz estable
Pantalla interna completamente desactivada – sin parpadeos
Rendimiento del sistema:
Entorno de escritorio: Cinnamon con efectos activados
Rendimiento gráfico: 590 puntos en glmark2
Estabilidad: Sin errores «link-state BAD» en más de una semana de uso intensivo
Arranque limpio sin interferencias de la pantalla problemática
Funcionalidades restauradas:
Sesiones gráficas estables
Reproducción de video fluida
Navegación web sin problemas
Capacidad para ejecutar entornos de escritorio modernos
Validación de la Solución
El sistema ahora supera las expectativas iniciales:
# Test de texto 2D (relevante para trabajo de oficina)
x11perf -aa10text
# Resultado: 11M caracteres/segundo
# Test de renderizado 3D básico
glxgears (con vsync)
# Resultado: 60 FPS estables sin caídas
# Test sin vsync (rendimiento real)
vblank_mode=0 glxgears
# Resultado: 7500+ FPS
Lecciones Técnicas Aprendidas
1. Los Síntomas Pueden Engañar
Los síntomas (pantalla parpadeando, sistema lento) apuntaban a fallo de hardware gráfico. La realidad era un problema de gestión de energía PCIe que afectaba la estabilidad de las conexiones de display, más una pantalla interna defectuosa que interfería con todo el subsistema.
2. La Importancia del Diagnóstico Profundo
El error crítico «connector link-state BAD» solo era visible en logs específicos de Xorg, no en los logs generales del kernel. El diagnóstico superficial habría llevado a conclusiones erróneas.
3. Soluciones Múltiples vs Solución Única
El problema requería dos soluciones complementarias:
Estabilizar las conexiones PCIe (pcie_aspm=off)
Eliminar la fuente de conflictos (video=eDP-1:d)
Una sola no era suficiente.
4. Nivel de Intervención Importante
Desactivar la pantalla a nivel de aplicación (xrandr) llegaba tarde. Era necesario intervenir a nivel de kernel para evitar que el problema se manifestara desde el inicio.
Parpadeo constante de pantalla = problema hardware específico de esa pantalla
Errores «link-state BAD» repetitivos = problema de gestión de energía PCIe
«llvmpipe» en renderizado = falta aceleración hardware (consecuencia)
Errores al inicializar sesión gráfica = inestabilidad del controlador de display
Paso 3: Soluciones Incrementales
Parámetros básicos del controlador i915
Configuración de Xorg optimizada
Gestión de energía PCIe (crítico)
Desactivación de hardware problemático a nivel kernel
Optimización específica por hardware
Reflexiones sobre la Persistencia Técnica
Este caso demuestra que el diagnóstico «hardware muerto» debe cuestionarse sistemáticamente. La tendencia a descartar hardware aparentemente fallido puede llevar a:
Pérdida económica innecesaria: Un portátil de €500 salvado vs €1000+ en reemplazo
Impacto ambiental: Evitar desecho prematuro de hardware funcional
Pérdida de datos y configuraciones: Mantener el entorno de trabajo existente
Cuándo Persistir vs Cuándo Rendirse
Indicadores para continuar el diagnóstico:
Hardware con historial de funcionamiento estable
Fallo súbito sin causa aparente
Funcionalidad parcial (consola funcionando)
Errores específicos en logs (no fallos aleatorios)
Un solo componente problemático identificable
Indicadores para considerar reemplazo:
Múltiples componentes fallando simultáneamente
Errores de memoria física o CPU
Fallos intermitentes sin patrón reproducible
Costo de reparación > 60% del valor del equipo
Configuración del Monitor Externo IProda PD182Kpn
Una nota específica sobre el monitor portátil utilizado: el IProda PD182Kpn demostró ser un excelente compañero para el portátil reparado:
Especificaciones relevantes:
Panel IPS de 18.5″ Full HD (1920×1080)
Conexión HDMI estable con el controlador Intel UHD 620
Alimentación via USB-C (compatible con puertos del Slimbook)
Perfil delgado ideal para trabajar en movilidad
Configuración óptima:
# Forzar resolución y frecuencia específicas
xrandr --output HDMI-2 --mode 1920x1080 --rate 60
# Configuración permanente en GRUB
video=HDMI-2:1920x1080@60
Este monitor demostró ser ideal para validar la solución, ya que requiere una señal HDMI completamente estable – cualquier inestabilidad en el controlador gráfico se manifestaría inmediatamente como parpadeos o desconexiones.
Conclusión: El Valor de la Persistencia Técnica
Lo que inicialmente parecía un fallo irreversible de hardware se resolvió completamente mediante:
Diagnóstico sistemático en lugar de asunciones basadas en síntomas
Investigación específica sobre el hardware exacto (Comet Lake + UHD 620)
Identificación de componentes problemáticos específicos (pantalla interna)
Soluciones a múltiples niveles (kernel + drivers + gestión de energía)
Documentación detallada de cada intento para evitar repeticiones
El resultado final supera las expectativas iniciales: un sistema que no solo funciona, sino que rinde mejor de lo esperado para gráficos integrados de 2019. La capacidad de ejecutar Cinnamon con efectos activados demuestra que el hardware tenía potencial que estaba siendo bloqueado por configuraciones subóptimas y un componente específico defectuoso.
Para cualquier técnico enfrentando problemas similares, el mensaje clave es: antes de declarar hardware muerto, agota las posibilidades de configuración y aísla componentes problemáticos. Los sistemas modernos tienen tantas capas de abstracción (kernel, drivers, gestión de energía, protocolos de display) que los problemas aparentemente de hardware a menudo tienen soluciones de software, especialmente cuando se puede identificar y desactivar el componente específico que causa conflictos.
La persistencia técnica, combinada con metodología sistemática, puede salvar hardware que de otra manera terminaría prematuramente en el desecho. En un mundo donde la sostenibilidad tecnológica es cada vez más importante, estas victorias tienen valor tanto económico como ambiental.
El Slimbook Pro 2019 ha vuelto a la vida, demostrando que a veces lo que parece el final es solo un problema esperando la solución correcta – y la determinación para encontrarla.
In the year 2006, someone called Vejeta (me) contacts the authors to relicense the code, manages to contact Ed Barlow who gives permission to relicense it.
On February 23, 2011, vejeta.com receives a message through its contact form. It’s Adam Bryant who has heard news of the request to release the code. He grants permission to release the code under GPL.
The original code could be extracted and assembled from the original USENET messages with some tools that I don’t remember now.
Pero bueno, el motivo de esta publicación es para guardar una chuleta sobre el «spectemu», este emulador es tan antiguo que intenta encontrar el dispositivo «/dev/dsp», el cual ya no existe en los Linux actuales, y falla.
Sin embargo, podemos ejecutarlo así:
padsp xspect Demo.Cursed.Castle.2.tap
Para que pulseaudio se encargue de simular el dispositivo para xspect.
Y a partir de aquí: LOAD «» dentro del emulador de Spectrum.
Y Ctrl-P, Ctrl-S para simular PLAY y PAUSE de la cinta.
A disfrutar.
Manage Cookie Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Siempre activo
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Statistics
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.