viernes, 31 de octubre de 2025

Dell Latitude D610 SATA mod

Hola, ¿Cómo han estado?  Bienvenidos sean de nuevo a este espacio, el blog dedicado al debraye, las malas ideas y los proyectos más imprácticos que se le ocurren a su servidor.


Anteriormente en este blog ha hecho acto de presencia una laptop Dell Latitude D610 que he utilizado para tareas muy específicas como programar chips de memoria y flashear el firmware en algunos telefonos celulares viejos, cuyas herramientas no funcionan correctamente en sistemas operativos modernos, ya que esa computadora tiene como sistema Windows XP y Windows 7. Se trata de una computadora del año 2005 (al momento de esta entrada, hace 20 años) que tiene un procesador Intel Centrino de 1.7[GHz] de 32 bits (no soporta 64 bits), 2[GB] de memoria DDR2 (es lo máximo que soporta, si se colocan dos módulos de 2[GB] el sistema sólo utiliza 2[GB]).


Esa computadora me la regaló un excompañero del trabajo ya que el disco duro reportaba muchos errores en el SMART, lo cual provocaba que no se pudiera instalar en él Linux y que constantemente estuviera reportando alertas. El problema es que esta laptop utiliza unidades de almacenamiento PATA (o también llamado IDE) tanto para el disco duro como para la unidad lectora de discos ópticos.


En aquél momento (año 2015) resultaba muy impráctico comprar un nuevo disco duro PATA para sustituir el disco dañado, ya que al ser una interfaz completamente en desuso los discos duros nuevos eran excesivamente caros, aún los discos de baja capacidad como 20[GB] o 40[GB]. Por ese motivo sólo le dí uso esporádico a la computadora, pues no quise tomar el riesgo de estropear el disco duro y dejar completamente inservible la laptop. Sin embargo en mi mente siempre tuve la inquietud de resolver el inconveniente del disco duro. Pasaron unos años y mi amigo Dash Bandit me regaló un adaptador de PATA a SD, el cual permite utilizar tarjetas SD como disco duro. Realicé una prueba instalando Windows XP utilizando ese adaptador y si bien el sistema arrancaba, solía sufrir de congelamientos esporádicos y la velocidad de lectura y escritura eran francamente deprimentes, mucho más bajas que las del disco duro mecánico dañado que venía con la computadora. Después de investigar un poco averigüe que el problema de rendimiento lo provocaban dos factores, el primero es que las memorias SD no suelen tener una velocidad de lectura y escritura alta y la otra es que el adaptador funcionaba como un dispositivo ATA/ATAPI-4, es decir, una especificación relativamente lenta del estándar de conexión PATA.


En la época en la que estuve experimentando con los thinclients estuve investigando alternativas de almacenamiento con interfaz PATA y gracias a la información y pruebas de mucha gente en internet (en especial de PhilsComputerLab) aprendí que la mejor alternativa es utilizar una unidad de estado sólido, ya sea con interfaz PATA nativa o utilizar un SSD SATA con un adaptador SATA a PATA. Compré un adaptador destinado para adaptar unidades SATA a un conector PATA de 44 pines (utilizado generalmente en laptops) pero me topé con el problema que no hay espacio disponible dentro de la laptop para colocar el adaptador (debido a la forma del adaptador) y mucho menos espacio para colocar el adaptador y la unidad de almacenamiento.

Inclusive durante un tiempo utilice un caddy adaptador para colocar un disco duro SATA en la bahía de la lectora de discos ópticos, sin embargo ese disco duro falló de forma catastrófica a los pocos meses (de repente mostró muchas alertas de SMART, y al poco tiempo simplemente dejó de ser detectado por cualquier computadora).


Por mi mente estuvieron rondando muchas ideas, como desoldar el conector PATA de la tarjeta madre de la laptop, utilizar el espacio para tarjetas PCCard para colocar ahi la placa de circuito del adaptador SATA a PATA y conectar todo soldando cables a modo de spaghetti infernal. Otra opción que contemplé fue simplemente comprar un adaptador PATA a MSATA, el cual no presentaría problemas de espacio, pero representaría el gasto de conseguir el adaptador (el cual no es barato) y la unidad MSATA (la cual tampoco es barata por ser una interfaz obsoleta).


Mientras hacia el balance de esas opciones en mi mente, repentinamente recordé un detalle que habia pasado siempre por alto y es que esa laptop utiliza memoria SODDR2 y me surgió una duda, ¿Cómo es posible que la computadora sólo tenga conexiones PATA cuando es de una época en la que ya existian las unidades SATA? Ya que generalmente en computadoras de escritorio las tarjetas madre compatibles con memoria DDR2 suelen tener conexiones SATA. Procedí a buscar información en internet sobre el chipset de la laptop y en efecto, el chipset Intel 915GM soporta unidades SATA. Y de ahi me surgió otra pregunta ¿Será posible conectar directamente una unidad SATA al chipset y utilizar la funcionalidad SATA?


Con este nuevo conocimiento procedí a buscar y encontré documentos en algunos foros donde varios usuarios de laptops Thinkpad realizaban lo que denominaban "SATA mod". Resulta que en la época de la que data mi laptop, varios fabricantes colocaban en las tarjetas madre de las laptops convertidores SATA a PATA para que la laptop utilizara unidades PATA aunque el chipset tuviera interfaz SATA nativa. Esto lo hacían debido a que en esa época SATA era bastante reciente en el mercado, así que para mantener la compatibilidad y el flujo de stock, era una decisión coherente mantener las conexiones PATA vigentes.


