en premier je vais profiter de cette question pour savoir
s'il n'y a pas quelque part un groupe francophile pour poser des questions
sur la programmation de drivers
et ensuite la the question je n'arrive pas à introduire la bibliothèque
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
en gros et pour faire simple le but du jeu
faire une allocation dynamique du numéro majeur( cela fonctionne déjà)
pour ensuite créer le fichier qui va bien (cela ne fct pas encore )
et dans la foulée si vous savez comment je peux récupérer
le numéro majeur qd il y a eu une allocation dynamique je suis preneur
pour un driver bien sûr parce que pour l'instant
register_chrdev(0, "mydriver", &fops);
unregister_chrdev( ?????, "mydriver");
ps mon c est rouillé donc on y va doucement
en premier je vais profiter de cette question pour savoir
s'il n'y a pas quelque part un groupe francophile pour poser des questions
sur la programmation de drivers
et ensuite la the question je n'arrive pas à introduire la bibliothèque
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
en gros et pour faire simple le but du jeu
faire une allocation dynamique du numéro majeur( cela fonctionne déjà)
pour ensuite créer le fichier qui va bien (cela ne fct pas encore )
et dans la foulée si vous savez comment je peux récupérer
le numéro majeur qd il y a eu une allocation dynamique je suis preneur
pour un driver bien sûr parce que pour l'instant
register_chrdev(0, "mydriver", &fops);
unregister_chrdev( ?????, "mydriver");
ps mon c est rouillé donc on y va doucement
en premier je vais profiter de cette question pour savoir
s'il n'y a pas quelque part un groupe francophile pour poser des questions
sur la programmation de drivers
et ensuite la the question je n'arrive pas à introduire la bibliothèque
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
en gros et pour faire simple le but du jeu
faire une allocation dynamique du numéro majeur( cela fonctionne déjà)
pour ensuite créer le fichier qui va bien (cela ne fct pas encore )
et dans la foulée si vous savez comment je peux récupérer
le numéro majeur qd il y a eu une allocation dynamique je suis preneur
pour un driver bien sûr parce que pour l'instant
register_chrdev(0, "mydriver", &fops);
unregister_chrdev( ?????, "mydriver");
ps mon c est rouillé donc on y va doucement
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
mon c.. est rouillé donc on y va doucement
mon c.. est rouillé donc on y va doucement
mon c.. est rouillé donc on y va doucement
Le 22/05/08 17:43, dans <g141ar$j14$, « remy »en premier je vais profiter de cette question pour savoir
s'il n'y a pas quelque part un groupe francophile pour poser des questions
sur la programmation de drivers
Les drivers sont spécifiques à chaque plateforme. Il faudrait poster sur un
groupe dédié à Linux.et ensuite la the question je n'arrive pas à introduire la bibliothèque
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
Tu parles de bibliothèque puis de drivers... Bizarre.
en gros et pour faire simple le but du jeu
faire une allocation dynamique du numéro majeur( cela fonctionne déjà)
pour ensuite créer le fichier qui va bien (cela ne fct pas encore )
Sous Linux 2.6, il suffit d'appeler devfs_mk_cdev dans la routine d'init du
driver pour créer automatiquement le fichier /dev associé au driver (si
c'est ce que tu veux faire).et dans la foulée si vous savez comment je peux récupérer
le numéro majeur qd il y a eu une allocation dynamique je suis preneur
pour un driver bien sûr parce que pour l'instant
register_chrdev(0, "mydriver", &fops);
unregister_chrdev( ?????, "mydriver");
alloc_chrdev_region permet d'allouer et de récupérer le majeur et
unregister_chrdev_region libère le majeur.ps mon c est rouillé donc on y va doucement
Linux c'est pas écrit en C mais en GNU-C, ce qui n'est pas toujours la même
chose.
Le 22/05/08 17:43, dans <g141ar$j14$2@s1.news.oleane.net>, « remy »
en premier je vais profiter de cette question pour savoir
s'il n'y a pas quelque part un groupe francophile pour poser des questions
sur la programmation de drivers
Les drivers sont spécifiques à chaque plateforme. Il faudrait poster sur un
groupe dédié à Linux.
et ensuite la the question je n'arrive pas à introduire la bibliothèque
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
Tu parles de bibliothèque puis de drivers... Bizarre.
en gros et pour faire simple le but du jeu
faire une allocation dynamique du numéro majeur( cela fonctionne déjà)
pour ensuite créer le fichier qui va bien (cela ne fct pas encore )
Sous Linux 2.6, il suffit d'appeler devfs_mk_cdev dans la routine d'init du
driver pour créer automatiquement le fichier /dev associé au driver (si
c'est ce que tu veux faire).
et dans la foulée si vous savez comment je peux récupérer
le numéro majeur qd il y a eu une allocation dynamique je suis preneur
pour un driver bien sûr parce que pour l'instant
register_chrdev(0, "mydriver", &fops);
unregister_chrdev( ?????, "mydriver");
alloc_chrdev_region permet d'allouer et de récupérer le majeur et
unregister_chrdev_region libère le majeur.
ps mon c est rouillé donc on y va doucement
Linux c'est pas écrit en C mais en GNU-C, ce qui n'est pas toujours la même
chose.
Le 22/05/08 17:43, dans <g141ar$j14$, « remy »en premier je vais profiter de cette question pour savoir
s'il n'y a pas quelque part un groupe francophile pour poser des questions
sur la programmation de drivers
Les drivers sont spécifiques à chaque plateforme. Il faudrait poster sur un
groupe dédié à Linux.et ensuite la the question je n'arrive pas à introduire la bibliothèque
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
Tu parles de bibliothèque puis de drivers... Bizarre.
en gros et pour faire simple le but du jeu
faire une allocation dynamique du numéro majeur( cela fonctionne déjà)
pour ensuite créer le fichier qui va bien (cela ne fct pas encore )
Sous Linux 2.6, il suffit d'appeler devfs_mk_cdev dans la routine d'init du
driver pour créer automatiquement le fichier /dev associé au driver (si
c'est ce que tu veux faire).et dans la foulée si vous savez comment je peux récupérer
le numéro majeur qd il y a eu une allocation dynamique je suis preneur
pour un driver bien sûr parce que pour l'instant
register_chrdev(0, "mydriver", &fops);
unregister_chrdev( ?????, "mydriver");
alloc_chrdev_region permet d'allouer et de récupérer le majeur et
unregister_chrdev_region libère le majeur.ps mon c est rouillé donc on y va doucement
Linux c'est pas écrit en C mais en GNU-C, ce qui n'est pas toujours la même
chose.
Le 22/05/08 17:43, dans <g141ar$j14$, « remy »en premier je vais profiter de cette question pour savoir
s'il n'y a pas quelque part un groupe francophile pour poser des questions
sur la programmation de drivers
Les drivers sont spécifiques à chaque plateforme. Il faudrait poster sur un
groupe dédié à Linux.et ensuite la the question je n'arrive pas à introduire la bibliothèque
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
Tu parles de bibliothèque puis de drivers... Bizarre.
Bizarre cela est tout à fait possible
je cherche à développer un driver avec une allocation dynamique de
numéro majeur puis à créer un fichier dans /dev/
et tout cela depuis le driver dans la fonction
__init mon_module_init(void)
je souhaite que l'utilisateur potentiel du driver
n'est qu'à taper
make
insmod ...
ou rmmod ....
et tout le reste c'est le problème du programmeur
donc il faut que je puisse récupérer le numéro alloué par le système
pour pouvoir le stocker
et m'en servir pour libérer les ressources
quand il y a un déférencement du driver
et ce numéro me sert aussi pour
créer le fichier avec mkmod
d'où la question intégration de la bibliothèque
/usr/include/stdlib.h pour utiliser system("....")
qui devrait me permettre d'exécuter un cmd shell
ce que je trouvais bizarre c'est qu'il n'y a pas de mécanisme déjà
établi et qu'on laisse l'intégrateur/utilisateur faire mumuse avec mkmod
bon bref je veux simplifier l'utilisation du mon driver et je suis
obligé de passer par une allocation dynamique à cause de la
"portabilité "
voila en gros le pourquoi du comment
mais devfs_mk_cdev me semble bien prometteuse et adaptée à la chose
il me reste donc le problème de récupération du numéro majeur pour
libérer les ressources parce que
int minor = MINOR(inode->i_rdev); ne passe pas la compilation
dit différemment je cherche à initialiser la structure
dev_t initialise par le system
dans tous les cas la question sur l'intégration des bibliothèques reste
d'actualité
parce que je vais en avoir besoin pour mon truc
qui a besoin d'intégrer des fonctions mathématiques à la con sur les
structures de données à la con donc je suis assez intéressé par quelques
liens
mais bon il n'y a pas le feu c'est juste un développement perso
tranquille à temps perdu
Le 22/05/08 17:43, dans <g141ar$j14$2@s1.news.oleane.net>, « remy »
en premier je vais profiter de cette question pour savoir
s'il n'y a pas quelque part un groupe francophile pour poser des questions
sur la programmation de drivers
Les drivers sont spécifiques à chaque plateforme. Il faudrait poster sur un
groupe dédié à Linux.
et ensuite la the question je n'arrive pas à introduire la bibliothèque
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
Tu parles de bibliothèque puis de drivers... Bizarre.
Bizarre cela est tout à fait possible
je cherche à développer un driver avec une allocation dynamique de
numéro majeur puis à créer un fichier dans /dev/
et tout cela depuis le driver dans la fonction
__init mon_module_init(void)
je souhaite que l'utilisateur potentiel du driver
n'est qu'à taper
make
insmod ...
ou rmmod ....
et tout le reste c'est le problème du programmeur
donc il faut que je puisse récupérer le numéro alloué par le système
pour pouvoir le stocker
et m'en servir pour libérer les ressources
quand il y a un déférencement du driver
et ce numéro me sert aussi pour
créer le fichier avec mkmod
d'où la question intégration de la bibliothèque
/usr/include/stdlib.h pour utiliser system("....")
qui devrait me permettre d'exécuter un cmd shell
ce que je trouvais bizarre c'est qu'il n'y a pas de mécanisme déjà
établi et qu'on laisse l'intégrateur/utilisateur faire mumuse avec mkmod
bon bref je veux simplifier l'utilisation du mon driver et je suis
obligé de passer par une allocation dynamique à cause de la
"portabilité "
voila en gros le pourquoi du comment
mais devfs_mk_cdev me semble bien prometteuse et adaptée à la chose
il me reste donc le problème de récupération du numéro majeur pour
libérer les ressources parce que
int minor = MINOR(inode->i_rdev); ne passe pas la compilation
dit différemment je cherche à initialiser la structure
dev_t initialise par le system
dans tous les cas la question sur l'intégration des bibliothèques reste
d'actualité
parce que je vais en avoir besoin pour mon truc
qui a besoin d'intégrer des fonctions mathématiques à la con sur les
structures de données à la con donc je suis assez intéressé par quelques
liens
mais bon il n'y a pas le feu c'est juste un développement perso
tranquille à temps perdu
Le 22/05/08 17:43, dans <g141ar$j14$, « remy »en premier je vais profiter de cette question pour savoir
s'il n'y a pas quelque part un groupe francophile pour poser des questions
sur la programmation de drivers
Les drivers sont spécifiques à chaque plateforme. Il faudrait poster sur un
groupe dédié à Linux.et ensuite la the question je n'arrive pas à introduire la bibliothèque
#include </usr/include/stdlib.h>
pour utiliser system("beep");
dans un driver en cours de fabrication
Tu parles de bibliothèque puis de drivers... Bizarre.
Bizarre cela est tout à fait possible
je cherche à développer un driver avec une allocation dynamique de
numéro majeur puis à créer un fichier dans /dev/
et tout cela depuis le driver dans la fonction
__init mon_module_init(void)
je souhaite que l'utilisateur potentiel du driver
n'est qu'à taper
make
insmod ...
ou rmmod ....
et tout le reste c'est le problème du programmeur
donc il faut que je puisse récupérer le numéro alloué par le système
pour pouvoir le stocker
et m'en servir pour libérer les ressources
quand il y a un déférencement du driver
et ce numéro me sert aussi pour
créer le fichier avec mkmod
d'où la question intégration de la bibliothèque
/usr/include/stdlib.h pour utiliser system("....")
qui devrait me permettre d'exécuter un cmd shell
ce que je trouvais bizarre c'est qu'il n'y a pas de mécanisme déjà
établi et qu'on laisse l'intégrateur/utilisateur faire mumuse avec mkmod
bon bref je veux simplifier l'utilisation du mon driver et je suis
obligé de passer par une allocation dynamique à cause de la
"portabilité "
voila en gros le pourquoi du comment
mais devfs_mk_cdev me semble bien prometteuse et adaptée à la chose
il me reste donc le problème de récupération du numéro majeur pour
libérer les ressources parce que
int minor = MINOR(inode->i_rdev); ne passe pas la compilation
dit différemment je cherche à initialiser la structure
dev_t initialise par le system
dans tous les cas la question sur l'intégration des bibliothèques reste
d'actualité
parce que je vais en avoir besoin pour mon truc
qui a besoin d'intégrer des fonctions mathématiques à la con sur les
structures de données à la con donc je suis assez intéressé par quelques
liens
mais bon il n'y a pas le feu c'est juste un développement perso
tranquille à temps perdu
devfs_mk_cdev(mon_dev, S_IFCHR | S_IRUSR | S_IWUSR, "truc");
devfs_mk_cdev(mon_dev, S_IFCHR | S_IRUSR | S_IWUSR, "truc");
devfs_mk_cdev(mon_dev, S_IFCHR | S_IRUSR | S_IWUSR, "truc");
avec google code plus quelques lectures sur la toile je peux m'en sortir
par contre devfs_mk_cdev veut bien passer la compilation
avec warnig
mais pas l'éxécution
compilation
make
make -C /lib/modules/`uname -r`/build/ M=/home/remy/Desktop/camera modules
make[1]: entrant dans le répertoire «
/usr/src/linux-headers-2.6.20-16-generic »
CC [M] /home/remy/..../mydriver.o
/home/remy/.../mydriver.c: In function «mydriver_init":
/home/remy/....mydriver.c:161: attention : implicit declaration of
function «devfs_mk_cdev"
Building modules, stage 2.
MODPOST 1 modules
WARNING: "devfs_mk_cdev" [/home/remy..../mydriver.ko] undefined!
LD [M] /home/remy/..../mydriver.ko
make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.20-16-generic »
exécution
sudo insmod mydriver.ko
insmod: error inserting 'mydriver.ko': -1 Unknown symbol in module
et dans toutes les lectures que j'ai pu parcourir
il faut créer un script pour installer le driver cela veut t'il dire
que ce que je cherche à faire n'est pas possible
bon bref ça ne marche pas la création de fichiers dans dev de manière
automatique du moins moi je n'y arrive pas
une piste peut etre ?
http://cjoint.com/data/fAqjee13jw.htm
avec google code plus quelques lectures sur la toile je peux m'en sortir
par contre devfs_mk_cdev veut bien passer la compilation
avec warnig
mais pas l'éxécution
compilation
make
make -C /lib/modules/`uname -r`/build/ M=/home/remy/Desktop/camera modules
make[1]: entrant dans le répertoire «
/usr/src/linux-headers-2.6.20-16-generic »
CC [M] /home/remy/..../mydriver.o
/home/remy/.../mydriver.c: In function «mydriver_init":
/home/remy/....mydriver.c:161: attention : implicit declaration of
function «devfs_mk_cdev"
Building modules, stage 2.
MODPOST 1 modules
WARNING: "devfs_mk_cdev" [/home/remy..../mydriver.ko] undefined!
LD [M] /home/remy/..../mydriver.ko
make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.20-16-generic »
exécution
sudo insmod mydriver.ko
insmod: error inserting 'mydriver.ko': -1 Unknown symbol in module
et dans toutes les lectures que j'ai pu parcourir
il faut créer un script pour installer le driver cela veut t'il dire
que ce que je cherche à faire n'est pas possible
bon bref ça ne marche pas la création de fichiers dans dev de manière
automatique du moins moi je n'y arrive pas
une piste peut etre ?
http://cjoint.com/data/fAqjee13jw.htm
avec google code plus quelques lectures sur la toile je peux m'en sortir
par contre devfs_mk_cdev veut bien passer la compilation
avec warnig
mais pas l'éxécution
compilation
make
make -C /lib/modules/`uname -r`/build/ M=/home/remy/Desktop/camera modules
make[1]: entrant dans le répertoire «
/usr/src/linux-headers-2.6.20-16-generic »
CC [M] /home/remy/..../mydriver.o
/home/remy/.../mydriver.c: In function «mydriver_init":
/home/remy/....mydriver.c:161: attention : implicit declaration of
function «devfs_mk_cdev"
Building modules, stage 2.
MODPOST 1 modules
WARNING: "devfs_mk_cdev" [/home/remy..../mydriver.ko] undefined!
LD [M] /home/remy/..../mydriver.ko
make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.20-16-generic »
exécution
sudo insmod mydriver.ko
insmod: error inserting 'mydriver.ko': -1 Unknown symbol in module
et dans toutes les lectures que j'ai pu parcourir
il faut créer un script pour installer le driver cela veut t'il dire
que ce que je cherche à faire n'est pas possible
bon bref ça ne marche pas la création de fichiers dans dev de manière
automatique du moins moi je n'y arrive pas
une piste peut etre ?
http://cjoint.com/data/fAqjee13jw.htm
http://tldp.org/LDP/lkmpg/2.6/html/index.html
regarder chardev.c
http://tldp.org/LDP/lkmpg/2.6/html/index.html
regarder chardev.c
http://tldp.org/LDP/lkmpg/2.6/html/index.html
regarder chardev.c
Il faut ajouter "linux/devfs_fs_kernel" et peut-être d'autres includes.
Il faut ajouter "linux/devfs_fs_kernel" et peut-être d'autres includes.
Il faut ajouter "linux/devfs_fs_kernel" et peut-être d'autres includes.