{"id":929,"date":"2013-07-02T07:09:02","date_gmt":"2013-07-02T06:09:02","guid":{"rendered":"http:\/\/www.bocciolesi.fr\/tutoriels-et-cours\/?p=929"},"modified":"2025-01-09T17:04:04","modified_gmt":"2025-01-09T16:04:04","slug":"udev-hal-smart","status":"publish","type":"post","link":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/","title":{"rendered":"UDEV &#8211; HAL &#8211; SMART"},"content":{"rendered":"<div class=\"pdfprnt-buttons pdfprnt-buttons-post pdfprnt-top-right\"><a href=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/posts\/929?print=pdf\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/plugins\/pdf-print\/images\/pdf.png\" alt=\"image_pdf\" title=\"Afficher le PDF\" \/><span class=\"pdfprnt-button-title pdfprnt-button-pdf-title\">Enregistrer en PDF<\/span><\/a><a href=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/posts\/929?print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\"><\/a><\/div><p><span style=\"color: #3366ff;\"><strong>I\u25baDans cet article, nous abordons la gestion des p\u00e9riph\u00e9riques sous Linux :<\/strong><\/span><\/p>\n<p><span style=\"color: #800080;\"><strong>I\u25baChapitre I : UDEV<\/strong><\/span><\/p>\n<p>\u00a0<\/p>\n<p><strong><span style=\"color: #3366ff;\">UDEV<\/span> <\/strong>apparu avec le noyau 2.6 (il a remplac\u00e9 devfs). Il g\u00e8re directement les entr\u00e9es des p\u00e9riph\u00e9riques en les cr\u00e9ant dynamiquement dans le r\u00e9pertoire <strong><span style=\"color: #3366ff;\">\/dev\/<\/span><\/strong>.<br \/>=&gt; Les entr\u00e9es de ces devices peuvent \u00eatre renomm\u00e9es, ceci \u00e9vite le probl\u00e8me du nommage automatique des disques s\u00e9ries par exemple.<br \/>=&gt; Les applications acc\u00e8dent aux p\u00e9riph\u00e9riques via des fichiers plac\u00e9s sous<strong><span style=\"color: #3366ff;\"> \/dev\/<\/span> <\/strong>(par exemple \/dev\/sda).<br \/><strong><span style=\"color: #3366ff;\">UDEV<\/span> <\/strong>dialogue avec <strong><span style=\"color: #3366ff;\">HOTPLUG<\/span> <\/strong>qui s&#8217;\u00e9x\u00e9cute en mode noyau &#8230;<\/p>\n<p><strong><span style=\"color: #3366ff;\">UDEV<\/span> <\/strong>exploite directement les informations contenues dans <strong><span style=\"color: #3366ff;\">\/sys\/ =&gt; SYSFS (pseudo file system comme \/proc)<\/span><\/strong><br \/><span style=\"line-height: 1.714285714; font-size: 1rem;\">On branche une cl\u00e9, dmesg nous donne l&#8217;information de nom qu&#8217;a cr\u00e9\u00e9 UDEV<br \/><\/span>On peut faire un ls -l \/dev\/sdb<\/p>\n<p><strong><span style=\"color: #800080;\"><span style=\"color: #3366ff;\">Le Pseudo FileSystem <\/span><\/span><span style=\"color: #3366ff;\">SYSFS<\/span> <\/strong>regroupe toutes les informations des p\u00e9riph\u00e9riques transmises par le noyau :<\/p>\n<ul>\n<li>device : infos du p\u00e9riph\u00e9rique<\/li>\n<li>class : fournit un ensembel de fonctions communes aux p\u00e9riph\u00e9riques<\/li>\n<li>bus : g\u00e9r\u00e9 par un controleur de bus relie les p\u00e9riph\u00e9riques entre eux<\/li>\n<li>driver : pilote (logiciel) inclus dynamiquement ou statiquement dans le noyau<\/li>\n<\/ul>\n<p>Il prend en charge le branchement \u00e0 chaud des p\u00e9riph\u00e9riques, associe les pilotes aux p\u00e9riph\u00e9riques, &#8230;.<br \/><span style=\"color: #3366ff;\">cat \/block\/sda\/size<\/span> donne la taille du device sda en secteurs.<\/p>\n<p>=&gt;\u00a0La commande <strong><span style=\"color: #800080;\">systool<\/span> <\/strong>(sysfsutils) montre les \u00e9l\u00e9ments de sysfs<\/p>\n<p><span style=\"color: #3366ff;\">systool -b scsi &#8211; v<\/span> : donne les infos du bus scsi<br \/><span style=\"color: #3366ff;\">systool -b usb -v<\/span> : donne les infos du bus usb<br \/><span style=\"line-height: 1.714285714; font-size: 1rem;\"><span style=\"color: #3366ff;\">systool<\/span> : liste tout<\/span><\/p>\n<p><span style=\"color: #3366ff;\"><strong style=\"line-height: 1.714285714; font-size: 1rem;\">La gestion du p\u00e9riph\u00e9rique sous Linux se d\u00e9compose ainsi :<\/strong><\/span><\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">1 driver(pilote) de p\u00e9riph\u00e9rique est int\u00e9g\u00e9r\u00e9 de mani\u00e8re statique ou dynamique en tant que module =&gt; Voir TP plus loin comment compiler un module &#8230;<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">configuration de ce pilote<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">1 fichier cr\u00e9\u00e9 par udev dans \/dev\/&#8230;<\/span><\/li>\n<\/ul>\n<p>La commande <strong><span style=\"color: #800080;\">udevadm<\/span> <\/strong>donne un maximum d&#8217;informations sur les p\u00e9riph\u00e9riques, elle est capable de lire l&#8217;immense\u00a0arborescence\u00a0de \/sys\/<\/p>\n<p>Exemple : on branche une cl\u00e9 USB, UDEV cr\u00e9e son fichier sous \/dev\/sde<\/p>\n<p><a href=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-952\" src=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture.png\" alt=\"Capture\" width=\"497\" height=\"414\" srcset=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture.png 497w, https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture-300x249.png 300w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><\/a><\/p>\n<p>Cette commande nous donne une foule d&#8217;informations sur le p\u00e9riph\u00e9rique &#8230;<\/p>\n<p>=&gt; block est un sous-r\u00e9pertoire de \/sys\/<\/p>\n<p><a href=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-953\" src=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture1.png\" alt=\"Capture\" width=\"614\" height=\"118\" srcset=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture1.png 614w, https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture1-300x57.png 300w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/a><\/p>\n<p><span style=\"line-height: 1.714285714; font-size: 1rem;\"><strong><span style=\"color: #3366ff;\">UDEV<\/span> <\/strong>est capable de g\u00e9rer les devices gr\u00e2ce \u00e0 un ensemble de r\u00e8gles : les r\u00e8gles locales et celles du syst\u00e8me.<\/span><\/p>\n<p><span style=\"color: #3366ff;\">\/lib\/udev\/rules.d\/<\/span> contient les r\u00e8gles du syt\u00e8me que l&#8217;on ne peut pas modifier<br \/>notamment 40-redhat.rules<\/p>\n<p><span style=\"color: #3366ff;\">\/etc\/udev\/rules.d\/<\/span> contient les r\u00e8gles locales que l&#8217;on peut modifier<br \/>exemple : nous souhaitons qu&#8217;une cl\u00e9 soit cr\u00e9e avec un nom diff\u00e9rent de sdx ou qu&#8217;elle ait un lien ou qu&#8217;elle \u00e9x\u00e9cute un script shell, lorsque le syst\u00e8me notifie l&#8217;\u00e9v\u00e9nement de son interruption mat\u00e9rielle &#8230;<br \/>Nous cr\u00e9ons une r\u00e8gle 20-perso.rules :<\/p>\n<p><a href=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-954\" src=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture2.png\" alt=\"Capture\" width=\"635\" height=\"128\" srcset=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture2.png 635w, https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture2-300x60.png 300w, https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture2-624x125.png 624w\" sizes=\"auto, (max-width: 635px) 100vw, 635px\" \/><\/a><\/p>\n<p>Lorsqu&#8217;on branche la cl\u00e9, le lien se cr\u00e9e et on pourra monter la cl\u00e9 avec ce nom l\u00e0 !\u00a0le script cle.sh s&#8217;\u00e9x\u00e9cute !<\/p>\n<p><span style=\"color: #3366ff;\">udevadm test \/block\/sde<\/span> : liste toutes les r\u00e8gles qui seront invoqu\u00e9es lors du d\u00e9branchement de la cl\u00e9.<\/p>\n<p><span style=\"color: #3366ff;\">udevadm monitor &#8211;environment<\/span> : monitorise toutes les informations des p\u00e9riph\u00e9riques &#8230;<\/p>\n<p><span style=\"color: #800080;\"><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>=&gt; Chapitre II &#8211; HAL : Hardware Abstraction Layer<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/strong><\/span><\/p>\n<p><strong><span style=\"color: #3366ff;\">HAL<\/span> <\/strong>permet aux syst\u00e8mes et applications graphiques de d\u00e9couvrir et d&#8217;utiliser les p\u00e9riph\u00e9riques : cl\u00e9 USB, cd &#8230;<br \/><strong><span style=\"color: #3366ff;\">HAL<\/span> <\/strong>r\u00e9cup\u00e8re les informations des p\u00e9riph\u00e9riques gr\u00e2ce \u00e0 <strong><span style=\"color: #3366ff;\">UDEV<\/span> <\/strong>et fournit aux applications une interface de communication <strong><span style=\"color: #3366ff;\">D-BUS<br \/><\/span><\/strong><em><span style=\"color: #3366ff;\">=&gt; D-Bus permet aux applications ou aux programmes de communiquer entre eux.<\/span><\/em><\/p>\n<p><span style=\"line-height: 1.714285714; font-size: 1rem;\">Les programmes peuvent\u00a0s\u2019enregistrer\u00a0aupr\u00e8s de\u00a0<\/span><strong style=\"line-height: 1.714285714; font-size: 1rem;\"><span style=\"color: #3366ff;\">D-Bus<\/span><\/strong><span style=\"font-size: 1rem; line-height: 1.714285714;\">\u00a0qui offre leurs services aux autres programmes et leur permet de savoir quels services sont disponibles et d\u2019\u00eatre inform\u00e9s des\u00a0<\/span>\u00e9v\u00e9nements<span style=\"font-size: 1rem; line-height: 1.714285714;\">\u00a0signal\u00e9s ! (ex: le branchement d\u2019une cl\u00e9..) =&gt;\u00a0<\/span>les \u00e9v\u00e9nements avec <strong><span style=\"color: #3366ff;\">UPSTART<\/span> <\/strong>et <strong><span style=\"color: #3366ff;\">SYSTEMD<\/span><\/strong>&#8230;<\/p>\n<p><strong><span style=\"color: #3366ff;\"> HAL<\/span> <\/strong>identifie les p\u00e9riph\u00e9riques en notation OBJET UDI Uniwue device identifier<\/p>\n<p><span style=\"color: #3366ff;\">lshal -t<\/span> : affiche l&#8217;arborescene des p\u00e9riph\u00e9riques<br \/><span style=\"color: #3366ff;\">lshal -s<\/span> : affiche la liste de sp\u00e9riph\u00e9riques<br \/><span style=\"color: #3366ff;\">lshal -m<\/span> : pour monitoriser HAL<\/p>\n<p>Les fichiers de conf : <span style=\"color: #3366ff;\">\/etc\/hal\/<\/span><\/p>\n<p><span style=\"color: #800080;\"><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>=&gt; Chapitre III &#8211; La technologie SMART<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/strong><\/span><\/p>\n<p><strong><span style=\"color: #3366ff;\">SMART<\/span> <\/strong>: Self Monitoring Analysis and Reporting Technology :<br \/><span style=\"line-height: 1.714285714; font-size: 1rem;\">Cette technologie permet de surveiller les disques durs et d&#8217;anticiper les \u00e9ventuelles pannes &#8230;<br \/>SMART peur surveiller la fiabilit\u00e9 des disques durs.<br \/>SMART est int\u00e9gr\u00e9 dans la plupart des disques durs :<\/span><\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">IDE : disque parrall\u00e8le<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">ATA : disque s\u00e9rie<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">SCSI :disque s\u00e9rie rapide<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\"><span style=\"line-height: 1.714285714; font-size: 1rem;\">SSD : Solid State Drive :<br \/>Les disques SSD permettent le stockage sur de la m\u00e9moire Flash<br \/>Ils sont plus solides, moins bruyants et beaucoup plus performants en termes d&#8217;acc\u00e8s aux donn\u00e9es que les autres disques<br \/>Les temps de lecture et \u00e9criture sont redoutables !<\/span><\/span><\/li>\n<\/ul>\n<p><span style=\"line-height: 24px;\">La commande <strong><span style=\"color: #3366ff;\">smartctl<\/span> <\/strong>permet d&#8217;exploiter les donn\u00e9es SMART :<\/span><\/p>\n<p><span style=\"color: #3366ff;\">smartctl -i \/dev\/sda<\/span> : permet de voir si le mat\u00e9riel est compatible SMART<br \/><span style=\"color: #3366ff;\">smartctl -a \/dev\/sda<\/span> : affiche un maximum d&#8217;infos et donne le r\u00e9sultat des tests effectu\u00e9s pr\u00e9c\u00e9demment<br \/><span style=\"color: #3366ff;\">smartctl -t short \/dev\/sda<\/span> : d\u00e9marre un test court<br \/><span style=\"color: #3366ff;\">smartctl -l error \/dev\/sda<\/span> : d\u00e9tecte les \u00e9ventuelles erreurs d&#8217;un disque<\/p>\n<p><span style=\"color: #800080;\"><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>=&gt; Chapitre IV &#8211; Comment compiler un module pour un p\u00e9riph\u00e9rique<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/strong><\/span><\/p>\n<p><span style=\"line-height: 24px;\">Nous allons voir comment compiler un module et le charger manuellement ou dynamiquement &#8230;<\/span><\/p>\n<p>Tout d&#8217;abord, il faut t\u00e9l\u00e9charger les sources du module.<br \/>Pour pouvoir faire le make, il est imp\u00e9ratif d&#8217;avoir les sources du kernel dans arborescence <span style=\"color: #3366ff;\">\/usr\/src\/kernels\/<\/span><br \/>On peut faire un <span style=\"color: #3366ff;\">yum install kernel-devel<\/span> (RH\/CentOs) ou <span style=\"color: #3366ff;\">apt-get install\u00a0linux-image-&lt;version&gt;<\/span> (Debian)<br \/>Astuce renommer le r\u00e9pertoire des sources du kernel avec la version de votre noyau : <span style=\"color: #3366ff;\">uname -r\u00a0<\/span><\/p>\n<p>Une fois le module compil\u00e9, modprobe ne fonctionnera pas car hello_print.ko n&#8217;est pas d\u00e9ploy\u00e9 dans l&#8217;arborescence des modules \/lib\/modules\/2.6&#8230;\/<\/p>\n<p>On pourra toujours l&#8217;ins\u00e9rer de force avec<span style=\"color: #3366ff;\"> insmod hello_printk.ko<\/span> \u00a0et le supprimer avec<span style=\"color: #3366ff;\"> rmmod hello_printk. <em><span style=\"color: #2f4f4f;\">Ces deux commandes ne se soucient pas de la table des symboles du noyau et ne vont pas consult\u00e9 les d\u00e9pendances des modules \ud83d\ude41\u00a0<\/span><\/em><\/span><\/p>\n<p><span style=\"color: #3366ff;\"><span style=\"color: #2f4f4f;\">=&gt; <strong><span style=\"color: #800080;\">Le fichier \/lib\/modules\/2.6&#8230;&#8230;.\/modules.dep<\/span> <\/strong>contient la liste des d\u00e9pendances de chargement de chaque module. Ce fichier est lu \u00e0 chaque fois que l&#8217;on utilise modprobe !<\/span><\/span><\/p>\n<p>Il vaut mieux donc placer notre hello_printk.ko sous <span style=\"color: #3366ff;\">\/lib\/modules\/2.6&#8230;.\/kernel\/drivers\/misc\/<\/span> et \u00e9x\u00e9cuter <span style=\"color: #3366ff;\">depmod -a<\/span> qui va recr\u00e9er le fichier <strong><span style=\"color: #3366ff;\">modules.dep<\/span><\/strong><\/p>\n<p><span style=\"line-height: 24px;\">Derni\u00e8re astuce, pour charger automatiquement le module en m\u00e9moire au d\u00e9marrage de la machine on va \u00e9diter sous Debian le fichier \/etc\/modules et sous RH\/CentOs on placera un fichier sous<strong> <span style=\"color: #800080;\">\/etc\/sysconfig\/modules\/<\/span> <\/strong><br \/>=&gt; Car en effet dans<strong><span style=\"color: #800080;\"> \/etc\/rc.sysinit<\/span><\/strong> (lu au d\u00e9marrage de la machine), tous les scripts pr\u00e9sents sous \/etc\/sysconfig\/modules sont \u00e9x\u00e9cut\u00e9s\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-962\" src=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture3.png\" alt=\"Capture\" width=\"478\" height=\"198\" srcset=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture3.png 478w, https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture3-300x124.png 300w\" sizes=\"auto, (max-width: 478px) 100vw, 478px\" \/><\/a><\/p>\n<p><strong><span style=\"color: #800080;\">\u00a0Que fait ce driver au final \ud83d\ude42 ?<\/span><\/strong><\/p>\n<p>Et bien lorsqu&#8217;on le charge en m\u00e9moire (insmod ou modprobe) dans dmesg on verra Hello World et lorsqu&#8217;on le d\u00e9charge (rmmod ou modprobe -r) dans dmesg on verra GoodBye &#8230;<\/p>\n<p><a href=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1394\" src=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture11.png\" alt=\"Capture1\" width=\"577\" height=\"88\" srcset=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture11.png 577w, https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture11-300x45.png 300w\" sizes=\"auto, (max-width: 577px) 100vw, 577px\" \/><\/a><\/p>\n<p>Tout simplement &#8230; lisez le fichier C d&#8217;origine (hello_printk.c pr\u00e9sent dans l&#8217;archive tar)<\/p>\n<p><a href=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture21.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1395\" src=\"https:\/\/www.mb-creation-web.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture21.png\" alt=\"Capture2\" width=\"438\" height=\"317\" srcset=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture21.png 438w, https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/Capture21-300x217.png 300w\" sizes=\"auto, (max-width: 438px) 100vw, 438px\" \/><\/a><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"color: #3366ff;\"><em>=&gt; Les fichiers de configuration des modules se trouvent sous :<\/em><\/span><\/p>\n<p>\u00a0<\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\"><span style=\"line-height: 1.714285714; font-size: 1rem;\">\/etc\/modprobe.conf ou<strong><span style=\"color: #800080;\"> \/etc\/modprobe.d\/xxxxx.conf<\/span><\/strong><br \/>=&gt; le fichier blacklist.conf emp\u00eache le chargement du module au d\u00e9marrage<br \/>il faut faire un update-initramfs -u apr\u00e8s avoir \u00e9diter ce fichier<\/span><\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\"><span style=\"line-height: 1.714285714; font-size: 1rem;\">Il suffit d&#8217;\u00e9diter \/etc\/modules pour charger \u00e0 chaque d\u00e9marrage les modules automatiquement.<\/span><\/span><\/li>\n<\/ul>\n<p>\u00a0<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/modules.png\"><img loading=\"lazy\" decoding=\"async\" width=\"699\" height=\"534\" src=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/modules.png\" alt=\"\" class=\"wp-image-2021\" srcset=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/modules.png 699w, https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2013\/07\/modules-300x229.png 300w\" sizes=\"auto, (max-width: 699px) 100vw, 699px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p> I\u25baDans cet article, nous abordons la gestion des p\u00e9riph\u00e9riques sous Linux : I\u25baChapitre I : UDEV \u00a0 UDEV apparu avec le noyau 2.6 (il a remplac\u00e9 devfs). &#8230;<\/p>\n","protected":false},"author":1,"featured_media":1541,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,34,39],"tags":[],"class_list":["post-929","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-linux-admin","category-tutoriels"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>UDEV - HAL - SMART - Tutoriels et Cours<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"UDEV - HAL - SMART - Tutoriels et Cours\" \/>\n<meta property=\"og:description\" content=\"I\u25baDans cet article, nous abordons la gestion des p\u00e9riph\u00e9riques sous Linux : I\u25baChapitre I : UDEV \u00a0 UDEV apparu avec le noyau 2.6 (il a remplac\u00e9 devfs). ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutoriels et Cours\" \/>\n<meta property=\"article:published_time\" content=\"2013-07-02T06:09:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-09T16:04:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2015\/12\/linux.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"426\" \/>\n\t<meta property=\"og:image:height\" content=\"282\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Michel BOCCIOLESI\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michel BOCCIOLESI\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/\",\"url\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/\",\"name\":\"UDEV - HAL - SMART - Tutoriels et Cours\",\"isPartOf\":{\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2015\/12\/linux.jpg\",\"datePublished\":\"2013-07-02T06:09:02+00:00\",\"dateModified\":\"2025-01-09T16:04:04+00:00\",\"author\":{\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/#\/schema\/person\/6bdfe0a1263b803645c69e3d5748dabe\"},\"breadcrumb\":{\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#primaryimage\",\"url\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2015\/12\/linux.jpg\",\"contentUrl\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2015\/12\/linux.jpg\",\"width\":426,\"height\":282,\"caption\":\"Cours et turoriels Linux\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"UDEV &#8211; HAL &#8211; SMART\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/#website\",\"url\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/\",\"name\":\"Tutoriels et Cours\",\"description\":\"Michel Bocciolesi | Formateur Consultant en Informatique\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/#\/schema\/person\/6bdfe0a1263b803645c69e3d5748dabe\",\"name\":\"Michel BOCCIOLESI\",\"description\":\"Michel Bocciolesi est consultant et formateur sp\u00e9cialis\u00e9 en Informatique.\",\"sameAs\":[\"https:\/\/www.mb-creation-web.fr\"],\"url\":\"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/author\/michel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"UDEV - HAL - SMART - Tutoriels et Cours","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/","og_locale":"fr_FR","og_type":"article","og_title":"UDEV - HAL - SMART - Tutoriels et Cours","og_description":"I\u25baDans cet article, nous abordons la gestion des p\u00e9riph\u00e9riques sous Linux : I\u25baChapitre I : UDEV \u00a0 UDEV apparu avec le noyau 2.6 (il a remplac\u00e9 devfs). ...","og_url":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/","og_site_name":"Tutoriels et Cours","article_published_time":"2013-07-02T06:09:02+00:00","article_modified_time":"2025-01-09T16:04:04+00:00","og_image":[{"width":426,"height":282,"url":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2015\/12\/linux.jpg","type":"image\/jpeg"}],"author":"Michel BOCCIOLESI","twitter_misc":{"\u00c9crit par":"Michel BOCCIOLESI","Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/","url":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/","name":"UDEV - HAL - SMART - Tutoriels et Cours","isPartOf":{"@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#primaryimage"},"image":{"@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#primaryimage"},"thumbnailUrl":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2015\/12\/linux.jpg","datePublished":"2013-07-02T06:09:02+00:00","dateModified":"2025-01-09T16:04:04+00:00","author":{"@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/#\/schema\/person\/6bdfe0a1263b803645c69e3d5748dabe"},"breadcrumb":{"@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#primaryimage","url":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2015\/12\/linux.jpg","contentUrl":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-content\/uploads\/2015\/12\/linux.jpg","width":426,"height":282,"caption":"Cours et turoriels Linux"},{"@type":"BreadcrumbList","@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/udev-hal-smart\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/"},{"@type":"ListItem","position":2,"name":"UDEV &#8211; HAL &#8211; SMART"}]},{"@type":"WebSite","@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/#website","url":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/","name":"Tutoriels et Cours","description":"Michel Bocciolesi | Formateur Consultant en Informatique","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/#\/schema\/person\/6bdfe0a1263b803645c69e3d5748dabe","name":"Michel BOCCIOLESI","description":"Michel Bocciolesi est consultant et formateur sp\u00e9cialis\u00e9 en Informatique.","sameAs":["https:\/\/www.mb-creation-web.fr"],"url":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/author\/michel\/"}]}},"_links":{"self":[{"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/posts\/929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/comments?post=929"}],"version-history":[{"count":25,"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/posts\/929\/revisions"}],"predecessor-version":[{"id":2024,"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/posts\/929\/revisions\/2024"}],"wp:attachment":[{"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/media?parent=929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/categories?post=929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bocciolesi.fr\/tutoriels-et-cours\/wp-json\/wp\/v2\/tags?post=929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}