LinuxSir.cn,穿越时空的Linuxsir!

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

要打开磁盘 DMA 需要做什么?

[复制链接]
发表于 2006-10-7 12:19:31 | 显示全部楼层 |阅读模式
#hdparm -d1 /dev/hda   结果显示如下:
     /dev/hda
     setting using_dma to 1 (on)
     HDIO_SET_DMA faild: operation not permitted
     using_dma=0 (off)

感觉上应该是编译内核的时候没有加入 DMA 的支持,要启动 DMA ,我应该怎么做?内核支持应该选择哪一项?

以下提供些信息,或许有所帮助

#hdparm -i /dev/hda
/dev/hda:

Model=WDC WD800BB-22JHC0, FwRev=05.01C05, SerialNo=WD-WMAM9A820597
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=66
BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=156301488
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes:  pio0 pio3 pio4
DMA modes:  mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=no WriteCache=enabled
Drive conforms to: Unspecified:  ATA/ATAPI-1 ATA/ATAPI-2 ATA/ATAPI-3 ATA/ATAPI-4 ATA/ATAPI-5 ATA/ATAPI-6

* signifies the current active mode


#lspci
00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:00.0 VGA compatible controller: VIA Technologies, Inc. S3 Unichrome Pro VGA Adapter (rev 01)
发表于 2006-10-7 13:09:49 | 显示全部楼层
首先是,你用live cd启动,看看dma是否可以正常?如果不可以,就是的硬盘的数据线有问题,如果正常,就是你的内核配置编译有问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-7 17:03:54 | 显示全部楼层
己确认在 liveCD 中可以启动,应该是内核配置的问题,现在的关键问题是,我不知道该把哪些项选上才能开启,我是用缺省配置的内核
#make defconfig
#make menuconfig
回复 支持 反对

使用道具 举报

发表于 2006-10-7 17:19:29 | 显示全部楼层
http://www.gentoo.org/doc/en/han ... l?part=1&chap=7
[php]Do not forget to enable DMA for your drives:

Code Listing 9: Activating DMA

Device Drivers --->

  ATA/ATAPI/MFM/RLL support --->

   
  • Generic PCI bus-master DMA support

       
  •    Use PCI DMA by default when available

    [/php]
  • 回复 支持 反对

    使用道具 举报

    发表于 2006-10-7 17:22:31 | 显示全部楼层
    提醒一下
    make menuconfig里可以搜索
    搜索方式和vim里一样
    按/,然后输入字符……
    回复 支持 反对

    使用道具 举报

    发表于 2006-10-7 17:25:19 | 显示全部楼层
    Post by zlbruce
    http://www.gentoo.org/doc/en/han ... l?part=1&chap=7
    [php]Do not forget to enable DMA for your drives:

    Code Listing 9: Activating DMA

    Device Drivers --->

      ATA/ATAPI/MFM/RLL support --->

       
  • Generic PCI bus-master DMA support

       
  •    Use PCI DMA by default when available

    [/php]

  • 我都不知道,文档要看啊

    google小技巧
    http://www.google.cn/search?hl=z ... +%E6%90%9C%E7%B4%A2
    回复 支持 反对

    使用道具 举报

     楼主| 发表于 2006-10-7 17:42:00 | 显示全部楼层
    晕,又被版主抢先一步了,哈哈,
    google 研究了一个多小时,重编了内核,除了版主给出的两项外,我还加了
    两项:
    * AMD and nVidia IDE Support
    * VIA82Cxxx Chipset Support
    编好重启,OK啦,DMA已打开,

    正准备来结帖,发觉又多了两回帖,呵呵,gentoo 板块人气真是好,爽啊
    回复 支持 反对

    使用道具 举报

    发表于 2006-10-8 01:31:02 | 显示全部楼层
    如果你去irc,你将会更快的获得答案
    现在放假,都有空,不去利用irc太浪费了

    而且我怀疑你只需要一个
    * AMD and nVidia IDE Support
    就够了

    一个主板能有两个IDE芯片组么?
    回复 支持 反对

    使用道具 举报

     楼主| 发表于 2006-10-8 03:10:10 | 显示全部楼层
    Post by zhllg

    而且我怀疑你只需要一个
    * AMD and nVidia IDE Support
    就够了

    呵呵,我不确定哪个是匹配的,一个有AMD,一个有VIA,干脆,就两个都编上了,等把基本系统配置好了,重装的时候只选一个试试吧
    不过版主怎么会认为保留AMD,而不是VIA呢?有没什么依据?
    回复 支持 反对

    使用道具 举报

    发表于 2006-10-8 08:04:10 | 显示全部楼层
    应该是via的8237南桥
    所以via82cxx应该是对的
    显示的是amd k8集成的内存控制器
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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