Ceci est un module “Hello.c” et “Makefile”. Après avoir exécuté make partir du répertoire woking, je reçois le message suivant: make: Rien à faire pour “tous”. C’est le fichier “Hello.c”: #include // included for all kernel modules #include // included for KERN_INFO #include // included for __init and __exit macros MODULE_LICENSE(“GPL”); MODULE_AUTHOR(“Lakshmanan”); MODULE_DESCRIPTION(“A Simple Hello […]
J’ai lu des mots-clés volatiles, mais je ne sais pas dans quelles situations je devrais les utiliser. Lorsque la mémoire (variable) est mise à jour et que le processus n’en est pas conscient? Dans quels cas les conducteurs doivent-ils utiliser des variables volatiles?
Je travaille sur un pilote de périphérique de caractère simple. J’ai implémenté des fonctions de lecture et d’écriture dans le module, le problème est que lorsque j’essaie de lire le fichier device à l’aide de cat /dev/devicefile il se met en boucle infinie, c’est-à-dire qu’il lit les mêmes données de manière répétée. Quelqu’un peut-il me […]
J’ai implémenté un programme qui lit le keyboad, scanne le code et le met dans le tasklet. Le tasklet débloque le read (). Ainsi, mon application QT peut lire les données et si elle trouve le code de numérisation de l, elle envoie un rappel à Qt-webkit. Cependant, lorsque je suis en train de modifier […]
Je veux libérer une structure avec spin_lock est incorporé. Le scénario est le suivant: J’ai deux fonctions f1 () { ***************** spin_lock_irqsave(&my_obj_ptr->my_lock, flags) …. …. …………………………………. here f2 is called spin_lock_irqstore(&my_obj_ptr->my_lock, flags) ******************* kfree(my_obj_ptr) } et f2 a un contenu similaire avec f1. lorsque f2 s’appelle my_lock est utilisé, f2 doit être en attente. Cependant, […]
Je souhaite écrire un module dont la tâche est de capturer les paquets entrants sans les envoyer à l’application d’espace utilisateur ni de modifier le paquet capturé. alors ce module enverra ce paquet pour la transmission à la carte réseau. Mais le problème principal est que mon module est très volumineux et qu’il effectue également […]
J’ai besoin d’écrire un pilote spi pour omap4 à partir de zéro. Je me réfère au code du pilote http://lxr.free-electrons.com/source/drivers/spi/spi-omap2-mcspi.c. Cependant, je suis incapable de comprendre comment les opérations de base du périphérique sont gérées dans ce code de pilote. Par exemple, un pilote de char a la structure struct file_operations scull_fops = { .owner […]
J’ai réussi à configurer un petit programme pour créer un périphérique uinput que je prévois utiliser pour automatiser le test d’une application recevant des événements d’entrée au clavier. J’ai suivi les deux tutoriels comme dans cette très belle réponse . Lorsque mon programme crée le périphérique uinput en appelant ioctl(fd, UI_DEV_CREATE) un nouveau périphérique apparaît […]
J’ai écrit h dans driver en faisant echo: echo -nh / dev / mydriver Quand je fais cat / dev / mydriver, la fonction myread imprime h en continu. Je voulais imprimer une fois. Comment faire ça. static char m; static ssize_t myread(struct file *f, char __user *buf, size_t len, loff_t *off) { printk(KERN_INFO “Read()\n”); […]
OK, c‘est vraiment bizarre pour moi. J’ai un pilote de bus CAN simulé, c’est un module de kernel Linux. Ensuite, j’ai une application de test s’exécutant dans l’espace utilisateur qui accède au pilote en ouvrant un descripteur de fichier et en envoyant des messages ioctl() . Maintenant, le pilote de bus CAN est juste quelque […]