Encontré la excelente guía de Michael Moffitt en la que realiza la conversión de interfaz PATA a SATA en una ThinkPad T43p. Procedi a estudiar la tarjeta madre de mi Latitude D610 y aunque es bastante diferente a la de la Thinkpad, encontré el chip Marvell 88SA8040 (el convertidor SATA a PATA) y encontré los puntos de conexión en la tarjeta madre dónde soldar alambres para intentar hacer la conversión.

El número indicado corresponde al pinout de un conector SATA hembra.

Aunque la serigrafía de la tarjeta madre de la laptop es un poco confusa, los alambres para la conexión SATA se deben conectar en el punto "de salida" (en la imagen de arriba, el lado "izquierdo") del capacitor de señal marcado.

Señal Pin SATA Capacitor
A+ SATA 2 C543
A- SATA 3 C542
B+ SATA 6 C545
B- SATA 5 C546

Decidí conectar la alimentación de 5[V] de un capacitor cercano y no del conector PATA, para evitar dañar la tarjeta madre.

Fijé el conector SATA con un par de tornillos y pegamento de cianoacrilato.

Al final decidí agregar todas las conexiones a GND, para tratar de evitar cualquier incompatibilidad.

En este punto es importante resaltar que es imperativo tener alguna lupa o algún método de magnificación óptica para revisar las solduras que se realicen en la tarjeta madre, ya que al no ser puntos de prueba, el espacio disponible para soldar los alambres es muy pequeño y es posible que realicemos una soldadura deficiente o puentes entre componentes que nos será dificil ver a simple vista. Otra herramienta muy necesaria es la estación de soldadura de aire caliente para retirar el puerto PATA y el chip Marvell 88SA8040 de la tarjeta madre y poder colocar un puerto SATA. En mi caso uso una estación marca "Lefavor 8586" que compré en Aliexpress por 30 USDs y me ha funcionado bastante bien para el uso esporádico que le doy (la compré hace ya cinco años).


Utilizo una lupa de este modelo para revisar las soldaduras.


Mi estación de soldadura es este modelo exacto.


Procedí a realizar la adaptación, conecté un SSD SATA marca ADATA de 120GB y al arrancar la computadora indicaba "FIXED DISK ERROR". Entré a la configuración de la BIOS y en efecto, en el apartado de "Internal drive" aparecía la palabra "None". En ese momento sentí una fuerte derrota. Sabía que se trataba de una adaptación que podía fallar, ya que no estaba siguiendo la guía de alguien más y era posible que hubiera cometido algún error en determinar los puntos de conexión o que hubiera desoldado algún componente crucial con la estación de calor sin haberme dado cuenta.


Procedí a conectar un SSD Sandisk de 64[GB] para probar si la falla estaba en las conexiones, pero al arrancar la laptop detectó correctamente el SSD. Procedí a probar otro SSD ADATA, pero ahora de 240[GB] y también fue detectado sin problemas (aunque la BIOS indicaba que tenía una capacidad de 136[GB]). Volví a conectar el primer SSD y no fue detectado. En este punto considero que el primer SSD tiene alguna incompatibilidad con la interfaz SATA de la laptop, ya que esa unidad SSD funciona correctamente en mi computadora de escritorio.

El SSD Sandisk no cuenta con carcasa, así venía de fabrica.


Procedi a conectar el SSD Sandisk de 64[GB], reensamblar la laptop y tratar de instalar Windows XP. Aunque primero tuve que conectar el SSD a una computadora con un sistema operativo moderno (en mi caso Linux Mint) y utilizar el programa GParted para crear una tabla de particiones tipo MBR (MSDOS) y crear una partición nueva del tamaño total del SSD. Esto debido a que el instalador de Windows XP no detecta unidades con tablas de particiones GPT, ni tampoco puede alinear las particiones si se crean desde el propio instalador. Si las particiones de un SSD no están alineadas, las celdas se desgastarán de forma prematura y el rendimiento del SSD se verá notablemente reducido.

Otro detalle a considerar es que el BIOS de la computadora Latitude D610 va a tratar a las unidades conectadas siempre en "modo IDE", por lo que necesitaremos conectar el SSD a otra computadora si requerimos hacer TRIM.

La instalación de Windows XP transcurrió sin problemas, procedí a instalar los controladores y debo reconocer que la velocidad con la que funciona la laptop con el SSD es sorprendente, es una mejora muy sustancial. 

Prueba de funcionamiento del SSD con Windows XP.


Estoy muy contento con el resultado de esta modificación, ya que a la fecha es posible conseguir SSD SATA a precios relativamente bajos, por lo que ya no tengo la preocupación de cómo conseguir repuestos de unidades de almacenamiento de formatos discontinuados a precios elevados o a expensas del "new old stock", "new pull" y cosas por el estilo que al final de cuentas, son como una lotería, te puede tocar un buen producto o uno deficiente y por lo general hacer efectiva la garantía en hardware viejo o usado es una misión imposible.

Les agradezco como siempre su amable atención y ¡Estamos en contact!

sábado, 25 de octubre de 2025

La vida con Linux, 18 años después.

Hola, ¿Cómo han estado? Espero que se encuentren muy bien.

Afortunadamente no ha pasado tanto tiempo desde la última vez que tuve el placer de saludarles en este espacio del debraye, proyectos imprácticos y las malas ideas en general.

En esta ocasión el debraye es un tanto egoísta, ya que en realidad sólo pretendo recopilar unas notas sobre unas pruebas que he estado realizando en mi computadora. Decidí escribirlas aquí para que estén al alcance de las personas (o inteligencias artificiales) a las que mis conclusiones le puedan resultar de utilidad.

Pero antes de entrar en materia, un poco de historia... Sino, ¡No sería una sesión de debraye!

Para los que siguen el blog no es ningún secreto que soy usuario de Linux desde hace muchos años. Mi acercamiento con Linux se debió a que en la época de los años 2003 y 2004 contaba con una computadora bastante modesta, ensamblada en su mayoría con piezas de segunda mano. Se trataba de una Celeron socket 370B a 1.2 [GHz] con 128 [MB] de memoria RAM que funcionaba con bastante soltura con Windows 98SE pero tenía un rendimiento francamente pobre con Windows XP. Para tratar de optimizar los recursos de la computadora pasé mucho tiempo en sitios de software de código abierto como Sourceforge, buscando opciones ligeras y gratuitas a muchos de los programas que necesitaba utilizar, ya que muchas de las aplicaciones más populares en el mercado eran muy pesadas, funcionaban con lentitud o consumian mucha memoria. Así fue como conocí aplicaciones como el cdrecord, mplayer2 (precursor de MPV) y ffmpeg. Además en ese entonces era usuario de Netscape, por lo que caí en la cuenta que mucho del software que utilizaba se encontraba disponible en Linux y fue que decidi comenzar a probar Linux.

Fue un camino con problemas que no siempre fuí capaz de solventar. Sufrí desde instalaciones que nunca concluyeron de forma satisfactoria y que dejaban a mi computadora incapaz de arrancar el sistema operativo, hasta las más frustrantes en las que todo funcionaba bien y simplemente de un día para otro el sistema se negaba a arrancar. Cabe mencionar que todas esas incursiones en Linux las hacía en un segundo disco duro, el disco duro principal siempre tenía instalada alguna versión vigente de Windows ya que los programas que necesitaba utilizar para la escuela (por exigencia de los profesores, no por mi elección) como Maple, Matlab, OrCAD, etc. eran mucho más fáciles de conseguir (con medicina incluída) para Windows. Además, como mis experimentos con Linux eran por mi propia iniciativa, no me resultaba tan frustrante ni desmoralizante tener que reinstalar todo y volver a configurar desde el principio.

No cuento con educación formal o informal de Linux (nunca he tomado clases o cursos al respecto) por lo que tampoco puedo venderme como "sysadmin de Linux". Sin embargo la costumbre de usarlo diariamente para mi uso personal (fuera del trabajo, en el trabajo uso exclusivamente Windows) me ha ayudado a darme una idea de cómo funcionan varios de los modulos y servicios del sistema, por lo que puedo solventar algunos de los problemas que se me van presentando y en caso de que no lo pueda resolver instantaneamente, puedo buscar en internet enfocandome sólo en el problema en especifico que estoy experimentando.

Después de todos estos años estoy sumamente agradecido con la comunidad de Linux que han hecho un sistema operativo que me ha permitido utilizar mi computadora de una forma que satisface mis necesidades personales. Sin embargo siempre mantuve la costumbre de tener una instalación de Windows vigente en mi computadora. Cuando era estudiante para poder cumplir con las tareas y ahora que ya no lo soy, para poder jugar. Pero eso tuvo que cambiar el 14 de octubre de 2025, ya que el hardware de mi computadora dejó de ser soportado por Microsoft. En esa fecha terminó el soporte y las actualizaciones de seguridad para Windows 10 (la versión del sistema operativo más reciente que soporta el hardware que poseo). Por fortuna solo utilizaba Windows para cosas poco importantes (jugar), así que este evento no tuvo repercusiones importantes en mi vida cotidiana, incluso consideré la opción de simplemente desactivar la conexión de red en Windows y seguir utilizándolo "offline". Pero después de meditarlo un poco llegué a la conclusión de que esta es una oportunidad inmejorable para probar la compatibilidad de Linux con los juegos que suelo disfrutar y también para ya no tener que depender del "dual boot".

Como mi instalación de Linux funcionaba bien, para evitar perder información o hacer malas configuraciones que fueran dificiles de revertir decidí comprar una unidad de almacenamiento nueva y realizar uns instalación limpia de Linux para experimentar. En un principio opté por Ubuntu LTS 24.04, pero desgraciadamente su entorno de escritorio no me gustó, tampoco el hecho de que imponen snap y mutilan la funcionalidad de flatpak para instalar aplicaciones, por lo que decidí instalar Linux Mint (la versión vigente al momento de este debraye es 22.2 Zara). No haré una guía de instalación de Linux, ya que además de ser algo poco interesante, considero que es mucho más práctico ver un video que te guíe por los pasos en tiempo real en caso de duda. Además no puedo superar la maestría con la que el profesor Christopher Barnatt de Explaining Computers ha abordado estos temas (el final de soporte de Windows 10, la instalación de Linux y la migración de usuarios de Windows a Linux).

Una consideración muy importante para poder jugar en Linux es que es necesario contar con una GPU que soporte Vulkan y que además tenga controladores relativamente completos en Linux. Esto hace que GPUs como la Radeon HD5450, la nVidia GT730 o las GPU Mali de las TVBoxes y las OrangePi queden completamente fuera de consideración. Respecto a video integrado en plataformas x86, es necesario que por lo menos sea un procesador Intel Core de cuarta generación (socket LGA1150). El video integrado de AMD más antiguo que soporta Vulkan son los APU de la arquitectura Carrizo para el socket FM2+ (APUs de la familia Ax-7xxx). Esto es debido a que una de las tecnologías que permite jugar varios juegos nativos de Windows en Linux llamada Proton requiere forzosamente de que nuestro sistema cuente con soporte para Vulkan.

