Hilfe: ich bekomme DMA der Festplatte nicht aktiviert

  • Hallo,


    hier eine weitere Frage zum leidigen DMA Thema.


    Ich schaffe es nicht die Festplatte (Seagate Barracuda) mit eingeschaltetem DMA zu betreiben.
    Die Vorschläge aus dem Forum (hdparm -X34 usw.) haben nicht funktioniert.
    Ohne DMA haben die Aufnahmen häßliche Artefakte, sind nicht zu gebrauchen.


    Vielen Dank.

    yaVDR 0.6.1 - Lenovo ThinkCentre A58 - Intel Pentium E5200 - 2 GByte RAM - 2TByte Disk - Gigabyte Geforce GT 630 - L4M-Twin S2 ver. 6.5 DUAL PCIe

  • Hallo


    Es sollte mit


    hdparm -d 1 /dev/hda gehen.


    Gruss Pat


    Diskless Client: SMT 7020S und S100 128SDRAM 32DOM zendeb 0.4.0 beta1 mit MMS 1.0.8.5
    Hardware: Pundit-R Celeron 2.4 256DDRAM Samsung SATA 400 Gbyte Festplatte Hauppage Nexus-S Rev 2.3 Nova-S Plus DVD-RAM LG
    Software: EasyVDR 0.6.0 (vdr-1.6.0-2-ext64), LinVDR 0.7 1.4.7 Mahlzeit, SUSE-Server 10.2 1.6.0-1
    Test System: Shuttel AMD Athlon 2.6 Ghz 256DDRAM Samsung 250Gbyte Hauppage Nexus-S Rev 2.3 DVD-RAM LG ......

    :fans :welle

  • Hallo,


    ich sitze leider nicht vorm richtigen Rechner, kann die Meldungen daher nur aus der Erinnerung weitergeben:


    beim Booten erscheint ein Timeout beim "Testen der Partition?". Dann kommen einige weitere Meldungen, unter anderem "Command not ...?". Das wird drei mal wiederholt.


    Wenn ich hdparm -X34 /dev/hda ausführe wird nur mitgeteilt, dass VDR versucht meinem Ansinnnen nachzukommen.


    Wenn ich hdparm -d 1 /dev/hda ausführe teilt VDA mit, dass es die Einstellung versucht. Danach passiert zunächst gar nichts mehr (Konsole nimmt keine Eingaben an). Anschließend erscheinen wieder einige Meldungen die stark an die drei Meldungsblöcke vom Booten erinnern.


    Kann es sein, dass ich mit meiner Hardware (ein älterer P2 400Mhz, neue Seagate Barracuda) den DMA Zugriff nicht aktiviert bekomme?

    yaVDR 0.6.1 - Lenovo ThinkCentre A58 - Intel Pentium E5200 - 2 GByte RAM - 2TByte Disk - Gigabyte Geforce GT 630 - L4M-Twin S2 ver. 6.5 DUAL PCIe

  • Hallo,


    darf ich auch mal meine bescheidenen Erfahrungen beisteuern ...


    Ich habe einen wirklich alten P200 MMX mit nem PIIX3 IDE Chipsatz.


    Für alle Platten schalte ich beim booten den DMA ein (hdpam -d1)
    Aber bei der 3. Platte (hdc) geht der DMA wieder raus ?(


    So sieht das dann aus:

    Code
    Intel PIIX3 Chipset.
    --------------- Primary Channel ---------------- Secondary Channel -------------
                     enabled                          enabled
    --------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
    DMA enabled:    yes              yes             no                yes
    UDMA enabled:   no               no              no                no
    UDMA enabled:   X                X               X                 X
    UDMA
    DMA
    PIO


    Immerhin geht DMA, was ich bei dem alten Board nicht unbedingt erwartet hätte.
    Und ja ... ich habe auch ein UDMA Kabel verwendet
    Und das sind meine Platten:

    Code
    cat hd?/model
    
    
    SAMSUNG SV1604N
    IC35L120AVVA07-0
    Maxtor 6Y120L0
    IC35L120AVVA07-0


    Liegt das vieleicht an der Maxtor ??
    Die hatte allerdings in einem anderen Rechner schon mal freiwillig UDMA gemacht ... Seltsam ist das schon ...


    Schönen Tach noch,
    Barney

    c't VDR v.4.0 - (2.6.12-rc4-ct-2) - HP Pavillion PIII 733 - 256 MB - 15GB Seagate Barracuda - Nexus-S

  • Zitat

    Original von guckinsland
    Wenn ich hdparm -X34 /dev/hda ausführe wird nur mitgeteilt, dass VDR versucht meinem Ansinnnen nachzukommen.


    :rtfm "man hdparm"


    -X34 schaltet nur Multiword-DMA 2 ein, Deine Platte kann aber garantiert UDMA-2 oder höher, verwende also -X66 oder mehr.


    Ich kau mal kurz vor: "hdparm -d1 -c3 -X66 /dev/hda"


    "hdparm -i /dev/hda" zeigt Dir, ob es gewirkt hat, evtl. "hdparm -I /dev/hda" für die Langform aufrufen. Einige Chipsätze/IDE-Controller müssen aber für DMA beim Booten vorbereitet werden, z.B. durch Append-Line "ide0=dma". Wie man sowas macht, steht z.B. im Boot-Prompt HowTo.


    Zitat

    Anschließend erscheinen wieder einige Meldungen die stark an die drei Meldungsblöcke vom Booten erinnern.


    Solche "Beschreibungen" sind ziemlich wertlos und verärgern nur die Regulars hier. Du erweckst mit sowas den Eindruck, daß Du Dir keinerlei Mühe gibst und nur etwas vorgekaut haben möchtest.


    Zitat

    Kann es sein, dass ich mit meiner Hardware (ein älterer P2 400Mhz, neue Seagate Barracuda) den DMA Zugriff nicht aktiviert bekomme?


    Es kann gut sein, daß das Motherboard, bzw. der IDE-Controller zu alt sind und kein UDMA unterstützen. Doku zum Motherboard sollte weiterhelfen.


    Frederick

  • Hallo Frederick,


    ich habe mich mit den kryptischen Ausgaben von hdparm einige Zeit rumgeschlagen, daraus aber nicht ableiten können, welchen DMA Mode ich nun wie einstellen muss.
    Bei den neuen Boards geht das glücklicherweise automatisch...


    Ich habe Beispielsweise in mein oben beschriebenes altes Sytsem einen neuen IDE Raid (CMD640x) controller eingebaut. DMA mit hdparm -d1 eingeschaltet -> no more response from the Platten 8o


    Jetzt habe ich ja, wie oben geschrieben, die Platten an dem alten OnBoardController angeschlossen, mit dem o.a. Ergebnis.
    Wie unterscheiden sich die Platten denn nun .. haben sie Verschiedene DMA Fähigkeiten .. ?
    Ich hoffte mit dem von Dir angesprochenen -i die Info's zu kriegen. Für mich keine anfänglicher Unterschied zu sehen. Vieleicht kannst Du ja sehen, warum HDC nicht den DMA mag ...


    Ich hoff' das sprengt nicht das Forum .... :D


    Schönen Tach noch,
    Barney

    c't VDR v.4.0 - (2.6.12-rc4-ct-2) - HP Pavillion PIII 733 - 256 MB - 15GB Seagate Barracuda - Nexus-S

  • Hallo,


    ich hatte bei meinem letzten Posting leider keine Möglichkeit die genauen Bildschirmausgaben weiterzugeben. Das hole ich jetzt gerne nach:


    Während des Bootvorgangs werden folgende relevanten Ausgaben gemacht:

    Partition check:
    /dev/host0/bus0/target0/lun0:<4>hda: dm_timer_expiry: dma status == 0x21
    hda: timeout waiting for DMA
    hda: timeout waiting for DMA
    hda: (__ide_dma_test_irq) called while not waiting
    hda: status error: status=0x58 { DriveReady SeekComplete DataRequest }


    hda: drive not ready for command

    Dieser Block wird dreimal wiederholt. Abschließend erscheint folgende Ausgabe:

    p1 p2 <<4>hda: dm_timer_expiry: dma status == 0x21

    Wenn ich am Prompt versuche den DMA Modus mit hdparm einzuschalten, werden folgende Informationen ausgegeben:

    setting using_dma to 1 (on)
    blk: queue c0347880, I/O limit 4095MB (mask 0xffffffff)
    using_dma = 1 (on)
    hda: dm_timer_expiry: dma status == 0x21
    hda: timeout waiting for DMA
    hda: timeout waiting for DMA
    hda: (__ide_dma_test_irq) called while not waiting
    hda: status error: status=0x58 { DriveReady SeekComplete DataRequest }


    hda: drive not ready for command
    hda: status error: status=0x50 { DriveReady SeekComplete }


    hda: no DRQ after issuing MULTWRITE
    hda: status timeout: status =0xd0 { Busy }


    hda: no DRQ after issuing WRITE
    ide0: reset: success

    Dabei ändern unterschiedliche Angaben in -c oder -X Parametern die Bildschirmausgabe nicht.


    Ein paar Angaben zu meiner Hardware:
    Board: ASUS P2B
    Chipsatz: 440BX
    Festplatte: Seagate ST3120022A


    Grüße,
    Klaus

    yaVDR 0.6.1 - Lenovo ThinkCentre A58 - Intel Pentium E5200 - 2 GByte RAM - 2TByte Disk - Gigabyte Geforce GT 630 - L4M-Twin S2 ver. 6.5 DUAL PCIe

  • Zitat

    Original von barney-s
    ich habe mich mit den kryptischen Ausgaben von hdparm einige Zeit rumgeschlagen, daraus aber nicht ableiten können, welchen DMA Mode ich nun wie einstellen muss.


    Zugegeben: hdparm hat eine Menge Parameter und das Manual hinterläßt beim ersten Lesen einen mulmigen Eindruck, weil bei vielen Sachen sinngemäß dabeisteht "Warnung, diese Aktion kann die Daten zerstören". Wichtig für den Anfang ist eigentlich nur "hdparm -d1 -c3 -X66 /dev/hda". Wer jetzt gezielt das Manual nach diesen Parms durchsucht, sollte grob blicken, worum es geht.


    Zitat

    Bei den neuen Boards geht das glücklicherweise automatisch...


    Das kann in der Tat so sein, weil teilweise der Kernel gleich "richtig" übersetzt ist, sprich die richtigen Chipsatz- und IDE-Treiber einkompiliert sind. Wer sich seinen eigenen Kernel backt, der muß natürlich trotzdem noch auf einige Dinge achten.


    Zitat

    Ich habe Beispielsweise in mein oben beschriebenes altes Sytsem einen neuen IDE Raid (CMD640x) controller eingebaut. DMA mit hdparm -d1 eingeschaltet -> no more response from the Platten 8o


    -d1 alleine reicht eben leider nicht.


    Zitat

    Wie unterscheiden sich die Platten denn nun .. haben sie Verschiedene DMA Fähigkeiten .. ?


    Es geht weniger um die Platten, als um die Motherboards, auf welchen die IDE-Controller integriert sind. Unter Windows braucht man z.B. Busmaster Treiber vom Hersteller des MB (viele sind schon in z.B. XP integriert). Vielleicht hast Du (unter Windows) schonmal bei Bekannten gesehen, daß einige Intel-Boards einen Intel-Application Manager haben, hier kann man in der Systemsteuerung gar nix mehr bezüglich UDMA etc. einstellen, sondern macht das alles über diese Intel-Software.


    Der Chipsatz des MB bzw. des integrierten IDE-Controllers ist das Problem. Dessen Support muß in den Kernel einkompiliert sein, zudem kann man über den Boot-Prompt (bzw. die Append-Line) noch einige Sachen einstellen, so z.B. ACPI, IRQ-Routing oder halt mein voriger Tip "ide0=dma".


    Ich habe den Kernel für meine Linux-Rechner selbst gebacken und meine Motherboards sind unterstützt. Insofern habe/hatte ich nie Probleme mit DMA und habe mich nicht großartig weiter mit dem Thema beschäftigt (warum etwas hinterfragen, was wie dokumentiert funktioniert?)


    Zitat

    Vieleicht kannst Du ja sehen, warum HDC nicht den DMA mag ...


    Sorry, ich hab mit mehreren (IDE) Platten keine Erfahrungen. Der Haupt Linux-Rechner ist SCSI-only (bis auf den DVD-Brenner), der VDR-Rechner hat nur eine Platte und ein DVD-Rom, beide sind Master am jeweiligen Strang des integrierten IDE-Controllers, das macht natürlich keine Probleme.


    Zitat


    DMA modes: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 udma5 udma6


    Das sind die Auswirkungen von -X34, da die Platte UDMA-6 kann, kannst Du -X70 verwenden und halt das -c3 nicht vergessen (man hdparm).


    Zitat

    DMA modes: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 udma5


    Diese Platte verträgt höchstens -X69. Da es sein kann, daß einige Platten bei Einstellen von UDMA-3 und höher die Speed-Warnings nicht mehr ausgeben, sollte man vorsichtshalber -X66 verwenden, der Speedzuwachs zwischen -X66 und -X70 ist praktisch nicht meßbar (bei einer Platte, bei RAIDs kann ich nichts sagen).


    Zusammenfassend kann ich nur empfehlen, die entsprechende "Literatur" (RAID-Howto, Bootprompt-Howto, DMA-Howto) zu lesen und den Kernel entsprechend zu trimmen.


    Gruß Frederick

  • Hallo,


    mein DMA Problem ist leider noch immer nicht gelöst.


    Von einem Bekannten habe ich erfahren, dass er auf einem Suse Linux den DMA Betrieb mit einer Bootoption
    "hda=ide-scsi"
    aktivieren konnte.


    Kann diese Option auch bei c't-VDR weiterhelfen?
    Wo wird diese Option eingestellt?


    Grüße,
    Klaus

    yaVDR 0.6.1 - Lenovo ThinkCentre A58 - Intel Pentium E5200 - 2 GByte RAM - 2TByte Disk - Gigabyte Geforce GT 630 - L4M-Twin S2 ver. 6.5 DUAL PCIe

  • Zitat

    Original von guckinsland
    Von einem Bekannten habe ich erfahren, dass er auf einem Suse Linux den DMA Betrieb mit einer Bootoption
    "hda=ide-scsi"
    aktivieren konnte.


    Scheint ein typischer SuSE User zu sein. :deppenalarm


    Ein normaler Kernel hat IDE-Treiber, welche sich beim Booten alle verfügbaren IDE-Geräte krallen. Ein IDE-Brenner (korrekt: ATAPI-Brenner) wird aber unter Linux als SCSI-Gerät angesprochen, weshalb er nicht unter dem IDE-Treiber, sondern der SCSI-Emulation laufen muß. Obige Append-Line sorgt also dafür, daß das Gerät /dev/hda nicht vom IDE-Treiber gekrallt wird, sondern für die SCSI-Emulation zur Verfügung steht, sonst kein Brennen möglich.


    Das hat also absolut nichts mit DMA zu tun, zudem ist (außer bei SCSI-only Systemen) /dev/hda meist die Festplatte, insofern ist obige Append-Line besonders sinnlos.


    Zitat

    Kann diese Option auch bei c't-VDR weiterhelfen?


    Nein, sie ist nur für ein optisches Laufwerk sinnvoll unter Kernels 2.2.x und 2.4.x. Für eine Festplatte macht sie unter keiner Distribution Sinn.


    Zitat

    Wo wird diese Option eingestellt?


    Leider zeigt mir Deine Antwort, daß Du meine vorherigen Tips nicht verstanden und Dich auch nicht um Verständnis bemüht hast. Du hast weder Google, noch Linux-Doku (Manuals, Howtos) bemüht, noch nachgefragt. Es sieht fernerhin so aus, als ob Du nichtmals versucht hättest, Dein Problem (es ist wirklich Deines) selbst zu lösen, denn Du hast hier keine Ergebnisse bzw. Fehlermeldungen geposted. Das ist die allerorts ungeliebte "Lernresistenz", damit wundert es dann nicht weiter, daß hier im Thread wenig Antworten von fortgeschrittenen Usern zu finden sind.


    Dir ist offenbar nicht zu helfen und zumindest ich werde nun mein Profil bezüglich der Ignore-List überarbeiten und keine weiteren Antworten zu diesem Thema geben.


    Gruß Frederick

  • Hallo,


    ich habe nicht gewußt, dass in diesem Portal Linux Anfänger nicht erwünscht sind.


    Sorry, dann muss das halt ohne Hilfe gehen.

    yaVDR 0.6.1 - Lenovo ThinkCentre A58 - Intel Pentium E5200 - 2 GByte RAM - 2TByte Disk - Gigabyte Geforce GT 630 - L4M-Twin S2 ver. 6.5 DUAL PCIe

  • Da die c't keinen Standard-Kernel verwendet und ich in der FAQ zum c't VDR Projekt folgendes gefunden habe...


    ...könntest du auch mal...

    Code
    echo "pre-install ide-scsi /sbin/hdparm -d 1 -X66 /dev/hda" > /etc/modutils/ide-scsi


    ...versuchen, vielleicht klappt es ja.

  • Hallo AnK,


    das hat leider auch keine Auswirkungen gezeigt, Danke dennoch.


    Ich versuchs weiter.
    Klaus

    yaVDR 0.6.1 - Lenovo ThinkCentre A58 - Intel Pentium E5200 - 2 GByte RAM - 2TByte Disk - Gigabyte Geforce GT 630 - L4M-Twin S2 ver. 6.5 DUAL PCIe

  • Hallo zusammen,


    ich habe meinen VDR jetzt mit DMA am laufen (eine neue Platte hats besorgt).


    Ein frohes neues Jahr wünscht


    Klaus

    yaVDR 0.6.1 - Lenovo ThinkCentre A58 - Intel Pentium E5200 - 2 GByte RAM - 2TByte Disk - Gigabyte Geforce GT 630 - L4M-Twin S2 ver. 6.5 DUAL PCIe

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!