論壇裏應該有一部分人是想學驅動,殊不知道該怎麼入門吧,在這裏我教你們寫一個helloworld的簡單隨linux內核加載的驅動。php
1.首先在/kernel/drivers下建一個新的文件夾hello,在文件夾裏添加四個文件分別是hello.c,hello.hKconfig,Makefile,linux
hello.c文件裏也有註釋,這個文件主要就是爲了註冊和初始化設備文件以及定義驅動接口,主要是用啦file_operations這個結構體,你們想了解驅動能夠先了解這個,這個程序裏的註釋能夠幫助你們理解下一個簡單驅動的結構工具
2.修改Kconfig,內容以下測試
3.修改Makefile,內容以下ui
4.返回dirvers目錄下修改Kconfig,在最後加一句:source"drivers/hello/Kconfig"spa
5.修改Makefle文件,在裏面添加一句 obj-$(CONFIG_HELLO_TEST) += hello/接口
6.返回kernel目錄下,執行makemenuconfig 在/driver路徑下找到設備,選定(注:這裏設備的名字和咱們以前寫的Kconfig有必定的關係,修改Kconfig的相應的參數,能夠改變menu下的名字)ip
,而後返回get
makekernel.imgspark
7,而後建立測試文件,在driver目錄下建立目錄hellotest,加入兩個文件test和Android.mk
而後mm,在sdk/out/target/product/rkpx2/system/bin目錄下找到測試文件,(如mm沒法執行,可在根目錄下執行下sourcebuild/envsetup.sh)
8.最後測試下結果,在window目錄下,用adb工具把測試文件push進板中,而後在文件所在的位置給文件賦上權限,執行chmod777 test
執行./testhello 或./testgoodbye可看到結果以下,即驅動可成功加載