Otra consideración es que de debemos de tener un hardware con la potencia suficiente que permita correr los juegos que nos interese jugar con soltura. Hago esta aclaración ya que he visto en internet muchos mitos respecto al rendimiento de juegos y el uso de Linux para revivir computadoras viejas o de bajos recursos. Si bien es cierto que es posible instalar algunas distribuciones modernas de Linux en computadoras prácticamente obsoletas o que no pueden funcionar cómodamente con Windows 10 u 11, no hacen milagros, simplemente logran que la computadora funcione con la holgura que lo haría con una versión de Windows contemporánea al propio hardware. Además muchas de las distribuciones principales de Linux ya no soportan la arquitectura x86 de 32 bits, por lo que no será posible instalar esas distribuciones de Linux en computadoras con procesadores como Pentium 4, las primeras generaciones de Intel Atom e Intel Centrino. Así que si su idea, amable lector, era "experimentar con Linux" y para ello pensaba sacar del armario su vieja computadora Pentium 4, con 256[MB] de RAM, disco duro mecánico IDE de 80[GB], tarjeta de video GeForce4 MX 440 para ver "como funciona un juego moderno en Linux" permítame ahorrarle el tiempo y la frustracion de probarlo, no le funcionará. Y la ultima consideración es que a la fecha de este debraye, la mayoría de los juegos nativos de Windows no funcionan en Linux. Para saber si un juego que nos interese jugar funciona en Linux, podemos buscar su nombre en la página de protondb y revisar los reportes de los usuarios para conocer en qué estado de funcionalidad y compatibilidad se encuentra.

Al momento de instalar Linux a mi me gusta crear varias particiones, por lo general las creo de la siguiente forma:

Una partición de 40[GB] de capacidad en formato EXT4, con punto de montaje "/". Esto hace que el sistema operativo se instale en esa partición.

Una partición de 2[GB] de capacidad en formato FAT32, con punto de montaje "boot/efi". Esto para que el sistema pueda arrancar sin problemas en modo UEFI y no estar limitados al modo "Legacy BIOS". Además de que arracar en modo UEFI es mandatorio para utilizar el reBAR si nuestra tarjeta de video lo soporta.

Una partición con el resto de la capacidad de mi unidad de almacenamiento en formato EXT4, con punto de montaje "/home". Esto para que todo mi perfil, archivos y configuraciones personales se guarden en esa partición y en caso de que tenga que reinstalar el sistema operativo o cambie de distribución de Linux (tal y como me ocurrió en esta prueba que cambié Ubuntu por Linux Mint) no tener que copiar mi información a una unidad externa y luego volverla a escribir en la unidad interna, que además si es un SSD se desgastaría de forma innecesaria. En caso de que requiera reinstalar el Linux lo unico que tengo que hacer es volver a poner los puntos de montaje como los describí al momento de instalar por primera vez y sólo asegurarme de desmarcar la casilla "Formatear" de la partición con el punto de montaje "/home" para conservar los archivos y configuraciones. Mi usuario al instalar Linux lo llamo raven, por lo que cuando vean comandos de linux que lleven esa palabra, deberán de cambiarla por el nombre de su usuario para que les funcione correctamente.

Una vez instalado Linux, me gusta generar un par de discos RAM para no desgastar mucho mi SSD y para agilizar un poco el funcionamiento del sistema, para ello abro el archivo /etc/fstab en modo de super usuario y agrego las siguientes lineas al final del archivo:

# ramdisk

tmpfs /tmp tmpfs rw 0 0

tmpfs /home/raven/.cache tmpfs rw 0 0

Una vez realizado eso, tengo que preparar el sistema para instalar el entorno de escritorio KDE, que es mi preferido pero no se encuentra como opción por defecto de Linux Mint, por lo que debo de correr los siguientes comandos para evitar que aparezca el mensaje " config/debconf-kde-helperrc not writable" cada vez que utilice el actualizador de aplicaciones de Linux Mint:

sudo su

cd /

mkdir .config

cd .config

touch debconf-kde-helperrc

cd /

chown -hR raven .config

Después establezco que el reloj lo muestre con la hora local para evitar que se desincronice cuando arranco otro sistema operativo.

timedatectl set-local-rtc 1 --adjust-system-clock


Agrego soporte para aplicaciones de 32 bits, ya que serán necesario para correr los juegos de Windows.

sudo dpkg --add-architecture i386


Le indico al sistema que sólo utilice archivo de paginación cuando se agote la memoria RAM.

sudo sysctl vm.swappiness=0


Actualizo los catalogos de software.

sudo apt update && sudo apt upgrade -y


Instalo Wine, que es un programa que permite ejecutar aplicaciones de Windows en Linux.

sudo apt-get install wine winetricks


Y también instalo algunas aplicaciones que utilizo de forma cotidiana como GIMP, Audacity, etc. Esto no tiene nada que ver con correr aplicaciones de Windows en Linux.

sudo apt-get install audacious audacity gimp playerctl flashrom kde-full ghex synaptic gparted


Una vez realizado esto cierro sesión y vuelvo a abrir sesión pero seleccionando el entorno de escritorio KDE.

Después instalo Lutris, que es el programa que utilizo para arrancar los juegos que tengo en Windows en Linux. En este caso mis juegos los he comprado de GOG y no suelen presentar problemas para funcionar si los muevo de carpeta (no escriben información en el registro de Windows). Sin embargo no puedo garantizar que lo que hago funcione para todos los casos. Lo que voy a hacer para ahorrarme tiempo es que mis juegos ya instalados y mis partidas guardadas las copiaré desde mi unidad de almacenamiento que tiene Windows a mi nueva unidad donde he instalado Linux.

