歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux動態的添加驅動模塊

Linux動態的添加驅動模塊

日期:2017/2/25 10:37:28   编辑: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被覆蓋這樣的提示

Copyright © Linux教程網 All Rights Reserved