SuPeR TuX

Lo hice y lo entendí

El blog de Vicente Navarro Jover
29 Oct

Las categorías no son etiquetas

¡Vale! ¡Vale! ¡Ya lo tengo claro! Las categorías no son lo mismo que las etiquetas:

Pero la verdad es que yo las estaba utilizando como si lo fueran, lo que me estaba ocasionando que el árbol de categorías creciera a demasiada velocidad, algo que no es lo que se espera de las categorías. Por ello, últimamente estaba siendo muy reticente en crear nuevas categorías, perdiendo así mucha flexibilidad en la clasificación de las entradas, lo que me estaba generando cierta frustración. Así que la reciente salida de Wordpress 2.3 con soporte nativo de etiquetas me ha venido como anillo al dedo para racionalizar las categorías, algo que debería de haber ocurrido ya hace tiempo, y para ponerme como loco a ponerle etiquetas a las entradas… y esta vez sin ninguna limitación.

De las páginas anteriores extraigo una recopilación de aspectos, bastante informales algunos de ellos, que ayudan a entender la diferencia entre categorías y etiquetas:

  • Las categorías se pueden usar como etiquetas pero las etiquetas como categorías, no.
  • En una comparación con un supermercado, las categorías son como los grandes carteles que indican las secciones (droguería, charcutería, congelados, limpieza, etc.) y las etiquetas son como la propia etiqueta de cada producto que nos lo describe.
  • Las categorías organizan jerárquicamente, las etiquetas, no.
  • Las etiquetas proporcionan meta-información (información sobre la información), las categorías, no.
  • Las categorías pueden tener nombres únicos. Las etiquetas tienen que tener nombres conocidos.
  • Las categorías pueden tener nombres largos. Las etiquetas tienen que tenerlos cortos, de una, dos o, a lo sumo, tres palabras.
  • Las categorías no ayudan a los buscadores a buscar información. Las etiquetas, sí, y además, los directorios de etiquetas pueden catalogar tu página.
  • Las entradas estarán normalmente en pocas categorías, pero puede tener muchas, muchas, etiquetas.
  • Las categorías ayudan a los visitantes a buscar información relacionada en la página. Las etiquetas ayudan a los visitantes a buscar información relacionada en tu página y fuera de tu página.
  • Las categorías existen antes de que se cree la entrada que se quiere categorizar, mientras que las etiquetas se crean al crear la entrada: ad hoc.
  • Las categorías normalmente tienen una granularidad constante, mientras que las etiquetas pueden ser muy generales, como “Linux”, o muy específicas, como “ext3″.
  • Las categorías se planifican, las etiquetas son espontáneas, fruto de un brainstorming momentáneo: Como ver una foto y escribir las palabras que te sugiere en ese momento.
  • Las categorías se relacionan como en un árbol. Las etiquetas se relacionan como en una red.
  • Las categorías son algo que eliges. Las etiquetas salen casi espontáneamente del contenido.
  • Las categorías ayudan a clasificar aquello de lo que hablo. Las etiquetas ayudan a compartirlo y extenderlo.

Por cierto, también estrenamos nube de etiquetas.

:wq

28 Oct

Linux no mata discos duros, se mueren solos

Me encuentro en Kriptópolis y en Barrapunto lo que parece el notición geek del año:

Pues qué malo que es el Ubuntu ese, ¿no? Pues a mí no me lo parece, la verdad. A mí me parece que los fabricantes de discos duros nos están vendiendo productos artificialmente poco duraderos. Vayamos por partes.

Resulta que hay una tecnología de fabricación de discos duros llamada de Load/Unload (Un Whitepaper muy aconsejable en PDF sobre el tema: Ramp : Ramp Load/Unload Technology in Hard Disk Driver, encontrado en Broken HDDs) cada vez más extendida, sobre todo en discos duros de portátil. Consiste en que el cabezal de lectura/escritura, en vez de estar permanentemente volando sobre el disco, se aparca frecuentemente, lo que teóricamente permite una mayor duración del disco, menor consumo y mayor protección contra golpes.

Ramp Load Unload Technology

Sin embargo, no se puede aparcar la cabeza un número indefinido de veces, sino que estos discos están preparados para un número máximo de ciclos de carga/descarga del cabezal que según el disco en cuestión puede ser de orden de 300K o 600K ciclos (K=1000). No es que justo cuando se llegue a ese número el disco va a dejar de funcionar de repente, sino que a partir de ahí el fabricante ya considera que puede dejar de hacerlo en cualquier momento. Paul nos cuenta que en varios de sus discos ha llegado a 600K, 900K y 1200K ciclos de carga/descarga antes de que empezaran a dar problemas. Pero eso sólo ¡en un año!

