路径和(使用到的)文件列表: kbd ————————————————+———————————————— | | | | Makefile evdev input kbd ——+—— ——+—— —————————+——————— | | | | | | | | evdev.c Makefile input.c Makefile kbd.h kbd_core.c pinpad.c Makefile 注:input evdev 路径下的文件拷贝至linux/drivers/input, kbd下的文件自己写的 ./input: built-in.o evdev.c ff-core.o fixp-arith.h input0.mod.c input0.o input.o keyboard mousedev.c tsdev.c evbug.c ff-core.c ff-memless.c input0.ko input0.mod.o input.c joydev.c Makefile power.c ./input/keyboard: aaed2000_kbd.c atkbd.c hil_kbd.c hpps2atkbd.h lkkbd.c Makefile omap-keypad.c stowaway.c xtkbd.c amikbd.c corgikbd.c hilkbd.c input.c locomokbd.c newtonkbd.c spitzkbd.c sunkbd.c ./kbd: built-in.o kbd_core.c kbd_core.o kbd.h kbd.ko kbd.mod.c kbd.mod.o kbd.o Makefile Module.symvers pinpad.c pinpad.o 根目录下的Makefile是 MAKEFLAGS += --no-print-directory ifneq ($(KERNELRELEASE),) obj-y := input/ kbd/ evdev/ else KERNELDIR = /home/innova/LDE PWD := $(shell pwd) MBAK = /down/emv/ SBAK = /down/sys/ modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) kernel @/bin/bash /opt/320/cp.sh input/input0.ko kbd/kbd.ko evdev/evdev.ko clean: $(MAKE) -C $(KERNELDIR) M=$$PWD kclean endif bak: /bin/bash /opt/320/bak.sh input目录下的Makefile是 obj-m += input0.o input0-objs := input.o ff-core.o #evbug.o evdev目录下的Makefile是 obj-m += evdev.o kbd目录下的Makefile是 obj-m += kbd.o kbd-objs := pinpad.o kbd_core.o 调试信息 input pinpad, no evdev # cat /proc/bus/input/devices I: Bus=0019 Vendor=ffff Product=ffff Version=ffff N: Name="pinpad" P: Phys=keyboard S: Sysfs=/class/input/input0 H: Handlers= B: EV=3 B: KEY=5fe0000 0 0 0 0 0 3ff4000 8002100 input pinpad and evdev # cat /proc/bus/input/devices I: Bus=0019 Vendor=ffff Product=ffff Version=ffff N: Name="pinpad" P: Phys=keyboard S: Sysfs=/class/input/input0 H: Handlers=event0 B: EV=3 B: KEY=5fe0000 0 0 0 0 0 3ff4000 8002100 # cat handlers N: Number=0 Name=evdev Minor=64 # rmmod evdev # cat handlers #