bo_0 发表于 2003-5-7 03:59:55

怎样让新编译的内核支持DMA?????

我安装了mdk9.1,内核也精简下来了,由原来的1.2M多变成现在的770多K,但通过hdparm发现硬盘不支持DMA传输模式了,我检查了配置,发觉我认为与DMA有关的我都选了,但就是不支持DMA!
不知为了让内核支持DMA,有哪些选项是必需的?请各位大侠指教。

Dragonfly 发表于 2003-5-7 04:31:51

if u choose all DMA related, why have error? hehe. post the hdparm error here. and u .config file.

bo_0 发表于 2003-5-7 06:56:13

输入:hdparm -d1 /dev/hda
显示:HDIO_SET_DMA failed: Operation not permitted
      using_dma:0 (off)
而我如果用原内核引导后使用该用法就一切正常。

Dragonfly 发表于 2003-5-7 08:43:19

ok, post u .config file here. and u can also diff .config .config.old to see the difference.

toychen 发表于 2003-5-7 09:41:13

修改/etc/rc.d/local.rc中的dma=1

Dragonfly 发表于 2003-5-7 09:45:40

修改/etc/rc.d/local.rc中的dma=1
ft, post water. he already said that he use the hdparm directly. u set rc.sysinit also do that with hdparm.

bo_0 发表于 2003-5-7 12:44:53

不好意思,还是不行。我的系统中没有local.rc文件,rc.local倒是有一个。
在rc.sysinit中加入hdparm命令,我想其实等同于我在控制符下直接使用命令。
因为我如果直接使用安装自带的内核,就可以,而且不需要我做什么工作,就已经是DMA传输模式了。所以我想可能是我在编译内核时把一些必需的功能给去掉了,但我不知道要让DMA正常,倒底哪些选项必选?请指教。

cnhnln 发表于 2003-5-7 12:50:36

hdparm -d1 -X69(ata100)/dev/hdx(你的硬盘)
如果没出问题用 -k1 选项保存设置
hdparm -Tt /dev/hdx(你的硬盘) 测试硬盘速度
「-X66」: UDMA2 (Ultra ATA33)
「-X68」: UDMA4 (Ultra ATA66)
「-X69」: UDMA5 (Ultra ATA100)
「-X70」: UDMA6 (Ultra ATA133)

或者在/etc/rc.d/rc.local 最后面加上一行/sbin/hdparm -d1 -X69(ATA100)/dev/hdx(你的硬盘)

我还看到这样的,你也可以试试先确认你的硬件支持dma66,包括硬盘,主板都支持,或许数据线还要求80线才行

确认后修改/etc/sysconfig/harddisks
内容如下:

USE_DMA=1

MULTIPLE_IO=16


EIDE_32BIT=3

LOOKAHEAD=1

EXTRA_PARAMS=-X68

保存后重起,进入系统后,用hdparm -i /dev/hda查看,应该可以看到类似信息:
UDMA modes: udma0 udma1 udma2 udma3 *udma4
这里表示当前(带*号的)的dma模式为utrla DMA 66(udma4)

Dragonfly 发表于 2003-5-7 21:22:35

since u old kernel can, while u new kernel can not. i believe there is nothing wrong in u rc.xx file. u need choose that use dma in pci wheneve possible option as that snapshot.png.

bo_0 发表于 2003-5-9 12:59:54

关于让内核支持DMA问题的最新情况!!!

感谢cheungmin,toychen,cnhnln,Axin各位大侠的帮助,现在我已经找到了原因了!确实是因为编译内核时的选项问题。
是因为intel IHC2芯片功能没有发挥出来。
我在选择时取消了Memory Technology Devices(MID)-->RAM/ROM/Flash chip drivers页面中的Detect JEDEC JESD21c compatible flash chips选项,这就导制了必需要有的选项Memory Technology Devices(MID)-->RAM/ROM/Flash chip drivers-->Rom connected to Intel Hub Controller 2 的自动屏蔽,这也就导制了IHC2芯片功能没能发挥出来!当然DMA也就支持不了!
为什么前一选项会影响后一选项,不知哪位大侠能解答?(下把config文件上传,供大家参考)

Dragonfly 发表于 2003-5-9 21:37:02

no, i donot think so. mtd is for flash like rom only. i use it only on my xscale board. u dma should not have problem with this. there must be some errors elsewhere.

cnhnln 发表于 2003-5-9 22:50:21

no, i donot think so. mtd is for flash like rom only. i use it only on my xscale board. u dma should not have problem with this. there must be some errors elsewhere.

很对,我没编译MTD,一样打开DMA,我也是ICH2

bo_0 发表于 2003-5-10 09:26:02

可能我这款联想机自己做了一些手脚。

Dragonfly 发表于 2003-5-11 00:53:12

who know. anyway, something useless in u kenrel will not harm u.
页: [1]
查看完整版本: 怎样让新编译的内核支持DMA?????