Hallo,
ich kann meine Parameter für meine S-ATA Platte nicht setzten.
“hdparm -I /dev/sdb” liefert mir die Infos. Aber “hdparm -d1 -X71 /dev/sdb” setzt den UDMA Modus nicht auf 7.
Fehlermeldung:
/dev/sdb:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
setting xfermode to 71 (UltraDMA mode7)
HDIO_DRIVE_CMD(setxfermode) failed: Input/output error
Kann mir jemand helfen?
Platte: SAMSUNG HD160JJ
System: Ubuntu 5.10 amd64
Moin moin,
ein IOCTL (Input/Output Control)-Kommando funktioniert nicht.
Ein ioctl-Kommando wird benötigt, um dem Kernel mitzuteilen,
einem low-level-Hardwaretreiber anzuweisen, sein Verhalten gegenüber
einer bestimmten Hardware zu ändern bzw. diese Hardware zu beauftragen
eine Veränderung ihres Verhaltens durchzuführen.
In Deinem Fall gibt es drei Möglichkeiten:
Entweder passt hdparm nicht zum Kernel (alter Kernel und hdparm
als binary-Paket von irgendwo downgeloaded, anstelle es
auf der eigenen Maschine aus dem Sourcecode zu compilieren.)
oder die SATA-Unterstützung im Kernel versteht nicht, was
hdparm will oder die Platte selber gibt beim Empfang der
Anweisungen durch den Kernel zurück, dass sie die Kommandos
nicht versteht.
Im letzten Fall müsstest Du die Platte austauschen gegen ein
vom Kernel besser unterstützes Modell — dies ist zwar eine
theoretische Möglichkeit, aber ….
Besser ist es sicherzustellen, dass der Kernel aus einer
Zeit stammt, in der es schon eien gute SATA-Unterstützung
im Kernel gab ( -> /usr/src/linux/Documentation ) und
notfalls den Kernel auf eine neuere Version upzudaten.
Danach besorgst Du Dir entweder ein Binary-Only-Paket von hdparm,
welches zum Kernel passt oder (besser) besorgst Dir die neuesten
hdparm-Sourcen und kompilierst diese zusammen mit dem installierten,
neueren Kernel (siehe oben).
Grundsätzlich:
Wenn man Tools benutzt, die derart low-level auf die Hardware
zugreifen, ist es sinnvoll, vorher zu überprüfen, ob die Version
der daran beteiligten Softwareanteile (hier: Kernel/hdparm)
zusammenpassen.
Nur als kleines Beispiel aus “man hdparm”:
-U Un-register an IDE interface. Dangerous. The companion for the -R
option. Intended for use with hardware made specifically
for hot-swapping (very rare!). Use with knowledge and extreme
caution as this can easily hang or damage your system. The
hdparm source distribution includes a ‘contrib’ directory with some
user-donated scripts for hot-swapping on the UltraBay of a
ThinkPad 600E. Use at your own risk.
Hier sieht man wie “mächtig” hdparm ist. Sollte es nun zwischen Kernel
und hdparm zu Missverständnissen kommen…..
Your mileage may vary…
Viel Erfolg!
Gruß,
mcc
Hi!
Deine Antwort ist leider etwas falsch!
Hdparm geht deshalb nicht, weil SATA-Platten unter neueren Kerneln der Reihe 2.6 als SCSI-Platten behandelt werden (/dev/sdX).
Deshalb sind solche Einstellungen ala IDE nicht nötig. Das SCSI-Protokoll ist dem IDE-Protokoll um Jahre vorraus.
Dies sieht man besonders an den Spezifikationen des SATA-2, dort werden eigentlich nur SCSI-Protokoll-Teile umgesetzt.
Also: Vergiss bei SATA hdparm. Wenn du noch ein wenig Spieltrieb besitzt, kannst du sdparm nutzen, was die einige Einstellungen im SCSI-Protokoll ermöglicht. Aber nötig ist dies auf keinen Fall und es ist noch ein wenig experimentell.
Christian