add task 5
parent
7730081dfb
commit
924087f4e1
@ -0,0 +1,10 @@
|
||||
#CFLAGS_my-usb-detect2.o = -DDEBUG
|
||||
obj-m += my-usb-detect.o
|
||||
|
||||
PWD := $(CURDIR)
|
||||
|
||||
all:
|
||||
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
|
||||
|
||||
clean:
|
||||
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
|
@ -0,0 +1,44 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#include <linux/hid.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/usb.h>
|
||||
|
||||
/* On défini quels périphériques usb notre driver va pouvoir utiliser. */
|
||||
static const struct usb_device_id mydriver_id_table[] = {
|
||||
/* ici pour un périphérique en particulier (VendorID:ProductID) */
|
||||
{USB_DEVICE(0x03eb, 0x2042)},
|
||||
/* Pour définir une classe d'interface usb. n'existe que pour les claviers et
|
||||
* les souris ?
|
||||
* cf. include/linux/usb.h:1039 et include/linux/uapi/linux/hid.h:{35,41,42}
|
||||
*/
|
||||
{USB_INTERFACE_INFO
|
||||
(USB_INTERFACE_CLASS_HID, USB_INTERFACE_SUBCLASS_BOOT,
|
||||
USB_INTERFACE_PROTOCOL_KEYBOARD)},
|
||||
/* indique la fin de la liste */
|
||||
{}
|
||||
};
|
||||
|
||||
/* exporte dans le userspace la table des périphériques supportés. Cela permet
|
||||
* de lier le périphérique avec le driver.
|
||||
*/
|
||||
MODULE_DEVICE_TABLE(usb, mydriver_id_table);
|
||||
|
||||
static int __init my_init(void)
|
||||
{
|
||||
pr_info("Coucou le gens !!!!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __exit my_exit(void)
|
||||
{
|
||||
pr_info("Tschuss !!!\n");
|
||||
}
|
||||
|
||||
module_init(my_init);
|
||||
module_exit(my_exit);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("rick <rick@gnous.eu>");
|
||||
MODULE_DESCRIPTION("Module chargé lorsqu'un un clavier est branché.");
|
Loading…
Reference in New Issue