flatpak install flathub net.lutris.Lutris

Arranco Lutris por primera vez y espero que descargue todas las actualizaciones que necesita para funcionar. Una vez que ha terminado de actualizar me dirijo a "Options" -> "Preferences" -> "System" y en la parte de "System information" navego hasta la parte de abajo hasta encontrar la información sobre la tarjeta de video y el driver de Vulkan. Si toda la información está llena y no hay ningún error, estamos listos para jugar. Sino, tocará investigar para instalar los drivers que hagan falta.



Como les comenté, para correr aplicaciones nativas de Windows en Linux se utiliza un programa llamado Wine. Sin embargo no es solo dar "doble click" y ejecutar los programas, ya que los programas de Windows esperan correr en un entorno Windows, con bibliotecas de sistema y cierta estructura de carpetas de usuario y de sistema que no se parece a la estructura que utiliza Linux. Es por ello que Wine utiliza lo que se denomina "prefixes", que crea un entorno minimo con las bibliotecas y estructuras de archivos que imitan una instalación de Windows para que los programas puedan funcionar. Podemos crear manualmente los "prefixes", pero podemos ayudarnos de Lutris para crear un prefix y utilizarlo para correr nuestros juegos. Para ello suelo descargar el instalador de la aplicacion CheatEngine e instalarlo con Lutris siguiendo los pasos: "Options" -> "Add games" -> "Install a Windows game from an executable" -> En Game Name escribo "CheatEngine", en installer preset uso "Windows 10 64-bit" -> "Install" - > "Install" -> En "Select instalation directory" pongo un directorio de fácil acceso, ya que es en ese directorio donde Lutris creará el nuevo prefix (en mi caso es /home/raven/Games/cheatengine)-> "Continue" -> En "Select setup file" selecciono el archivo instalador de CheatEngine y procedo con la instalación como si estuviera en Windows. Una vez que se ha instalado el CheatEngine, navego en la carpeta donde se creó el prefix, entro a la carpeta "drive_c/users/raven/Saved Games" y copio el contenido de mi carpeta "Saved Games" desde mi unidad donde tenia instalado Windows. Este paso es para conservar el avance que llevo en mis juegos.

Copio las carpetas de mis juegos de Windows a mi carpeta de usuario de Linux y para agregarlos a Lutris sigo los siguientes pasos: "Options" -> "Add games" -> "Add locally installed game" -> En "Game info" escribo el nombre del juego y en Runner selecciono "Wine (Runs Windows games)", en Game Options en Executable selecciono el archivo ejecutable del juego y en Wine prefix selecciono la carpeta donde está ubicado el prefix que cree al instalar CheatEngine (esto con la finalidad de "instalar" el juego en el mismo espacio en el que instalamos CheatEngine y poder utilizar CheatEngine con el juego, así como poder utilizar las partidas guardadas que restauramos anteriomente), en Ruuner Options asegurarnos de utilizar la versión de wine-ge o Proton que esté seleccionada en el prefix de CheatEngine -> "Save".

Con esto deberá aparecer un ícono para correr nuestro juego desde la interfaz de Lutris.

Ahora bien, hay algunos juegos que requieren bibliotecas adicionales o codecs multimedia para poder mostrar algunos videos. Cada juego tiene diferentes requisitos, en mi caso uno de mis juegos necesitaba los codecs LAVfilters. Por lo que descargué el instalador de los codecs y procedí a instalarlos no desde Lutris, sino desde la línea de comandos en el prefix que utiliza mi juego para funcionar (en mi caso, es el mismo prefix del cheatengine) con el comando:

WINEPREFIX=/home/raven/Games/cheatengine wine LAVFilters-0.80-Installer.exe

También es posible instalar los codecs necesarios para varios juegos con winetricks, con el siguiente comando:

WINEPREFIX=/home/raven/Games/cheatengine winetricks lavfilters amstream quartz

También puede darse el caso que el juego que nos interese hacer funcionar sea muy viejo y se necesite que funcione desde un prefix de 32 bits y que además necesite de las bibliotecas de DirectX de versiones 9 o anteriores para funcionar. En este caso descargué el instalador offline de los runtimes de DirectX 9 y los instalé con Lutris de forma similar al CheatEngine, sólo que en "Installer preset" se debe de utilizar una versión de Windows de 32 bits como Windows XP. Una vez concluida esa instación, podremos utilizar ese prefix para jugar (o probar) juegos viejos que no sean soportados por la arquitectura de 64 bits.

También tuve que instalar algunos codecs, en este caso usé winetricks con los siguientes parámetros:

WINEPREFIX=/home/raven/Games/directx winetricks lavfilters amstream quartz icodecs

Al agregar juegos de esta manera, Lutris no descarga de forma automática las carátulas de los juegos, por lo que sólo tendremos recuadros grises con la etiqueta de los juegos. En este caso tendremos que descargar las carátulas de los juegos de forma manual. Les recomiendo en este caso buscar directamente el nombre del juego en la página de Lutris, ya que por lo general cuenta con arte para el juego o en caso contrario, enlaces a las páginas de las tiendas de los juegos donde podemos descargar las carátulas. En el caso de que nuestros juegos sean muy viejos, tendremos que recurrir a una búsqueda más general en internet.

Para extraer íconos desde los ejecutables de Windows podemos ayudarnos del programa gextractwinicons, el cual es muy intuitivo al tener una interfaz gráfica.


