Toon posts:

[Mdk9.0] cd-brander werkt niet meer met dma

Pagina: 1
Acties:

Verwijderd

Topicstarter
Met mdk8.2 had ik een vergelijkbaar probleem, dat destijds gemakkelijk op te lossen was; zie ook: [rml][ Mdk 8.2] cd-brander: dma wil niet aan met hdparm[/rml]

Ik start hier toch even een compleet nieuw topic, vanwege de titel; aangezien de dingen blijkbaar bij mdk9.0 anders werken is het een beetje raar dit probleem bij een verhaal met mdk8.2 in de titel te hebben, vandaar...

Dus:
systeem: A7V333 Morgan-duron MSI G4Ti4200-64dt 1GHz Maxtor 60GB HD Pioneer 105 DVD Philips 12x8x32x SBlive5.1 WinTV-FM
OS: Mandrake 9.0
hda is harddisk, hdc is brander, hdd is dvd-rom

Ik heb mdk9 geinstalleerd, enige cd's gebrand, ging prima, lage load ( < 4%)
Eigenlijk niks wezenlijks veranderd, en opeens (dwz een weekje later ofzo) zag ik bij het branden dat de load doorschoot naar 50 a 70%, dat is wel wat veel voor een 1GHz proc...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@zurich robert]# hdparm /dev/hdc

/dev/hdc:
 HDIO_GET_MULTCOUNT failed: Input/output error
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 BLKRAGET failed: Input/output error
 HDIO_GETGEO failed: Invalid argument
[root@zurich robert]# hdparm /dev/hdd

/dev/hdd:
 HDIO_GET_MULTCOUNT failed: Invalid argument
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  1 (on)
 readahead    =  8 (on)
 HDIO_GETGEO failed: Invalid argument
[root@zurich robert]#


Watnou? dacht ik, dat is raar.
Dan maar dezelfde truc als eerst, bij Mdk8.2, nl in /etc/sysconfig/harddisks
USE_DMA=1
erinzetten (oftewel het commentaarteken weghalen).
Dat deed het geloof ik de eerste keer dat ik weer een cdtje brandde. Of misschien niet; in elk geval staat dat aan, en vertelt hdparm met hetzelfde: dat de dma uit staat voor hdc en hdd.

Met hdparm krijg ik 'm wel weer aan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@zurich robert]# hdparm -d1 /dev/hdc

/dev/hdc:
 setting using_dma to 1 (on)
 using_dma    =  1 (on)
[root@zurich robert]# hdparm -d1 /dev/hdd

/dev/hdd:
 setting using_dma to 1 (on)
 using_dma    =  1 (on)
[root@zurich robert]# hdparm /dev/hdc

/dev/hdc:
 HDIO_GET_MULTCOUNT failed: Input/output error
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 BLKRAGET failed: Input/output error
 HDIO_GETGEO failed: Invalid argument
[root@zurich robert]# hdparm /dev/hdd

/dev/hdd:
 HDIO_GET_MULTCOUNT failed: Invalid argument
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  1 (on)
 readahead    =  8 (on)
 HDIO_GETGEO failed: Invalid argument
[root@zurich robert]#


Maar als ik dan een cd-tje brand, gaat het nog met zeer hoge load, .... logisch, komt door de ide-scsi lijkt me. Maar waar stel je dan in dat hij de dma aan moet hebben??

Ik weet wel een oplossing: alles opnieuw installeren. Ik had express een partitie vrij gehouden, daar dus ff op geinstalleerd: en ja hoor, cd-tje branden met load onder de 2%.
Zoals het hoort.

Ik vind dat alleen een pruts oplossing, want bij de huidige install deed het het eerst ook goed, en toen plots niet meer; het is natuurlijk onzinnig om opnieuw te installeren om dat 3 weken later weer te doen etcetc. Ik wil gewoon een permanente oplossing.
Oh ja, wat ik nog meer gevonden heb:

code:
1
2
3
4
5
6
7
8
9
10
11
[root@zurich robert]# tail /var/log/dmesg
MSDOS FS: Using codepage 850
MSDOS FS: IO charset iso8859-15
MSDOS FS: Using codepage 850
hdc: DMA disabled
hdd: DMA disabled
8139too Fast Ethernet driver 0.9.25
PCI: Found IRQ 9 for device 00:10.0
PCI: Sharing IRQ 9 with 00:09.0
eth0: RealTek RTL8139 Fast Ethernet at 0xe4a4b000, 00:02:44:23:f7:3a, IRQ 9
eth0:  Identified 8139 chip type 'RTL-8139C'


Maar waarom?? Bij die verse install doet hij dat dus niet, vreemd vreemd...
Wie geeft de juiste tip?

  • AlterEgo
  • Registratie: Juli 2001
  • Niet online
