LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1221|回复: 6

又是DMA!(fixed)

[复制链接]
发表于 2007-7-18 01:05:13 | 显示全部楼层 |阅读模式
新内核出来后,重新编译了一次内核。但是发现DMA没有能够打开:
$ sudo hdparm -iv /dev/hda

/dev/hda:
multcount     = 16 (on)
IO_support    =  0 (default 16-bit)
unmaskirq     =  0 (off)
using_dma     =  0 (off)
keepsettings  =  0 (off)
readonly      =  0 (off)
readahead     = 256 (on)
geometry      = 65535/16/63, sectors = 117210240, start = 0


我的lspci:
$ lspci
00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03)
......
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03)
00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)


觉得应该是Intel的主板,所以我的内核选项:
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y

# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_BLK_DEV_IDESCSI is not set
CONFIG_BLK_DEV_IDEACPI=y
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_PROC_FS=y

#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
CONFIG_IDEPCI_PCIBUS_ORDER=y
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_CS5535 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
# CONFIG_BLK_DEV_HD is not set



但是我的DMA还是无法打开:
$ sudo hdparm -d1 /dev/hda

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


已经忙了一个晚上了,还是搞不定。各位帮忙看看。
ps: 我是笔记本:IBM R52 1846cc2
发表于 2007-7-18 09:13:52 | 显示全部楼层
hdparm 这个命令好像可以打开?看看man
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-18 20:28:48 | 显示全部楼层
Post by wd_afei
hdparm 这个命令好像可以打开?看看man

我在帖子的最后是尝试着用hdparm打开的(见原帖),但是没有成功。
回复 支持 反对

使用道具 举报

发表于 2007-7-18 21:08:05 | 显示全部楼层
呵呵,我的本本问题也和你一样,就是打不开,不过用arch可以,suse、ubuntu都可以(这里说的“可是”不是指打开DMA),就是在slackware中不行,也不知道是那里的问题,感觉好像是因为硬盘接口的问题···最为在suse和其他的版本下,是sd,而不是hd,也就是说不需要DMA(与它无关),hdparm -tT命令结果正常···
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-19 02:09:05 | 显示全部楼层
这个问题已经解决了,因为我发现我的硬盘是SATA的,不是IDE硬盘,不需要DMA的。
回复 支持 反对

使用道具 举报

发表于 2007-7-19 08:32:41 | 显示全部楼层
我是说怎么我电脑没有怎么弄这个东西,但是硬盘传输速度还是很快。。原来sata的不需要阿。。
回复 支持 反对

使用道具 举报

发表于 2007-7-25 17:48:21 | 显示全部楼层
DMA 不是 IDE 硬盘特有的,SATA 的也有,要不然磁盘读写时 CPU 负载就会很高了,而且磁盘缓存也可能用不起来。

不过内核配置对 SATA 没有提供这样的选项而已,可能驱动会自己判断是支持 DMA。

个人理解,可能有误。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表