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