PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kein DMA trotz richtigem Kernel Modul



Afterburner
17.05.06, 18:47
Hi!


Ich habe vor ein paar Tagen zufällige entdeckt das meine Festplatte nicht mit DMA läuft, was ich mir von einem aktuellen Debian mit nicht allzuneuer Hardware eigentlich schon erwartet hätte...
Ich habs ums verrecken nicht hinbekommen, obwohl ich der Meinung bin das richtige Kernel-Modul geladen zu haben. Laut dmesg auch erfolgreich.
Immer die selbe bekannte Leier von hdparm: "Operation not permitted" :(

Naja, Details:

HP NX7000 Notebook
Debian Unstable
Kernel 2.6.16.16 (frisch gebacken)

lspci

0000:00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03)
0000:00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03)
0000:00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
0000:00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
0000:00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
0000:00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)
0000:00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)
0000:00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)
0000:00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)
0000:00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
0000:00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf [FireGL 9000] (rev 01)
0000:02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)
0000:02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 20)
0000:02:02.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)
0000:02:04.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller


hdparm -i /dev/hda


/dev/hda:

Model=FUJITSU MHT2040AT, FwRev=009A, SerialNo=NN3JT3814AYM
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=off
CurCHS=17475/15/63, CurSects=16513875, LBA=yes, LBAsects=78140160
IORDY=yes, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled
Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a: ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6

* signifies the current active mode



hdparm -d /dev/hda


/dev/hda:
using_dma = 0 (off)


hdparm -d 1 /dev/hda


/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)


hdparm -tT /dev/hda


/dev/hda:
Timing cached reads: 1508 MB in 2.00 seconds = 754.27 MB/sec
Timing buffered disk reads: 8 MB in 3.08 seconds = 2.60 MB/sec


--> Also definitiv kein DMA

Ich war eigentlich der Meinung dass für alle ICH Chipsätze von Intel "hw_random" das richtige Modul dafür ist, welches auch brav geladen wird:

lsmod | grep hw_random


hw_random 5784 0


Ich hab beim Kernel backen mal extra alle andern für mich irrelevanten Module weggelassen (was ATA treiber anbelangt) und nur "Intel PIIXn chipsets support" - was dem Modul hw_random entspricht - als Modul kompiliert.

Auch ein Versuch das Modul nochmal zu laden gelingt problemlos:



rmmod hw_random
modprobe hw_random

--> dmesg


hw_random hardware driver 1.0.0 loaded


Somit steh ich im Moment ziemlich an. Wäre um jede Hilfe/Idee froh :)
Hoffe ich hab nichts wichtiges vergessen?
Ach ja - und es IST hda ;)

/var/log/messages konnte ich noch folgendes entnehmen:


May 17 18:47:44 localhost kernel: ICH4: IDE controller at PCI slot 0000:00:1f.1
May 17 18:47:44 localhost kernel: PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
May 17 18:47:44 localhost kernel: ACPI: PCI Interrupt 0000:00:1f.1[A] -> Link [C0C4] -> GSI 5 (level, low) -> IRQ 5
May 17 18:47:44 localhost kernel: ICH4: chipset revision 1
May 17 18:47:44 localhost kernel: ICH4: not 100%% native mode: will probe irqs later
May 17 18:47:44 localhost kernel: ICH4: neither IDE port enabled (BIOS)
...
May 17 18:47:44 localhost kernel: Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
May 17 18:47:44 localhost kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
May 17 18:47:44 localhost kernel: hda: FUJITSU MHT2040AT, ATA DISK drive
May 17 18:47:44 localhost kernel: hdc: QSI CD-RW/DVD-ROM SBW-241, ATAPI CD/DVD-ROM drive
May 17 18:47:44 localhost kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
May 17 18:47:44 localhost kernel: ide1 at 0x170-0x177,0x376 on irq 15
May 17 18:47:44 localhost kernel: hda: max request size: 128KiB
May 17 18:47:44 localhost kernel: hda: 78140160 sectors (40007 MB) w/2048KiB Cache, CHS=65535/16/63
May 17 18:47:44 localhost kernel: hda: cache flushes supported
May 17 18:47:44 localhost kernel: hda: hda1 hda2 < hda5 hda6 hda7 hda8 >


