
Enviado em 22/09/2023 - 15:06h
Eu estou fazendo um dispositivo usb experimental e criei um simples modulo de driver para o kernel linux.#ifndef __USB_DRIVER_H__
#define __USB_DRIVER_H__
#define USB_SKEL_VENDOR_ID "7SEG_DRIVER"
#define USB_SKEL_PRODUCT_ID 0x0001
static int skel_probe(struct usb_interface *intf, const struct usb_device_id *id);
static void skel_disconnect(struct usb_interface *intf);
static struct usb_device_id skel_table[] = {
{ USB_DEVICE(USB_SKEL_VENDOR_ID, USB_SKEL_PRODUCT_ID) },
{ }
};
static struct usb_driver skel_driver = {
.name = "skeleton",
.probe = skel_probe,
.disconnect = skel_disconnect,
.id_table = skel_table,
};
#endif
#include "usb_driver.h"
MODULE_AUTHOR("SEU NOME <seu_email@email.com>");
MODULE_DESCRIPTION("Introducao a criacao de driver pra linux");
MODULE_LICENSE("GPL");
MODULE_VERSION("1.0");
MODULE_DEVICE_TABLE(usb, skel_table);
static int skel_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
pr_info("o usb 7segmento foi conectado");
return 0;
}
static void skel_disconnect(struct usb_interface *intf)
{
pr_info("o usb 7segmento foi desconectado");
}
static int __init usb_skel_init(void)
{
//registrando este driver com subsistema USB
int result = usb_register(&skel_driver);
if(result < 0) {
pr_err("usb_register falhou para o driver %s. Erro numero %s"
, skel_driver.name, result);
return -1;
}
return 0;
}
static void __exit usb_skel_exit(void)
{
usb_deregister(&skel_driver);
pr_info("Modulo removido\n");
}
module_init(usb_skel_init);
module_exit(usb_skel_exit);
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
É normal não gostar de KDE? (8)
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