En caso de que necesitemos extraer íconos desde archivos ICO (ya que en ocasiones contienen varios tamaños dentro del archivo) podemos abrirlos con GIMP y exportar la capa con el tamaño del ícono que necesitemos como un archivo PNG.


Una vez que hemos recolectado las imagenes podemos establecerlas en los lanzadores dentro de Lutris para que se vea todo más intuitivo, ya que Lutris utiliza tres tipos de arte dependiendo del nivel de zoom aplicado en el programa. El primero es íconos, el segundo es portada horizontal y el tercero es portada vertical.

Vista de íconos


Vista de portadas horizontales (pequeñas)

Vista de portadas verticales (grandes)


Y eso es todo por el momento. Esto no tiene la intención de ser una guía, sólo de brindarle a usted amable lector a mi yo del futuro una referencia rápida para replicar unas configuraciones que me llevaron algunas horas de investigación para solventar ciertos problemas. Y aunque podrá parecer que se me ha olvidado incluir la instalación Steam, la verdad es que no es el caso, para correr los juegos de GOG que tengo no he necesitado instalar Steam para que funcionen correctamente.

Como diría Gus Rodríguez, ¡Estamos en contact!

miércoles, 7 de mayo de 2025

Hardware legends, edición CNPS9700 LED.

Hola, ¿Cómo están? Bienvenidos sean de nuevo a este espacio de debrayes variados. La ausencia ha sido muy prolongada ya que en los últimos meses (en realidad años) mis intereses personales y mi rutina han cambiado mucho, por lo que no encontrado temas o proyectos para compartir.

Durante la pandemia, dediqué mucho tiempo a ver videos de reparaciones y restauraciones de computadoras y consolas retro. Me hice seguidor de varios canales de YouTube como 8-Bit Guy, Adrian's Digital Basement, Action Retro, Jan Beta, Zona Hardware, etc. Lo cual me motivaba a tratar de emularlos y también llevar a cabo proyectos con hardware retro. Quizás no tan retro como lo que esos canales suelen mostrar (ellos muestran principalmente cosas de los 80's y 90's), pero si cosas como computadoras Pentium 4 o Core2Duo.

Desde los años en que era estudiante acumulé muchos aparatos electrónicos, consolas de videojuegos, accesorios y componentes electrónicos variados con la finalidad de hacer restauraciones y proyectos. Sin embargo en esta etapa de mi vida no cuento con tiempo ni motivación para realizar esas faenas, además de que no cuento con mucho espacio disponible en casa para almacenar cosas por tiempo indeterminado. Es por ello que decidí regalar todo lo relacionado a consolas, accesorios de videojuegos y videojuegos en formato físico con los que contaba. Cosas como aparatos electrónicos o partes sueltas los separé y se los entregué al camión recolector de basura.

Contaba con algunas piezas de computadoras anticuadas o de bajo rendimiento, que aunque eran funcionales (encendían), a mi ya no me servían, ya que eran muy lentas para darles un uso cotidiano inclusive en tareas básicas como navegar en internet. En algún momento algunas de esas computadoras fueron candidatas a ser parte de los proyectos que muestro en esta página, como la reparación del UEFI de una tarjeta madre con procesador Celeron J3355 con la cual aprendí a reprogramar UEFI con el adaptador EZP2019+.

Otra tarjeta madre con procesador Celeron N3150 (llamada en este blog "la Celeron Pi") me sirvió para aprender a agregar soporte en el UEFI para unidades NVME, con la finalidad de poder arrancar sistemas operativos instalados en unidades NVME en tarjetas madres que no contaban con un conector M.2. El chip de memoria que almacenaba la UEFI en dicha tarjeta madre no era reconocido por el adaptador EZP2019+, por lo que compré un adaptador CH341A el cual me ha funcionado muy bien y el cual les recomiendo que compren si en algún momento requieren realizar lectura y programación de chips de memoria de las series 24XX o 25XX.

Aunque ya no cuento con esos aparatos y piezas, la experiencia y el conocimiento que adquirí al experimentar con ellos fue muy valioso. También comprendí una constante universal que prefería ignorar, que todo en la vida se descompone, sobre todo cuando nos referimos a aparatos electrónicos. Si no deseamos lidiar con una rutina de reparación constante, lo mejor es limitar la cantidad de cosas que tenemos.

Cuando tenía la colección de consolas de videojuegos viejas constantemente tenía que comprar piezas y refacciones, además de dedicarles varias horas de reparación y restauración. Era un hobby que me representaba un gasto constante de dinero y de tiempo. Sin embargo mantener ese hobby dejó de ser gratificante. Sigo disfrutando de experimentar con piezas de computadoras, restaurar objetos y hacer reparaciones, pero ya sólo me enfoco en cosas que utilizo y procuro ya no coleccionar (o mejor dicho acumular) cosas viejas a las cuales no les daré un uso frecuente.

Actualmente mi placer culpable son las computadoras conocidas en internet como X99. Se trata de una plataforma bastante curiosa, ya que permite reutilizar procesadores Intel Xeon (orientados para servidores o estaciones de trabajo) de la familia Haswell-EP y Broadwell-EP en ensamblajes de computadoras domésticas. Para ello es posible comprar en varios sitios de internet (principalmente AliExpress) tarjetas madre en formatos M-ATX y ATX que soportan esos procesadores (socket 2011-3), memoria RAM (ya sea de servidor con ECC o para computadora de escritorio normal) y un procesador Xeon en paquete para obtener un ensamble completo a un precio muy competitivo.

