LFS Hdparm
From VDR Wiki
Contents |
Description
HDParm makes it possible to activate the DMA mode for ATAPI hard disks and CD/DVD drives as well as writers. Even though there exists the kernel option
use DMA by default
this tool is useful nonetheless.
Installation
Hdparm
cd $SOURCEDIR tar xvfz hdparm-<VERSION>.tar.gz cd hdparm-<VERSION> patch -Np1 -i ../hdparm-5.5-glibc_CVS-1.patch make make install
Parameter
Some useful parameter of HDParm
| Parameter | Description |
|---|---|
| -c | Abfrage/on/off 32bit I/O |
| -d | Abfrage/on/off DMA Mode |
| -v | Anzeige Einstellungen Laufwerk |
| -X08 | PIO-Mode 0 |
| -X09 | PIO-Mode 1 |
| -X10 | PIO-Mode 2 |
| -X11 | PIO-Mode 3 |
| -X12 | PIO-Mode 4 |
| -X32 | Multiword DMA mode 0 |
| -X33 | Multiword DMA mode 1 |
| -X34 | Multiword DMA mode 2 |
| -X66 | UDMA 33 =X(64+udma2) |
| -X67 | UDMA 50 =X(64+udma3), seldom used |
| -X68 | UDMA 66 =X(64+udma4) |
| -X69 | UDMA 100 =X(64+udma5) |
| -X70 | UDMA 133 =X(64+udma6) |
Example
- Drive settings for UDMA100 with 32Bit access for device /dev/hda
hdparm -d1 -c1 -X69 /dev/hda
Configuration
HDParm can be stated through some start script in /etc/rc.d/init.d.
Here is an example: /etc/rc.d/init.d/set_dma
#!/bin/sh
# begin of /etc/rc.d/init.d/set_dma
# parses ide dma settigs from /etc/sysconfig/idedma.rc
#
source /etc/sysconfig/rc
source $rc_functions
test -e $IDEDMA_RC_CONFIG && source $IDEDMA_RC_CONFIG
case "$1" in
start)
echo "Switch UDMA Mode on:"
for dev in $IDEDMA_DEVICES; do
echo "drive: $dev";
set +o verbose
hdparm -d1 /dev/$dev >>/dev/null
done
evaluate_retval
;;
stop)
echo "Switch UDMA Modus off:"
for dev in $IDEDMA_DEVICES; do
echo "drive: $dev"
set +o verbose
hdparm -d0 /dev/$dev >>/dev/null
done
evaluate_retval
;;
status)
echo "DMA Mode: "
success=false
for dev in $IDEDMA_DEVICES; do
if [ -a /proc/ide/$dev/media ] ; then
if [ `cat /proc/ide/$dev/media` == "disk" ] ; then
echo `hdparm -d /dev/$dev 2>/dev/null`|grep .
fi
fi
if [ -a /proc/ide/$dev/media ] ; then
if [ `cat /proc/ide/$dev/media` == "cdrom" ] ; then
echo `hdparm -d /dev/$dev 2>/dev/null`|grep .
fi
fi
done
;;
*)
echo "Usage: $0 {start|stop|status]}"
exit 1
;;
esac
test "$return" = "$rc_done" || exit 1
exit 0
For which drives DMA should be activated is set in /etc/sysconfig/ide_dma.rc
# begin of /etc/sysconfig/ide_dma.rc # # Configuration file for ide dma mode support: # which ide devices should support DMA? # IDEDMA_DEVICES="hda hdb hdc hdd"
Afterwards two links are set
ln -sf /etc/rc.d/init.d/set_dma /etc/rc.d/rcsysinit.d/S41set_dma ln -sf /etc/rc.d/init.d/set_dma /etc/rc.d/rc0.d/K15set_dma
Links
| [1] | http://www.linuxfromscratch.org/patches/blfs/5.1/hdparm-5.5-glibc_CVS-1.patch | hdparm Patch |
| [2] | http://www.ibiblio.org/pub/Linux/system/hardware | Download |