Die Meldung mit "will probe IRQ's later" ist für mich eigentlich schon alt-bekannt... sollte kein Problem darstellen oder?
Aber die Meldungen "ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx" (also PIO und kein DMA) und "neither IDE port enabled (BIOS)" fallen auf.
Im BIOS ist definitiv nichts deaktiviert - geht in meinem abgespecktem award nämlich gar nicht...
Mit 'cat /proc/ide/hda/identify' kann wohl niemand was anfangen oder...

Vielleicht noch /cat/proc/ide/hda/settings


name value min max mode
---- ----- --- --- ----
acoustic 0 0 254 rw
address 0 0 2 rw
bios_cyl 65535 0 65535 rw
bios_head 16 0 255 rw
bios_sect 63 0 63 rw
bswap 0 0 1 r
current_speed 0 0 70 rw
failures 0 0 65535 rw
init_speed 0 0 70 rw
io_32bit 0 0 3 rw
keepsettings 0 0 1 rw
lun 0 0 7 rw
max_failures 1 0 65535 rw
multcount 0 0 16 rw
nice1 1 0 1 rw
nowerr 0 0 1 rw
number 0 0 3 rw
pio_mode write-only 0 255 w
unmaskirq 0 0 1 rw
using_dma 0 0 1 rw
wcache 1 0 1 rw


Ansonsten funktioniert eigentlich (nach doch einigen Wochen arbeit) alles prächtig auf meinem Debian Notebook, aber die performance von DMA möchte ich mir doch nicht engehen lassen :rolleyes:
Und keine Angst - Forensuche und Google weis ich zu benutzen ;-)

mercy nochmals!
gruß Afterburner

hp_tux
17.05.06, 20:27
Hallo,


Ich war eigentlich der Meinung dass für alle ICH Chipsätze von Intel "hw_random" das richtige Modul dafür ist, welches auch brav geladen wird:
ähm, das wäre mir allerdings neu! Möglicherweise hast Du vergessen, den erforderlichen Chipsatztreiber in den Kernel hineinzunehmen.

Gruß

hp_tux

Afterburner
17.05.06, 20:33
Erst mal danke für deine Antwort...

Kannst du mir auch sagen welcher - bzw. wo (im aktuellen 2.6er Kernel) das wäre?
In der Beschreibung von besagtem Modul (Intel PIIXn chipsets suppor) steht auf jeden Fall:

This driver adds explicit support for Intel PIIX and ICH chips │
and also for the Efar Victory66 (slc90e66) chip. This allows │
the kernel to change PIO, DMA and UDMA speeds and to configure │
the chip to optimum performance.

Muss doch massig ICH-User hier geben :(

mfg Afterburner

Natty
17.05.06, 22:50
Ööhm, war hw_random nicht das modul für einen hardware zufallsgenerator?

Kann ja mal einen Blick in dieses http://linuxforen.de/forums/showthread.php?t=161878 Howto werfen. Besonders Punkt 2.4.5 ATA/ATAPI/MFM/RLL support dürfte interessant sein.


gruß natty

hp_tux
17.05.06, 22:54
Hallo,

ja, das ist die richtige Option, aber das hat nichts mit dem "hw_random"-Modul zu tun. Diesen Treiber solltest Du fest in den Kernel einbauen.

Gruß

hp_tux

Afterburner
18.05.06, 19:03
Tatsächlich!

Dachte eigentlich dass es mit initrd auch als Modul funktioniert... War dann wohl ne falsche Info. Vielen dank nochmals! Jetzt rennt die Platte ;)
Wie ich auf hw_random gekommen bin weis ich auch nicht mehr, war wohl schon ganz blöde vor lauter googeln :D

mfG
Afterburner