Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

driver et ficher /dev/Mydriver

1 réponse
Avatar
remy
bonjour

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 insmod mydriver.ko
sudo insmod mydriver.ko major=255


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.

1 réponse

Avatar
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$ sudo ./insMydriver
~/Desktop/Mydriver2$ cat ./Mydriver.c > /dev/Mydriver
cat: Erreur d'écriture.: Aucun espace disponible sur le périphérique
~/Desktop/Mydriver2$ hexdump /dev/Mydriver
~/Desktop/Mydriver2$ sudo ./rmMydriver


:~/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.