日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > 2440驅(qū)動奇譚--helloworld

2440驅(qū)動奇譚--helloworld

來源:程序員人生   發(fā)布時間:2014-10-08 11:19:07 閱讀次數(shù):3529次

        要不要這樣,還沒寫好過驅(qū)動就要我去裁剪內(nèi)核?  好吧,看到用戶手冊上“LED 驅(qū)動已經(jīng)被編譯到缺省內(nèi)核中,因此不能再使用 insmod 方式加載。 ”  我重新把手冊上手工定制內(nèi)核走了一遍,把自己之后要寫的一些驅(qū)動給否掉,以便可以insmod去掉的驅(qū)動有:lcd驅(qū)動(包括其中有個logo的選項),觸摸屏驅(qū)動,音頻驅(qū)動,看門狗驅(qū)動,I2C驅(qū)動,pwm驅(qū)動,led驅(qū)動,按鍵驅(qū)動,A/D驅(qū)動,RTC驅(qū)動 ; 由于把lcd驅(qū)動否掉了,開發(fā)板里也就沒燒寫qt,之燒寫了文件系統(tǒng)rootfs,文件名為:rootfs_rtm_2440.img  (光盤目錄:image/linux/rtm )

         這是我的第一篇驅(qū)動,為了紀(jì)念下追劇一個暑假,越演越狗血的電視劇--古劍奇譚,就寫成驅(qū)動奇譚

系統(tǒng):Ubuntu 12.04

驅(qū)動交叉編譯內(nèi)核:linux-2.6.32.2               //建立交叉編譯

開發(fā)板:mini2440 (128M nandflash)       //關(guān)于怎么燒寫linux到開發(fā)板請點擊,Linux RootFs 選擇rootfs_rtm_2440.img  (光盤目錄:image/linux/rtm )

開發(fā)所需工具:NFS網(wǎng)絡(luò)文件  minicom  


pc端:

首先新建一個自己寫的驅(qū)動的文件夾

1. # mkdir  /home/lianghuiyong/my2440drivers           //新建文件夾

2. # cd  /home/lianghuiyong/my2440drivers             //進入文件夾

3. # VIM helloworld.c 


helloworld.c 內(nèi)容為:

#include<linux/init.h> #include<linux/module.h> static int hello_init(void) { printk(KERN_ALERT "Hello,mini2440 module is installed! "); return 0; } static void hello_cleanup(void) { printk(KERN_ALERT "Good-bye,mini2440 module was removed! "); } module_init(hello_init); module_exit(hello_cleanup); MODULE_LICENSE("Daul BSD/GPL");


代碼中module_init ,module_exit是驅(qū)動模塊加載、卸載函數(shù),MODULE_LICENSE("Daul BSD/GPL");是模塊許可證聲明,依照 Daul BSD/GPL 協(xié)議


4. #VIM Makefile


Makefile內(nèi)容:(2.4內(nèi)核和2.6內(nèi)核的寫法有點不同,以下為2.6的寫法)

PWD = $(shell pwd) KDIR =/opt/FriendlyARM/mini2440/linux-2.6.32.2/ obj-m:= helloworld.o all: $(MAKE) -C $(KDIR) M=$(PWD) CONFIG_DEBUG_SECTION_MISMATCH=y clean: rm -rf *.o *~core.depend. *.cmd *.ko *.mod.c .tmp_versions rm -rf *.order Module.* insmod: insmod helloworld.ko rmmod: rmmod helloworld active: echo -e "$(MAKE) " $(MAKE) -C $(KDIR) M=$(PWD)


注意一:KDIR 后接的目錄要為友善之臂提供的內(nèi)核所安裝的目錄,之前我使用網(wǎng)友的一段:KDIR :=/lib/modules/$(shell uname -r)/build,其實這里的目錄是 ubuntu 內(nèi)核目錄,ubuntu 內(nèi)核版本(3.2)和開發(fā)板的內(nèi)核版本(2.6)是不相同的,所以如果在 ubuntu 內(nèi)核下編譯生成的驅(qū)動是不能在開發(fā)板上 insmod 的!會提示 invalid module format錯誤,其中三個 helloworld 要隨 helloworld.c 文件名更改

5、# make

6、# cp ./helloworld.ko /NFSboot/



注意二:由于編寫驅(qū)動的內(nèi)核是開發(fā)板的內(nèi)核(2.6),而ubuntu的內(nèi)核是3.2,所以這個驅(qū)動在ubuntu上是insmod不了的。附( 如果是用ubuntu的內(nèi)核寫的驅(qū)動的話,insmod后沒有打印相關(guān)信息,可以使用   cat /var/log/kern.log | tail  查看日記   )




開發(fā)板端:

1、打開minicom (minicom帶顏色啟動是:minicom -c on),開發(fā)板上電
2、# mount -t nfs -o nolock 192.168.1.102:/NFSboot /mnt     //掛載 /NFSboot 目錄到開發(fā)板 /mnt 下   //配置NFS網(wǎng)絡(luò)文件
3、# cd /mnt
4、# ls
5、#  insmod helloworld.ko
6、#  lsmod
7、#  rmmod helloworld 



有可能第一次加載驅(qū)動時出現(xiàn):
helloworld: module license 'Daul BSD/GPL' taints kernel. Disabling lock debugging due to kernel taint Hello,mini2440 module is installed!
只是內(nèi)核的一個提示,沒關(guān)系的,第三行就是我們要的信息,當(dāng)我第二次insmod的時候,上面兩行就沒了


錯誤筆記:

1丶 make: *** /opt/FriendlyARM/mini2440/linux-2.6.32.2M=/home/lianghuiyong/my2440driversmodeles: 沒有那個文件或目錄。 停止。

這個應(yīng)該是makefile書寫問題,不同的內(nèi)核版本,書寫有些不同,詳情點擊


2丶insmod: can't read 'helloworld': No such file or directory

insmod需要加文件后綴 .ko


3丶insmod: error inserting '****.ko': -1 File exists

之前insmod后沒有rmmod,解決方法:rmmod ****


4丶insmod: cannot insert 'helloworld.ko': invalid module format 

這有可能是因為修改了makefile之后沒有將之前編譯所產(chǎn)生的文件刪除。除了makefile和 .c 文件,其余刪除,再make

也可能是KDIR路徑問題,KDIR要為開發(fā)板內(nèi)核所在的目錄,即linux-2.6.32.2的目錄

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 成人av网站在线观看 | 一级午夜 | 亚洲一区二区三区在线播放 | 五月婷婷激情网 | 伊人亚洲影院 | 国产一区99 | 日韩在线视频一区 | 自拍视频一区 | 久久都是精品 | 九一成人网 | 久久网站免费观看 | 狼人av在线| 国产在线一区二区三区 | 啪啪资源| 久久精品99久久 | 国产精品免费一区二区三区四区 | 国产精品久久久久久久午夜 | 免费在线观看av片 | 亚洲国产精品视频一区 | 日韩欧美一区二区三区 | 亚洲欧洲激情在线乱码蜜桃 | 91精品国产综合久久久久久久久 | 久久久久久久久久久久久久久久久久久久 | 中文字幕日韩电影 | 日韩在线观看网站 | 99国产精品久久久久久久成人热 | av久久久 | 欧美性猛交xxxxx水多 | 国产精品一区二区三区四区五区 | 国产免费美女网站 | a在线看 | 成人做爰www免费看视频网站 | 欧美日韩一级二级三级 | 人人澡人人透人人爽 | 日本天堂在线 | 91精品国产欧美一区二区成人 | 美女操人网站 | 亚洲乱码在线 | 黄a大片| 精品九九 | www.久久精品|