Android 添加驅動的兩種方式


下面介紹,在Android系統中如何將驅動添加到kernel中。

要求:將驅動queue.c添加kernel中。

方案:下面介紹2種實現方案。2種方案的本質是一樣的,區別是一種在menuconfig中單獨建立菜單,而另一種則不在menuconfig中單獨新建菜單,而是修改已有的配置文件。

1方案一

方案一中,采取的方法是:不新建config菜單,直接將驅動添加到已有的Kconfig中。下面介紹詳細步驟。

1.1修改已有配置文件

(1)修改配置文件driver/char/Kconfig,添加如下內容:

config SKYWANG_CQUEUE
    tristate "skywang char queue driver"
    help
        add this to support skywang char queueue 

(2)修改配置文件driver/char/Makefile,添加如下內容:

obj-$(CONFIG_SKYWANG_CQUEUE)   += cqueue.o 

1.2 添加“驅動代碼”

添加驅動文件,驅動文件路徑如下:

drivers/char/cqueue.c 

1.3 添加驅動

執行make menuconfig打開配置界面,並將驅動cqueue.c添加到kernel中。

如圖01,是添加cqueue.c前的選項:

如圖02,是添加cqueue.c后的選項:

1.4 驗證是否添加成功

查看.config文件,應該有如下配置選項:

CONFIG_SKYWANG_CQUEUE=y

2方案二

方案二中,采取的方法是:新建config菜單,將驅動添加到新建的Kconfig中。下面介紹詳細步驟。

2.1修改已有配置文件

(1)修改配置文件driver/char/Kconfig,添加如下內容:

source "drivers/char/skywang/Kconfig"

(2)修改配置文件driver/char/Makefile,添加如下內容:

obj-$(CONFIG_SKYWANG_CQUEUE)   += skywang/

2.2新建“驅動配置”

(1)在driver/char下新建目錄,新建后的目錄完整路徑如下:

driver/char/skywang 

(2)新建drivers/char/skywang/Kconfig文件,內容如下:

menu "skywang test devices"
 

config SKYWANG_CQUEUE
    tristate "skywang char queue driver"
    help
        add this to support skywang char queueue
 
endmenu 

(3)新建drivers/char/skywang/Makefile文件,內容如下:

obj-$(CONFIG_SKYWANG_CQUEUE)   += cqueue.o

2.3 添加“驅動代碼”

拷貝驅動文件,拷貝后的文件路徑如下:

drivers/char/skywang/cqueue.c

2.4 添加驅動

執行make menuconfig打開配置界面,並將驅動cqueue.c添加到kernel中。

如圖03,是添加cqueue.c前的選項:

如圖04,是添加cqueue.c后的選項:

如圖05,選擇“skywang test drivers”后進入的子菜單界面:

通過NDK,使用Android界面的Button點亮LED這4盞燈的方法,必須在adb shell環境下,通過insmod的shell命令預先加載驅動程序。能不能一啟動應用程序,就自動加載該驅動程序,開發板一上電,就自動加載該驅動程序 ,方法可將insmod等shell命令加入/etc/profile 或/etc/init.d/rcS等自啟動腳本,即可實現開機自動加載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM