当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 在ubuntu中如何打开硬盘的DMA?
帖子发表于 : 2007-10-18 22:03 
头像

注册: 2006-11-17 23:02
帖子: 326
送出感谢: 0 次
接收感谢: 0 次
我的机器是T40,是IDE硬盘,但是ubuntu将其识别为SCSI设备,硬盘也是/dev/sda。我想打开硬盘的DMA,但是执行:

frank@Kubuntu:~$ sudo hdparm -c 1 -d 1 /dev/sda

/dev/sda:
setting 32-bit IO_support flag to 1
HDIO_SET_32BIT failed: Invalid argument
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
IO_support = 0 (default 16-bit)
frank@Kubuntu:~$

无法打开,请问这是怎么回事?该怎么才能打开?


_________________
IBM T41-P4M 1.5G/1GB/40GB HDD/DVD/14.1TFT/IPW2100 & 10-100M
OS:Xubuntu 11.10
生活就是折腾
活在成都
使用update-rc.d管理Linux服务


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-10-19 14:29 
头像

注册: 2006-11-17 23:02
帖子: 326
送出感谢: 0 次
接收感谢: 0 次
没人知道吗?难道大家的硬盘DMA都是关闭的?


_________________
IBM T41-P4M 1.5G/1GB/40GB HDD/DVD/14.1TFT/IPW2100 & 10-100M
OS:Xubuntu 11.10
生活就是折腾
活在成都
使用update-rc.d管理Linux服务


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-10-20 22:19 
头像

注册: 2006-11-17 23:02
帖子: 326
送出感谢: 0 次
接收感谢: 0 次
真神呢?哪里去了?望大侠们开开恩,指点指点啊


_________________
IBM T41-P4M 1.5G/1GB/40GB HDD/DVD/14.1TFT/IPW2100 & 10-100M
OS:Xubuntu 11.10
生活就是折腾
活在成都
使用update-rc.d管理Linux服务


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-10-20 22:28 
头像

注册: 2005-12-12 19:10
帖子: 117
地址: 山西左权
送出感谢: 2
接收感谢: 1
Ubuntu的硬盘默认效率就已经很好了。
google一下hdparm不会吗?man也可以啊!
在/etc/rc.loacl中加入hdparm -d1 -c1 -X68 -d1 -c1 -m16 -W0 -A1 -a256 /dev/sda
或者,打开hdparm文件,加入:
/dev/sda {
mult_sect_io = 16
write_cache = off
interrupt_unmask = on
io32_support = 1
dma = on
transfer_mode = 68
lookahead = on
read_ahead_sect = 256
}


_________________
以前佩服德国,一个国家就能单挑那么多还差点打赢;现在鄙视德国,一个国家怎么总搞到被群殴!
以前鄙视苏联,被打得半死;现在佩服苏联,被打成那样不死还能扳回来!
以前鄙视美国,不就是凭着块大;现在佩服美国,有本事你也那么强大!

Thinkpad R400 P8700/4g RAM/320G+160G sata Disk/Windows 7 + Ubuntu 11.10


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-10-23 23:00 
头像

注册: 2006-11-17 23:02
帖子: 326
送出感谢: 0 次
接收感谢: 0 次
感谢您的回复。不过请你看清楚我的文字再说。

hdparm我会用,问题是出错了,不起作用。google是不错,但不是万能的。我搜索了N天不果才来此发问的。
我需要的是帖子中红色部分的问题的解决思路。

再次感谢!


_________________
IBM T41-P4M 1.5G/1GB/40GB HDD/DVD/14.1TFT/IPW2100 & 10-100M
OS:Xubuntu 11.10
生活就是折腾
活在成都
使用update-rc.d管理Linux服务


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-10-24 11:17 

注册: 2006-05-22 12:55
帖子: 161
送出感谢: 0 次
接收感谢: 1
关于硬盘是否打开DMA等情况,请不要在使用hdparm -d查询,原因是系统将你的硬盘被认作了/dev/sda,那么就是内核使用libata来支持你的硬盘(实际是IDE接口)。btw:现在的libata已经做得非常好了。
如果你对于libata有些认识的话,上面提到的红字部分就不是问题了。
引用:
HDIO_SET_32BIT failed: Invalid argument

