文档章节

如何在Linux下用DMA方式传输数据

疯狂的小黑
 疯狂的小黑
发布于 2016/11/10 11:49
字数 552
阅读 9
收藏 0

如何在Linux下用DMA方式传输数据

作者:兄弟连

我们都知道,使用DMA方式传输数据可以占用更少的CPU资源,因此与其它操作系统一样,Linux支持硬盘以DMA方式转输数据,但在安装Red Hat7.0时关于DMA的默认选项是Disable的,当然你可以在安装时就enable它。如果在安装时DMA是disable的,那该怎么才能激活DMA呢?通过重新编译内核可以激活DMA支持,但编译内核对新手显然太过复杂。下面的方法无需编译内核,就可以激活DMA支持。

一、检查系统中的DMA选项是否已被激活

在进行操作前,先确认硬盘是否已经在使用DMA方式传输数据了。方法:查看/proc/ide/hda/settings文件,其中有一行的内容为:using_dma,如果其后面的值被设置为1就说明系统已经支持DMA了,那么下面的操作就可以免了,当然如果你要关闭DMA功能的话,还要往下看看哟:)。

Linux中的hdparm命令是用来进行与硬盘相关操作的,用hdparm -i /dev/hda可以列出IDE可能支持的DMA模式,如:

DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4

 

二、激活DMA支持

方法1:在lilo.conf中加入:idex=dma,其中x代表硬盘序号,其取值范围0-3,分别代表系统中的四个IDE硬盘设备。

方法2:使用hdparm命令,hdparm d1 /dev/hda 其中d1表示使能DMA,你可以将其加到rc.locl中以便每次启动时都硬盘都能使用DMA方式传输数据。

 

三、关闭DMA支持

命令格式:hdparm d0 /dev/hda 关闭DMA传输方式,实在想不出有什么理由要这样做。

对支持UDMA传输方式的硬盘,也可以参照以上的方法进行设置,但要确保硬盘控制器及硬盘都支持UDMA,最后你还要有一根支持UDMA传输方式的硬盘连线,否则即使你激活了UDMA支持,它也会罢工的。

© 著作权归作者所有

共有 人打赏支持
疯狂的小黑
粉丝 3
博文 96
码字总数 80472
作品 0
东城
程序员
私信 提问
linux2.4下DMA的使用

这两天看了以下linux下DMA的使用方法,这里与大家分享。 本文以linux2.4,硬件s2410为平台。关于DMA具体操作编程在内核源码目录下 /kernel/arch/arm/mach-s2410/dma.c. 这里并不打算讲解dma...

慎思
2012/09/18
0
0
JAVA Zero Copy的相关知识

介绍 java 的zero copy多在网络应用程序中使用。Java的libaries在linux和unix中支持zero copy,关键的api是java.nio.channel.FileChannel的transferTo(),transferFrom()方法。我们可以用这两...

cloud-coder
2014/08/11
0
0
Linux ALSA 音频系统:物理链路篇

原址 1. Overview 硬件平台及软件版本: Kernel - 3.4.5 SoC - Samsung exynos CODEC - WM8994 Machine - goni_wm8994 Userspace - tinyalsa Linux ALSA 音频系统架构大致如下: Platform:指......

慢慢的燃烧
2018/09/07
0
0
Linux驱动修炼之道-SPI驱动框架源码分析(上)

SPI驱动架构,以前用过,不过没这个详细,跟各位一起分享: 来自:http://blog.csdn.net/woshixingaaa/article/details/6574215 SPI协议是一种同步的串行数据连接标准,由摩托罗拉公司命名,...

长平狐
2012/06/12
1K
0
Linux网络设备驱动结构概述

网络设备驱动相比字符型设备的驱动要复杂一些,除了总体上驱动的框架有一些相似外,有很多地方都是不同,但网络设备驱动有一个很大的特点就是有固定的框架可以遵循,具体的框架会在后边详细的...

被使用的文件
2015/07/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 没时间 没头发 但有钱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @开源中国总经办主任 :分享齐一的单曲《这个年纪》 《这个年纪》- 齐一 手机党少年们想听歌,请使劲儿戳(这里) @肿肿卷 :我真的可以睡一天...

小小编辑
49分钟前
11
4
Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
3
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部