Distro gentoo
Kernel Linux Kernel v2.6.23-gentoo-r8
Hlavny disk hdc problemovy hdd
tu su vypisi
linux # hdparm -d1 /dev/hdd1
/dev/hdd1:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Invalid argument
using_dma = 0 (off)
Lspci
lspci -v | grep IDE
00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/
C PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP])
Subsystem: VIA Technologies, Inc. VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8
235 PIPC Bus Master IDE
Kernel driver in use: VIA_IDE
hdparm /dev/hdd1
/dev/hdd1:
multcount = 0 (off)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 38913/255/63, sectors = 625137282, start = 63
hlavny disk
hdparm /dev/hdc
/dev/hdc:
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/255/63, sectors = 80418240, start = 0
dmesg | grep dma
hdc:hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hdc: dma_intr: error=0x84 { DriveStatusError BadCRC }
hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
A dalsi
dmesg | grep hdd
ide1: BM-DMA at 0xff08-0xff0f, BIOS settings: hdc:DMA, hdd:DMA
hdd: WDC WD3200AAKB-00UAA0, ATA DISK drive
hdd: selected mode 0x45
hdd: DMA disabled
hdd: max request size: 512KiB
hdd: 625142448 sectors (320072 MB) w/16384KiB Cache, CHS=38913/255/63
hdd: cache flushes supported
hdd: hdd1
EXT3 FS on hdd1, internal journal
hdd: selected mode 0x45
hdd: DMA disabled
a nakoniec
hdparm -tT /dev/hdd
/dev/hdd:
Timing cached reads: 304 MB in 2.00 seconds = 151.67 MB/sec
Timing buffered disk reads: 6 MB in 3.13 seconds = 1.92 MB/sec
zcat /proc/config.gz | grep VIA
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y
CONFIG_VIA_RHINE_NAPI=y
CONFIG_HW_RANDOM_VIA=y
CONFIG_AGP_VIA=m
CONFIG_DRM_VIA=m
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SND_VIA82XX=m
CONFIG_SND_VIA82XX_MODEM=m
a druhy je :
zcat /proc/config.gz | grep DMA
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_ISA_DMA_API=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_IDEDMA_FORCED=y
CONFIG_IDEDMA_ONLYDISK=y
# CONFIG_HPT34X_AUTODMA is not set
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_IDEDMA_IVB=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
# CONFIG_CARDMAN_4000 is not set
# CONFIG_CARDMAN_4040 is not set
# DMA Engine support
CONFIG_DMA_ENGINE=y
# DMA Clients
CONFIG_NET_DMA=y
# DMA Devices
CONFIG_INTEL_IOATDMA=m
CONFIG_HAS_DMA=y
pridam este :
lsmod | grep dma
lsmod | grep via
snd_via82xx 22936 3
gameport 12936 1 snd_via82xx
snd_ac97_codec 73888 1 snd_via82xx
snd_pcm 47492 3 snd_via82xx,snd_ac97_codec
snd_page_alloc 10504 2 snd_via82xx,snd_pcm
snd_mpu401_uart 8960 1 snd_via82xx
via686a 13196 0
i2c_viapro 9876 0
i2c_core 19584 2 nvidia,i2c_viapro
snd 33508 11 snd_via82xx,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
via_agp 10624 1
agpgart 22612 2 nvidia,via_agp
a ako to mam vyuzit ??
Kedze distro je gentoo predpokladam ze si jadro kompilujes sam.
Tak ja ti odporucam komplet zakomentovat < >ATA/ATAPI/MFM/RLL support v jadre
a nechat len podporu <*>Serial ATA (prod) and Parallel ATA (experimental) drivers
a tam povolit <*>VIA PATA support. Viem je to len experimental ale ja to uz urcitu
dobu pouzivam a zatial ziadny problem.
Zmena bude asi taka ze prestanes pouzivat stare drivers a vyskusas nove(experimental)
Ak ani tam nepojde UDMA tak mas problem :D
P.S. poznamka je potom potrebne zmenit v zavadzaci OS (grub/lilo) root=/dev/hdx
na root=/dev/sdx kedze potom sa aj PATA disky tvaria ako SATA/SCSI.
a CD/DVD mechanika budu v /dev/sr0 (nezabudni preto <*> SCSI CDROM support).
ake mas disky? podla relativne centralizovanej databazy znalosti by to malo chodit:
http://hardware4linux.info/component/15857/
i ked netusim ci mas akurat dosku od msi.
Tak sa ospravedlnujem ze som nepodal podrobny popis tak tu je LSPCI
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4)
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50)
00:12.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
01:00.0 VGA compatible controller: nVidia Corporation NV11 [GeForce2 MX/MX 400] (rev b2)
susim prekompilovat jadro
:-)
hdparm /dev/hdd
/dev/hdd:
multcount = 0 (off)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 38913/255/63, sectors = 625142448, start = 0
po chvili kopirovania
hdparm /dev/hdd
/dev/hdd:
multcount = 0 (off)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 38913/255/63, sectors = 625142448, start = 0
bud mas problematicky chipset (hoci aj koli biosu) alebo je hnily kabel. alebo sa snazis nastavit iny mod DMA ako je povolene pri danom type kabla. skus (m/u)DMA33. pri 66 alebo vyssie potrebujes 80 zilovy kabel ktory nema mechanicke poskodenie (obcas sa na to zabuda, mierne zalomenie si malokto vsimne).