Inicio   defunct.gatopelao.org(Terminales / Xen / freeNX / etc)
agenda(2)  barrufet(5)  debian(1)  linux(1)  network(2)  rediris(3)  statusnet(3)  storage(2)  xen(4)  xmpp(1)  
weblog gatopelao

Mon, 14 Dec 2009

CF DMA
Como desactivar DMA de un CF al botar.

Estoy montando una cortafuegos. Para que mejore la disponiblidad del equipo monto un raid1.
Los dos discos son uno (hda) de 80GB y un compact flash (hdd) de 8 GB.

/            = 8GB (raid1)
/home   = espacio restante del hda


El problema que tengo es que el hardware no me da la funcionalidad DMA del CF.
Linux, al botar se da cuenta y lo desactiva.

syslog:Dec 11 11:38:53 debian kernel: [    6.888186] hdd: TRANSCEND, ATA DISK drive
syslog:Dec 11 11:38:53 debian kernel: [    6.944128] hdd: host max PIO4 wanted PIO255(auto-tune) selected PIO4
syslog:Dec 11 11:38:53 debian kernel: [    6.944254] hdd: UDMA/66 mode selected
syslog:Dec 11 11:38:53 debian kernel: [    7.756362] hdd: max request size: 128KiB
syslog:Dec 11 11:38:53 debian kernel: [    7.756362] hdd: 15662304 sectors (8019 MB) w/1KiB Cache, CHS=15538/16/63
syslog:Dec 11 11:38:53 debian kernel: [    7.756362]  hdd:hdd: dma_intr: status=0x00 { }
syslog:Dec 11 11:38:53 debian kernel: [   18.053566] hdd: status error: status=0x00 { }
syslog:Dec 11 11:38:53 debian kernel: [   18.053566] hdd: drive not ready for command
syslog:Dec 11 11:38:53 debian kernel: [   27.392935] hdd: dma_intr: status=0x00 { }
syslog:Dec 11 11:38:53 debian kernel: [   27.912064] hdd: status error: status=0x00 { }
syslog:Dec 11 11:38:53 debian kernel: [   27.912064] hdd: DMA disabled
syslog:Dec 11 11:38:53 debian kernel: [   27.912064] hdd: drive not ready for command

Apartir de allí, se puede usar el CF, pero el RAID ya se ha degradado.

syslog:Dec 11 11:38:53 debian kernel: [   28.377689]  hdd1
syslog:Dec 11 11:38:53 debian kernel: [   29.458417] md: bind<hdd1>
syslog:Dec 11 11:38:53 debian kernel: [   29.468013] md: kicking non-fresh hdd1 from array!
syslog:Dec 11 11:38:53 debian kernel: [   29.468013] md: unbind<hdd1>
syslog:Dec 11 11:38:53 debian kernel: [   29.468013] md: export_rdev(hdd1)

Aunque puedo reconstruir el array, cada vez que bote la máquina se degrada de nuevo..
Entonces hay que desactivar el DMA de /dev/hdd antes de que mdadm intente montar el RAID.

Por internet se lee que se puede desactivar DMA desde grub añadiendo 'ide=nodma' como opción del kernel.
En mi caso no funciona porque ide-core no está en el kerenl sino se carga como módulo.

http://forums.debian.net/viewtopic.php?f=10&t=32860&start=15

Paso la opciones al modulo y creo de nuevo el initramfs.

echo 'options ide_core options="hdd=nodma"' > /etc/modprobe.d/ide
update-initramfs -u

Y funciona.

[/storage] permanent link


June.2010(2)   May.2010(2)   March.2010(1)   January.2010(1)   December.2009(3)   November.2009(4)   October.2009(11)  
Blog software: Blosxom.com The unofficial Blosxum user group
RSS Feed rss feed