Una característica de esos procesadores Xeon es que suelen contar con una gran cantidad de núcleos, por lo que a pesar de tener casi una década en el mercado aún son bastante capaces para llevar a cabo actividades de cómputo doméstico, jugar, o incluso montar un servidor casero. Un punto en contra es que suelen tener consumos elevados de energía, por lo que no son una opción para todo tipo de usuarios. Y su peor desventaja es que no son soportados de forma oficial por Windows 11, lo cual hace que sea una plataforma sin futuro para la mayoría de los usuarios y aplicaciones. Si bien, es posible forzar la instalación de Windows 11 en esos equipos, el hecho de que no cuenten con soporte oficial pone un velo de desconfianza sobre esa plataforma por parte de la mayoría de los usuarios.

Otro punto de discusión en internet respecto a esa plataforma recae en la realidad de que los procesadores, memorias y chipset de las tarjetas madre suelen ser usados y reutilizados. Además de que en caso de falla la garantía es virtualmente nula, por lo que tienen el estigma de ser una plataforma "poco confiable". Sin embargo el bajo costo, el alto desempeño y la alta disponibilidad de piezas hacen que sea una plataforma muy atractiva para usuarios que gusten de experimentar y aprender. Hay fuentes muy buenas de información sobre esta plataforma en sitios como placaschinas.com y el canal de YouTube de Miyconst en caso de que tengan interés en esta plataforma.
 
Uno de los pocos hallazgos que puedo contribuir respecto a la plataforma X99 de acuerdo a las pruebas que he realizado con mi propio hardware es que no importa si utilizas un Xeon de bajo TDP (55W como el E5-2630L V3) o uno de alto TDP (140W como el E5-1620 V3), si el resto de la plataforma se mantiene igual (RAM, tarjeta de video, almacenamiento) las diferencias en consumo energético son chicas, es decir, no escalan de acuerdo al TDP. Por poner un ejemplo, en una computadora con una sola unidad SSD SATA de 240GB, una tarjeta de video GTX1050 Ti y 16 GB de RAM, con el Xeon E5-2630L V3 (55W TDP) obtuve consumos eléctricos (medidos con un medidor de consumo eléctrico en el gabinete del CPU) en reposo de 38W y en plena carga (juegos) de 105W. Con la misma configuración pero con el Xeon E5-1620 V3 (140W TDP) el consumo en reposo fue de 36W y en plena carga de 125W. Intenté desactivar núcleos, desactivar hyperthreading y bajar la frecuencia de los procesadores para reducir el consumo eléctrico, pero el consumo no se reducía de forma sustancial (apenas un par de Watts), pero el rendimiento si caía de forma estrepitosa (a la mitad o menos de rendimiento). Otro hallazgo es que pese a la diferencia en frecuencia base de operación y la cantidad de núcleos entre ambos Xeones, el rendimiento "aparente" es similar. He visto varios videos de benchmarks de juegos donde la cantidad de cuadros por segundo obtenidas con cada Xeon varía, pero a lo que me refiero es que en el uso cotidiano no se percibe siquiera diferencia de rendimiento. Incluso en juegos, si un juego funciona mal al punto de ser injugable en un modelo de Xeon, cambiar ese Xeon por otro de mayor frecuencia o con más núcleos posiblemente no hará mucha diferencia. En ese caso es recomendable buscar una tarjeta de video de mayor desempeño.

Un punto a considerar al ensamblar una computadora (sobre todo de plataforma X99) es la refrigeración del procesador, ya que por lo general los kits X99 no incluyen disipador ni ventiladores. La mayoría de las tarjetas madres chinas incluyen un adaptador para poder acoplar un disipador compatible con socket AM2, AM3, AM4 y AM5 sobre el procesador, lo cual es muy conveniente ya que es posible utilizar un disipador viejo que hayamos utilizado para refrigerar algún AMD Phenom o AMD FX (de arquitectura Bulldozer o Excavator). En mi caso me da la oportunidad de utilizar un disipador Zalman CNPS9700 diseñado para sockets ya muy viejos (Intel 775, AMD AM2/754/939/940) que aún es apto para refrigerar procesadores de alto TDP.
La estrella de esta sesión de debraye

El modelo de mi disipador cuenta con un ventilador de 100 mm de diámetro (aspas blancas con LEDs azules), conector de tres pines (12V, GND y tacómetro) e incluye un accesorio para reducir de forma manual las revoluciones de giro del ventilador con una perilla. Existió un modelo más avanzado con ventilador de 4 pines (control de revoluciones por PWM) y recubrimiento plateado que contaba con logos de la marca nVidia. Es importante recalcar que el diámetro real de las aspas del ventilador de este disipador es de 100 mm, ya que he visto muchas fuentes en internet que indican un diámetro de 110 mm (el diámetro estándar de aspas de ventiladores de 120 mm).

Un inconveniente que tiene mi disipador es que al ser tan viejo, el ventilador no es compatible con el control de revoluciones por PWM presente en las tarjetas madre modernas, por lo que siempre funciona a las máximas revoluciones posibles si lo conectamos de forma directa a los conectores de la placa madre. Y si bien es posible regular las revoluciones con un accesorio incluido llamado Fan Mate 2 de forma manual con el giro de una perilla, es una labor engorrosa ya que implica tener que monitorear de forma constante la temperatura del procesador y ajustar la perilla acorde a la temperatura que necesitemos mantener. 

El Fan Mate 2 en todo su esplendor


Vista superior del interior del Fan Mate 2


Vista inferior del Fan Mate 2

