Connexion chaude et froide des appareils. Prise à chaud

Original : quelques règles et exemples astucieux d'udev
Auteurs : Vimal Daga, Davender Singh
Date de parution : 28 juin 2012
Traduction : A.Panin
Date de publication de la traduction : 23 octobre 2012

Grâce au système udev développé par Greg Kroah-Hartman, Kay Sievers et Dan Stekloff, le processus de connexion des lecteurs flash, disques durs, caméras et téléphones portablesà un système exécutant le système d'exploitation Linux est devenu simple et gérable comme jamais auparavant. Implémenté pour la première fois dans la version 2.6 du noyau Linux, le système udev gère à la fois les périphériques de connexion à chaud à un système en cours d'exécution et les périphériques de connexion à froid (connectés avant la mise sous tension du système). Dans cet article, nous allons parcourir le processus de création dynamique de fichiers de périphérique dans le répertoire /dev et fournir quelques exemples de personnalisations à utiliser ou simplement pour le plaisir.

udev est une implémentation dans l'espace utilisateur du système de fichiers de périphérique devfs. Le système inclut le service udevd, les fichiers de configuration et les fichiers de règles utilisés pour gérer dynamiquement les fichiers de périphériques Linux situés dans le répertoire /dev en réponse aux événements générés par le noyau (uevents). Udev a complètement remplacé avec succès l'ancienne implémentation devfs depuis la version 2.6 du noyau Linux.

Quel était le besoin d'une implémentation entièrement repensée du système de gestion des fichiers de l'appareil ? Et pourquoi la mise en œuvre d'udev a-t-elle été un tel succès ? Pour obtenir une réponse, vous devez consulter l'historique du développement des interfaces de pilote de périphérique Linux OS.

Chaque fichier de périphérique est associé à deux valeurs de 8 bits : un identifiant mineur (numéro mineur) et un identifiant majeur (numéro majeur). Chaque pilote de périphérique a un ID majeur ; et tous les fichiers de périphérique exécutés sous ce pilote ont le même identifiant majeur. Les ID d'appareils mineurs sont différents différents appareils fonctionnant sous ce pilote.

Dans les premières versions de Linux, le système de fichiers /dev contenait un fichier statique pour chaque périphérique pouvant être connecté au système (et contrôlé par un pilote de périphérique). Malheureusement, cette approche présentait un certain nombre de problèmes : il n'y avait pas suffisamment de valeurs d'identifiant à attribuer à tous les appareils possibles, en particulier face au nombre croissant d'appareils pris en charge. De plus, avoir plus de 18 000 fichiers de périphérique nécessitait beaucoup d'espace disque supplémentaire. Ces problèmes ont été résolus en permettant à udev d'ignorer les valeurs d'ID de fichier de périphérique mineur et majeur.

Lors du branchement à chaud de périphériques tels que du matériel USB, il n'y avait aucune cohérence dans la dénomination et l'identification du fichier de périphérique. Par exemple, sur un système avec deux imprimantes USB, l'une des imprimantes peut être représentée par /dev/usb/lp0 et l'autre par /dev/usb/lp1 - mais il n'y a pas de compréhension claire de quelle imprimante est représentée par quel fichier . . Ce comportement peut avoir changé selon le périphérique qui était allumé au démarrage de l'ordinateur ou connecté auparavant - ou peut changer selon que le périphérique est connecté à un concentrateur USB ou directement au port USB du système. Ce comportement a toujours été frustrant et déroutant pour les utilisateurs. Le système udev vous permet de définir un nom de périphérique permanent à l'aide de règles.

D'autres fonctionnalités d'udev résolvent de nombreux problèmes hérités de devfs :

  • udev s'exécute dans l'espace utilisateur, ce qui réduit la quantité et la complexité du code du noyau.
  • udev vous permet d'attribuer un nom de périphérique permanent qui ne dépend pas de l'ordre dans lequel les périphériques sont inclus et de l'emplacement du périphérique sur le bus.
  • udev modifie dynamiquement les fichiers dans le répertoire /dev, en créant des fichiers uniquement pour les périphériques présents et connectés au système. Il est également possible d'attribuer des noms de périphérique arbitraires à l'aide de liens symboliques vers des fichiers de périphérique.
  • udev fournit des informations sur les périphériques aux applications de l'espace utilisateur, éliminant ainsi le besoin d'accéder aux composants internes du noyau pour obtenir ces informations.

Comment fonctionne udev

Le service udevd écoute sur un socket netlink les événements générés par le noyau lorsqu'un périphérique est connecté ou déconnecté. Vous pouvez surveiller ces événements avec la commande udevmonitor - exécutez-la, branchez un périphérique USB tel qu'un lecteur flash et débranchez-le (les distributions plus récentes peuvent ne pas avoir udevmonitor - utilisez udevadm dans ce cas.)

Au démarrage, udev monte le système de fichiers tmpfs dans le répertoire /dev. Après cela, les fichiers de périphérique sont copiés du répertoire /lib/udev/device vers le répertoire /dev, et udev commence à accepter les événements du noyau pour les périphériques connectés à froid. Le répertoire /etc/udev/rules.d est utilisé pour modifier les paramètres de l'appareil, créer des liens symboliques vers les fichiers de l'appareil, etc. Pour les périphériques enfichables à chaud, udevd reçoit les événements du noyau à l'aide de D-Bus, puis récupère les attributs du nouveau périphérique à partir du système de fichiers /sys et applique les règles basées sur les attributs - après cela, un fichier de périphérique est créé dans système de fichiers/dev . Udev vous permet également de charger des pilotes de périphériques dédiés à l'aide du mécanisme "modalias".

règles et exemples udev

Udev offre la possibilité de modifier son comportement en fonction des règles et des fichiers de configuration. Vous pouvez remplacer le fonctionnement des règles fournies avec le système (généralement trouvées dans /lib/udev/rules.d ) ou ajouter des fonctionnalités personnalisées et spécifiques en fonction de vos besoins. Les règles peuvent être ajoutées au répertoire /etc/udev/rules.d/ - le répertoire des règles personnalisées individuelles.

Créez vos règles (qui attribuent un nom de fichier de périphérique, créent des liens symboliques, définissent des autorisations et faites ce que vous voulez) dans ce répertoire. Pour vous assurer que la règle vient avant les autres, assurez-vous que le nom du fichier commence par un nombre inférieur au reste des règles qui doivent être exécutées après - par exemple, 10-local.rules .

Désactiver le compte utilisateur root jusqu'à ce que l'administrateur connecte sa clé USB

BUS=="usb", SUBSYSTEM=="bloc", PROGRAMME="/bin/enable_root_login"

Pour que cette règle fonctionne, vous devez développer une application ou un script shell avec le nom donné afin d'obtenir le numéro de série de l'appareil connecté au système et de le comparer avec le numéro de série connu de l'appareil de l'administrateur. Si les numéros de série correspondent, le programme supprimera la ligne pam_deny.so requise auth du fichier /etc/pam.d/login, ce qui permettra de se connecter sous compte utilisateur racine. Si d'autres périphériques USB sont connectés, aucune modification de fichier ne sera effectuée. Au contraire, dès que la clé USB est déconnectée, cette ligne sera à nouveau ajoutée au fichier.

Cette règle a été testée sur la distribution RHEL 5.0 et a bien fonctionné, cependant, lors de l'utilisation de la commande su ou lors de la connexion en mode mono-utilisateur au démarrage, cette règle ne fonctionnera pas. Pour désactiver la connexion root lors de l'utilisation de la commande su, vous pouvez procéder comme suit :

  1. Modifiez le fichier /etc/security/access.conf en ajoutant la ligne root : ALL .
  2. Modifiez le fichier /etc/pam.d/system-auth , en ajoutant comme deuxième ligne compte requis pam_access.so.
  3. Modifiez le fichier /etc/pam.d/su et faites en sorte que la première ligne de ce fichier soit la ligne account include system_auth .

Ces actions, bien sûr, doivent être effectuées par le programme enable_root_login. Après avoir vérifié que le numéro de série du périphérique USB appartient à l'administrateur, le programme doit supprimer toutes les modifications apportées aux fichiers et, si le périphérique connecté n'appartient pas à l'administrateur, effectuer toutes les actions ci-dessus sur les fichiers.

Ces étapes ne vous empêcheront pas de vous connecter en tant que root en mode mono-utilisateur, mais vous pouvez définir un mot de passe sur le chargeur de démarrage GRUB pour empêcher un accès facile au mode mono-utilisateur.

Pour des informations sur numéro de série nom de l'appareil, ID du fournisseur, nom du fournisseur et autres paramètres, vous pouvez utiliser la commande suivante : udevinfo -a -p /sys/block/sdb