Yo me interesé por el problema nada más leer sobre él porque el disco de 2.5″ de marca Western Digital que tengo conectado a la EPIA EX10000EG (apareció de pasada en la entrada Sobre las VIA EPIA (V) ) hacía clicks muy frecuentemente. Lo notaba mucho porque cuando el disco se quedaba idle durante unos segundos, al volver al trabajajo casi siempre hacía un click que me disgustaba mucho pero que pensaba que sería normal (es un disco nuevo y tras varios tests no había encontrado ningún error). Ahora sé que cada vez que se oye uno de esos clicks lo más normal es que sea el cabezal en un ciclo de carga/descarga.

Pues bien, resulta que consultando los parámetros S.M.A.R.T. del disco con el comando smartctl, me encuentro con que el disco ya ha usado 7755 ciclos:

# smartctl -a /dev/hdc | egrep 'ID|Load_Cycle'
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
193 Load_Cycle_Count        0x0032   198   198   000    Old_age   Always       -       7755

Y no penséis que esta máquina se tira encendida semanas y semanas, ¡no!. Para llegar a ese número de ciclos, ese disco sólo ha pasado por una instalación de Debian y por todas las pruebas que le hice a la EX10000EG, incluyendo varios ratos de reproducción de vídeo. Por tanto, que haya consumido ya 7755 ciclos, que podría ser alrededor del 3% de los que el fabricante permite antes de que el disco sea declarado como “envejecido”, es una auténtica barbaridad.

En unas pruebas rápidas he podido ver que el número de ciclos crece muy rápidamente en pocos minutos y sin apenas usar la máquina:

Sun Oct 28 02:11:51 CEST 2007
193 Load_Cycle_Count        0x0032   198   198   000    Old_age   Always       -       7744
Sun Oct 28 02:15:51 CEST 2007
193 Load_Cycle_Count        0x0032   198   198   000    Old_age   Always       -       7753
Sun Oct 28 02:16:28 CEST 2007
193 Load_Cycle_Count        0x0032   198   198   000    Old_age   Always       -       7754

Como se comenta en los enlaces que hablan del problema, con el comando “hdparm -B” podemos modificar el nivel de gestión de energía que ha de tener el disco (usando APM):

# man hdparm
[...]
-B     Set  Advanced  Power  Management  feature,  if  the drive supports it. A low value means
       aggressive power management and a high value means better performance. A  value  of  255
       will disable apm on the drive.
[...]

Podemos reducirlo al máximo:

# hdparm -B 254 /dev/hdc

/dev/hdc:
 setting Advanced Power Management level to 0xFE (254)

O incluso deshabilitarlo:

# hdparm -B 255 /dev/hdc

/dev/hdc:
 setting Advanced Power Management level to disabled

El caso es que tras hacer lo último, el valor de Load_Cycle_Count en la salida del smartctl ya no crece más que en una unidad cuando arranco, así que me lo he puesto en el fichero /etc/rc.local, para que se ejecute siempre durante el arranque. Los clicks también han desaparecido, así que todo es mucho mejor ahora.

Y es que en este sistema, aunque le puse un disco de 2.5″ para que no consumiera mucho porque la fuente es tan sólo de 60W, tampoco necesito que sea muy estricto en materia de ahorro de energía como si se tratara, por ejemplo, de un portátil trabajando con baterías, y prefiero evitar un envejecimiento prematuro del disco.

El problema con Ubuntu, el que ha creado toda esta alarma, es que en modo laptop, que no está habilitado por defecto, el fichero /etc/acpi/power.sh configura el disco para que ahorre energía de la forma más agresiva posible, con -B 1, haciendo que el disco tenga muchos más ciclos de carga y descarga y muchos más clicks:

function laptop_mode_enable {
...
    $HDPARM -S $SPINDOWN_TIME /dev/$drive 2>/dev/null
    $HDPARM -B 1 /dev/$drive 2>/dev/null
}

En un bug report del problema que ya tiene bastantes meses, alguien ha probado con distintos valores de -B:

-B 128 -> 23 cycles in 10 minutes
-B 160 -> 29 in 10'
-B 180 -> 0 in 10'
-B 196 -> 0 in 10'
-B 200 -> 0 in 10'

Se ha generado alarma por Ubuntu e incluso en algunas otras distribuciones pero, en realidad, hay firmwares y BIOS que ya activan modos APM agresivos durante el arranque, como leemos en Problem with hard drive clicking, y como me ha pasado a mí mismo, que estaba sufriendo el problema con una Debian que no toca absolutamente nada de los parámetros del disco.

