je cherche un moyen ou un exemple qui me permettrait de
faire un driver avec une création dynamique du fichier
dans le répertoire /dev
je suis avant tout, pas un spécialiste de la chose juste un amateur
qui révise son c et qui a besoin d'un driver maison
distribution de développement ubuntu
en d'autres lieux on m'a orienté sur devfs_mk_cdev avec un
#include <linux/devfs_fs_kernel.h>
qui n'est pas sur ma machine bizzard
donc je ne veux pas faire de script de chargement avec un mkmod....
mon driver se charge bien
sudo modprobe mydriver.ko ne veut pas fonctionner ce qui me paraît normal
puisque mydriver n'est pas dans le fichier modules.conf que je n'ai pas
trouvé sur ma ubuntu
bon bref comment l'on fait pour créer ou supprimer un fichier de
manière dynamique dans /dev/
il y a quelques liens qui me renvoient sur un système de fichier virtuel
mais là
je pense que je m'éloingne de la solution qui doit être bien basic
je ne dois pas être le premier à vouloir faire ça
code source
http://cjoint.com/data/fBqoXcnycD.htm
cd /home/remy/Desktop
unzip ...
make
sudo insmod mydriver.ko
less /proc/devices |grep Mydriver
253 Mydriver
sudo rmmod mydriver.ko
sudo insmod mydriver.ko major=255
less /proc/devices |grep Mydriver
255 Mydriver
se qui ne marche pas et en commentaire
merci pour toute piste remy
--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
remy
bonjour
une solution shell pas vraiment génial mais bon
#!/bin/sh module=Mydriver
insmod Mydriver.ko major=$( more /proc/devices |grep $module | awk '{print $1}' ) mknod /dev/$module c $major 0 chmod 666 /dev/$module
en gros http://cjoint.com/data/gfnJD7VN5S.htm
:~/Desktop/Mydriver2$ make make -C /lib/modules/`uname -r`/build/ M=/home/remy/Desktop/Mydriver2 modules make[1]: entrant dans le répertoire « /usr/src/linux-headers-2.6.20-16-generic » CC [M] /home/remy/Desktop/Mydriver2/Mydriver.o Building modules, stage 2. MODPOST 1 modules CC /home/remy/Desktop/Mydriver2/Mydriver.mod.o LD [M] /home/remy/Desktop/Mydriver2/Mydriver.ko make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.20-16-generic »
:~/Desktop/Mydriver2$ tail /var/log/syslog Jun 5 13:37:02 remy-desktop kernel: [16941.928000] driver loaded Jun 5 13:37:02 remy-desktop kernel: [16941.928000] dynamic device major nuber... Jun 5 13:37:02 remy-desktop kernel: [16941.928000] Device major got: 253 Jun 5 13:37:02 remy-desktop kernel: [16941.928000] Registering char device... Jun 5 13:37:02 remy-desktop kernel: [16941.928000] Device registered
Jun 5 13:37:50 remy-desktop kernel: [16990.012000] write: demande ecriture de 4096 octets Jun 5 13:38:07 remy-desktop kernel: [17006.896000] read: demande lecture de 16 octets
Jun 5 13:38:40 remy-desktop kernel: [17039.688000] Removing driver Jun 5 13:38:40 remy-desktop kernel: [17039.688000] Unregistering device Jun 5 13:38:40 remy-desktop kernel: [17039.688000] Free device major: 253 :~/Desktop/Mydriver2$
-- Pour contacter l'équipe de modération : ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans la liste de distribution des modérateurs.
bonjour
une solution shell pas vraiment génial mais bon
#!/bin/sh
module=Mydriver
insmod Mydriver.ko
major=$( more /proc/devices |grep $module | awk '{print $1}' )
mknod /dev/$module c $major 0
chmod 666 /dev/$module
en gros http://cjoint.com/data/gfnJD7VN5S.htm
remy@remy-desktop:~/Desktop/Mydriver2$ make
make -C /lib/modules/`uname -r`/build/ M=/home/remy/Desktop/Mydriver2
modules
make[1]: entrant dans le répertoire «
/usr/src/linux-headers-2.6.20-16-generic »
CC [M] /home/remy/Desktop/Mydriver2/Mydriver.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/remy/Desktop/Mydriver2/Mydriver.mod.o
LD [M] /home/remy/Desktop/Mydriver2/Mydriver.ko
make[1]: quittant le répertoire «
/usr/src/linux-headers-2.6.20-16-generic »
remy@remy-desktop:~/Desktop/Mydriver2$ tail /var/log/syslog
Jun 5 13:37:02 remy-desktop kernel: [16941.928000] driver loaded
Jun 5 13:37:02 remy-desktop kernel: [16941.928000] dynamic device major
nuber...
Jun 5 13:37:02 remy-desktop kernel: [16941.928000] Device major got: 253
Jun 5 13:37:02 remy-desktop kernel: [16941.928000] Registering char
device...
Jun 5 13:37:02 remy-desktop kernel: [16941.928000] Device registered
Jun 5 13:37:50 remy-desktop kernel: [16990.012000] write: demande
ecriture de 4096 octets
Jun 5 13:38:07 remy-desktop kernel: [17006.896000] read: demande
lecture de 16 octets
Jun 5 13:38:40 remy-desktop kernel: [17039.688000] Removing driver
Jun 5 13:38:40 remy-desktop kernel: [17039.688000] Unregistering device
Jun 5 13:38:40 remy-desktop kernel: [17039.688000] Free device major: 253
remy@remy-desktop:~/Desktop/Mydriver2$
--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
insmod Mydriver.ko major=$( more /proc/devices |grep $module | awk '{print $1}' ) mknod /dev/$module c $major 0 chmod 666 /dev/$module
en gros http://cjoint.com/data/gfnJD7VN5S.htm
:~/Desktop/Mydriver2$ make make -C /lib/modules/`uname -r`/build/ M=/home/remy/Desktop/Mydriver2 modules make[1]: entrant dans le répertoire « /usr/src/linux-headers-2.6.20-16-generic » CC [M] /home/remy/Desktop/Mydriver2/Mydriver.o Building modules, stage 2. MODPOST 1 modules CC /home/remy/Desktop/Mydriver2/Mydriver.mod.o LD [M] /home/remy/Desktop/Mydriver2/Mydriver.ko make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.20-16-generic »
:~/Desktop/Mydriver2$ tail /var/log/syslog Jun 5 13:37:02 remy-desktop kernel: [16941.928000] driver loaded Jun 5 13:37:02 remy-desktop kernel: [16941.928000] dynamic device major nuber... Jun 5 13:37:02 remy-desktop kernel: [16941.928000] Device major got: 253 Jun 5 13:37:02 remy-desktop kernel: [16941.928000] Registering char device... Jun 5 13:37:02 remy-desktop kernel: [16941.928000] Device registered
Jun 5 13:37:50 remy-desktop kernel: [16990.012000] write: demande ecriture de 4096 octets Jun 5 13:38:07 remy-desktop kernel: [17006.896000] read: demande lecture de 16 octets
Jun 5 13:38:40 remy-desktop kernel: [17039.688000] Removing driver Jun 5 13:38:40 remy-desktop kernel: [17039.688000] Unregistering device Jun 5 13:38:40 remy-desktop kernel: [17039.688000] Free device major: 253 :~/Desktop/Mydriver2$
-- Pour contacter l'équipe de modération : ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans la liste de distribution des modérateurs.