linux驅動
『壹』 linux驅動有哪些
1、將驅動程序文件bcm5700src.rpm復制到一個臨時目錄中,並在此目錄中運行以下命令;
2、運行以下命令切換到驅動目錄中;
3、此目錄中會生成一個名字為bcm5700.spec的文件,運行以下命令對驅動程序進行編譯;
4、運行以下命令切換到RPM目錄中;
5、運行以下命令安裝驅動程序;
6、運行以下命令載入驅動模塊;
7、運行kudzu命令,系統會自動搜索到硬體,進行配置即可。
linux是文件型系統,在linux中,一切皆文件,所有硬體都會在對應的目錄(/dev)下面用相應的文件表示。 文件系統的linux下面,都有對於文件與這些設備關聯的,訪問這些文件就可以訪問實際硬體。 通過訪問文件去操作硬體設備,一切都會簡單很多,不需要再調用各種復雜的介面。 直接讀文件,寫文件就可以向設備發送、接收數據。 按照讀寫存儲數據方式,我們可以把設備分為以下幾種:字元設備(character device)、塊設備(Block device)和網路設備( network interface)。
字元設備(character device):指應用程序採用字元流方式訪問的設備。這些設備節點通常為傳真、虛擬終端和串口數據機、鍵盤之類設備提供流通信服務, 它通常只支持順序訪問。字元設備在實現時,大多不使用緩存器。系統直接從設備讀取/寫入每一個字元。
塊設備(Block device):通常支持隨機存取和定址,並使用緩存器,支持mount文件系統。典型的塊設備有硬碟、SD卡、快閃記憶體等,但此類設備一般不需要自己開發,linux對此提過了大部分的驅動。
網路設備(network interface):是一種特殊設備,它並不存在於/dev下面,主要用於網路數據的收發。網路驅動同塊驅動最大的不同在於網路驅動非同步接受外界數據,而塊驅動只對內核的請求作出響應。
上述設備中,字元設備驅動程序適合於大多數簡單的硬體設備,算是各類驅動程序中最簡單的一類,一般也是從這類驅動開始學習,然後再開始學習採用IIC、SPI等通訊介面的一些設備驅動。可以基於此類驅動調試LKT和LCS系列加密晶元。注意7位IIC地址是0x28。
『貳』 如何編寫Linux 驅動程序
以裝載和卸載模塊為例:
1、首先輸入代碼
#include <linux/init.h>
#include <linux/mole.h>
『叄』 什麼叫Linux驅動程序
linux發行版本是什麼呢,一般來說無需格外安裝,都完美解決
『肆』 linux驅動哪裡最全
一般Linux是不需要安裝驅動程序的。因為一般發行版都會收集所有到發行為止的所有驅動程序。
如果遇到更新的驅動時,就需要你去手動安裝了。
你可以將需要配置的設備在上後面空一個格,加上Linux 或者你使用的發行版名稱,比如說:Radeon Linux或者Radeon Fedora,搜索一下。
驅動程序可能有.run的,這個是自動安裝配置的文件包。
.tar等等擴展名的源碼包,需要手動配置。
如果不太了解命令行的話,可以用.run。
『伍』 如何在Linux下添加自己的驅動
一.驅動編譯到內核
1.先選擇一個放置驅動代碼的位置,例:drivers/char/xxx.c
2.在drivers/char/Kconfig文件添加以下內容:
menu " xxx support"
config xxx
tristate "xxx support"
---help---
xxx use gpio as ir input .
If you want xxx support, you should say Y here and also to the
specific driver for your bus adapter(s) below.
This xxx support can be built as a mole.
endmenu
3.編寫Makefile,位置與上相同(drivers/char/),內容如下:
obj-$(CONFIG_xxx) += xxx.o //黑色xxx與上面Kconfig中的xxx相同,而紅色xxx應與
驅動xxx.c的命名相同
4.修改上一級Makefile和Kconfig //根據自己驅動的位置做相應的修改,參考上級的Mak_
efile和Kconfig的內容
至此,修改完畢,此時你可以使用make menuconfig,發現已有 xxx support ---> 選項,進入後選擇M,再make moles,到char目錄下,已生成xxx.ko。
最後,再進入make menuconfig ,選擇 xxx support,編譯進內核.
二. 驅動作成模塊載入
一般在開發時採用這種方式比較方便,無需每次都要通過tftp下載內核,nfs去掛載根文件系統,我們只需要把驅動作為模塊,在本地虛擬機中完成操作。
1>.模塊製作
a.驅動編譯
把 xxx.c文件放入drivers/char子目錄下,修改drivers/char/Makefile
obj-m += xxx.o
然後,
make moles,生成模塊都 drivers/char/xxx.ko
再把 xxx.ko 放到單板根文件系統的/lib/moles/2.6.14.1(自己的內核版本)/目錄下
b.驅動測試
編寫測試代碼及Makefile文件,make後,把生成文件放在單板跟文件系統/usr/bin/目錄下
2>.調試
在根文件系統中建立設備文件:
# mknod /dev/buttons c 232 0
載入模塊
# insmod s3c24xx_buttons
卸載模塊
# rmmod s3c24xx_buttons
『陸』 Linux系統需要「驅動程序」嗎
恩,這個是肯定的。我就是學linux的,分為驅動,內核,文件系統(應用層)。不但可以添加,還可以自己寫的,跟windows的差不多道理,只要用到新硬體就要裝驅動,不然操作系統是沒法使用新硬體的,網卡有網卡驅動,音效卡有音效卡驅動,顯示器也有驅動,包括鍵盤,滑鼠都有驅動。一般windows都會自動檢測和網上自動搜索添加,甚至好點的鍵盤滑鼠都會自帶驅動程序,對於用戶windows自動完成,我們需要做的就是連接電腦。Linux添加的話建議網路,這里說不清。。。學一下沒壞處的,看你問的句子都感覺你電腦知識不是很好。簡單一句,一般硬體都需要驅動,要裝驅動先把linux是哪個版本弄清楚,是什麼用不到比如網卡工作不正常,對應的網路或谷歌一下對你有好處的(一步一步教你做的帖子非常多,我初學就是這樣模過來的)
『柒』 如何將linux驅動程序添加到內核中 / 藍訊
1.進入你的內核源碼文檔,創建一個DoneLin_Driver文件夾來存放你的驅動,於是文件夾路徑:drivers/DoneLin_Driver/:
2.復制你的範例驅動到剛剛建立的DoneLin_Driver文件夾中,我的範例名字叫global_mem_two.c:
3.在DoneLin_Driver文件夾中建立兩個新文本文件:Kconfig 和 Makefile
4.修改DoneLin_Driver文件夾下的Kconfig文件,輸入以下內容:
menu "DoneLin-driver "
comment "global_mem_two-driver "
config GLOBAL_MEM_TWO tristate "global_mem_two DriTst" help this is global mem 2 test programming
endmenu
5.接著修改DoneLin_Driver的另一個文件Makefile,輸入以下內容:
obj-$(CONFIG_GLOBAL_MEM_TWO) += global_mem_two.o
6.修改上一層目錄(Driver目錄)中的Kconfig文件,聲明自己的源代碼:在"menu "Device drivers""下面加入如下內容:
source "drivers/DoneLin_Driver/Kconfig"##...add my tst driver mole
7.修改arch/arm/Kconfig
同樣,跟在driver/Kconfig一樣,在"menu device drivers"下面加入同樣的語句:
source "drivers/DoneLin_Driver/Kconfig"
就是說:在arch/arm/Kconfig menu "Device Drivers" endmenu之間添加source "drivers/DoneLin_Driver/Kconfig"
在drivers/Kconfig menu "Device Drivers" endmenu之間添加source "drivers/hello/Kconfig"(不知為什麼arch/arm/Kconfig中竟然含有Drivers里Kconfig內容的一個復本,實驗證明只對drivers/Kconfig中修改內容無效。)
8.修改Drivers目錄下的Makefile,在如圖位置,加入:
obj-$(CONFIG_GLOBAL_MEM_TWO) += DoneLin_Driver/#ADD FOR TEST add_for_test add for test測試的驅動
8.都修改好,保存好之後,回到linux內核根目錄,make menuconfig,奇跡出現了,我自己的linux驅動程序出現在內核的device drivers選項裡面了:
選擇global_mem_tow_DriTst為m,表示編譯成模塊,編譯成ko文件
然後,保存退出,make, make zImage, make moles即可生成新的內核和新的moles,
完成了,
『捌』 linux如何安裝驅動
在Intel網站直接下載的Linux驅動是e1000-5.2.52.tar.gz(版本可能會有改變),這個壓縮包裡面沒有編譯好的.o的文件,需要在Linux系統下編譯之後才能使用,
因為網卡需要編譯,所以要先確認將內核源文件安裝好,下面是關於內核源文件的安裝
● Linux下添加內核源文件
1. 用rpm –qa|grep kernel-source查看是否安裝了這個包;
如果返回結果中有kernel-source-xxx(其中xxx為當前redhat的內核版本,如rhel3為2.4.21-4EL), 即已經 安裝。如無返回結果則需要安裝kernel-source包。到安裝光碟中找到kernel-source-xxx.i386.rpm,用下面命令安裝此rpm包:
2.如果安裝了用rpm -V kernel-source校驗是否有文件丟失,如果沒有輸出,表示文件完整;
3.如果有丟失用rpm -ivh --force kernel-source-xxxx...把包重新安裝一下;
這個kernel-source包,在您的RH安裝光碟中,在Redhat/RPMS中,如果以前沒有安裝過這個包,那麼用rpm -ivh kernel-source-xxxx...來安裝,如果安裝過,需要覆蓋安裝,使用rpm -ivh --force kernel-source-xxxx...這個命令強制安裝。
註:AS 4 開始,沒有kernel-source這個包了,取而代之的是kernel-dev這個包,檢查這個包有沒有安裝的方法同上
● 驅動安裝步驟:
1. 把這個tar文件拷貝到用戶自己定義的目錄中,例如:
/home/username/e1000 or /usr/local/src/e1000
2. 用tar命令解這個壓縮包:
tar zxf e1000-5.2.52.tar.gz
3. 切換到驅動的src目錄下:
cd e1000-5.2.52/src/
4. 編譯這個驅動模塊:
make
然後安裝這個模塊
make install
這個二進制元將被安裝到如下位置:
/lib/moles//kernel/drivers/net/e1000.o
以上的路徑是默認的安裝位置,在某些linux版本中可能是其他位置,具體信息可以查看在驅動的 tar壓縮包中的ldistrib.txt文件.
5. 安裝模塊:
insmod e1000 (2.6以上的版本最好使用全路徑安裝 P insmod /lib/moles//kernel/drivers/net/e1000/e1000.ko)
6. 設定網卡IP地址:
ifconfig ethx <IP_address> x是網卡介面的號
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
若多個網卡的晶元相同可以cp ifcfg-eth0 ifcfg-eth1~~~~~~
修改下裡面的drive名稱就OK
!!!!!!!!!!!!!!!!!!!
在網卡的編譯中很可能不能進行下去~這個原因除了kernel的開發包沒有安裝外還可能是由於開發環境不完全所引起的!
這時就需要你講開發環境安裝完成,最簡單的辦法就是通過 sysconfig-config-packet 安裝gcc
安裝完成後繼續執行 make ;make install
了解更多開源相關,去LUPA社區看看吧