LinuxSir.cn,穿越时空的Linuxsir!

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

debian里面如何开启dma服务

[复制链接]
发表于 2002-8-26 15:21:47 | 显示全部楼层 |阅读模式
hdparm不行
发表于 2002-8-26 15:35:21 | 显示全部楼层
兄弟,可以的,看下面提示。可能你没有安装hdparm程序。用(apt-get install hdparm, 再如下操作,或man hdparm)
debian:~# hdparm  -d1 /dev/hdc

/dev/hdc:
setting using_dma to 1 (on)
using_dma    =  1 (on)
debian:~# hdparm  /dev/hdc

/dev/hdc:
multcount    =  0 (off)
IO_support   =  1 (32-bit)
unmaskirq    =  1 (on)
using_dma    =  1 (on)
keepsettings =  0 (off)
readonly     =  0 (off)
readahead    =  8 (on)
geometry     = 1826/255/63, sectors = 29336832, start = 0
 楼主| 发表于 2002-8-26 15:42:03 | 显示全部楼层
hehe,果真没装.thx
发表于 2002-8-26 15:43:45 | 显示全部楼层
对比一下,读盘速度提高了四倍。
debian:~# hdparm  -d0 /dev/hdc

/dev/hdc:
setting using_dma to 0 (off)
using_dma    =  0 (off)
debian:~# hdparm -t /dev/hdc

/dev/hdc:
Timing buffered disk reads:  64 MB in 20.27 seconds =  3.16 MB/sec
debian:~# hdparm  -d1 /dev/hdc

/dev/hdc:
setting using_dma to 1 (on)
using_dma    =  1 (on)
debian:~# hdparm -t /dev/hdc

/dev/hdc:
Timing buffered disk reads:  64 MB in  4.06 seconds = 15.76 MB/sec
发表于 2002-8-26 16:20:39 | 显示全部楼层
我的是金钻7代可以用ATA100,所以参数还可以
hdparm -d1c1m16X69 /dev/hda

测试数据没有快udma2多少,实际使用是快了。
 楼主| 发表于 2002-8-26 16:58:29 | 显示全部楼层
我这边差了6倍!@#$@#$也太夸张了吧!不过速度提高不是太多,
刚才装了simsun字体,小字看起来好多了
发表于 2002-8-26 18:45:50 | 显示全部楼层
是否运行hdparm -d1 /dev/hda后,他的设置就会保持???
即下次开机不用再设置??
 楼主| 发表于 2002-8-26 20:09:54 | 显示全部楼层
下次好像还得重新设.Debian里面没有rc.local文件.
我在/etc/init.d里面设了个脚本起动DMA,然后用SysV Init设置
运行等级,就可以添加这个脚本,每次开机可以自动运行.
发表于 2002-8-29 11:13:36 | 显示全部楼层
最初由 rotation 发布
下次好像还得重新设.Debian里面没有rc.local文件.
我在/etc/init.d里面设了个脚本起动DMA,然后用SysV Init设置
运行等级,就可以添加这个脚本,每次开机可以自动运行.


把这个过程说详细一点:)行吗?
 楼主| 发表于 2002-8-29 17:03:32 | 显示全部楼层
这个跟设置系统的运行等级有关,下面是我的经验.
debian启动后运行的第一个进程是init,它有一个唯一的配置文件/etc/inittab,其中与运行等级有关的是这两部分.
id:2:initdefault:   这个是设定缺省运行等级的
                    根据现在的设定,一开机,系统的运行等级是2

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2 这是与上面相应的部分, 指定运行等级2
                           的配置目录,这里的设定代表运行等级2
                           的配置目录是/etc/rc2.d   
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6

现在看看/etc/rc2.d/里面的东西
K50ppp@  K93gdm@  K98exim@  K99xfs@       S11klogd@  S20makedev@  S94xdm@           S99rmnologin@
K75ssh@  K96kdm@  K99cron@  S10sysklogd@  S20inetd@  S89atd@      S96dma-start.sh@
这都是一些符号链接,是链接到/etc/init.d/目录里的(这个目录后面介绍),链接名的含义如下:
       第一部分:一个字母
               'S'代表开机时运行,'K'代表不运行;
       第二部分:两位数字
               代表运行时的顺序,越大的越靠后;
       第三部分:
               是链接到的可执行文件名,这些文件都在/etc/init.d/里面

/etc/init.d/的内容现在大家也都可以猜到了,就是一些可执行的文件,
是构成一个运行等级的主体.

那么,要开机就运行启动dma服务,可以这样设置
    1.写一个bash脚本,下面是我的脚本内容
#!/bin/sh
#This script start ATA100 DMA
hdparm -d1 -X69 /dev/hda
把这个脚本存为文件dma-start.sh,chmod +w dma-start.sh把它设成可执行文件,加入到/etc/init.d/里面
     2.在缺省运行等级的配置目录里面(我的是/etc/rc2.d/)加一个符号链接,ln -s /etc/init.d/dma-start.sh S96dma-start.sh
序号尽量选的靠后一点,我的是加到rmnologin之前.
    然后重起系统,应该可以在login之前看到dma启动的信息了.
    第二步也可以用KDE里面自带的SysV Init编辑器设定,可以在KDE里面 系统->SysV Init编辑器 启动它,完成第一步后,你就可以在左边的选单里面看到dma-start.sh这个项,把它拖到运行等级2里面就可以了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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