Les distributions plus récentes peuvent ne pas avoir udevinfo, auquel cas vous devez utiliser udevadm au lieu de udevinfo .

Désactiver tous les ports USB

BUS=="usb", OPTIONS+="ignore_device"

Le résultat de cette règle sera de désactiver tous les périphériques connectés aux ports USB de votre système - les imprimantes, claviers et souris USB ne fonctionneront pas. Soyez prudent lors de l'utilisation!

Désactiver tous les périphériques de bloc connectés aux ports USB

BUS=="usb", SUBSYSTEM=="bloc", OPTIONS+="ignore_device"

Cette règle désactive la reconnaissance des périphériques blocs connectés aux ports USB. Cette règle peut être utile pour améliorer la sécurité et la confidentialité des données dans une organisation.

Attribuez un nom permanent au fichier de périphérique du deuxième lecteur IDE

Remplacez sdb si vous souhaitez appliquer la règle à un autre lecteur.

Ignorer le deuxième lecteur USB SCSI/IDE connecté via USB

KERNEL=="sdb", NAME="mon_spare"

BUS=="usb", KERNEL=="hdb", OPTIONS+="ignore_device"

Ajouter un lien symbolique vers un fichier donné Périphériques USB-souris

SUBSYSTEM=="entrée", BUS=="usb", SYSFS(série)=="0000:00:1d.0", SYMLINK+=="MA-USB-MOUSE"

Modifier le nom de fichier de l'appareil en fonction du fabricant de l'appareil

BUS=="usb", SYSFS(fabricant)=="JetFlash", NOM="UNIVERS"

Cette règle change le nom de fichier du périphérique en "UNIVERS" si le fabricant du lecteur flash USB est JetFlash.

Autoriser sélectivement l'utilisation de périphériques de bloc USB à l'aide d'un programme spécial

BUS=="usb", SUBSYSTEM=="block", PROGRAM="/bin/usbc.jar", RESULT !="my", OPTIONS+="ignore_device"

Si le programme affiche "my", l'appareil peut être utilisé, sinon l'appareil est ignoré.

Imaginez une matinée ordinaire dans l'un des immeubles de grande hauteur de la zone de sommeil de notre ville bien-aimée: une cuvette de toilette, une douche, un rasage, du thé, se brosser les dents, de l'eau pour le chat (ou dans tout autre ordre) - et aller travailler... Tout est automatique et sans hésitation. Tant que l'eau froide coule du robinet d'eau froide et que l'eau chaude coule de l'eau chaude. Et parfois, vous en ouvrez une froide, et à partir de là - de l'eau bouillante !! 11#^*¿>.

Essayons de comprendre.

Alimentation en eau froide ou eau froide

La station de pompage locale alimente en eau la conduite principale à partir du réseau de distribution d'eau. Un gros tuyau d'alimentation entre dans la maison et se termine par une vanne, après quoi il y a un compteur d'eau.

En bref, l'ensemble du compteur d'eau se compose de deux vannes, une crépine et un compteur.



Certains ont un clapet anti-retour supplémentaire.

et dérivation du compteur d'eau.

La dérivation du compteur d'eau est un compteur supplémentaire avec des vannes qui peuvent alimenter le système si le compteur d'eau principal est entretenu. Après les compteurs, l'eau est fournie au principal de la maison


où elle est distribuée le long des colonnes montantes qui conduisent l'eau aux appartements aux étages.



Quelle est la pression dans le système ?

9 étages

Les maisons jusqu'à 9 étages ont un fond coulant de bas en haut. Ceux. du compteur d'eau à travers un gros tuyau, l'eau sort par les contremarches jusqu'au 9ème étage. Si le vodokanal est de bonne humeur, il devrait y avoir environ 4 kg/cm2 à l'entrée de la zone inférieure. Compte tenu d'une chute de pression d'un kilogramme, pour chaque 10 mètres de colonne d'eau, les résidents du 9e étage recevront environ 1 kg de pression, ce qui est considéré comme normal. En pratique, dans les maisons anciennes, la pression d'entrée n'est que de 3,6 kg. Et les habitants du 9ème étage se contentent d'encore moins de pression qu'1kg/cm2

12-20 étages

Si la maison a plus de 9 étages, par exemple 16 étages, un tel système est divisé en 2 zones. Plus haut et plus bas. Là où les mêmes conditions demeurent pour la zone inférieure, et pour la zone supérieure la pression est portée à environ 6 kg. Afin de faire monter l'eau tout en haut dans la conduite d'alimentation, et avec elle l'eau monte jusqu'au 10ème étage. Dans les maisons de plus de 20 étages, l'alimentation en eau peut être divisée en 3 zones. Avec un tel système d'approvisionnement, l'eau du système ne circule pas, elle repose sur un marigot. Dans un appartement en hauteur, en moyenne, nous subissons une pression de 1 à 4 kg. Il existe d'autres valeurs, mais nous ne les considérerons pas maintenant.

Alimentation en eau chaude ou ECS

Dans certains bâtiments de faible hauteur, l'eau chaude est connectée de la même manière, elle repose sur un marigot sans circulation, ce qui explique le fait que lorsqu'un robinet d'eau chaude est ouvert, de l'eau froide et refroidie coule pendant un certain temps. Si nous prenons la même maison de 16 étages, dans une telle maison, le système d'eau chaude est agencé différemment. L'eau chaude, comme l'eau froide, est également fournie à la maison par un gros tuyau, et après le compteur, elle va à la maison principale

qui monte l'eau jusqu'au grenier où elle est distribuée le long des contremarches et descend tout en bas dans la conduite de retour. Soit dit en passant, les compteurs d'eau chaude ne comptent pas seulement le volume d'eau perdue (consommée) dans la maison. Ces compteurs comptabilisent également la perte de température (hygocalories)

La température est perdue lorsque l'eau passe à travers les sèche-serviettes de l'appartement, qui jouent le rôle de contremarches.

Avec ce schéma, l'eau chaude circule toujours. Dès que vous ouvrez le robinet, l'eau chaude est déjà là. La pression dans un tel système est d'environ 6-7 kg. sur le départ et légèrement plus bas sur le retour pour assurer la circulation.

En raison de la circulation, nous obtenons une pression dans la colonne montante, dans l'appartement 5-6 kg. et tout de suite on voit la différence de pression entre l'eau froide et l'eau chaude, à partir de 2 kg. C'est précisément l'essence même du pressage de l'eau chaude dans l'eau froide en cas de dysfonctionnement des appareils de plomberie. Si vous avez remarqué que vous avez encore plus de pression sur l'eau chaude que sur l'eau froide, assurez-vous d'installer un clapet anti-retour à l'entrée froide, et des vannes de contrôle peuvent être incluses dans l'entrée d'eau chaude, ce qui aidera à égaliser la pression en environ un chiffre avec le froid. Exemple d'installation d'un régulateur de pression

prise chaude- branchement à chaud) - signification des termes fermer ou connexionéquipement électronique vers / depuis le système (informatique) pendant son fonctionnement sans couper l'alimentation et arrêter (le système) (HotPlug), ainsi que remplacer (reconnecter) l'unité dans son ensemble ( échange à chaud ). Il y a aussi un terme pour le contraire de hot swap - Échange à froid , c'est-à-dire que toutes les (re)connexions sont effectuées après l'arrêt du système et la suppression de la tension (potentiel résiduel).

L'équipement est divisé selon ce principe en en permettantéchange à chaud et ne permettant pas.

Histoire

Auparavant, les équipements conçus pour être branchés lors de travaux de remplacement n'étaient utilisés que dans des systèmes coûteux et étaient considérés comme difficiles à concevoir. Dernière fois systèmes similaires sont devenus courants même sur des ordinateurs bon marché.

  • Conçu pour être remplaçable à chaud et donc remplaçable à chaud aux normes PCMCIA, USB, FireWire, Fibre Channel et eSATA.
    Parmi les périphériques de ce type figurent les lecteurs flash, certains disques durs, y compris pour les baies de serveurs, les cartes d'extension PCI-X, PCI Express, ExpressCard (PCMCIA, également appelées auparavant cartes PC) utilisées dans les ordinateurs portables, et même certaines alimentations. . .
  • Ne remplace pas entièrement à chaud les interfaces de disque SATA et ne prend pas entièrement en charge le protocole IDE (IDE est enfichable à chaud).

Conception du système

Les ordinateurs conçus pour remplacer l'équipement à la volée doivent en quelque sorte détecter lorsqu'un appareil est déconnecté et contenir également des circuits électriques insensibles aux surtensions lors de la connexion et de la déconnexion. De plus, la partie logicielle doit être conçue pour une perte brutale de communication avec l'appareil.

