首先在build kernel時,
#make menuconfig
記得要到Device Drivers -> Generic Driver Options
將Userspace firmware loading support設為<*>,也就是built-in
接下來準備將自己的kernel module放進去
原本想用LKMP文件上講的方法去編譯.ko檔
但發現他是在一個運作中的kernel上去編譯的,例如我現在連上網的這台linux主機
就可以用來創建自己的kernel module,但是在只有kernel source code的情形下呢?
還是說我可以在運行embedded linux的板子上進行編譯?
另一個方法就是把kernel module的 source code place together with other char. device drivers,like under /drivers/char/
and then edit "Kconfig",add the compile information
then use #make menuconfig to setup to <M> state.
and then go to the "Makefile" in the same floder,and add:
obj-$(CONFIG_LED) += led.o
now just go to the kernel source tree,command #make modules
and you can find the .ko file.
but when I try to insert the module...
[root@(none) dma2443]# modprobe led.ko
modprobe: chdir(/lib/modules): No such file or directory
but use #insmod led.ko
it's work...
so,what's wrong?
好接下來來看看載入的模組能不能用
#mknod /dev/GPIO_L c 96 0
/dev/xxx取決於你的user space程式裡面設定開哪一個device名稱
沒有留言:
張貼留言