Forum Linux.débutant udma impossible à activer malgré tout

Posté par  .
Étiquettes :
0
9
sept.
2005
Bonjour,

J'ai parcouru tout ce que Google pouvait me donner mais mon problème n'est toujours pas résolu après des heures de passées dessus.

Pas moyen d'activer l'udma sur aucun de ces trois périphériques qui ont déjà eu l'udma d'activer auparavant sous Windows et sous Linux (avec des anciens noyaux) :
# hdparm -d1 /dev/hda (en root)
/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)

Est-ce que quelqu'un aurait une idée, une piste? ou la solution! ;)
J'ai mis toutes les infos utiles dans la suite du message.
Si vous ne sachez pas quoi dire pour m'aider, déjà merci d'avoir tout de meme regarder et ce serait sympa de me donner ce que vous avez d'activer dans "Device drivers"/"ATA/ATAPI/MFM/RLL suport" si vous avez un noyau 2.6 avec l'udma qui fonctionne.
thks


Tout d'abord, la config est une Debian stable, noyau 2.6.12.5.
deux disques durs sur ide0 et un lecteur/graveur dvd sur ide1

toutes les infos données par hdparm :
# hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 65535/16/63, sectors = 78165360, start = 0

# hdparm -i /dev/hda
/dev/hda:
Model=WDC WD400BB-32CXA0, FwRev=02.05B02, SerialNo=WD-WMAC51039241
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=40
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360
IORDY=on/off, tPIO={min:120,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=no WriteCache=enabled
Drive conforms to: device does not report version:

Dans le bios, j'ai le choix entre "auto" et "disabled" pour chaque peripherique maitre/esclave sur les deux bus ide. Tout était et est toujours en "auto". Et le windows que je viens de virer avait l'udma avec meme CM et meme bios. (et meme /dev/hda mais /dev/hdb n'etait pas encore là).

Et à force de googleliser, cela viendrait très certainement du noyau, section "Device Drivers"/"ATA/ATAPI/MFM/RLL support".
Voilà ce que me donne #lspci | grep IDE
0000:00:07.1 IDE interface: VIA Technologies, Inc.
VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)

Voici ce que j'ai d'activé (en dur) dans la section citée du noyau :
"ATA/ATAPI/MFM/RLL support,
"enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support",
"Include IDE/ATA-2 DISK support",
"Include IDE/ATAPI cdrom support"(j'ai un lecteur dvdrom),
"PCI IDE chipset support",
"Generic PCI bus-master DMA Support"
"VIA82CXXX chipset support"
j'ai "scsi emulation support" en module.

Auparavant, "generic/default IDE chipset support" et
"Generic PCI IDE Chipset support" étaient présent en dur. Les remplacer par "VIA82CXXX chipset support" en dur n'apporte pas de changement apparent

à chaque fois que je rencontre un pb, je regarde dmesg, voici ce qui concerne les disques (mais ca m'a rien appris) :
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Probing IDE interface ide0...
hda: WDC WD400BB-32CXA0, ATA DISK drive
hdb: ST340016A, ATA DISK drive
Probing IDE interface ide1...
hdc: TOSHIBA DVD-ROM SD-M1202, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 128KiB
hda: 78165360 sectors (40020 MB) w/2048KiB Cache, CHS=65535/16/63
hda: cache flushes not supported
hda: hda1 < hda5 > hda2
hdb: max request size: 128KiB
hdb: 78165360 sectors (40020 MB) w/2048KiB Cache, CHS=65535/16/63
hdb: cache flushes not supported
hdb: hdb1
  • # En root ?

    Posté par  (site web personnel) . Évalué à 2.

    Tu as essayé les commandes en root, je suppose ?

    Essaye aussi un truc du genre
    echo "using_dma:1" > /proc/ide/hda/settings
    • [^] # Re: En root ?

      Posté par  . Évalué à 1.

      oui, j'ai bien fait les manips en root

      j'ai tenté le echo "using_dma:1" > /proc/ide/hda/settings . cela s'execute sans donner de mesage.
      j'ai toujours "using_dma 0 0 1 rw"
      j'ai tenté d'écrire directement dedans avec vi. sans succès

      dans /proc/ide/hda/settings et hdparm /dev/hda me dit tjs que le dma n'est pas activé

      :(
  • # Pas de soluces mais bon...

    Posté par  . Évalué à 2.

    Salut,
    je n'ai pas la solution, mais vu que lspci me renvoie la même ligne que la tienne et que tu l'as demandé voici ma config:

    Include IDE/ATA-2 DISK support
    Include IDE/ATAPI CDROM
    generic/default IDE chipset support
    PCI IDE chipset support
    ...Generic PCI bus-master DMA support
    ......Use PCI DMA by default when available
    ......VIA82CXXX chipset support


    Bon, j'ai deux options supplémentaires mais je ne suis pas sur que ça change grand chose. En tout cas ça vaut le coup d'essayer.
    • [^] # Re: Pas de soluces mais bon...

      Posté par  . Évalué à 1.

      merci je vais tenter ca de suite
      • [^] # Re: Pas de soluces mais bon...

        Posté par  . Évalué à 2.

        merci pour ta config.

        Le problème est résolu, c'était très bete :
        - je modifiais mon noyau
        - make
        - make modules-install
        - update-grub

        en pensant que le make faisait aussi la cible install.
        donc il me manquait make install et je risquais pas de voir les modifs faites quand je mettais en dur!

        une erreur de débutant qui m'a couté une bonne dizaine d'heures de recherche, tatonnements, bidouillages!
        ca me servira de lecon.

        merci à vous deux pour votre aide

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.