Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/11/2020, à 15:53

Nuliel

développement de pilotes sous linux

Bonjour,
J'ai un pc portable avec un lecteur d'empreinte digitale qui n'est pas supporté sous linux. Ce lecteur est connecté en usb (et il me semble qui contient aussi un lecteur rfid pour lequel il y aurait des scripts pour le faire fonctionner).
En particulier, j'aimerais bien avoir des retours d'expérience de personnes qui se seraient lancé dans le développement de pilotes linux.
Comment faut il s'y prendre?
J'imagine qu'il faut un windows et wireshark pour faire la partie reverse engineering, j'ai bon?
Avez vous des liens ou livres à conseiller sur le développement de pilotes linux? Linux device driver est il encore utilisable?
Dans le cas de pilotes usb, faut il faire de la programmation en mode noyau?

Merci d'avance pour éclairer ma lanterne,
Nuliel


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Pour reprendre le contrôle des semences: https://kokopelli-semences.fr/fr/

Hors ligne

#2 Le 21/11/2020, à 17:32

NicoApi73

Re : développement de pilotes sous linux

Salut Nuliel,

Essaie de jeter un coup d'oeil au livre linux embarqué de Pierre Ficheux si tu en as l'occasion. Tu as quelques rudiments pour la partie noyau (les pilotes sont dans l'environnement noyau)

Pour l'exploitation des ressources (par exemple USB), tu peux prendre un framework qui te fournit des API (comme Qt). Il faut voir ce qui est disponible dans le framework que tu choisiras

Hors ligne

#3 Le 21/11/2020, à 17:59

Nuliel

Re : développement de pilotes sous linux

Merci NicoApi73.
Ok, j'irai jeter un œil dans ce livre.
Vu que c'est de la programmation noyau, il faut que je développe dans une VM pour éviter de crasher mon OS en cas de grosse erreur, j'ai bon?
Donc si je comprends bien, il y a deux choses à faire: un pilote (en environnement noyau) et adapter fprint pour qu'il reconnaisse et utilise ce lecteur d'empreinte digitale.


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Pour reprendre le contrôle des semences: https://kokopelli-semences.fr/fr/

Hors ligne

#4 Le 21/11/2020, à 18:54

NicoApi73

Re : développement de pilotes sous linux

Nuliel a écrit :

Vu que c'est de la programmation noyau, il faut que je développe dans une VM pour éviter de crasher mon OS en cas de grosse erreur, j'ai bon?

oui, la programmation noyau, c'est sans filet... Après, tu peux développer dans ton environnement et empécher le chargement du module au boot en cas de problème.

Hors ligne

#5 Le 21/11/2020, à 19:18

Nuliel

Re : développement de pilotes sous linux

Ce qui serait bien, ce serait de développer sous mon environnement classique, et exécuter dans une VM, ce serait moins lourd (après j'ai 16 Go donc ça devrait passer)
Je vais continuer mes recherches


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Pour reprendre le contrôle des semences: https://kokopelli-semences.fr/fr/

Hors ligne

#6 Le 21/11/2020, à 20:21

Bigcake

Re : développement de pilotes sous linux

Bonjour,

Je n'ai jamais compris l’intérêt d'utiliser une empreinte de doigts qui est l'une des données les moins sécurisées (Inchangeable, et laissé sur tout objet touché)
Et qui est, en plus, collecté en masse par l'état ces dernières années (combien de temps avant que ces données fuites par accident/hack ?)

J'ai développé avec succès un driver usb il y a quelque temps
Pour mon driver, j'avais récupéré l'ID hardware avec lsusb au format xxxx:xxxx (constructeur:produit il me semble)
En faisant des recherches avec cet ID, j'ai pu trouver les specs hardware et protocole logiciel publié par le constructeur (j'ai eu de la chance la dessus)

Je ne pense pas que tu ai besoin de passer par un sniffer usb, vu le type de device (lecture d'empreinte), ça semblerai être juste une récupération de données, un peu comme une souris basique
A mon avis, tu pourra juste afficher à  l'arrache les données brutes via printk() et chercher comment ça fonctionne
A voir/tester...

J'avais utilisé ces liens à l'époque :
-  (anglais) https://lwn.net/Kernel/LDD3
- (français) https://broux.developpez.com/articles/c/driver-c-linux/
-  (anglais) https://www.linuxjournal.com/article/4786

Quelques commandes utile :
- insmod, lsmod, rmmod (gestion des modules)
- lshw (pour voir quel driver utilise ton device)
- lsusb -v

Ce que tu peux essayer de faire :
- Trouver des infos spécifiques à l'ID hardware fournit par lsusb
- Trouver le code source d'un driver d'un autre lecteur d'empreinte
- Trouver le code source d'un driver d'un autre device fait par le même constructeur

Garde en tête que si tu n'arrive pas à le faire fonctionner, c'est que tu a abandonné trop tot wink, bon courage.

Dernière modification par Bigcake (Le 21/11/2020, à 20:23)


"Les gens" ne sont pas cons, ils ont été habitués à la facilité et à la désinformation. Le meilleur moyen de ne pas les aider, c'est de se moquer. Le meilleur moyen de les aider, c'est de les informer, encore et encore. La réflexion viendra. N'oubliez pas que vous aussi, vous êtes le con d'un autre.
Smartphone+GNU/Linux=Librem5
Radio+sons libre=oxyradio.net

Hors ligne

#7 Le 21/11/2020, à 20:54

Nuliel

Re : développement de pilotes sous linux

Merci Bigcake.
Tu as tout à fait raison, je pense aussi que les empreintes digitales vont fuiter (si ce n'est pas déjà fait) un jour.
Dans mon cas, je ne pense pas que Broadcom ait donné les specs, sachant que c'est à la fois un lecteur d'empreinte et un lecteur rfid si j'ai bien compris.
Je pensais récupérer les endpoints via un sniffer usb en fait.
Tu as fait un pilote il y a combien de temps? C'est juste pour savoir si même après de gros changements au niveau noyau, LDD est toujours utilisable.
Merci pour toutes ces infos!

L'identifiant que j'ai est 0a5c:5834, une puce broadcom appelée Dell ControlVault, et pour le nfc, https://github.com/jacekkow/controlvault2-nfc-enable permet de l'utiliser

Dernière modification par Nuliel (Le 21/11/2020, à 21:12)


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Pour reprendre le contrôle des semences: https://kokopelli-semences.fr/fr/

Hors ligne

#8 Le 22/11/2020, à 01:55

moko138

Re : développement de pilotes sous linux

http://www.linux-usb.org/usb.ids connaît déjà :

0a5c:
5801  BCM5880 Secure Applications Processor with fingerprint swipe sensor
5802  BCM5880 Secure Applications Processor with fingerprint touch sensor
5803  BCM5880 Secure Applications Processor with secure keyboard
5804  BCM5880 Secure Applications Processor with fingerprint swipe sensor

dont mon petit doigt me dit que le pilote ne doit pas être très différent de celui que tu vas élaborer.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#9 Le 22/11/2020, à 13:43

Nuliel

Re : développement de pilotes sous linux

Malheureusement, il n'y a pas de pilote pour ces id là, ce n'est qu'une liste d'id de périphériques usb, pas de périphériques forcément supportés sous linux
La liste des périphériques supportés est là: https://fprint.freedesktop.org/supported-devices.html

Dernière modification par Nuliel (Le 22/11/2020, à 13:44)


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Pour reprendre le contrôle des semences: https://kokopelli-semences.fr/fr/

Hors ligne