Certains schémas de remplacement à chaud nécessitent qu'une commande de détachement soit émise en premier, ce qui simplifie leur conception, mais menace l'intégrité des données si le périphérique n'est pas détaché de la bonne manière ou si une erreur se produit dans le périphérique.

Les schémas plus complexes ont une marge de redondance et restaurent facilement les données en cas d'arrêt soudain de l'appareil.

Le terme "échange à chaud" est utilisé dans deux sens. D'une part, cela signifie la possibilité de déconnecter ou de connecter l'appareil sans couper l'alimentation. D'autre part, cela peut également impliquer une détection automatique de l'appareil lorsqu'il est connecté. Le premier sens du terme s'applique aux interfaces RS-232, FireWire et aux implémentations les plus simples de SCSI, le second sens - à USB, FireWire, PCI Express et des variantes SCSI sophistiquées.

Conception du nid

Les plages de contact extrêmes de l'alimentation sont plus longues que le signal interne

La plupart appareils modernes des contacts mobiles remplaçables à chaud sont utilisés. L'un d'eux est réalisé plus long que les autres afin d'être le premier à entrer en contact avec la partie attachée, un fil de masse est connecté à travers celui-ci. Les contacts restants sont raccourcis, au total il peut y avoir jusqu'à 3 longueurs différentes. Le délai entre la connexion du premier contact et les suivants est de 25 à 250 millisecondes.

Les circuits de puissance sont connectés en deux étapes: dans la première, un circuit limité en courant est connecté à l'aide de contacts plus longs, puis avec des contacts plus courts, une alimentation complète. Tous les circuits impliqués dans la connexion contiennent une protection contre l'électricité statique.

Voici un exemple d'une séquence de connexion typique :

  1. Les contacts les plus longs sont fermés (masse). Cela garantit la sécurité électrique de la connexion et la protection contre les charges statiques.
  2. Les contacts de pré-alimentation longs ou moyens se ferment. Les circuits d'entrée des circuits de puissance sont en charge.
  3. Des contacts d'alimentation courts sont connectés.
  4. La connexion est considérée comme établie. Le signal de mise sous tension s'allume.
  5. Le circuit de mise sous tension logicielle alimente l'appareil.
  6. Retard en dizaines de millisecondes.
  7. Le circuit d'alimentation a terminé la connexion logicielle. Le signal de mise sous tension s'éteint.
  8. L'appareil commence à fonctionner complètement.

La connexion de plusieurs appareils est particulièrement difficile, car la connexion d'un deuxième ou troisième appareil peut perturber le fonctionnement d'un appareil déjà connecté. Pour lutter contre ce phénomène, des filtres sont utilisés dans les circuits de sortie ou un arrêt logique temporaire de la transmission des données.

Branchement à chaud du logiciel

Le terme "hot plug" est également utilisé en relation avec le logiciel et signifie la possibilité de modifier le programme sans arrêter son exécution. Seuls quelques langages de programmation prennent en charge cette fonctionnalité, notamment Lisp, Erlang et Smalltalk. Le langage Java ne prend en charge cette fonctionnalité que lors de l'exécution du débogueur (Java Platform Debugger Architecture, JPDA).