¿Y el problema no pasa en Windows? Pues yo no tengo ningún disco que haga clicks y que tenga Windows para probar si tras un rato de funcionamiento el valor de Load_Cycle_Count crece, pero yo esperaría que sí, ya que Windows suele optimizar bastante bien el consumo de energía en portátiles (los fabricantes de los mismos en realidad lo prueban todo en Windows).

Sí que puede ocurrir que en Linux los ciclos de carga y descarga ocurran mucho más a menudo, porque en Linux el kernel y los procesos se dedican a escribir muy frecuentemente en disco, siendo los periodos en los que el disco está idle mínimos. Cualquiera que haya intentado que un disco duro se quede parado tras un periodo de inactividad del sistema en Linux, se habrá dado cuenta de que no es una tarea fácil:

Pero para mí, me parece que lo más importante a recalcar es que en raíz, esto no es un problema de ningún sistema operativo, ni de ninguna distribución: ni Ubuntu, ni Debian, ni Fedora, ni Windows. No perdamos de vista que esto es un problema generado artificialmente por los fabricantes de discos duros que hacen su hardware con absurdas limitaciones.

Y, por cierto, no olvidemos que este es un problema sólo de los discos que se fabrican con esta tecnología de load/unload, a los que también podríamos llamar click-powered hard disks. En otros discos, dicho contador ni se estrena:

# smartctl -a /dev/sdb | egrep 'ID|Load_Cycle'
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
193 Load_Cycle_Count        0x0032   253   253   000    Old_age   Always       -       0

Una curiosidad para acabar: ¿Sabías que con la opción -M del hdparm puedes configurar tu disco para que intente hacer menos ruido?

:wq

Actualización 1/1/08: En A vueltas con el “hdparm -B” en Debian Lenny vuelvo a tratar el tema, enfocándolo esta vez a ver cómo están tratando el problema los desarrolladores de Debian en Lenny.

Actualización 2/5/08: Hace tiempo que está en los comentarios, pero creo que es importante recalcar que en lugar de añadir el comando “hdparm -B 254” al fichero /etc/rc.local, es mejor editar el fichero /etc/hdparm.conf y poner algo así (cambiando el fichero de dispositivo y el valor de apm según nuestras necesidades):

/dev/sda {
apm = 254
}

Seguido por el comando:

update-rc.d hdparm defaults

para que el hdparm se ejecute durante el arranque.

Actualización 5/5/08: Parece que en Ubuntu Hardy Heron no hay /etc/init.d/hdparm, de modo que probablemente siga siendo buena idea usar el /etc/rc.local.

28 Oct

¡Mamá, mamá! ¡Google me tiene manía!

Acabo de vivir mi segunda actualización de PageRank. La primera fue a finales de Abril y la segunda en las últimas horas.

Para aquellos que no lo sepan aún, el PageRank es el peso que le da Google a una página a la hora de hacer sus cálculos para devolver los resultados. En los servidores de Google dicho valor se está calculando y actualizando constantemente. Google nos deja verlo en forma de valor entero de 0 a 10 en una barrita verde de su barra de herramientas:

PageRank kernel.org

Sin embargo, el valor que vemos ahí no es el actual que están usando los servidores de Google, sino que Google periódicamente (normalmente cada 3 meses, pero esta última vez ha sido mucho más) exporta los valores de PR a determinados servidores (toolbarqueries.google.com) a los que accede la barra de herramientas de Google para poder sacarnos la barrita verde con el valor adecuado. Hasta que llega la siguiente actualización de los servidores de PR, el valor permanece inamovible y las nuevas páginas web que se van creando y no existían cuando la anterior exportación, simplemente no tienen PR.

Hay incluso un módulo de Perl, el WWW-Google-PageRank que nos permite obtener dicha información desde la línea de comandos:

$ ./PageRank.pl http://barrapunto.com
6

Bueno, pues resulta que en la actualización de Abril, unos pocos meses después de comenzar con la andadura del blog, Google le dio nada más y nada menos que un PR de 5 a la página principal y un PR de 6 a la entrada de las reglas udev, que la verdad es que fue muy enlazada.

En la última actualización, el PR de la página principal es de 1 y el de la entrada de las reglas udev es de 3…

El PR es muy importante para los profesionales de la cosa del SEO (Search Engine Optimization) que se llevan grandes disgustos o alegrías en cada actualización del PR, pero es que en ello va su sueldo.

