在Linux下用DMA方式傳輸資料(轉)

ba發表於2007-08-12
在Linux下用DMA方式傳輸資料(轉)[@more@]我們都知道,使用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支援,它也會罷工的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-949860/,如需轉載,請註明出處,否則將追究法律責任。

相關文章