现在正在做一款USB键盘的 linux驱动,因为上面的一些为非标准键要做的和windows一样,所以就麻烦了,为了实现功能,首先要使上层程序能够抓到scancode。这样就需要给内核打补丁,或者编译内核模块。我用加载内核模块的方法,可是编译的时候出现一大堆的问题。那个文件的*.c档基本和/usr/src/linux -2.4.20-8/drivers/usb/usbkbd.c 一样。当我用同样的方法编译usbkbd.c的时候出现同样的问题。编译命令 gcc –c usbkbd.c。 或者用 gc...
by wanganjun78 - 内核/嵌入技术 - 2004-03-24 10:32:35 阅读(516) 回复(0)
现在正在做一款USB键盘的 linux驱动,因为上面的一些为非标准键要做的和windows一样,所以就麻烦了,为了实现功能,首先要使上层程序能够抓到scancode。这样就需要给内核打补丁,或者编译内核模块。我用加载内核模块的方法,可是编译的时候出现一大堆的问题。那个文件的*.c档基本和/usr/src/linux -2.4.20-8/drivers/usb/usbkbd.c 一样。当我用同样的方法编译usbkbd.c的时候出现同样的问题。编译命令 gcc –c usbkbd.c。 或者用 gc...
下面是我用的原码!
1 #include
代码很简单,如下:
#include
测试驱动开发平台 为了后续学习的顺利进行,我们利用最简单的hello,world程序,在内核上挂载和卸载我们自己编写的hello模块。说明:本文调试环境VMware Workstation 5.0+TurboLinux 10,教材是《Linux Device Drivers》第3版英文电子图书。 一、编写hello.c文件 利用vi编辑器,我们键入下面的代码,并保存为hello.c文件。 /** * hello.c * ------Test for kernel module */ #i nclude linux/init.h> #i nclude linux/modul...
各位大侠, 在编译linux内核时,如果将某驱动设置为*,即将模块编译进内核。是否就是在linux内核启动过程中会加载该模块? 如果将某驱动设置为M,即编译为模块。是否需要linux内核启动过程中根据device tree 确定是否加载该模块? 非常感谢!
各位大侠, 在编译linux内核时,如果将某驱动设置为*,即将模块编译进内核。是否就是在linux内核启动过程中会加载该模块? 如果将某驱动设置为M,即编译为模块。是否需要linux内核启动过程中根据device tree 确定是否加载该模块? 非常感谢!
大家好,我知道内核模块的编译可以分为两种,一种在内核源码树内编译,另一种在内核源码树外编译。 1、在内核源码树内编译主要是修改Kconfig和Makefile (1)比如有个hello.c模块源代码,我只要把它放到内核源码树的drivers/char/目录下, 修改drivers/char/目录下的Kconfig , 添加如下语句 config HELLO_MODULE tristate "modules device support" default y help Say Y here,the modules will be build in k...
小弟近日在做一个v4l2相关的项目 里面有个驱动模块,源文件只有video-buf.c 在这个源文件中并没有module_int()与module_exit() 只有下面几个东西: module_param(debug, int, 0644); MODULE_DESCRIPTION("helper module to manage video4linux pci dma buffers"); MODULE_AUTHOR("Gerd Knorr <[email]kraxel@bytesex.org[/email]> [SuSE Labs]"); MODULE_LICENSE("GPL"); EXPORT_SYMBOL_GPL(videobuf_vmalloc_to_sg); 。。。。E...
小弟近日在做一个v4l2相关的项目 里面有个驱动模块,源文件只有video-buf.c 在这个源文件中并没有module_int()与module_exit() 只有下面几个东西: module_param(debug, int, 0644); MODULE_DESCRIPTION("helper module to manage video4linux pci dma buffers"); MODULE_AUTHOR("Gerd Knorr <[email]kraxel@bytesex.org[/email]> [SuSE Labs]"); MODULE_LICENSE("GPL"); EXPORT_SYMBOL_GPL(videobuf_vmalloc_to_sg); 。。。。E...
本帖最后由 shaohua312 于 2011-11-09 23:15 编辑 make[3]: *** 没有规则可以创建“net/ipv4/netfilter/ipt_ECN.o”需要的目标“net/ipv4/netfilter/ipt_ECN.c”。 停止。 make[2]: *** [net/ipv4/netfilter] 错误 2 make[1]: *** [net/ipv4] 错误 2 make: *** [net] 错误 2 我打开文件目录发现确实没有ipt_ECN.c这个文件,我就在makefile里面将这个条件给注释掉了,在编译又发现同样的问题,只是缺少的是别的c文件,请问大家...