offtopic:
ik ben verbaasd dat hdparm werkt op een CDR-speler die met IDE-SCSI emulatie wordt benaderd.
Bij mij lukt dat in ieder geval niet. De CDR is /dev/sg0, en daarop werkt hdparm niet.

Verwijderd

Topicstarter
hdparm werkt ook niet echt, dwz het lijkt alleen zo. Dit ligt waarschijnlijk aan hoe Mandrake de ide-scsi emulatie doet, /dev/hdc bestaat, je kunt die met hdparm aanspreken.
/dev/scd0 niet.... en het schiet dus ook niet op.

Wat ik wil weten is: hoe zorg ik ervoor dat de hdc (scd0 voor mijn part) en hdd na een boot gewoon weer via dma werken. hdd krijg ik met hdparm zover, de brander niet...

  • bite
  • Registratie: Juni 2002
  • Niet online
cd's branden gaat altijd via scsi.
"hdparm /dev/scd0
/dev/scd0 not supported by hdparm"

Verwijderd

Topicstarter
Weet ik ook, maar bij mdk 9.0 is /dev/hdc via hdparm nog wel te beinvloeden (zie boven, lezen is ook een kunst.. ;) )

De vraag is (nogmaals): wat kan je eraan doen als je burner blijkbaar niet via dma werkt?

Verwijderd

Topicstarter
Okee, heel raar:
ik heb alles opnieuw geinstalleerd, en het werkte prima.
Toen crashte de boel (dwz, mijn vriendin haalde per ongeluk de hoofdschakelaar eruit.... kan gebeuren), waarna ik bij een cd-tje branden de load weer zag oplopen tot 50%.

Aan het zoeken geweest op de mandrake mailinglists (expertlist), niks...

Nog maar geprobeerd met
hdparm -d1 /dev/hdc
en nu een cd-tje aan het branden: met lage load.
/var/log/dmesg zegt dat bij het booten de dma van hdc en hdd uitstaan, maar blijkbaar kan ik die dus toch weer aanzetten.... Raar dat het eerst niet werkte, maar goed. (of ik heb het gedroomd?)
Nu nog ff zorgen dat bij het booten de dma automatisch toch aangezet wordt.

Verwijderd

Topicstarter
Yes!!!
Gevonden!!! :)

Newbies zullen weinig last hebben van dit probleem -- er komen pas problemen als je hdparm installeert, en standaard wordt dat niet gedaan.

In de file: /etc/rc.sysinit kwam ik het volgende tegen:

code:
1
2
3
4
5
6
# Turn off DMA on CD-ROMs. It more often than not causes problems.
if [ -x /sbin/hdparm -a -e /proc/ide ]; then
  for N in `grep -v ide-disk /proc/ide/*/*/driver 2>/dev/null | awk -F / '{ print $5 }'`; do
   hdparm -q -d0 /dev/$N >/dev/null 2>&1
  done
fi


Dat heb ik allemaal met #-jes uitgecommenteerd, en zie: na een frisse start staan zowel hdc als hdd weer gewoon met dma ingeschakeld, " cat /var/log/dmesg | grep dma " geeft een leeg resultaat, etcetc --- dus alles weer prima in orde.

Hehe....

In elk geval, beginners die wat prutsen, meer willen leren etc zullen toch een keer hdparm gaan installeren (goh hoe snel is jouw harddisk ... etc), en dan lopen ze dus tegen problemen aan met hun burners of dvd-roms (zonder dma wil dvd playback nog weleens gaan stotteren), dus hoort zegt het voort, zou ik zeggen.

Overigens, ik vraag me af welke heldere geest bij Mandrake op dit idee is gekomen, zouden ze zoveel problemen hebben gehad? Het is echt een prutsoplossing wat mij betreft, om gewoon bij alle systemen waar hdparm geinstalleerd is lekker de dma uit te zetten op de cd/dvd-rom en writers....

  • AlterEgo
  • Registratie: Juli 2001
  • Niet online
Lees deze posts (meervoud) van Kerframil eens:
On that note, here is another tip I'd like to share which is very relevant - I have often seen complaints that you cannot run hdparm on an IDE device running with SCSI emulation. What many people don't seem to realise is that the /proc virtual filesystem in Linux is also has write options. By way of explanation, let's assume your CD-R device has been initialised with SCSI emulation. But you really want to turn the DMA option on ... here's how (as root):
Code:
echo "using_dma:1" > /proc/ide/hdc/settings

You can determine the actual settings with:
Code:
cat /proc/ide/hdc/settings

Of course, you can change "hdc" as necessary. You can change any of the usual settings/parameters by using this technique. There are also many useful proc files which you can cat that will help you determine configuration information, where things are on which buses and so forth.

EDIT: Here's a little list of pertinent settings and their equivalent hdparm switches:
Code:
io_32bit -> "-c"
current_speed -> "-X"
unmask_irq -> "-u"
using_dma -> "-d"
keepsettings -> ??? maybe setting this to 1 means it will remember config?
Pagina: 1