View Full Version : Πρόβλημα με το dma σε gentoo 2006.0...
A-L-I-V-E
30-03-2006, 18:13
Έχω πρόβλημα με το dma στο gentoo (linux-2.6.15-gentoo-r1)... δεν ενεργοποιείται στην εκκίνηση αν και έχω δηλώσει στον kernel τον driver που θέλω να φορτώνει (AMD and nVidia IDE Support) για το Abit NF7-S.
Προσπαθώντας να το ενεργοποιήσω μόνος μου με hdparm -d1 /dev/hda μου βγάζει αυτό...
/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
circular
30-03-2006, 18:22
Μήπως έχεις κάποιο δίσκο της Seagate που είναι Blacklisted?
A-L-I-V-E
30-03-2006, 18:33
Μήπως έχεις κάποιο δίσκο της Seagate που είναι Blacklisted?
Όχι... και το θέμα είναι ότι ψάχνοντας στο gentoo.org και στο google, δεν φαίνεται να έχω κάνει κάτι λάθος ή να έχω παραλείψει κάτι...
hdparm -X34 -d1 -u1 -m16 -c3 /dev/hdX
A-L-I-V-E
30-03-2006, 19:44
hdparm -X34 -d1 -u1 -m16 -c3 /dev/hdX
/dev/hda:
setting 32-bit IO_support flag to 3
setting multcount to 16
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
setting xfermode to 34 (multiword DMA mode2)
multcount = 16 (on)
IO_support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 0 (off)
Γράψε και τι μοντέλο δίσκου έχεις...
Για τα πρακτικά και μόνο, αν είναι sata ο δίσκος, τότε είναι /dev/sda , και αν δεν έχεις κανέναν ide δίσκο, τότε το optical drive γίνεται /dev/hda ...
I get "Operation not permitted" errors on setting DMA (-d1)
Your kernel is not supporting these IDE instructions. After compiling the kernel with all settings right, the same error returns, and this is a bug / sloppy hardware problem (my experience). You might want to try to compile your IDE chipset extension into the kernel, NOT AS A MODULE. That way this code loads before IDE_GENERIC and the problem is gone.
If the latter is not helpful, check your BIOS settings. For example, using ASUS's "enhanced IDE" mode which is labeled as native to Win2K/XP will cause your system to come to a crawl. There may be several other BIOS settings for your drive that will cause performance problems. If you have BIOS options available for your drive, make sure they look right to you before you endeavor to refine your Kernel.
Δεν ξέρω αν βοηθάει καθόλου το παραπάνω.
Επίσης αναφέρει το εναλλακτικό (δεν έχω προσωπική εμπειρία) blktool (http://sourceforge.net/projects/gkernel/)
A-L-I-V-E
31-03-2006, 12:18
hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 1824 MB in 2.00 seconds = 911.94 MB/sec
Timing buffered disk reads: 10 MB in 3.92 seconds = 2.55 MB/sec
Γράψε και τι μοντέλο δίσκου έχεις...
/dev/hda:
Model=FUJITSU MPE3084AE, FwRev=EE-C0-23, SerialNo=01147353
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=512kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=16514064
IORDY=yes, 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
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: device does not report version: 1 2 3 4
Μία απορία... ενώ με hdparm /dev/hda μου δείχνει ότι είναι ανενεργό το dma, με hdparm -i /dev/hda μου δείχνει ότι είναι ενεργό το udma4... γιατί γίνεται αυτό;
ούτε hdparm -c1 /dev/hda παίρνει?
A-L-I-V-E
31-03-2006, 13:24
ούτε hdparm -c1 /dev/hda παίρνει?
Αυτό το παίρνει...
/dev/hda:
setting 32-bit IO_support flag to 1
IO_support = 1 (32-bit)
Απ'ότι είδα μόνο στο -d1 κολλάει...
A-L-I-V-E
03-04-2006, 11:48
Διάβασα στο gentoo.org ότι ένας που είχε το ίδιο πρόβλημα με εμένα (και με το ίδιο σύστημα) ρύθμισε τον kernel με το genkernel και δούλευε μια χαρά. Τι παραπάνω ρυθμίσεις μπορεί να έκανε το genkernel στον ίδιο kernel έτσι ώστε να δουλεύει κανονικά το dma;
WAntilles
03-04-2006, 19:24
Αν θες την προσωπική μου γνώμη πάντως, το genkernel ουδέποτε το εμπιστεύθηκα.
A-L-I-V-E
04-04-2006, 08:04
Αν θες την προσωπική μου γνώμη πάντως, το genkernel ουδέποτε το εμπιστεύθηκα.
Ούτε και εγώ... γι`αυτό άλλωστε ψάχνω να βρω πως θα το διορθώσω μόνος μου...
A-L-I-V-E
05-04-2006, 14:04
Λοιπόν... δοκίμασα να ξανακάνω compile τον kernel αλλά αυτή τη φορά με το "AMD and nVidia IDE Support" ως module. Πρόσθεσα στο /etc/modules.autoload.d/kernel-2.6 το amd74xx αλλά και πάλι τίποτα... (Operation not permitted)
Με lsmod | grep amd μου δίνει: amd74xx 13340 -
Όλα O.K. μέχρι εδώ;
Τι κάνω λάθος ρε *&%^$#$#... :012:
δοκίμασε να dis αν εξής DMA με ένα οποιοδήποτε livecd
έτσι θα ξέρεις άμα είναι πρόβλημα touGentoo η όχι
A-L-I-V-E
06-04-2006, 07:12
δοκίμασε να dis αν εξής DMA με ένα οποιοδήποτε livecd
έτσι θα ξέρεις άμα είναι πρόβλημα touGentoo η όχι
Έχω DMA όχι μόνο με οποιοδήποτε livecd, αλλά και κατά την εγκατάσταση του gentoo. Δεν μου είχε δημιουργήσει ούτε το παραμικρό πρόβλημα... αν είχε πρόβλημα το gentoo ή ο
2.6.15-gentoo-r1, λογικά δεν θα μπορούσα να ενεργοποιήσω το DMA ούτε κατά την εγκατάσταση... δεν μπορώ να καταλάβω τι γίνεται... :013:
EDIT: Δεν ξέρω κατά πόσο βοηθάει αλλά παραθέτω τα παρακάτω...
dmesg | grep -i ide
BIOS-provided physical RAM map:
ACPI: BIOS IRQ0 pin2 override ignored.
ACPI: IRQ9 used by override.
CPU: After generic identify, caps: 0383fbff c1c3fbff 00000000 00000000 00000000 00000000 00000000
CPU: After vendor identify, caps: 0383fbff c1c3fbff 00000000 00000000 00000000 00000000 00000000
Boot video device is 0000:02:00.0
ACPI: PCI Interrupt Link [LIDE] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
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...
Probing IDE interface ide1...
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
lspci | grep IDE
00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2)
cat /usr/src/linux/.config | grep -i ide | grep -v "#"
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_IDEDMA_AUTO=y
backgroundman
06-04-2006, 09:52
Αυτό που σου έγραψε ο emnezia. Κάνε compile τον kernel και βάλε το "AMD and nVidia IDE Support" bultin. Δες αν έχει κάτι άλλο στον kernel (στη κατηγορία) που υποστοιρίζεται απο το hardware που διαθέτεις και κάντο και αυτό bultin. Κάνε ενα compile και bootαρε με το νεο kernel και πες μας τι βγάζει το hdparm.
A-L-I-V-E
06-04-2006, 10:18
Αυτό που σου έγραψε ο emnezia. Κάνε compile τον kernel και βάλε το "AMD and nVidia IDE Support" bultin. Δες αν έχει κάτι άλλο στον kernel (στη κατηγορία) που υποστοιρίζεται απο το hardware που διαθέτεις και κάντο και αυτό bultin. Κάνε ενα compile και bootαρε με το νεο kernel και πες μας τι βγάζει το hdparm.
Αυτή τη στιγμή το έχω πάλι built-in... έκανα χτες καμιά 20αριά φορές compile τον kernel με διάφορους συνδιασμούς, μέχρι που επέλεξα και τα πάντα μέσα σε αυτή την κατηγορία να είναι built-in και άλλο ένα compilation να είναι όλα modules... ΤΙΠΟΤΑ! Ε, στο τέλος τρέχω make mrproper, ρύθμισα τον kernel όπως τον είχα (τον amd74xx driver built-in), ξαναcompile και είμαι και πάλι στα ίδια... (όχι ότι είδα κάτι το διαφορετικό με τους συνδιασμούς που έκανα).
EDIT: Μήπως με κάποια (δεν ξέρω αν υπάρχει) ρύθμιση στον grub θα στρώσει;
A-L-I-V-E
06-04-2006, 12:12
Λοιπόν... δοκιμές και ξανά δοκιμές και ξανά compile και ξαφνικά ενώ είμαι και πάλι με τις ίδιες ρυθμίσεις στον kernel...
hdparm /dev/hda /dev/hdb /dev/hdc /dev/hdd
/dev/hda:
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 16383/16/63, sectors = 16514064, start = 0
/dev/hdb:
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 38792/16/63, sectors = 39102336, start = 0
/dev/hdc:
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
HDIO_GETGEO failed: Invalid argument
/dev/hdd:
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
HDIO_GETGEO failed: Invalid argument
...έχω ενεργό το DMA παντού και χωρίς να έχω κάνει τίποτα διαφορετικό... τι να πω, ξεκόλλησε; Τέλος πάντων, σας ευχαριστώ όλους για την βοήθεια και ας ελπίσω ότι δεν θα έχω άλλα τέτοια προβλήματα... :101:
Εμ, το μόνο που μπορώ να σκεφτώ αυτή τη στιγμή είναι να σε ρωτήσω αν κάθε φορά που πείραζες τις ρυθμίσεις στον πυρήνα, να ξεχνούσες να έκανες τα υπόλοιπα απαραίτητα βήματα (make && make modules_install , cp arch/x86_64/boot/bzImage και .config στα γνωστά μέρη, και edit το /boot/grub/grub.conf).....
A-L-I-V-E
07-04-2006, 08:17
Εμ, το μόνο που μπορώ να σκεφτώ αυτή τη στιγμή είναι να σε ρωτήσω αν κάθε φορά που πείραζες τις ρυθμίσεις στον πυρήνα, να ξεχνούσες να έκανες τα υπόλοιπα απαραίτητα βήματα (make && make modules_install , cp arch/x86_64/boot/bzImage και .config στα γνωστά μέρη, και edit το /boot/grub/grub.conf).....
Εκεί είναι το τρελό... όλα αυτά τα έκανα κανονικά όλες τις φορές... βασικά πιστεύω ότι ήταν κάποιο κόλλημα του kernel γιατί έστρωσε μετά από mrproper. Δεν ήταν η πρώτη φορά που το έτρεξα αλλά τέλος πάντων... τέλος καλό, όλα καλά... κανένα πρόβλημα μέχρι τώρα...
backgroundman
07-04-2006, 09:59
Εμ, το μόνο που μπορώ να σκεφτώ αυτή τη στιγμή είναι να σε ρωτήσω αν κάθε φορά που πείραζες τις ρυθμίσεις στον πυρήνα, να ξεχνούσες να έκανες τα υπόλοιπα απαραίτητα βήματα (make && make modules_install , cp arch/x86_64/boot/bzImage και .config στα γνωστά μέρη, και edit το /boot/grub/grub.conf).....
Αν κάνεις make && make install && make modules_install δε χρειάζεται να κάνεις κατι άλλο. Βάζει τον kernel στο /boot/ και κάνει link στο /boot/vmlinuz οπότε δε χρειάζεται να πειράξεις το /boot/grub/grub.conf. Τον παλιό (προηγούμενο) kernel τον κάνει link στο vmlinuz.old. Επίσης αντιγράφεται και το .config στο /boot
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.