En mi caso, yo no tengo publicidad en el blog (me horroriza encontrarme los anuncios en las páginas que visito, así que de momento así seguirá) y lo hago sólo por pura devoción, ya que no gano nada con él y sí que pierdo mucho tiempo. Cuando lo empecé dije que era para tener a mano mis “recetas” y que le pudieran servir a alguien más. Tal declaración de intenciones sigue en pie, y en realidad me debería de dar igual la cantidad de personas que puedan llegar aquí y encontrar una solución a sus problemas. Pero no, no es así. Igual que me alegré mucho cuando la página aprobó el examen de Google, me ha fastidiado un montón este muy deficiente.

¿Y cuál puede ser la causa? Pues no tengo ni idea. Que yo sepa, no incumplo ninguna de las directrices de calidad de Google. Hay páginas que copian íntegramente el contenido de entradas de aquí, lo que puede ser malo de cara a Google, pero no puedo hacer nada al respecto. Si citan el origen, cumplen la licencia CC que le he dado a los contenidos.

Esta actualización de PR está siendo notoria por grandes bajadas de PR de muchas páginas que vendían enlaces, pero yo ni vendo, ni compro enlaces, que no está el bolsillo para tales trotes. Sin embargo, sí que veo de vez en cuando páginas de agregación de enlaces que se dedican a añadir enlaces a entradas sin ton ni son. ¿Se pensará Google que todos esos enlaces los estoy comprando?

En fin, que en principio los únicos que salen perdiendo son aquellos navegantes de Internet que podrían encontrarar una solución a su problema o a su duda en estas páginas y no lo hagan porque Google no les ha traído. Pero yo también pierdo un poco de la satisfacción de ver que lo que haces le pueda servir a más gente. Al fin y al cabo, si esto fuera sólo para mí no me esforzaría tanto…

Por otra parte, también es cierto que los lectores habituales, esos que te tienen en el agregador de feeds y que ves a menudo en los comentarios son mucho (¡qué digo! ¡muchísimo!) más satistfactorios que el lector esporádico de Google que te visita, lee lo que necesita y desaparece (aunque digo yo que alguno se quedará, ¿no?). Con el lector habitual se establece una relación en ambos sentidos, se nota lo que ha resultado interesante y lo que no, se percibe una evolución en el tiempo y se encuentran nuevas cosas sobre las que leer y opiniones realmente útiles. En definitiva… ¡es más humano!

¡Y que no se me olvide! Por favor, dejad comentarios en las entradas de los blogs que os gusten. Los que no tenemos publicidad, lo único que cobramos es teneros y sentiros ahí, al otro lado del cable.

¡Gracias por leerme!

PD: Y que yo tenga que aguantar que me venga a estas alturas el Google este a catearme;-)

:wq

28 Oct

Los DPI en los navegadores web de Windows y Linux

En la entrada anterior, Los DPI en pantalla en Windows y Linux, hemos visto cómo gestionan los sistemas operativos los DPI de la pantalla. Sin embargo, tanto en Windows como en Linux podemos encontrarnos con que tras modificar la configuración de los DPI, las fuentes de los textos del navegador no sean escaladas proporcionalmente al valor de DPI del sistema operativo. Es importante aclarar que no estamos hablando de las fuentes del menú, barra de aplicacione, iconos, etc. que esas sí que se escalan correctamente, sino a las fuentes del texto de las páginas a las que se accede.

Para intentar aclarar el problema, primero nos tenemos que fijar en las unidades de medidas que define el estándar CSS 2.1. Por un lado tenemos las unidades de medidas relativas a otra unidad:

  • em: the ‘font-size’ of the relevant font
  • ex: the ‘x-height’ of the relevant font
  • px: pixels, relative to the viewing device

Podemos pensar que un número de pixels px no es una unidad de medida relativa, pero sí que lo es si pensamos que la página se puede mostrar en papel si la imprimimos o en monitores muy grandes, muy pequeños, en un proyector. Tú pones px cuando diseñas la página web pero luego ese pixel puede medir físicamente un centímetro si se muestra en un proyector. De ahí la relatividad de dicha medida.

Para una pantalla, el estándar indica como referencia que estando los ojos a una distancia de un brazo (28″) de la pantalla, un pixel ha de verse con un tamaño de 0.26mm (1/96 in) o, lo que es lo mismo, 96 DPI:

CSS 2.1 pixel

Por otro lado, tenemos las unidades de medida absolutas para las que es necesario conocer las dimensiones físicas del dispositivo de salida:

  • in: inches — 1 inch is equal to 2.54 centimeters.
  • cm: centimeters
  • mm: millimeters
  • pt: points — the points used by CSS 2.1 are equal to 1/72nd of an inch.
  • pc: picas — 1 pica is equal to 12 points.

Vemos que pt se define como puntos de 72 DPI.

Sigue leyendo »

27 Oct

Los DPI en pantalla en Windows y Linux

