闡述動態(tài)的Linux添加驅(qū)動模塊
網(wǎng)絡(luò)科技的時代,電腦已成為生活必不可少的物件,我們應(yīng)用電腦,可我們知道電腦是怎樣工作的么?電腦中必不可少的就是操作系統(tǒng)?,F(xiàn)在很多人應(yīng)用Linux操作系統(tǒng),這里介紹Linux的知識,讓你學(xué)好應(yīng)用Linux系統(tǒng)。今天一講Linux添加驅(qū)動模塊,希望你記住Linux添加驅(qū)動模塊 。
說明:原先的test鍵盤驅(qū)動做為實驗材料,要求是通過insmod動態(tài)加載到系統(tǒng)中思考:要動態(tài)加載,必須先在文件系統(tǒng)里放入test.ko文件,.ko文件是專門的模塊加載文件,那么如何生成.ko文件呢?方法就是在編譯的時候生成。當(dāng)然,不能把test文件單獨拿到隨意的地方用arm-linux-gcc -o test.ko test.c這樣的語法編譯,那么該怎么做呢?分析如下:
1. 把test.c文件放到Y(jié)LP2440的根目錄下,(和板子里用的內(nèi)核相同的內(nèi)核版本),YLP2440是這個內(nèi)核再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結(jié)束后生成test.ko文件,然后把它放到文件系統(tǒng)中,新做一個cramfs文件系統(tǒng),下載到板子里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
此寫法不會出現(xiàn)modules被覆蓋這樣的提示
完成以上,成功Linux添加驅(qū)動模塊。
【編輯推薦】