LFS hdparm
Aus VDR Wiki
(Unterschied zwischen Versionen)
(M) |
(→Links) |
||
(6 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 6: | Zeile 6: | ||
<pre> | <pre> | ||
cd $SOURCEDIR | cd $SOURCEDIR | ||
− | tar xvfz hdparm- | + | tar xvfz hdparm-<VERSION>.tar.gz |
− | cd hdparm- | + | cd hdparm-<VERSION> |
patch -Np1 -i ../hdparm-5.5-glibc_CVS-1.patch | patch -Np1 -i ../hdparm-5.5-glibc_CVS-1.patch | ||
make | make | ||
Zeile 14: | Zeile 14: | ||
==Nützliche Optionen von hdparm== | ==Nützliche Optionen von hdparm== | ||
− | -c Abfrage/on/off 32bit I/O | + | {| border=1 cellpadding=2 cellspacing=0 style="empty-cells:show;" |
− | -d Abfrage/on/off DMA Mode | + | ! bgcolor=#efefef | Option |
− | -v Anzeige Einstellungen Laufwerk | + | ! bgcolor=#efefef | Beschreibung |
− | -X08 PIO-Mode 0 | + | |- |
− | -X09 PIO-Mode 1 | + | | -c || Abfrage/on/off 32bit I/O |
− | -X10 PIO-Mode 2 | + | |- |
− | -X11 PIO-Mode 3 | + | | -d || Abfrage/on/off DMA Mode |
− | -X12 PIO-Mode 4 | + | |- |
− | -X32 Multiword DMA mode 0 | + | | -v || Anzeige Einstellungen Laufwerk |
− | -X33 Multiword DMA mode 1 | + | |- |
− | -X34 Multiword DMA mode 2 | + | | -X08 || PIO-Mode 0 |
− | -X66 UDMA 33 =X(64+2) | + | |- |
− | -X68 UDMA 66 =X(64+4) | + | | -X09 || PIO-Mode 1 |
− | -X69 UDMA 100 =X(64+5) | + | |- |
+ | | -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+udma'''2''') | ||
+ | |- | ||
+ | | -X67 || UDMA 50 =X(64+udma'''3'''), selten benutzt | ||
+ | |- | ||
+ | | -X68 || UDMA 66 =X(64+udma'''4''') | ||
+ | |- | ||
+ | | -X69 || UDMA 100 =X(64+udma'''5''') | ||
+ | |- | ||
+ | | -X70 || UDMA 133 =X(64+udma'''6''') | ||
+ | |} | ||
Beispiel: | Beispiel: | ||
Drive Settings für UDMA100 mit 32Bit Zugriff für device /dev/hda: | Drive Settings für UDMA100 mit 32Bit Zugriff für device /dev/hda: | ||
<pre> hdparm -d1 -c1 -X69 /dev/hda </pre> | <pre> hdparm -d1 -c1 -X69 /dev/hda </pre> | ||
− | hdparm kann wie üblich in die Startscripte /etc/rc.d/init.d/.. eingebunden werden. | + | hdparm kann wie üblich in die Startscripte /etc/rc.d/init.d/.. eingebunden werden. Hier ein Beispiel: |
+ | |||
+ | /etc/rc.d/init.d/set_dma | ||
+ | <pre> | ||
+ | #!/bin/sh | ||
+ | # begin of /etc/rc.d/init.d/set_dma | ||
+ | # parses ide dma settigs from /etc/sysconfig/ide_dma.rc | ||
+ | # | ||
+ | |||
+ | source /etc/sysconfig/rc | ||
+ | source $rc_functions | ||
+ | |||
+ | test -e $IDEDMA_RC_CONFIG && source $IDEDMA_RC_CONFIG | ||
+ | |||
+ | case "$1" in | ||
+ | start) | ||
+ | echo "Schalte UDMA Modus ein:" | ||
+ | for dev in $IDEDMA_DEVICES; do | ||
+ | echo "drive: $dev"; | ||
+ | set +o verbose | ||
+ | hdparm -d1 /dev/$dev >>/dev/null | ||
+ | done | ||
+ | evaluate_retval | ||
+ | ;; | ||
+ | stop) | ||
+ | echo "Schalte UDMA Modus aus:" | ||
+ | for dev in $IDEDMA_DEVICES; do | ||
+ | echo "drive: $dev" | ||
+ | set +o verbose | ||
+ | hdparm -d0 /dev/$dev >>/dev/null | ||
+ | done | ||
+ | evaluate_retval | ||
+ | ;; | ||
+ | status) | ||
+ | echo "DMA Modus: " | ||
+ | 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 | ||
+ | </pre> | ||
+ | |||
+ | Für welche Drives DMA aktiviert werden soll bestimmt /etc/sysconfig/ide_dma.rc (Verweis in /etc/sysconfig/rc): | ||
+ | <pre> | ||
+ | # 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" | ||
+ | |||
+ | </pre> | ||
+ | Anschließend werden noch zwei Links gesetzt: | ||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
==Links== | ==Links== | ||
− | + | # [http://www.linuxfromscratch.org/patches/blfs/5.1/hdparm-5.5-glibc_CVS-1.patch Hdparm Patch] | |
− | + | # [http://www.ibiblio.org/pub/Linux/system/hardware Download Link] | |
− | + | ||
− | + | [[Kategorie:LFS]] | |
− | + | ||
− | + | ||
− | + |
Aktuelle Version vom 5. April 2006, 08:57 Uhr
[Bearbeiten] LFS: Installation von hdparm
hdparm erlaubt die Nutzung des DMA Modes von ATAPI-Festplatten und CD/DVD-Laufwerken sowie -brennern. Obwohl auch in den Kernel-Optionen die Option 'use DMA by default' existiert ist dieses Tool sehr nützlich. Hdparm kann bei älteren Kerneln in Zusammenhang mit ide-scsi Probleme bereiten.
cd $SOURCEDIR tar xvfz hdparm-<VERSION>.tar.gz cd hdparm-<VERSION> patch -Np1 -i ../hdparm-5.5-glibc_CVS-1.patch make make install
[Bearbeiten] Nützliche Optionen von hdparm
Option | Beschreibung |
---|---|
-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), selten benutzt |
-X68 | UDMA 66 =X(64+udma4) |
-X69 | UDMA 100 =X(64+udma5) |
-X70 | UDMA 133 =X(64+udma6) |
Beispiel: Drive Settings für UDMA100 mit 32Bit Zugriff für device /dev/hda:
hdparm -d1 -c1 -X69 /dev/hda
hdparm kann wie üblich in die Startscripte /etc/rc.d/init.d/.. eingebunden werden. Hier ein Beispiel:
/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/ide_dma.rc # source /etc/sysconfig/rc source $rc_functions test -e $IDEDMA_RC_CONFIG && source $IDEDMA_RC_CONFIG case "$1" in start) echo "Schalte UDMA Modus ein:" for dev in $IDEDMA_DEVICES; do echo "drive: $dev"; set +o verbose hdparm -d1 /dev/$dev >>/dev/null done evaluate_retval ;; stop) echo "Schalte UDMA Modus aus:" for dev in $IDEDMA_DEVICES; do echo "drive: $dev" set +o verbose hdparm -d0 /dev/$dev >>/dev/null done evaluate_retval ;; status) echo "DMA Modus: " 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
Für welche Drives DMA aktiviert werden soll bestimmt /etc/sysconfig/ide_dma.rc (Verweis in /etc/sysconfig/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"
Anschließend werden noch zwei Links gesetzt:
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