Los DPI (dots per inch o puntos por pulgada) es una medida de resolución de impresión que especifica cuántos puntos de tinta o tóner pone la impresora por cada pulgada de papel. Son valores típicos, por ejemplo, 300 DPI o 600 DPI. El término se usa incorrectamente en pantallas y en escáneres, aunque en realidad dichos usos están muy extendidos. En las primeras, el término correcto es el de PPI (pixels per inch o pixels por pulgada), y en los segundos, es el de SPI (samples per inch o muestras por pulgada). En castellano podemos usar PPP que lo mismo valdría para puntos-por-pulgada que para pixels-por-pulgada. Yo voy a usar DPI, que es el término que se usa en todos los diálogos de configuración de Windows y Linux.

En esta entrada, vamos a intentar entender qué supone un valor u otro de DPI en distintos entornos y cómo configurarlo:

Sigue leyendo »

15 Oct

La resolución 1366×768

Hace mucho, mucho tiempo, los usuarios de ordenadores con nuestros monitores de tubo sólo teníamos unas pocas resoluciones entre las que elegir, en función de las características del monitor y de la memoria de la tarjeta de vídeo: 640×480 (VGA), 800×600 (SVGA), 1024×768 (XGA), 1152×864 (XGA+?), 1280×1024 (SXGA), 1600×1200 (UXGA). Todas ellas son 4:3 excepto la 1280×1024 que es 5:4… ¿Te habías fijado en que usando esta resolución en en un monitor de tubo 4:3 las fotos salen un poco achatadas? ¿Te habías fijado en que posiblemente tu monitor LCD de 17″ o 19″ con esta resolución nativa tenga físicamente relación de aspecto 5:4 y no 4:3?

La llegada de los DVD, con películas con relación de aspecto 2.35:1 y 16:9 trajo los primeros televisores 16:9 de tubo. Dado que en España las emisoras nunca se han propuesto emitir en serio en PALplus, era para lo único que servían, para ver DVDs. Por cierto, ¿soy el único en el mundo al que le desagrada extremadamente ver emisiones 4:3 achatadas hasta la exageración en lugares públicos y casas de amigos?

Poco a poco, se fueron introduciendo en el mercado monitores LCD, portátiles y televisores con relaciones de aspecto 16:10 y 16:9.

En el mundo de la informática, la relación de aspecto 16:10 es la que está partiendo la pana ahora mismo. La mayoría de portátiles tienen resolución nativa 1280×800 (WXGA), 1440×900 (WXGA+) o 1920×1200 (WUXGA) y en sobremesa, 1680×1050 (XSXGA+) también se ha popularizado en LCDs de 20″-22″. Y es curioso que sean tan populares, porque cualquiera puede darse cuenta que a igualdad de diagonal, una pantalla cuadrada tiene más área que una rectangular, por lo que a menos que el mayor uso de nuestro ordenador sea ver películas, una pantalla alargada , además de que suele ser más incomoda para trabajar, tiene menos área de trabajo. Pongamos un ejemplo en el que la pantalla alargada parte con un poco de ventaja por tener 0.4″ más de diagonal:

Típica pantalla 16:10 de 15.4″ de diagonal:

15.42=(16x)2+(10x)2 → x=0.8162″=2.0731cm

Área=16x·10x=678.67cm2

Típica pantalla 4:3 de 15″ de diagonal:

152=(4x)2+(3x)2 → x=3″=7.62cm

Área=4x·3x=696.77cm2

En cualquier caso, al final esto es algo en lo que los usuarios finales tienen poco poder de decisión, ya que si los grandes departamentos de marketing han decidido que al usuario le atrae más una pantalla alargada que una cuadrada, pantallas alargadas tendremos hasta en la sopa.

Sigue leyendo »

14 Oct

Disk might not be spun down properly. Update shutdown utility.

Ahora mismo estoy usando el kernel 2.6.22.6 en todos mis sistemas Linux. En uno de ellos con discos SATA de vez en cuando, al ejecutar el comando halt, me aparece este error unas décimas de segundo antes de apagar:

DISK MIGHT NOT BE SPUN DOWN PROPERLY. UPDATE SHUTDOWN UTILITY
For more info, visit http://linux-ata.org/shutdown.html

Bueno, en realidad sé exactamente lo que pone porque lo he buscado en las fuentes del kernel, porque no da tiempo a leerlo entero, sino que más bien es un rápido flash del que únicamente se queda en la mente algo así como “el disco no se ha parado bien”. El mensaje lo podemos encontrar en drivers/ata/libata-scsi.c:

/* XXX: This is for backward compatibility, will be
 * removed.  Read Documentation/feature-removal-schedule.txt
 * for more info.
 */