libata不支持32bit操作,将来也许会支持,可能性不大.实际上也没有必要,具体可以查看相关知识以及 http://linux-ata.org
引用:
HDIO_SET_DMA failed: Inappropriate ioctl for device

libata默认使用DMA来传输数据,对于一些新型的硬盘,特别是SATA控制器的硬盘,DMA是基本的要求。
所以libata是不会同意你去修改DMA设置的,尽管你想打开,但是如果你想关闭呢,想想看如果系统使用SATA控制器在没有DMA的情况下如何传输数据,性能将会是什么性能,甚至硬盘都无法工作。相信你也不会同意随意修改DMA,再一次尽管你是想打开他。

那么如何查看硬盘的工作状态,可以使用
代码:
sudo hdparm -i /dev/sda
查看硬盘摘要信息,主义里面关于DMA部分,比如我的
代码:
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5

其中udma5前面的星号表示该硬盘工作于udma5模式。
或者使用
代码:
sudo hdparm -I /dev/sda
查看硬盘详细信息。

从某种程度上来说,libata支持的音盘控制器基本告别hdparm了。


最后由 czopp 编辑于 2007-10-24 11:40,总共编辑了 1 次

页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-10-24 11:37 

注册: 2006-05-22 12:55
帖子: 161
送出感谢: 0 次
接收感谢: 1
个人认为libata是内核代码改变中很好的思路。导致我不得不在本贴后面补上一帖。
libata将传统的IDE mode和如今使用的SATA mode统一到一致的函数接口上面来。
当然前提是控制器被libata支持,这就包括了intel老的ich(IDE mode)新的ich (SATA mode), Silicon Image,NVIDIA nForce,SiS 180,VIA 64xx,Marvell 88SXxxxx等等等等。
在libata统一接口之下,再由各个模块支持具体的硬盘控制器(/lib/modules/some_version_path/kernel/driver/ata/)。那么这些模块有了统一的接口,对于代码管理和驱动开发来说都是好事。


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-04-07 21:17 
头像

注册: 2008-03-31 16:13
帖子: 38
地址: 山东济南
送出感谢: 0 次
接收感谢: 0 次
一直寻找ubuntu7.04后将所有IDE硬盘识别成SCSI和SATA的原因,开始以为是bug,还仔细看了看这里:
https://bugs.launchpad.net/ubuntu/+sour ... bug/110636
可是细细一想,其一内核开发小组不能犯这么低级的错误,再说即使是bug,比照一下以前的内核,也很容易纠正,而不会从7.04, 7.10到8.04一直是这种情况。直到看到czopp的解释,豁然开朗,这种设计反而是种进步,使用户不必再考虑硬盘的设置问题了。


_________________
“/etc/X11/xorg.conf”中鼠标部分的配置详解


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-05-04 23:38 
头像

注册: 2008-04-30 23:11
帖子: 367
送出感谢: 0 次
接收感谢: 0 次
czopp 写道:
个人认为libata是内核代码改变中很好的思路。导致我不得不在本贴后面补上一帖。
libata将传统的IDE mode和如今使用的SATA mode统一到一致的函数接口上面来。
当然前提是控制器被libata支持,这就包括了intel老的ich(IDE mode)新的ich (SATA mode), Silicon Image,NVIDIA nForce,SiS 180,VIA 64xx,Marvell 88SXxxxx等等等等。
在libata统一接口之下,再由各个模块支持具体的硬盘控制器(/lib/modules/some_version_path/kernel/driver/ata/)。那么这些模块有了统一的接口,对于代码管理和驱动开发来说都是好事。


那速度问题怎么解决?现在copy 文件cpu占用率100%,速度才几mb,难道要继续忍受ubuntu下糟糕的硬盘性能吗?希望给个有效的解决办法。。。!!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
cron
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译