Pioneer DVR-110D DVD±RW y Debian
Esta es una pequeña historia sobre el hardware, su convivencia con Linux y el debugging en general.
Antes de empezar les quiero decir que la mencionada grabadora está funcionando a la perfección bajo Debian Etch.
Resulta que una vez más compré hardware sin averiguar previamente el soporte bajo Linux. Hice la mitad de las tareas de un comprador responsable y sólo miré detalles técnicos y prestaciones. Después de instalada la grabadora descubrí para mi tristeza que sólo podía grabar un DVD-RW en 2X, siendo que era de 4X. Cómo eran mis primeras experiencias grabando DVDs supuse que tal vez había alguna incompatibilidad con el disco. Probé entonces con un DVD+R de 8X y otra vez sólo pude grabarlo a 2X. Entonces empecé a sospechar del software…, eso es olfato (Les Luthiers dixit).
Busqué por Internet y en algún lado leí que había que asegurarse que tuviera el DMA activado. Me fui derecho a la consola, hdparm -d1 /dev/hdc y zas!, Operation not permitted. Decidí probar con otro sistema operativo y arranqué mi PC con un LiveCD de Ubuntu 5.10. Ahí si pude activar el DMA. Otra prueba más, ahora con Knoppix y su parametro de booteo toram para poder grabar. Y entonces pude grabar el DVD-RW a 4X :). Ya me sentía mejor. El soporte en Linux era bueno, sólo que tenía que ver que pasaba con Debian. Guardé los logs de inicio y salidas de lsmod tanto de Ubuntu como Knoppix y los comparé con los de Debian. Incluso instalé el kernel de Ubuntu Dapper en Debian para probar y anduvo. Era obvio que el problema estaba en el kernel. La única diferencia que encontré es que en Debian cargaba el módulo ide-core, mientras que en las otras distros no. Además en los mensajes del kernel el soporte de SCSI arrancaba primero que el de IDE bajo Debian y en los otros era al revés. Investigando los .config de Ubuntu descubrí que traen el ide-core compiled in, por eso arrancaban antes.
Dispuesto a comprobar si era ese el detalle que no me dejaba activar el DMA casi me pongo a compilar el kernel con ide-core adentro. Ahí se me ocurrió que si le pasaba algún parámetro al kernel tal vez lo pudiera obligar a cargar el ide-core antes que scsi-mod. Miré por ahí y probé con hdc=cdrom. Inofensivo parámetro dije y cuando reinicié todo sigió igual, es decir, scsi-mod cargó antes que ide-core, sin perder las esperanzas y para honrar el metódico orden probé nuevamente con hdparm y esta vez anduvo!!!
Ya puse mi reporte de bug en Debian y actualizaré debidamente con el número de bug.
Update: Bug #352722
Les dejo una yapa. Con el kernel Linux 2.6.15 se agregó el soporte de SMART en el módulo libata, por lo que ahora puedo monitorear la temperatura de mi HDD como corresponde.