if ((qc->dev->flags & ATA_DFLAG_SPUNDOWN) &&
    (system_state == SYSTEM_HALT ||
     system_state == SYSTEM_POWER_OFF)) {
        static unsigned long warned = 0;

        if (!test_and_set_bit(0, &warned)) {
                ata_dev_printk(qc->dev, KERN_WARNING,
                        "DISK MIGHT NOT BE SPUN DOWN PROPERLY. "
                        "UPDATE SHUTDOWN UTILITY\n");
                ata_dev_printk(qc->dev, KERN_WARNING,
                        "For more info, visit "
                        "http://linux-ata.org/shutdown.html\n");

Como el propio mensaje indica, tenemos que acudir a: Serial ATA (SATA) shutdown info, donde podremos obtener una explicación del problema.

Antes de apagar un disco duro, tenemos que guardar lo que contiene la caché y aparcar las cabezas de lectura/escritura para que no aterricen sobre la superficie magnética, lo que podría dañarla. Es raro que tal cosa ocurra, en cualquier caso, ya que si se apaga el sistema de golpe, la controladora del disco es capaz de aparcar la cabeza sin corriente externa para evitar problemas, pero no es aconsejable en absoluto hacerlo así. Puede hacer ruidos extraños y reducir la vida del disco.

En Linux, para hacer esto, tenemos los drivers IDE/ATA de toda la vida, los que en el “make menuconfig” encontramos en:

Device Drivers → ATA/ATAPI/MFM/RLL support (CONFIG_IDE)

Este driver, aunque funciona bien, tiene muchos hacks para permitir compatibilidad hacia atrás con viejos dispositivos. Así que cuando aparecieron los discos SATA, los desarrolladores decidieron partir con una implementación limpia del estándar ATA, en principio para acoger los drivers de SATA pero en la que también se van añadiendo drivers PATA. Ese driver, en el “make menuconfig” lo encontramos en:

Device Drivers → Serial ATA (prod) and Parallel ATA (experimental) drivers (CONFIG_ATA)

y la página del proyecto es, precisamente, linux-ata.org: Serial ATA (SATA) for Linux.

Este nuevo driver trata los discos SATA como si fueran discos SCSI, tal y como leemos en la descripción de estos drivers en la ayuda del kernel:

CONFIG_ATA:

If you want to use a ATA hard disk, ATA tape drive, ATA CD-ROM or
any other ATA device under Linux, say Y and make sure that you know
the name of your ATA host adapter (the card inside your computer
that "speaks" the ATA protocol, also called ATA controller),
because you will be asked for it.

NOTE: ATA enables basic SCSI support; *however*,
'SCSI disk support', 'SCSI tape support', or
'SCSI CDROM support' may also be needed,
depending on your hardware configuration

Pues bien, en los drivers IDE de toda la vida se lanzaban los comandos FLUSH CACHE y STANDBYNOW antes de apagar el sistema. Sin embargo, el nuevo driver se basa en SCSI y en sistemas SCSI varios hosts pueden acceder a un mismo disco, por lo que aparcar sus cabezas antes de la parada del sistema puede molestar a otro host que aún esté usando ese disco. Por tanto, en el nuevo driver (<=2.6.21) el comando STANDBYNOW no es lanzado durante la parada.

El driver del kernel 2.6.22 se actualizó para que se lanzaran los comandos FLUSH CACHE y STANDBYNOW antes de: power off, suspend-to-ram y suspend-to-disk, pero desafortunadamente, la inmensa mayoría de implementaciones del comando shutdown de las diferentes distribuciones aún no son compatibles con este cambio.

Por ejemplo, hasta ahora, algunas implementaciones de shutdown lanzaban el comando STANDBYNOW explicítamente, sin cubrir casos como el sleep-to-disk.

Por tanto, la situación actual queda así:

  1. El shutdown lanza un FLUSH CACHE (no en todas las distribuciones)
  2. El shutdown lanza un STANDBYNOW y para el disco
  3. La parada del kernel comienza
  4. El driver SATA lanza un FLUSH CACHE
  5. El driver SATA lanza un STANDBYNOW (nuevo con el 2.6.22)

Primer problema: algunas distribuciones no guardan la caché del disco antes de pararlo. Segundo problema: los pasos 4 y 5 podrían arrancar de nuevo un disco ya parado.

En definitiva, es necesario actualizar el comando shutdown en todas las distribuciones, cosa que ninguna de ellas ha hecho aún.

En Debian hay un bug abierto para que modifiquen este problema: #426224 Please update shutdown to support libata drivers in newer kernels

En Ubuntu también hay un bug: #114683 New libata/scsi spindown functionality in 2.6.22 requires changes in userland shutdown(8), con interesante información en la discusión, que, curiosamente, ha sido cerrado como inválido porque “a Ubuntu no le afecta el problema” (¿no dicen los desarrolladores del driver SATA que ninguna distribución ha arreglado el problema aún?):

As discussed with the libata upstream, we don’t need to change our /sbin/reboot utility at all. The 2.6.22 kernel will notice that we have made no attempt to flush the caches or shutdown the disk, and will perform it for us.

Hace poco, también salió el tema en la bitácora del usuario chavi en Barrapunto: Aparcando el disco duro, que, entre otras cosas, nos indica que podemos encontrar los paquetes sysv-rc, sysvinit y sysvinit-utils que solucionan el problema en Debian entre los paquetes no oficiales de Roland Stigge.

:wq

10 Oct

Sobre las VIA EPIA (VI): Gráficos y vídeo acelerado por HW en Linux con la EX10000EG

Al final de Sobre las VIA EPIA (V): La EPIA EX10000EG en Linux, decíamos que la parte de los gráficos es la que más trabajo supone y que por eso lo dejábamos para una entrada separada. Así que, sin más dilación, pongámonos a ello. No está de más, por cierto, recordar que yo trabajo en una Debian Etch con un kernel personalizado 2.6.22.6.

El procesador gráfico que lleva la VIA EPIA EX10000EG es el UniChrome™ Pro II, integrado en el chipset CX700M2. Según VIA, este chipset es capaz de:

Integrated VIA UniChrome™ Pro II 3D/2D AGP graphics with MPEG-2/4 and WMV9 video decoding acceleration

No tengo ni idea de si tales afirmaciones son ciertas en Windows (no he probado esta placa con dicho sistema operativo) o son fruto de la benevolencia de alguien en el departamento de marketing de VIA, pero veamos hasta dónde podemos sacarle punta a dichas afirmaciones en Linux.

En principio, leyendo la Operating Guide de la placa, vemos que, aunque sea sobre el papel, VIA nos manifiesta un fuerte compromiso con el soporte de Linux en sus placas:

Linux Driver Support

VIA EPIA EX mainboards have a very high degree of support under Linux.

Support and drivers are provided through various methods including:

  • Drivers provided by VIA
    • Using a driver built into a distribution package
    • Visiting VIA Arena website at www.viaarena.com for latest updates on a monthly basis
  • Installing a third party driver (such as the ALSA driver from the Advanced Linux Sound Architecture project for integrated audio)

For OEM clients and system integrators developing a product for long term production, other code and resources may also be made available. You can submit a request either through the Developers portal on VIA Arena, or through your VEPD support contact. Alternatively, VIA can work further towards providing additional drivers to suite your specific needs.

Como hemos visto en entradas anteriores (Sobre las VIA EPIA (V): La EPIA EX10000EG en Linux, Sobre las VIA EPIA (III): Linux en una SP8000E), en las que nos hemos dejado absolutamente todos los elementos del hardware configurados a la perfección, podemos aceptar la afirmación anterior sin titubeos.

Sin embargo, aún nos queda configurar los gráficos en esta placa, y nos vamos a encontrar con varios problemas. El primero es que según leemos en la página de man(4) del driver via actual (7.1) de X.Org, este chipset no está soportado aún:

DESCRIPTION
       via is an Xorg driver for VIA chipsets that have  an integrated Unichrome graphics engine.

       The via driver supports the CLE266, KM/N400, K8M/N800, PM/N800  and  CN400  chipsets  from
       VIA,  including  2D acceleration and the Xv video overlay extensions.  Flat panel, TV, and
       VGA outputs are supported, depending on the hardware configuration.

       3D direct rendering is available using experimental drivers  from  Mesa  (www.mesa3d.org).
       There  is  also  an  XvMC client library for hardware acceleration of MPEG1/MPEG2 decoding
       (available on the CLE266, PM/N800, K8M/N800, and CN400 chipsets) that uses the Direct Ren-
       dering  Infrastructure  (DRI).   The  XvMC  client library implements a non-standard “VLD”
       extension to the XvMC standard.  The current Direct Rendering Manager (DRM) kernel  module
       is available at dri.sourceforge.net.

Si nos pasamos al driver openChrome, nos encontramos con que tenemos que usar la rama experimental para tener soporte del chipset CX700M2 pero que, desafortunadamente, aún no soporta aceleración MPEG2/4 por XvMC.

Nos queda el driver oficial de VIA. Cuando hice la tanda anterior de artículos alrededor de la SP8000E, dado que encontré buen soporte del procesador gráfico tanto en el driver oficial de X.Org como en el openChrome, ni me preocupé en probarlo, ya que en muchos foros leía comentarios bastante negativos al respecto. Sin ir más lejos, en The Different Unichrome family display drivers podemos leer:

The VIA proprietary drivers

The proprietary drivers from VIA contain support for most chipsets, mpeg2 and mpeg4 acceleration, but are of low quality and often unstable. In addition, the 3D driver leaves your system open for attack by malicious clients, and furthermore, applications that accelerate mpeg2 and mpeg4 must be run as root, which is a very bad idea if they contain vulnerabilities (and they do). Avoid using these drivers unless you know what you are really doing! The drivers can be found here. Also, these drivers are distribution specific and a driver for different distribution other than yours might not work.

El desarrollador del driver unichrome.sf.net (que no funciona en chipsets modernos como el CN400 o el CX700, por cierto), Luc Verhaegen, también dice:

Despite VIA’s failure to properly understand and cooperate with Free and Open Source Software communities, this driver is very important. Thanks to VIA’s code releases, however irregular, entangled and buggy, a lot is known about the unichromes, and it is possible to do just about anything you want with them.

Por cierto, Luc tuvo un rifirafe con la moderadora de los foros de VIA, Fiona Gatt en VIA stops providing source: XF40070 is binary only y XF40070 topic locked: Last post removed tras decir en su diario lindezas sobre el driver de VIA tales como:

So, let us review where VIAs stands with respect to free software:

  • Complete and prolonged (3y+) inability to work with actual free software developers.
  • Crappy code and sporadic releases, totally unfit for direct use.
  • Very bad handling of licensing, with proprietary licenses popping up once in a while.
  • An NDA that, when VIA says so, forces signee to breach the GPL.
  • Distributes tarball with the binary “libddmpeg.so” and labels the lot as “open source” in direct violation of The Open Source Definition.
  • No longer distributes a DRI driver now, after having provided DRI binaries for a bit inside their “open source” tarballs. This used to be all source at one point.

En esta ocasión, y puesto que la aceleración de vídeo es importante en mis pruebas, es impensable no probarlo. Así que, ¡vamos allá!.

Sigue leyendo »

06 Oct

Sobre las VIA EPIA (V): La EPIA EX10000EG en Linux

Continuando con Sobre las VIA EPIA (IV): Placas con procesador C7 / La EX10000EG, vamos a ver las cosas que tenemos que tocar en nuestro Linux (en mi caso Debian Etch con un kernel 2.6.22.6 personalizado) para sacar el máximo provecho de esta placa.

Sigue leyendo »

02 Oct

Sobre las VIA EPIA (IV): Placas con procesador C7 / La EX10000EG

Un amigo tiene en la cabeza un proyecto en el que usará varias VIA EPIA EX10000EG para reproducir vídeo en Linux y me ha cedido una de ellas a sabiendas de que yo no iba a poder pasar sin cacharrear un poco con ella y contarle todo lo que fuera descubriendo. Así que en ello estamos, contando.

Sobre las VIA EPIA y el formato Mini-ITX en general y sobre la VIA EPIA SP8000E en particular ya hablé largo y tendido en tres entradas anteriores:

Las EPIA EX (EX10000EG y EX15000EG, una fanless y la otra con ventilador, como siempre), con chipset CX700M2, eran, hasta hace muy poco, las más nuevas de las placas VIA EPIA de formato Mini-ITX. Recientemente aparecieron las SN (chipset CN896, con PCIe), LT (chipset CX700, que es como el CX700M2 pero sin decodificador de TV) y LN (chipset CN700). A día de hoy, las únicas con chipset CX700M2 son las EX, aunque las LT también se pueden pedir con CX700M2 por encargo ( y me imagino que para volúmenes grandes). Las EX también son las únicas con salida DVI.

El que las EX sean de momento las únicas EPIA en la que el conector DVI reemplace al VGA me parece muy sorprendente. El conector apenas ocupa un poco más, y si no se tiene un monitor con entrada DVI, siempre se puede usar un convertidor como éste que me venía en la caja de otra tarjeta de vídeo (y probado con éxito con la EX10000EG):

Convertidor DVI-VGA

Y ahondando más en el tema, es especialmente llamativo que esto ocurra incluso en las SN, tope de gama actual, con su procesador C7 de hasta 1.8GHz (con ventilador) y su flamante chipset CN896, que permite un FSB de 800MHz (sólo en combinación con el procesador de 1.8GHz) e incluye el procesador gráfico VIA Chrome9™HC, con soporte de DX9 y certificado para Windows Vista Home Basic, la versión que no incluye el Windows Aero, claro.

Sigue leyendo »

Tema LHYLE08, creado por Vicente Navarro a partir del tema Fluid Index de 2yi