Le langage de programmation orienté domaine 1C v8 offre la possibilité de modifier le code pendant l'exécution du programme. (http://v8.1c.ru/overview/release_8_1_5/administration.htm section "Mise à jour des éléments de configuration"). Étant donné que les modules individuels sont compilés au moment de l'exécution du programme, et lorsqu'un module est modifié, il est à nouveau compilé dans la session, il ne s'agit pas vraiment d'un "hot plug". Vous devez recréer la session pour que les modifications prennent effet effet, et uniquement pour cet utilisateur (les autres doivent redémarrer la nouvelle session). Dans la version v7, cette fonctionnalité était également présente lors de l'utilisation d'outils logiciels supplémentaires (http://openconf.1cpp.ru/vk/turbomd/) et de la commande standard #LoadFromFile.... (il suffit de rouvrir le formulaire ou le rapport ). En général, lors de l'utilisation de langages de programmation interprétés (avec sauvegarde des textes de programme à l'intérieur des modules), le "hot plugging" est mis en œuvre simplement en remplaçant les textes.

Vieille plomberie pourrie dans l'appartement. Transpiration sur les tuyaux, fistule après fistule ; fermez l'eau, puis rallumez-la - la rouille jaillit des robinets. Et il est prévu de réparer la cuisine avec une salle de bain, et les vieux tuyaux ne sont pas quelque chose à toucher ou à respirer - c'est effrayant de les regarder. Il faut changer, mais le travail coûte cher. Est-il possible de remplacer la plomberie de l'appartement de vos propres mains? Oui, vous pouvez, et sans aucune conception de permis. Il suffira de s'entendre avec le serrurier DEZ pour couper l'alimentation en eau des colonnes montantes pendant une heure maximum ; très probablement, il sera possible de gérer en minutes 10. Ou avertissez les voisins, s'ils ne sont pas nuisibles, et bloquez / réappliquez-vous.

Procédure de remplacement

Le remplacement de l'alimentation en eau s'effectue dans un certain ordre. Le travail "à l'œil" et "en déplacement" dans des performances non professionnelles se termine souvent par une fuite. Le plan de travail ressemble à ceci :

  1. Choix du matériau pour les nouveaux tuyaux.
  2. Choix du schéma de distribution d'eau chaude et froide.
  3. Développement d'un système d'alimentation en eau pour un appartement.
  4. Calcul du diamètre des tuyaux en fonction du matériau et du schéma sélectionnés.
  5. Préparation de l'outil de montage.
  6. Achat de matériaux.
  7. Assemblage des unités de sélection et de comptabilisation, leur installation sur contremarches et enregistrement.
  8. Démantèlement des anciens tuyaux et appareils de plomberie.
  9. Connexion du HMS et de l'aquastop, si prévu.
  10. Connexion d'un filtre à ballon (avec HMS est nécessaire).
  11. Installation de conduites d'eau chaude et froide.
  12. Installation et raccordement de plomberie, ancienne ou nouvelle.
  13. Tester l'approvisionnement en eau ; élimination des défauts identifiés.
  14. Installation et raccordement de la chaudière.

HMS, filtre ballon et aquastop

Le HMS, ou système hydromagnétique, est utilisé depuis longtemps dans l'industrie pour préparer l'eau à la filtration. Au quotidien, cet appareil, sans entrer dans les détails, convertit les impuretés de l'eau en une fine suspension, qui se dépose ensuite dans le filtre sous forme de boues et est périodiquement éliminée. HMS est absolument inoffensif, ne nécessite pas d'alimentation électrique ni d'entretien pendant le fonctionnement, mais il nécessite nécessairement l'installation d'un compteur d'eau de conception antimagnétique (ceux-ci sont plus chers) et, après le débit d'eau, un filtre à ballon combiné.

Le filtre ballon se compose de trois sections connectées en série : la première collecte les boues, la seconde élimine le chlore et la troisième sert à l'épuration fine de l'eau et à son adoucissement. Ce dernier (personne ne boit l'eau du robinet depuis longtemps) est particulièrement important pour la chaudière de la machine à laver.

Les HMS avec flacons coûtent cher, mais ils protègent bien non seulement l'équipement, mais aussi la santé. Plaignez-vous ou non, soyez indigné - ne vous indignez pas, et l'eau potable est fermement détenue dans les dix ressources les plus rares au monde, et il n'y a pas de programmes mondiaux qui peuvent amener sa qualité au niveau d'au moins le milieu du dernier siècle, et ne sont pas prévus. En général, le salut des noyés est l'œuvre des noyés eux-mêmes.

Aquastop est également un appareil utile, il ne nécessite pas non plus d'alimentation ni de maintenance, mais sa fonction est différente. Avec une forte augmentation du courant (percée) de l'eau, l'aquastop se déclenche et sa vanne coupe tout l'appartement de la colonne montante. Les aquastops sont disponibles dans différents systèmes, y compris les systèmes électrodynamiques, de sorte qu'un compteur antimagnétique est également nécessaire lors de l'installation d'un aquastop.

Sélection de tuyau

Une nouvelle plomberie dans un appartement commence par le choix des canalisations. L'acier dans la vie de tous les jours est devenu obsolète, et il faut choisir entre le métal-plastique, le plastique et le cuivre brasé. Cette étape du travail est peut-être la plus responsable - un mauvais choix annulera tous les efforts, dépenses et ennuis.

Cuivre

On peut dire tout de suite des conduites d'eau en cuivre : leurs propagandistes ne savent pas de quoi ils parlent. Ou ils savent, mais ils ne s'imposent pas. Premièrement, l'oxyde de cuivre se forme sur le cuivre au contact de l'eau - le même vert-de-gris dont Tom Sawyer a parlé à Huckleberry Finn. Oui, une personne a besoin de cuivre, mais en quantités négligeables sous la forme d'un micro-élément, et non dans le cadre d'un poison puissant. En contre-argument, ils disent que le cuivre forme un film protecteur avec le chlore de l'eau. Absurde pour qui se souvient au moins de la chimie scolaire.

Deuxièmement, la composition de la soudure pour le cuivre comprend de l'étain. L'étain blanc, un métal mou, se transforme avec le temps en son autre, comme disent les chimistes, une modification allotropique - l'étain gris, une poudre friable. C'est-à-dire qu'en installant des tuyaux en cuivre (très coûteux), nous garantissons ainsi à 100% les fuites. Et le paiement des travaux d'une entreprise spécialisée dans les tuyaux en cuivre, car il est impossible de les souder correctement par soi-même.

métal-plastique

Les tuyaux en métal-plastique sont assez chers, mais ils peuvent être connectés à la main sans expérience. La plomberie métal-plastique est assemblée sur des assemblages filetés spéciaux avec joints ou sous sertissage - raccords. De plus, les tuyaux en métal-plastique peuvent être pliés en douceur. La résistance hydrodynamique et la perte de pression dans le métal-plastique sont très faibles.

Pour insérer un tuyau dans un raccord, vous avez besoin d'un coupe-tube, d'une pince à sertir et d'un jeu d'alésoirs (alésoirs) pour le diamètre des tuyaux. Avec leur aide, le travail se déroule sans effort et avec des moyens improvisés - une garantie totale de fuite. De plus, la durée de vie des joints dans les raccords est limitée et, avec le temps, le joint commence à couler. Par conséquent, il est inacceptable de maçonner du métal-plastique dans les murs et il est fortement recommandé de ne pas le cacher dans des stroboscopes.

Il est recommandé d'effectuer l'approvisionnement en eau avec du métal-plastique dans des zones ouvertes séparées, où la résistance minimale à l'écoulement de l'eau et la possibilité d'une cloison simple et rapide du joint sont importantes: lors du raccordement d'une chaudière, d'une machine à laver, d'un évier, etc. Des adaptateurs de métal-plastique à d'autres types de tuyaux sont toujours en vente.

Plastique

La plomberie en plastique des appartements est maintenant devenue la norme, mais les plastiques sont différents. Pour faire le bon choix, vous devez connaître leurs propriétés et leurs caractéristiques.

Polybutylène (PB)

Plastique souple avec une bonne conductivité thermique pour le plastique. Maintient des températures jusqu'à 90 degrés. Un joint correctement soudé est absolument fiable. Assez cher. Utilisé pour le chauffage au sol.

Polyéthylène (PE)

Bon marché, mais pour l'eau chaude, des tuyaux renforcés en polyéthylène sont nécessaires; le polyéthylène ordinaire ne tient pas à 60 degrés. Il est impossible de plier et de coller, le joint soudé maintient de manière fiable une pression ne dépassant pas 3,5 atm et la pression de l'eau dans l'approvisionnement en eau de la ville peut atteindre 6 atm (0,6 Mbar) pour l'eau froide et 4,5 atm pour l'eau chaude , de sorte qu'il y a une possibilité d'une percée soudaine. La résistance hydraulique, cependant, est la plus petite de toutes.

Il paraît que les tuyaux en polyéthylène sont mauvais pour tout le monde, mais ils ont un avantage qui peut valoir tous leurs défauts : ils n'ont pas peur du gel. Le bouchon de glace les éclate, et quand il fond, ils rétrécissent à nouveau et n'éclatent pas, même si vous craquez. Par conséquent, l'installation d'un système d'alimentation en eau en polyéthylène est fortement recommandée dans les locaux non chauffés, saisonniers et souterrains. Il n'y a pas d'alternative au polyéthylène. Mais avec un système constamment rempli, un aquastop est nécessaire.

PVC (PVC)

Les propriétés du polychlorure de vinyle (PVC) sont bien connues : résistant chimiquement, peu coûteux, résistant à la chaleur jusqu'à 80 degrés, facile à coller, mais pas très solide et craint les rayons ultraviolets. Les joints, à la fois soudés et collés, sortent plus fragiles que les matériaux solides, de sorte que le danger d'une percée demeure et qu'un aquastop est nécessaire. Le remplacement de sections individuelles de PVC collé est bien sûr plus difficile que pour le métal-plastique pliable, mais plus facile que pour les joints soudés: en chauffant le joint avec un sèche-cheveux domestique, le joint peut être séparé, puis recollé. En général, l'option est budgétaire ou pour un maître novice avec une longueur de la branche principale de la colonne montante au point de puisage le plus éloigné de pas plus de 10 m et avec pas plus de 7 points d'échantillonnage.

Propylène (PP)

La pose d'une alimentation en eau d'appartement avec des tuyaux en polyisopropylène (propylène) est maintenant généralement acceptée. Le matériau n'est pas très cher, durable, résistant, les joints soudés conservent toutes les qualités de la base, la résistance à la chaleur - jusqu'à 130 degrés, correctement soudée jusqu'à 12 atm. La résistance hydraulique est supérieure à celle du PVC, mais de toute façon, l'accumulation de plaque dans la lumière est minime, et avec le HMS, elle est exclue. Il n'y a que deux inconvénients à le faire soi-même :

  • Il ne colle pas et la soudure nécessite un équipement spécial et un strict respect de la technologie.
  • Il a un coefficient de dilatation thermique assez élevé. Encastré dans un mur ou caché dans un stroboscope, il peut plier et casser le carreau, par conséquent, lors de la pose de chaque tuyau, vous devez mettre un bas en merylon ou hivernant synthétique, ce qui augmente le coût des travaux.

Cependant, le pipeline de propylène est de loin le seul qui peut être fait une fois pour toutes et oublié. Par conséquent, nous nous attarderons sur la soudure du propylène séparément, d'autant plus que la soudure des autres plastiques ne diffère que par une température plus basse (110-130 degrés pour le polyéthylène et environ 150 pour le PVC).

Soudure au propylène

Souder du propylène avec un fer à souder artisanal "fer" bout à bout (voir la figure à droite) est inacceptable :

  1. La pollution s'accumule sur la «saucisse» à l'intérieur et le pipeline ainsi assemblé est plus susceptible de se boucher que l'acier.
  2. La pression de l'eau, faisant éclater les tuyaux, a tendance à casser le joint. À 16 degrés dans le tuyau et 20-25 à l'extérieur, après environ trois mois, le seuil de fatigue du matériau est dépassé et le joint coule.

L'assemblage de la canalisation de propylène est effectué sur des raccords à souder - droits (pour raccorder des sections de tuyaux), angulaires, tés, croix. Le tuyau chauffé jusqu'à ramollissement est inséré dans le support du raccord également chauffé et le joint se fige. Dans ce cas, la pression de l'eau, au contraire, presse le tuyau contre le boîtier de l'intérieur, ce qui lui donne de la force, et il ne reste que l'étanchéité pour la zone fusionnée. La rigidité assez élevée du propylène ne permet pas au clip recouvrant le tuyau de se dilater élastiquement. C'est cette conception de la connexion, combinée aux propriétés du matériau, qui rend la conduite de propylène apte à être encastrée dans les murs pendant des décennies.

Note: un fer à souder plus ou moins décent pour le propylène coûte au moins 2000 roubles. et est toujours impropre à quelque chose, mais ne s'use pas du travail. Par conséquent, vous n'avez pas besoin de l'acheter, il est préférable de le louer.

  • Pour le câblage caché dans un appartement typique en stroboscopes ou monolithique - certainement du propylène.
  • Pour les branches de grande longueur avec un grand nombre de points de prise d'eau - métal-plastique ouvert ou dans des canaux avec couvercles amovibles.
  • Pour bastides, logements locatifs saisonniers, bastides avec dépendances isolées, serres... - polyéthylène.
  • Pour les réparations budgétaires ou dans les zones à pénurie d'eau, à faible pression dans l'alimentation en eau, avec une eau de mauvaise qualité - PVC.

Schéma de câblage

Collecteurs-peignes

Il existe deux schémas pour puiser de l'eau dans les locaux: en série et en parallèle. Avec un schéma en série, les points d'analyse sont reliés à un tuyau commun par des tés. Ce schéma est le plus économique, mais avec une grande longueur de câblage, un grand nombre de points d'analyse et / ou avec une faible pression d'eau, il ne convient pas, car il réduit considérablement la pression.

Dans ce cas, la prise d'eau se fait en parallèle à partir du collecteur « peigne », voir fig. Un peigne est un ensemble de vannes de dérivation, à partir de chacune desquelles part une branche solide vers son point d'analyse. Les vannes régulent la pression séparément par points. Les branches aux pointes sont en métal-plastique ou en polyéthylène : dans ce cas, leur faible résistance hydraulique joue un rôle, et lorsqu'elles sont posées en une seule pièce, elles sont assez fiables.

Développement d'un système de prise d'eau

Le système d'approvisionnement en eau dans l'appartement est nécessaire principalement pour soi-même, afin de ne pas se confondre, de ne pas faire d'erreur de calcul, puis de savoir exactement où se trouve tout - aucune autorisation spéciale n'est requise pour ce travail. Mais lors de l'enregistrement du compteur, l'inspecteur du service des eaux peut vous demander de regarder le schéma, vous devez donc le dessiner correctement.

Un schéma complet selon toutes les règles est un travail sérieux pour un spécialiste averti; par exemple - dans la grande figure, le schéma d'approvisionnement en eau d'une maison privée avec cuisine d'été, nécessaire pour que le projet soit approuvé. Mais pour remplacer les tuyaux dans l'appartement, vous n'avez pas besoin de vous embêter comme ça, il suffit que le schéma montre et comprenne clairement:

  1. Conduites d'eau chaude et froide, leur type et leur diamètre de lumière.
  2. Appareils de mesure.
  3. Vannes et drains d'urgence.
  4. Vanne d'arrêt.
  5. Points d'analyse avec indication des consommateurs.
  6. Branches et appareils de sauvegarde.
  7. Sens d'écoulement de l'eau.

Pour que tout cela soit clair non seulement pour vous-même, soit pour vous-même un an plus tard, certaines règles doivent être respectées lors du dessin. Regardons des exemples, voir fig. A gauche - plus ou moins d'accord, mais avec des commentaires, à droite - faux :

  • Le schéma de droite est réalisé en isométrie - pour la beauté, ou quoi ? Les intersections des tuyaux la confondent, et elle ne donne pas une idée de l'emplacement réel des points d'analyse : la machine à laver avec la chaudière sort sous le sol.
  • Il y a aussi trop de flèches de courant où il est déjà clair où il circule, ce qui confond également le circuit.
  • Au même endroit, les vannes d'arrêt avec dispositifs de mesure sont représentées de manière indistincte et non conforme aux règles.
  • Au même endroit - le type et le diamètre des tuyaux ne sont pas indiqués.
  • Au même endroit - qui, où et quand a vu que l'eau était fournie à la chaudière par le haut et que les toilettes étaient rincées par le reflux?
  • Mais dans le schéma de gauche, il n'est même pas clair pour un spécialiste que la chaudière (6) est une sauvegarde. La remarque sera : « Où est le clapet anti-retour pour le chaud ? Sans lui, à l'arrêt de l'alimentation, la chaudière va s'enfoncer dans la colonne montante chaude si la vanne (10) n'est pas fermée. Mais c'est déjà en substance et en pleine compréhension.

Schéma de plomberie simplifié correct dans l'appartement

Un exemple est arbitrairement, non conforme aux règles de conception de la documentation de conception, mais parfaitement compréhensible et sans fioritures, le schéma de prise d'eau terminé est illustré dans la figure suivante. Il s'agit également d'un exemple de rabattement parallèle ; où les peignes, bien sûr.

Calcul de tuyau

Avant de choisir définitivement les tuyaux, vous devez calculer au moins approximativement leur diamètre. Ce n'est pas nécessaire pour "l'intelligence" - plus le tuyau est étroit, moins il est cher, d'une part. En revanche, un tuyau de trop petit diamètre pour une alimentation en eau provoquera des turbulences dans l'écoulement dans celui-ci. Dans le même temps, le débit du tuyau chute fortement et, à pression normale à l'entrée du robinet, il suintera à peine.

Le calcul exact du pipeline est une affaire de spécialistes hautement qualifiés, mais pour un appartement en ville, afin de circuler normalement, vous pouvez le découvrir vous-même. Les données initiales sont :

  1. La pression minimale admissible est de 0,3 at.
  2. Perte de charge pour 1 m d'un tuyau en propylène de 16 mm - 0,05 at.
  3. La perte de charge moyenne pour le câblage de l'appartement par unité de raccords et de raccords est de 0,15 at.
  4. Perte de pression dans l'unité de sélection et de comptabilisation - 0,25 at.
  5. Avec des valeurs normales de pression à l'entrée de la colonne montante de 1,5 à 4,5 atm, des turbulences périodiques sont inévitables dans un tuyau de 12 mm et ne sont pas observées dans des tuyaux de 16 mm.
  6. La marge pour le point le plus éloigné est d'au moins deux fois.

Il reste à connaître la pression (pression) à l'entrée, et vous pouvez déterminer si, avec le câblage en série d'un tel tuyau en cours d'exécution, il y aura suffisamment de pression pour le robinet le plus éloigné ou si vous devrez le prendre plus large et plus cher . La pression au pied de la colonne montante peut être obtenue à partir du manomètre au sous-sol ou auprès de l'exploitant du bâtiment ; puis soustrayez 0,6 atm par étage. Vous pouvez également estimer pour les voisins en vous basant sur le même 0,6 at / étage : si, disons, à trois étages au-dessus des robinets, ça coule encore, alors nous avons un bon 2 at. Mais dans les immeubles de grande hauteur, une telle astuce ne fonctionne pas: afin de ne pas trop augmenter le coût du câblage des appartements, ils fabriquent des contremarches séparées pour les étages inférieur et supérieur, et même pour les étages inférieur, intermédiaire et supérieur.

Exemple de calcul : le deuxième étage d'un immeuble de neuf étages ; les habitants des étages supérieurs ne se plaignent pas de l'eau. Nous en avons au moins 4 à la pression. 11 unités de raccords (5 tés, 6 coudes, 1 vanne) donnent des pertes de 1,65 atm. La longueur du tuyau entre la colonne montante et le mur du fond de la cuisine est de 6,5 m, ce qui représente une autre perte de 0,325 atm. Au total, avec l'unité de sélection et de comptabilisation, nous avons 0,325 + 1,65 + 0,25 = 2,225 atm de pertes. Trop, vous devez vérifier la pression avec un manomètre et, très probablement, prendre le tuyau principal de 20-25 mm, ou divorcer en parallèle du peigne, sinon vous pouvez rester «sec» pendant l'été sec.

Note: à partir de là, il est clair à quel point il est important de redresser les tuyaux et à quel point ils ne sont pas souhaitables de les allonger et de les encombrer de raccords.

La dépendance des pertes dans les tuyaux et les raccords n'est pas linéaire : elles dépendent de la vitesse d'écoulement, qui, à son tour, dépend de la section transversale de la lumière du tuyau. Une légère augmentation du diamètre du tuyau réduit considérablement les pertes, de sorte que le câblage de tuyau habituel de 20 mm pour les appartements avec des robinets à des points de 16 mm fonctionne bien dans la plupart des cas. Dans les cas difficiles, un calcul précis peut être effectué en fonction du SNiP, de l'approvisionnement en eau interne et de l'assainissement des bâtiments. Il y a toutes les formules et nomogrammes nécessaires; le calcul peut être fait par une personne ayant une formation d'ingénieur de n'importe quel profil.

Il vous suffit de garder à l'esprit que sur ce compte, il existe déjà trois SNiP avec le même indice: 2.04.01-85, 2.04.01-85 (2000) et 2.04.01-85 * "(Systèmes d'approvisionnement en eau et de drainage domestiques dans les bâtiments) ". Correct - SNiP en dernier.

Outils, matériaux, démantèlement de l'ancien

Des outils spéciaux pour l'assemblage de pipelines d'appartements sont décrits ci-dessus au cours de la présentation. Pour l'achat de matériel, bien sûr, vous devrez calculer le métrage, la nomenclature et la quantité en place. Le démontage des anciennes canalisations se fait de la manière habituelle. Il est préférable de le faire après avoir installé et enregistré le compteur d'eau, afin de ne pas couper l'eau aux étages pendant une longue période.

Nous ne donnerons qu'un seul conseil : ne prenez pas de vannes à levier. Il est en silumin ou en plastique et a tendance à se casser au moment le plus inopportun, juste au moment où il faut le refermer d'urgence. Prenez des vannes à bille avec une poignée papillon. Les poignées rondes ondulées ne se cassent pas non plus, mais les mains mouillées ou moites glissent dessus.

Comptabilité et contrôle

L'unité de sélection et de comptabilisation se compose d'une vanne d'arrêt, d'un filtre grossier, d'un compteur d'eau et d'un clapet anti-retour. Assemblé comme indiqué sur l'image. Chacun des appareils indique le sens de l'écoulement de l'eau pour celui-ci, il doit être respecté lors du montage.

L'ensemble est assemblé avec étanchéité des connexions avec le ruban FUM et est également relié à la colonne montante, après avoir préalablement bloqué l'eau; N'oubliez pas de fermer le robinet d'arrêt avant de fournir de l'eau. C'est la seule opération, et de courte durée, nécessitant de couper l'alimentation en eau des voisins de la colonne montante.

Des compteurs séparés sont nécessaires pour l'eau froide et l'eau chaude. Il est hautement souhaitable que les compteurs et les poignées de vanne soient mis en évidence en couleur. Les relevés de compteur doivent être clairement lisibles sans aucune opération supplémentaire (enlèvement de trappe, etc.), il est donc souvent nécessaire de pré-assembler une partie d'une canalisation intégrale, parfois d'une configuration assez bizarre, pour connecter les appareils de comptage à la colonne montante. En plus des tuyaux et d'un fer à souder, vous aurez besoin pour cela de raccords de transition du plastique au métal MPV - un raccord intérieur fileté. Le plastique est connecté aux unités de dosage à l'aide de MRN - raccords filetés externes.

Les compteurs sont vendus scellés, mais cela ne signifie pas que vous pouvez immédiatement appeler le service des eaux et payer l'eau en fonction de la consommation. Le sceau d'usine est pour cela (la terre russe est riche en artisans) afin que personne n'entre dans le compteur et ne torde ou ne lime quoi que ce soit là-bas. Le sceau d'usine doit être protégé; sans lui, le compteur est considéré comme inutilisable, ainsi que sans certificat.

Lors de l'installation de compteurs d'eau, vous devez déclarer au service des eaux et appeler son inspecteur. Vous pouvez utiliser de l'eau avant son arrivée, l'inspecteur n'a pas besoin de lectures nulles, il notera les lectures initiales, scellera le compteur et filtrera la vidange avec son sceau. Le paiement de la consommation d'eau ira après l'enregistrement des appareils de mesure.

HMS, aquastop, filtre

Bien que la conception du HMS ne soit pas séparable et ne permette pas de voler de l'eau avec son aide, et que cet appareil ne puisse pas être scellé, la connexion du HMS au compteur est inacceptable: la roue du compteur peut se boucher avec des boues. HMS avec un filtre à ballon est connecté après les appareils de mesure ; filtre - immédiatement après HMS. Un aquastop peut être branché immédiatement après le filtre, mais s'il est électrodynamique, le champ magnétique du HMS peut provoquer son faux fonctionnement, mais cela n'a aucun sens d'attribuer l'aquastop loin de la colonne montante : il ne réagit pas à une percée avant il.

Vidéo : un aperçu des options de disposition des éléments de plomberie

Pose de canalisation

Donc, maintenant, nous faisons la plomberie. L'assemblage des tuyaux a déjà été décrit, mais l'installation de l'ensemble du système présente également des caractéristiques non constructives, telles que la disposition des canaux dans la chape. Ce dernier ne doit pas passer à plus de 150 mm du mur et à moins de 200 mm du meuble. Les appareils de plomberie, bien sûr, sont retirés avant de commencer la pose des tuyaux.

Tout d'abord, vous devez installer des arcs - des bandes en plastique avec des carrés MRV pour les mélangeurs. Ils sont fixés au mur principal avec des vis autotaraudeuses dans des chevilles. Lors de la fixation, vous devez tenir compte de l'épaisseur de la finition: plâtre et carrelage ou autre revêtement décoratif.

Sans beaucoup d'expérience en construction, il est très difficile d'obtenir l'emplacement des buses de sortie au ras du mur. Il est préférable de les fabriquer à l'avance au-dessus du mur fini de la moitié de la largeur du côté des bouchons mélangeurs décoratifs: si les bouchons ne sont pas réglés, ils peuvent être facilement ajustés sur une roue émeri ou manuellement sur une barre émeri.

Le moment suivant est l'assemblage des sections de pipeline. Le moyen le plus pratique est de l'assembler sur la table et de le mettre entièrement en stroboscope. Mais alors la question se pose : comment faire passer des tuyaux à travers les murs ? Il n'y a pas de problèmes avec le métal-plastique, tout est sur des raccords démontables, et pour les tuyaux brasés, deux méthodes peuvent être proposées :

  • Avec l'aide d'adaptateurs MPH / MRV et d'inserts métal-plastique. Dans un appartement, c'est assez fiable, et dans les coins au-dessus des stroboscopes, vous pouvez faire des trappes amovibles pour la révision et la réparation des connexions filetées.
  • Installez des pipelines localement. Cela nécessite un fer à souder compact. Celui-ci est plus cher et vous devez travailler avec des gants en coton pour ne pas vous brûler accidentellement.

Le quatrième point est la soudure. Une soudure prend 15 mm de tuyau. Autrement dit, s'il y a exactement 1 m entre deux raccords, vous devez couper 1030 mm; si 0,6 m - 630 mm etc.

Le cinquième point est le cintrage des tuyaux métal-plastique. Le rayon de courbure minimum autorisé est de 5 diamètres extérieurs du tuyau. Vous pouvez trouver des recommandations : ils disent, mettez une source là-dedans, remplissez-la de sable, et vous pouvez généralement la plier en biais, et retirer la source et retirer le sable avec un crochet métallique. En aucun cas: le revêtement du tuyau se détériore, les contraintes résiduelles y sont bien supérieures à celles autorisées et le tuyau métal-plastique acquiert les propriétés d'un acier rouillé très pauvre.

Et enfin, . Il s'agit d'un cycle de production séparé, et il est effectué après la mise en service du système d'approvisionnement en eau. Les tuyaux de la chaudière sont fabriqués à l'avance, mais leurs vannes (elles sont absolument nécessaires pour les deux) sont bloquées immédiatement après l'installation des tuyaux et les tuyaux sont en outre étouffés.

Vidéo : un exemple de plomberie montée

Il existe deux manières différentes d'envisager le branchement à chaud. Le noyau considère le branchement à chaud comme une interaction entre le matériel, le noyau et le pilote du noyau. Les utilisateurs considèrent le hotplugging comme une interaction entre le noyau et l'espace utilisateur via un programme appelé /sbin/hotplug . Ce programme est appelé par le noyau lorsqu'il veut notifier à l'espace utilisateur qu'un certain type d'événement hotplug vient de se produire dans le noyau.

Appareils dynamiques

L'utilisation la plus courante de la signification du terme "hot plug" se produit lorsque l'on discute du fait que la plupart des systèmes informatiques peuvent désormais gérer des périphériques qui apparaissent ou disparaissent lorsque le système est allumé. Ceci est très différent des systèmes informatiques d'il y a quelques années à peine, lorsque les programmeurs savaient qu'ils n'avaient qu'à analyser tous les périphériques au démarrage et qu'ils n'avaient jamais à s'inquiéter de la disparition de leurs périphériques lorsque l'alimentation de l'ensemble de la machine était coupée. Maintenant, avec l'avènement des contrôleurs USB, CardBus PCMCIA, IEEE1394 et PCI enfichables à chaud, le noyau Linux doit pouvoir fonctionner de manière fiable, quel que soit le matériel ajouté ou supprimé du système. Cela impose une charge supplémentaire à l'auteur du pilote de périphérique, car il doit désormais toujours travailler avec un périphérique qui devient soudainement incontrôlable sans préavis.

Chaque type de bus gère différemment la perte de périphérique. Par exemple, lorsqu'un périphérique PCI, CardBus ou PCMCIA est supprimé du système, cela se produit généralement avant que le pilote n'ait été informé de l'action via sa fonction de suppression. Avant que cela ne se produise, toutes les lectures du bus PCI renvoient tous les bits définis. Cela signifie que les pilotes doivent toujours vérifier la valeur des données qu'ils ont lues sur le bus PCI et être capables de traiter correctement la valeur 0xff.

Un exemple de ceci peut être vu dans drivers/usb/host/ehci-hcd.c , qui est un pilote PCI pour une carte contrôleur USB 2.0 (haute vitesse). Il contient le code suivant dans sa boucle d'établissement de liaison principale pour détecter que la carte contrôleur a été retirée du système :

résultat = readl(ptr);

if (result == ~(u32)0) /* carte supprimée */

Retour -ENODEV ;

Pour les pilotes USB, lorsque le périphérique auquel le pilote USB est associé est supprimé du système, tous les urbs en attente qui ont été envoyés au périphérique échouent en premier avec une erreur -ENODEV. Le pilote doit reconnaître cette erreur et nettoyer de manière appropriée toute E/S en attente, le cas échéant.

Les appareils enfichables à chaud ne se limitent pas aux appareils traditionnels tels que les souris, les claviers et les cartes réseau. De nombreux systèmes prennent désormais en charge le retrait et l'ajout de processeurs entiers et de cartes mémoire. Heureusement, le noyau Linux gère correctement l'ajout et la suppression de ces périphériques "système" de base, de sorte que les pilotes de périphériques individuels n'ont pas à se soucier de ces choses.

utilitaire /sbin/hotplug

Comme mentionné précédemment dans ce chapitre, lorsqu'un périphérique est ajouté ou supprimé du système, un "événement de connexion à chaud" est généré. Cela signifie que le noyau appelle le programme en espace utilisateur /sbin/hotplug . Ce programme est généralement très petit script bash, qui transfère simplement l'exécution à une liste d'autres programmes qui se trouvent dans l'arborescence de répertoires /etc/hotplug.d/. Pour la plupart Distributions Linux ce script ressemble à ceci :

DIR="/etc/hotplug.d"

pour I dans "$(DIR)/$1/"*.hotplug "$(DIR)/"default/*.hotplug ; faire

Si [ -f $I ]; alors

Testez -x $I && $I $1 ;

fait

sortie 1

En d'autres termes, le script recherche tous les programmes avec le suffixe .hotplug qui pourraient être intéressés par cet événement et les appelle, en leur passant un certain nombre de variables d'environnement différentes qui ont été définies par le noyau. Plus des informations détaillées le script /sbin/hotplug se trouve dans les commentaires du programme et dans la page de manuel hotplug(8).

Comme mentionné précédemment, /sbin/hotplug est appelé lorsqu'un kobject est créé ou détruit. Le programme hotplug est appelé avec un argument ligne de commande A qui représente le titre de cet événement. Le noyau principal et un sous-système spécifique sont également impliqués dans la définition d'un ensemble de variables d'environnement (voir ci-dessous) avec des informations sur ce qui vient de se passer. Ces variables sont utilisées dans les programmes hotplug pour déterminer ce qui vient de se passer dans le noyau et si une action spéciale doit avoir lieu.

L'argument de ligne de commande passé à /sbin/hotplug est le nom associé à cet événement hotplug, tel que déterminé par le kset assigné au kobject. Ce nom peut être défini par des appels à la fonction name, qui fait partie de la structure hotplug_ops du kset décrite précédemment dans ce chapitre ; si cette fonction est manquante ou n'a jamais été appelée, le nom du kset lui-même est utilisé.

Les variables d'environnement par défaut qui sont toujours définies pour le programme /sbin/hotplug sont :

ACTION

La chaîne add (add) ou remove (delete), selon que l'objet donné vient d'être créé ou détruit.

DEVPATH

Chemin vers un répertoire du système de fichiers sysfs qui pointe vers le kobject actuellement créé ou détruit. Notez que le point de montage du système de fichiers sysfs n'est pas ajouté à ce chemin, sa définition est donc laissée au programme de l'espace utilisateur.

SEQNUM

Numéro de séquence de cet événement hotplug. Le numéro de séquence est un nombre 64 bits qui s'incrémente avec chaque événement hotplug généré. Cela permet à l'espace utilisateur de trier les événements hotplug dans l'ordre dans lequel le noyau les génère, car il est possible que les programmes de l'espace utilisateur fonctionnent dans le désordre.

SOUS-SYSTÈME

La même chaîne passée comme argument de ligne de commande comme décrit ci-dessus.

Un certain nombre de sous-systèmes de bus différents pour appeler /sbin/hotplug ajoutent leur propre Variables d'environnement lorsqu'un appareil associé au bus a été ajouté ou retiré du système. Ils le font dans leur rappel hotplug spécifié dans la structure kset_hotplug_ops assignée à ce bus (comme décrit dans la section Opérations Hotplug). Cela permet à l'espace utilisateur de pouvoir charger automatiquement les modules nécessaires qui peuvent être nécessaires pour contrôler un appareil qui a été détecté sur le bus. Voici une liste des différents types de bus et des variables d'environnement qu'ils ajoutent à l'appel /sbin/hotplug.

IEEE1394 (FireWire)

Tous les périphériques sur le bus IEEE1394, également connu sous le nom de FireWire, ont une option de nom pour /sbin/hotplug et la variable d'environnement SUBSYSTEM est définie sur ieee1394 . Le sous-système Ieee1394 ajoute également toujours les quatre variables d'environnement suivantes :

FOURNISSEUR ID

ID fournisseur 24 bits pour le périphérique IEEE1394.

MODEL_ID

ID de modèle 24 bits pour un périphérique IEEE1394.

GUID

Le GUID 64 bits pour ce périphérique.

SPECIFIER_ID

Valeur 24 bits qui spécifie le propriétaire de la spécification de protocole pour ce périphérique

VERSION

Une valeur qui spécifie la version de spécification de protocole pour ce périphérique.

Filet

Tous Périphériques réseau créer un message hotplug lorsque le périphérique est enregistré ou désenregistré dans le noyau. L'appel /sbin/hotplug a un paramètre de nom et la variable d'environnement SUBSYSTEM est définie sur net et ajoute uniquement la variable d'environnement suivante :

INTERFACE

Le nom de l'interface qui a été enregistrée ou désenregistrée du noyau. Des exemples en sont lo et eth0 .

PCI

Tous les périphériques sur le bus PCI ont un paramètre de nom et la variable d'environnement SUBSYSTEM est définie sur pci . Le sous-système PCI ajoute également toujours les quatre variables d'environnement suivantes :

PCI_CLASS

Le numéro de classe PCI pour ce périphérique, en hexadécimal.

PCI_ID

Les ID de fournisseur et de périphérique PCI pour ce périphérique, au format hexadécimal, concaténés au format vendor:device .

PCI_SUBSYS_ID

ID de fournisseur et de sous-système PCI combinés au format subsys_vendor:subsys_device .

PCI_SLOT_NAME

Le "nom" du slot PCI donné au périphérique par le noyau au format domaine:bus:slot:fonction . Un exemple serait 0000:00:0d.0 .

Saisir

Pour tous les périphériques d'entrée (souris, claviers, joysticks, etc.), un message hotplug est généré lorsqu'un périphérique est ajouté et supprimé du noyau. L'option /sbin/hotplug et la variable d'environnement SUBSYSTEM sont définies sur input . Le sous-système d'entrée ajoute également toujours les variables d'environnement suivantes :

PRODUIT

Une chaîne à valeurs multiples répertoriant les valeurs en hexadécimal, sans zéros non significatifs, au format type de bus:fournisseur:produit:version.

Les variables d'environnement suivantes peuvent être présentes si l'appareil les prend en charge :

NOM

Le nom du périphérique d'entrée, tel qu'il est donné par le périphérique.

PHYS

L'adresse physique du périphérique que le sous-système d'entrée a donné à ce périphérique. Il doit être stable, en fonction de l'emplacement du bus auquel l'appareil était connecté.

Ils proviennent tous d'un handle de périphérique d'entrée et sont définis sur les valeurs appropriées si le périphérique d'entrée donné le prend en charge.

USB

Tous les périphériques sur le bus USB ont un paramètre de nom et la variable d'environnement SUBSYSTEM est définie sur usb . Le sous-système USB ajoute également toujours les variables d'environnement suivantes :

PRODUIT

Une chaîne au format idVendor/idProduct/bcdDevice

TAPER

Chaîne au format bDeviceClass/bDeviceSubClass/bDeviceProtocol, qui définit ces champs dépendant du périphérique USB.

Si le champ bDeviceClass est défini sur 0, la variable d'environnement suivante est également définie :

INTERFACE

Chaîne au format bInterfaceClass/bInterfaceSubClass/bInterfaceProtocol, qui définit ces champs dépendant du périphérique USB.

Si l'option de construction du noyau CONFIG_USB_DEVICEFS est sélectionnée, ce qui sélectionne que le système de fichiers usbfs soit construit dans le noyau, la variable d'environnement suivante est également définie :

APPAREIL

Une chaîne qui indique où se trouve le périphérique dans le système de fichiers usbfs. Cette ligne a le format /proc/bus/usb/USB_BUS_NUMBER/ SB_DEVICE_NUMBER, où USB_BUS_NUMBER est le numéro à trois chiffres du bus USB auquel le périphérique est connecté, et USB_DEVICE_NUMBER est le numéro à trois chiffres qui a été attribué par le noyau pour ce périphérique USB.

SCSI

Tous les périphériques SCSI génèrent un événement hotplug lorsqu'un périphérique SCSI est créé ou supprimé du noyau. L'appel /sbin/hotplug a un paramètre name et la variable d'environnement SUBSYSTEM définie sur scsi pour chaque périphérique SCSI ajouté ou supprimé du système. Aucune variable d'environnement supplémentaire n'est ajoutée par le système SCSI, mais elle est mentionnée ici car il existe un script SCSI spécial dans l'espace utilisateur qui peut déterminer que les pilotes SCSI (lecteur de disque, lecteur de bande, normal, etc.) doivent être chargés pour le système spécifié. périphérique SCSI.

Stations d'accueil pour ordinateur portable

Si une station d'accueil pour ordinateur portable compatible Plug-and-Play est ajoutée ou supprimée d'un Systèmes Linux(en branchant un ordinateur portable sur la station, ou en le retirant), un événement hotplug est généré. L'appel /sbin/hotplug a un paramètre name et la variable d'environnement SUBSYSTEM définie sur dock . Aucune autre variable d'environnement n'est définie.

S/390 et zSeries

Sur l'architecture S/390, l'architecture de bus de canal prend en charge une grande variété de matériels, chacun d'entre eux déclenchant des événements /sbin/hotplug lorsqu'ils sont ajoutés ou supprimés du système virtuel Linux. Tous ces périphériques ont un paramètre de nom pour /sbin/hotplug et la variable d'environnement SUBSYSTEM définie sur dasd . Aucune autre variable d'environnement n'est définie.

Utiliser /sbin/hotplug

Maintenant que le noyau Linux appelle /sbin/hotplug pour chaque périphérique ajouté ou supprimé du noyau, un certain nombre d'outils très utiles ont été créés dans l'espace utilisateur pour en tirer parti. Deux des outils les plus populaires sont les scripts hotplug Linux et udev .

Scripts de connexion à chaud Linux

Les scripts de hotplug Linux ont commencé lorsque le tout premier utilisateur a appelé /sbin/hotplug . Ces scripts examinent les différentes variables d'environnement que le noyau définit pour décrire le périphérique qu'il vient de découvrir, puis tentent de trouver un module de noyau correspondant à ce périphérique.

Comme indiqué précédemment, lorsqu'un pilote utilise la macro MODULE_DEVICE_TABLE, le programme, depmod , prend ces informations et crée les fichiers trouvés dans /lib/module/KERNEL_VERSION/modules.*map. Le signe * est une distinction, selon le type de bus pris en charge par le conducteur. Actuellement, les fichiers de carte de module sont créés pour les pilotes qui fonctionnent avec des périphériques prenant en charge les sous-systèmes PCI, USB, IEEE1394, INPUT, ISAPNP et CCW.

Les scripts Hotplug utilisent ces fichiers texte modulemap pour définir un module afin de tenter de le charger pour prendre en charge un périphérique récemment découvert par le noyau. Ils chargent tous les modules et ne s'arrêtent pas à la première correspondance, afin de laisser le noyau décider quel module est le mieux adapté. Ces scripts ne déchargent pas tous les modules lorsque les périphériques sont supprimés. S'ils essayaient de le faire, ils pourraient accidentellement éteindre les appareils qui sont également contrôlés par le pilote de périphérique qui a été supprimé.

Notez que maintenant que le programme modprobe peut lire les informations MODULE_DEVICE_TABLE directement à partir des modules sans avoir besoin de fichiers modulemap, les scripts hotplug peuvent être réduits à un petit wrapper autour du programme modprobe.

udev

L'une des principales raisons de la création d'un modèle de pilote unique dans le noyau était de permettre à l'espace utilisateur de gérer l'arborescence /dev de manière dynamique. Auparavant, cela se faisait dans l'espace utilisateur par l'implémentation devfs, mais cette base de code s'est lentement pourrie en raison d'un manque de responsable actif et de quelques bogues sous-jacents irrécupérables. Plusieurs développeurs du noyau ont réalisé que si toutes les informations sur les périphériques étaient exportées vers l'espace utilisateur, il pourrait effectuer toute la gestion nécessaire de l'arborescence /dev.

devfs a des défauts très importants dans sa conception. Il nécessite que chaque pilote de périphérique soit modifié pour le prendre en charge, et il nécessite que le pilote de périphérique spécifie le nom et l'emplacement dans l'arborescence /dev où il est placé. Il ne gère pas non plus correctement les nombres majeurs et mineurs dynamiques, forçant la politique de nommage des périphériques à appartenir au noyau et non à l'espace utilisateur. Les développeurs du noyau Linux détestent vraiment avoir une politique dans le noyau et puisque la politique de nommage devfs ne suit pas la spécification Linux Standard Base, cela les dérange vraiment.

Depuis que le noyau Linux a commencé à être installé sur d'énormes serveurs, de nombreux utilisateurs ont été confrontés au problème de la gestion d'un très grand nombre d'appareils. Avec des baies de disques de plus de 10 000 périphériques uniques, il est très difficile de s'assurer que chaque disque porte toujours le même nom exact, où qu'il soit placé dans la baie de disques ou lorsqu'il est découvert par le noyau. C'est le même problème que rencontrent les utilisateurs de bureau lorsqu'ils essaient de connecter deux imprimantes USB à leur système et réalisent ensuite qu'ils n'ont aucun moyen de s'assurer que l'imprimante connue sous le nom de /dev/lpt0 n'est pas modifiée et réaffectée à une autre imprimante. événement d'un redémarrage du système.

Ainsi, udev a été créé. Il s'appuie sur toutes les informations de périphérique exportées vers l'espace utilisateur via sysfs et sur la notification via /sbin/hotplug qu'un périphérique a été ajouté ou supprimé. Les décisions de politique, telles que le nom à donner au périphérique, peuvent être spécifiées dans l'espace utilisateur, en dehors du noyau. Cela garantit que la politique de dénomination est supprimée du noyau et permet une plus grande flexibilité dans la dénomination de chaque périphérique.

Pour plus d'informations sur l'utilisation d'udev et sa configuration, veuillez consulter la documentation fournie avec le package udev dans votre distribution.

Tout ce qu'un pilote de périphérique doit faire pour qu'udev fonctionne correctement avec lui est de s'assurer que tous les numéros majeurs et mineurs attribués à un périphérique contrôlé par le pilote sont exportés vers l'espace utilisateur via sysfs. Pour tout pilote qui utilise le sous-système pour lui attribuer un numéro majeur et mineur, cela est déjà fait par le sous-système et le pilote n'a rien à faire. Des exemples de sous-systèmes qui font cela sont les sous-systèmes tty, misc, usb, input, scsi, block, i2c, network et frame buffer. Si votre pilote gère lui-même l'obtention du nombre majeur et mineur via cdev_init ou le registre obsolète_chrdev , le pilote doit être modifié pour que udev fonctionne correctement avec lui.

udev recherche dans l'arborescence /class/ de sysfs un fichier nommé dev pour déterminer quel numéro majeur et mineur est attribué à un périphérique donné lorsqu'il est appelé par le noyau via l'interface /sbin/hotplug. Le pilote de périphérique doit simplement créer un tel fichier pour chaque périphérique qu'il contrôle. En règle générale, l'interface class_simple est le moyen le plus simple de le faire.

Comme mentionné dans la section "interface class_simple", la première étape de l'utilisation de l'interface class_simple consiste à créer une structure class_simple en appelant la fonction class_simple_create :

structure statique class_simple *foo_class ;

foo_class = class_simple_create(THIS_MODULE, "foo");

si (IS_ERR(foo_class)) (

Printk(KERN_ERR "Erreur lors de la création de la classe foo.\n");

Aller à l'erreur ;

Ce code crée un répertoire dans sysfs à /sys/class/foo .

Chaque fois que le pilote trouve un nouveau périphérique et que vous lui affectez un numéro mineur, comme décrit au chapitre 3, le pilote doit appeler la fonction class_simple_device_add :

class_simple_device_add(foo_class, MKDEV(FOO_MAJOR, mineur), NULL, "foo%d", mineur);

Ce code provoque la création d'un sous-répertoire nommé fooN dans /sys/class/foo , où N est le numéro mineur de ce périphérique. Un seul fichier est créé dans ce répertoire, dev , qui correspond exactement à ce dont udev a besoin pour créer un nœud de périphérique pour votre périphérique. Lorsque votre pilote est libéré d'un périphérique et que vous supprimez le numéro mineur qui lui a été attribué, un appel à class_simple_device_remove est nécessaire pour supprimer l'entrée sysfs pour ce périphérique :

class_simple_device_remove(MKDEV(FOO_MAJOR, mineur));

Plus tard, lorsque tout votre pilote tombe en panne, il est nécessaire d'appeler class_simple_destroy pour supprimer la classe que vous avez créée à l'origine en appelant class_simple_create :

class_simple_destroy(foo_class);

Le fichier dev , qui est créé en appelant class_simple_device_add , se compose d'un nombre majeur et mineur séparés par un : caractère. Si votre pilote ne veut pas utiliser l'interface class_simple parce que vous voulez fournir d'autres fichiers dans le répertoire de classe pour le sous-système, utilisez la fonction print_dev_t pour formater correctement les nombres majeurs et mineurs pour chaque périphérique.

mob_info