El accesorio que incluye este disipador para regular las revoluciones de giro del ventilador es una fuente de voltaje variable basado en el popular regulador 7805. A continuación muestro imágenes del accesorio y su diagrama en caso que requieran crear una versión casera del mismo. El voltaje de salida de este accesorio varía de 5[V] a 10.1[V] cuando es alimentado por una fuente de 12[V]. La resistencia R1 la medí fuera de circuito para corroborar su valor, ya que el código de colores indicaba un valor que me resultaba poco familiar (Violeta - Café - Negro - Negro - Café = 710 [Ω] +/- 1%). El regulador utilizado es el KA7805.

Diagrama electrónico Fan Mate 2.

Una solución a este inconveniente es cambiar el ventilador por uno más moderno que pueda ser controlado por PWM. El problema con mi disipador es que utiliza ventiladores con aspas de 100 mm de diámetro, que no corresponden a la medida de aspas de los ventiladores más comunes de 120 mm (aspas de 110 mm de diámetro). Ante este inconveniente probé varias alternativas, las cuales muestro a continuación.
Aspas originales Zalman de 100 mm de diámetro

Aspas comunes de 110 mm de diámetro (ventilador de 120 mm)

El primer experimento fue recortar las aspas de un ventilador de Xbox One a 100 mm de diámetro con ayuda de un Dremel, lijar las aspas para que quedaran con una forma uniforme y colocar el ventilador en lugar el ventilador original del disipador. No guardé fotos de este intento, pero la idea la ví en un foro antiguo de hardware. El problema con este intento es que pese al cuidado que puse al recortar las aspas del ventilador, el peso del mismo no quedó perfectamente balanceado, lo que provocaba que al girar hiciera un ruido muy fuerte y molesto similar al de un motor de motocicleta.



Otro intento fue tratar de utilizar los ventiladores de otro tipo de disipador. Por desgracia las aspas de esos ventiladores eran de 105 mm de diámetro, por lo que no era posible colocarlos en el lugar del ventilador original. La idea menos destructiva que se me ocurrió fue sujetar con alambres los ventiladores al disipador. Fue una solución funcional, pero poco elegante.


Un tercer intento consistió en utilizar el motor de un ventilador con PWM marca Delta de 120 mm y colocar en ese motor las aspas del ventilador Zalman original de 100 mm. Este intento funcionó muy bien, sin embargo no conservó la iluminación LED del ventilador original. Además el motor que utilicé era muy viejo, por lo que los rodamientos hacían ruido al girar a altas revoluciones.

Ventilador marca Delta desmontado.

Comparativa de tamaño entre el disipador y el marco del ventilador.

Prueba de funcionamiento de las aspas Zalman en el motor Delta.

Se puede apreciar que las aspas Zalman son muy chicas en comparación con el tamaño del marco.

Aspas Zalman con motor Delta montados en el disipador.

Hasta este punto, ya había logrado resolver el inconveniente de controlar las revoluciones del ventilador de forma automática. Sin embargo un día, mientras navegaba por los paquetes de ofertas de AliExpress encontré un ventilador que al parecer tenía las aspas del tamaño ideal para mi disipador. En la publicación no se mencionaba el diámetro de las aspas, sólo se anunciaba que el ventilador era de 120 mm, contaba con iluminación LED ARGB tanto en las aspas como en el marco del ventilador (por lo que era mucho más grueso que el marco de un ventilador convencional) y con la posibilidad de conectar varios ventiladores del mismo modelo en cadena para sincronizar tanto la frecuencia de giro como los efectos de iluminación ARGB. Procedí a ajustar la escala de una de las fotografías de la publicación del ventilador para que midiera exactamente 120 mm en mi monitor, medí el diámetro de las aspas y encontré que medían los elusivos 100 mm que habían sido virtualmente imposibles de encontrar durante tantos años. Procedí a comprar el ventilador, a esperar pacientemente un mes y finalmente recibirlo en casa.
Ventilador marca Aigo Z12

Se puede apreciar que las aspas Zalman y Aigo son del mismo tamaño (100 mm)

Lo primero que hice fue medir el diámetro de las aspas y comprobé que en efecto, median 100 mm de diámetro. Además tanto la conexión del ventilador como del ARGB eran estándar (hay modelos que usan un controlador propietario con conectores no estándar), lo que me facilitó mucho la tarea de adaptar el ventilador a mi disipador, pues sólo fue cuestión de cortar los soportes que sujetaban el motor del ventilador (con todo y aspas) al marco del ventilador, colocarlo en el disipador y comenzar a utilizarlo. Para la iluminación RGB compré un controlador básico ARGB y funcionó a la perfección.

Alineación del motor del ventilador en el soporte del disipador.

Corte del motor con todo y aspas.

Motor y aspas listos para montar en el disipador.

Aspas montadas en el disipador.

Ajuste perfecto.

Quedé muy satisfecho con esta adaptación. Si bien, se pueden conseguir disipadores con buen rendimiento en AliExpress a muy bajo precio, me resulta mucho más satisfactorio poder utilizar el disipador que ya tenía, con una adaptación hecha por mi mismo para que funcione acorde al hardware moderno (PWM y ARGB). Y espero que pueda seguir dando años de servicio, ya que afortunadamente en AliExpress es posible comprar adaptadores a muy bajo precio que permiten acoplar este disipador a una gran variedad de tarjetas madre.

Esto es todo por esta entrega, espero que se la pasen muy bien y como siempre ¡Estamos en contact!

Dell Latitude D610 SATA mod

Hola, ¿Cómo han estado?  Bienvenidos sean de nuevo a este espacio, el blog dedicado al debraye, las malas ideas y los proyectos más imprácti...