Comment dois-je commencer à travailler sur l'écriture de pilotes de périphériques?
Je voudrais savoir comment faire pour écrire des pilotes de périphérique parce que je pense que ce serait amusant. J'utilise un Mac OS X Macbook, mais j'ai aussi une machine Ubuntu (en cours d'exécution sur un Mac Min). Je suis assez familier avec le C et suis actuellement la lecture ce livre. J'ai trouvé quelques liens en ligne tels que Mac Dev Center. Je le fais parce que ce serait amusant. Je pense qu'il y aurait réelle satisfaction de voir le matériel fonctionner en raison de logiciel que j'ai écrit.
Je suppose que ce que je voudrais, c'est quelques conseils ou des conseils, et personne ne sait d'une liste de périphériques qui n'ont pas de pilotes ou puis-je écrire un pilote pour quelque chose qui est déjà pris en charge (préférez l'ancienne donc je suis vraiment à donner de la valeur). Ce qui est un bon appareil pour commencer avec? Suis-je en mordant plus que je ne peut mâcher? Je n'ai pas peur de la programmation de bas niveau ou l'assemblage ou quel que soit le montant de l'effort est nécessaire. Je voudrais un défi vraiment!
- Puisque vous avez mentionné les deux OS X et Linux, quel OS est-ce que ces pilotes de périphérique pour?
- Soit, je suppose que je préfère OS X, car c'est le portable que j'utilise.
- "les appareils qui n'ont pas de pilotes..." un tel dispositif ne serait pas utilisable! Un fabricant de l'appareil de a pour créer un pilote, ou bien ils ne peuvent pas vendre leurs produits. Cela dit, il y a quelques très, très simples appareils.
- eudyptula-challenge.org et github.com/agelastic/eudyptula (lisez-moi a les tâches, ne pas tout de suite regarder les solutions 😉 )
Vous devez vous connecter pour publier un commentaire.
Pour Linux, vous devriez regarder dans la cueillette jusqu'à la O'Reilly Linux Pilotes De Périphérique livre ou la lecture Pdf en ligne. À mon avis, il est l'un des meilleurs textes sur le sujet.
Le Module Du Noyau Linux-Guide De Programmation est une autre bonne ressource.
Vous pouvez aussi chercher un livre spécifiquement sur le Noyau Linux. J'ai ramassé une copie de Robert de l'Amour Le Noyau Linux de Développement (2e Édition) à cet effet (3ème Édition sur le chemin).
L'écriture d'un pilote de périphérique peut être assez simple, ou il peut être presque arbitrairement complexe. Par exemple, j'ai été impliqué dans un projet où il a fallu six d'entre nous de près de trois ans pour résoudre UN bug dans un pilote de périphérique. Bien sûr, nous avons dégagé des dizaines d'autres bugs lors de la recherche pour elle... le code d'immenses progrès. La correction s'est avéré être un huit de la ligne de patch, de coût, de façon conservatrice, environ un million de dollars.
Mais, comme un projet parallèle à cela, j'ai écrit un pilote ethernet à partir de la puce de la fiche de données dans une semaine, et a pris une semaine de plus pour le débogage. N'avez pas besoin de la toucher depuis.
Il n'y a aucun moyen de dire, en général, la quantité de travail d'un pilote sera; un pilote du GPU pourrait coûter des centaines de millions de personnes, un pilote pour une seule LED coûte que quelques heures de travail en plus.
Si vous voulez aller pour Linux développement de pilotes de périphériques, le librement disponible O'Reilly livre Linux Pilotes De Périphérique, Troisième Édition est à lire absolument.
Pour trouver matériel non pris en charge morceaux pour lesquels vous pourriez écrire un pilote, demandez sur le Linux listes de diffusion. Peut-être que certains périphérique USB 3.0? 😉
Pour Mac vous voudrez peut-être jeter un oeil à Mac OS X Internals livre. C'est penser et lourd, mais agréable à lire. C'est surtout sur les Mac PowerPC mais a une annexe sur Intel-basé. Pour Linux de prendre un coup d'oeil à Linux Pilotes de Périphérique, 3e Édition - elle est plus légère (gratuit Pdf en ligne 🙂 et c'est vraiment de l'appareil axé sur le conducteur, pourrait être un bon début.