闡述動態的Linux添加驅動模塊
網絡科技的時代,電腦已成為生活必不可少的物件,我們應用電腦,可我們知道電腦是怎樣工作的么?電腦中必不可少的就是操作系統?,F在很多人應用Linux操作系統,這里介紹Linux的知識,讓你學好應用Linux系統。今天一講Linux添加驅動模塊,希望你記住Linux添加驅動模塊 。
說明:原先的test鍵盤驅動做為實驗材料,要求是通過insmod動態加載到系統中思考:要動態加載,必須先在文件系統里放入test.ko文件,.ko文件是專門的模塊加載文件,那么如何生成.ko文件呢?方法就是在編譯的時候生成。當然,不能把test文件單獨拿到隨意的地方用arm-linux-gcc -o test.ko test.c這樣的語法編譯,那么該怎么做呢?分析如下:
1. 把test.c文件放到YLP2440的根目錄下,(和板子里用的內核相同的內核版本),YLP2440是這個內核再PC中的文件目錄2. 然后修改YLP2440根目錄的Makefile文件,在頭部添加如下代碼:
- obj-m := test.o
- KERNELDIR := /root/test/YLP2440
- PWD := $(shell pwd)
- modules:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
- modules_install:
- $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
3. make 4. make結束后生成test.ko文件,然后把它放到文件系統中,新做一個cramfs文件系統,下載到板子里5. 啟動板子,然后在test.ko文件目錄下輸入:insmod test.ko 6. 完成
上述代碼中,modules和modules_install為什么要取這個名字我也不知道,另一種代碼寫法是這樣的:
- obj-m := test.o
- KERNELDIR := /root/test/YLP2440
- PWD := $(shell pwd)
- default:
- $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
此寫法不會出現modules被覆蓋這樣的提示
完成以上,成功Linux添加驅動模塊。
【編輯推薦】