Gorące i zimne podłączenie urządzeń. Gorąca wtyczka

Oryginał: Niektóre fajne zasady udev i przykłady
Autorzy: Vimal Daga, Davender Singh
Data publikacji: 28 czerwca 2012 r
Tłumaczenie: A.Panin
Data publikacji tłumaczenia: 23 października 2012 r

Dzięki systemowi udev opracowanemu przez Grega Kroah-Hartmana, Kay Sievers i Dana Stekloffa proces łączenia dysków flash, dyski twarde, aparaty fotograficzne i telefony komórkowe do systemu z systemem Linux stało się proste i łatwe w zarządzaniu jak nigdy dotąd. Po raz pierwszy zaimplementowany w jądrze Linuksa w wersji 2.6, system udev obsługuje zarówno urządzenia podłączane na gorąco do działającego systemu, jak i urządzenia podłączane na zimno (podłączone przed włączeniem systemu). W tym artykule omówimy proces dynamicznego tworzenia plików urządzeń w katalogu /dev i przedstawimy kilka przykładów dostosowań do użytku lub dla zabawy.

udev to implementacja systemu plików urządzenia devfs w przestrzeni użytkownika. System obejmuje usługę udevd, pliki konfiguracyjne i pliki reguł służące do dynamicznego zarządzania plikami urządzeń Linux zlokalizowanymi w katalogu /dev w odpowiedzi na zdarzenia generowane przez jądro (uevents). Udev z powodzeniem całkowicie zastąpił starą implementację devfs od wersji jądra Linuksa 2.6.

Jaka była potrzeba całkowicie przeprojektowanej implementacji systemu zarządzania plikami urządzenia? I dlaczego wdrożenie udev było tak udane? Aby uzyskać odpowiedź, należy spojrzeć na historię rozwoju interfejsów sterowników urządzeń systemu operacyjnego Linux.

Każdy plik urządzenia ma skojarzone z nim dwie 8-bitowe wartości: identyfikator pomocniczy (liczba pomocnicza) i identyfikator główny (liczba główna). Każdy sterownik urządzenia ma główny identyfikator; a wszystkie pliki urządzeń działające pod tym sterownikiem mają ten sam główny identyfikator. Identyfikatory urządzeń drugorzędnych są różne dla różnych urządzeń, na których działa ten sterownik.

We wczesnych wersjach Linuksa system plików /dev zawierał jeden plik statyczny dla każdego urządzenia, które mogło być podłączone do systemu (i kontrolowane przez sterownik urządzenia). Niestety takie podejście miało szereg problemów: nie było wystarczającej liczby wartości identyfikatorów do przypisania do wszystkich możliwych urządzeń, zwłaszcza w obliczu rosnącej liczby obsługiwanych urządzeń. Ponadto posiadanie ponad 18 000 plików urządzeń wymagało dużo dodatkowego miejsca na dysku. Problemy te zostały rozwiązane przez umożliwienie udev ignorowania wartości identyfikatora pliku urządzenia pomocniczego i głównego.

Podczas podłączania urządzeń typu hot-plug, takich jak sprzęt USB, nie było spójności w nazywaniu i identyfikowaniu pliku urządzenia. Na przykład w systemie z dwiema drukarkami USB jedna z drukarek może być reprezentowana przez /dev/usb/lp0, a druga przez /dev/usb/lp1 - ale nie ma jasnego zrozumienia, która drukarka jest reprezentowana przez który plik . . To zachowanie mogło się zmienić w zależności od tego, które urządzenie zostało włączone podczas uruchamiania komputera lub podłączone wcześniej — lub może się zmienić w zależności od tego, czy urządzenie jest podłączone do koncentratora USB, czy bezpośrednio do portu USB systemu. Takie zachowanie zawsze było frustrujące i mylące dla użytkowników. System udev umożliwia ustawienie stałej nazwy urządzenia za pomocą reguł.

Inne funkcje udev rozwiązują wiele problemów odziedziczonych po devfs:

  • udev działa w przestrzeni użytkownika, zmniejszając ilość i złożoność kodu jądra.
  • udev umożliwia przypisanie trwałej nazwy urządzenia, która nie zależy od kolejności, w jakiej urządzenia są uwzględniane, ani od lokalizacji urządzenia w magistrali.
  • udev dynamicznie modyfikuje pliki w katalogu /dev, tworząc pliki tylko dla urządzeń, które są obecne i podłączone do systemu. Możliwe jest również przypisanie dowolnych nazw urządzeń za pomocą dowiązań symbolicznych do plików urządzeń.
  • udev dostarcza informacje o urządzeniu aplikacjom w przestrzeni użytkownika, eliminując potrzebę dostępu do wewnętrznych elementów jądra w celu uzyskania tych informacji.

Jak działa udev

Usługa udevd nasłuchuje w gnieździe netlink zdarzeń generowanych przez jądro, gdy urządzenie jest podłączane lub odłączane. Możesz monitorować te zdarzenia za pomocą polecenia udevmonitor - uruchom je, podłącz urządzenie USB, takie jak dysk flash, i odłącz je (nowsze dystrybucje mogą nie mieć udevmonitor - w tym przypadku użyj udevadm).

Podczas uruchamiania udev montuje system plików tmpfs w katalogu /dev. Następnie pliki urządzeń są kopiowane z katalogu /lib/udev/device do katalogu /dev, a udev zaczyna akceptować zdarzenia jądra dla urządzeń podłączonych na zimno. Katalog /etc/udev/rules.d służy do zmiany ustawień urządzenia, tworzenia dowiązań symbolicznych do plików urządzeń i nie tylko. W przypadku urządzeń podłączanych podczas pracy, udevd nasłuchuje zdarzeń jądra za pomocą magistrali D-Bus, następnie pobiera atrybuty nowego urządzenia z systemu plików /sys i stosuje reguły oparte na atrybutach - następnie tworzony jest plik urządzenia w systemie plików /dev. Udev umożliwia również ładowanie dedykowanych sterowników urządzeń za pomocą mechanizmu „modalias”.

zasady udev i przykłady

Udev zapewnia możliwość zmiany swojego zachowania w oparciu o reguły i pliki konfiguracyjne. Możesz zmienić sposób działania reguł dostarczanych z systemem (zwykle znajdujących się w /lib/udev/rules.d ) lub dodać niestandardowe i specyficzne funkcje, aby dopasować je do swoich potrzeb. Reguły można dodawać do katalogu /etc/udev/rules.d/ - katalogu dla indywidualnych reguł niestandardowych.

Utwórz swoje reguły (które przypisują nazwę pliku urządzenia, tworzą dowiązania symboliczne, ustawiają uprawnienia i robią, co chcesz) w tym katalogu. Aby upewnić się, że reguła występuje przed innymi, upewnij się, że nazwa pliku zaczyna się od liczby mniejszej niż pozostałe reguły, które powinny być wykonywane po niej — na przykład 10-local.rules .

Wyłącz konto użytkownika root, dopóki administrator nie podłączy swojego dysku USB

BUS=="usb", PODSYSTEM=="blok", PROGRAM="/bin/enable_root_login"

Aby ta reguła zadziałała, należy opracować aplikację lub skrypt powłoki o podanej nazwie, aby uzyskać numer seryjny urządzenia podłączonego do systemu i porównać go ze znanym numerem seryjnym urządzenia administratora. Jeśli numery seryjne są zgodne, program usunie wymaganą autoryzację wiersz pam_deny.so z pliku /etc/pam.d/login, co umożliwi logowanie pod konto użytkownik root. Jeśli podłączone są inne urządzenia USB, żadne zmiany w plikach nie zostaną wprowadzone. Wręcz przeciwnie, gdy tylko dysk USB zostanie odłączony, ta linia zostanie ponownie dodana do pliku.

Ta reguła została przetestowana na dystrybucji RHEL 5.0 i działała dobrze, jednak podczas używania polecenia su lub podczas logowania do trybu pojedynczego użytkownika podczas uruchamiania, ta reguła nie będzie działać. Aby wyłączyć logowanie roota podczas używania polecenia su, możesz wykonać następujące czynności:

  1. Zmodyfikuj plik /etc/security/access.conf, dodając główny wiersz: ALL .
  2. Edytuj plik /etc/pam.d/system-auth , dodając jako drugi wiersz wymagane konto pam_access.so.
  3. Zmodyfikuj plik /etc/pam.d/su i ustaw pierwszy wiersz tego pliku jako wiersz account include system_auth .

Czynności te oczywiście musi wykonać program enable_root_login. Po sprawdzeniu numeru seryjnego urządzenia USB pod kątem przynależności do administratora, program powinien usunąć wszystkie zmiany dokonane w plikach, a jeżeli podłączone urządzenie nie należy do administratora, wykonać na plikach wszystkie powyższe czynności.

Te kroki nie zapobiegną zalogowaniu się jako root w trybie pojedynczego użytkownika, jednak możesz ustawić hasło w programie ładującym GRUB, aby uniemożliwić łatwy dostęp do trybu pojedynczego użytkownika.

Możesz użyć następującego polecenia, aby uzyskać informacje o numerze seryjnym urządzenia, nazwie urządzenia, identyfikatorze dostawcy, nazwie producenta i innych parametrach: udevinfo -a -p /sys/block/sdb

Nowsze dystrybucje mogą nie zawierać udevinfo, w takim przypadku powinieneś użyć udevadm zamiast udevinfo .

Wyłącz wszystkie porty USB

BUS=="usb", OPCJE+="ignore_device"

Rezultatem tej reguły będzie wyłączenie wszystkich urządzeń podłączonych do portów USB twojego systemu - drukarki USB, klawiatury i myszy nie będą działać. Zachowaj ostrożność podczas używania!

Wyłącz wszystkie urządzenia blokowe podłączone do portów USB

BUS=="usb", PODSYSTEM=="blok", OPCJE+="ignore_device"

Ta reguła wyłącza rozpoznawanie urządzeń blokowych podłączonych do portów USB. Ta reguła może być przydatna do poprawy bezpieczeństwa i prywatności danych w organizacji.

Przypisz stałą nazwę do pliku urządzenia drugiego dysku IDE

Zastąp sdb, jeśli chcesz zastosować regułę do innego dysku.

Zignoruj ​​drugi dysk USB SCSI/IDE podłączony przez USB

KERNEL=="sdb", NAME="my_spare"

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

Dodaj dowiązanie symboliczne do podanego pliku Urządzenia USB-myszy

PODSYSTEM=="wejście", BUS=="usb", SYSFS(serial)=="0000:00:1d.0", SYMLINK+=="MOJA-MYSZ-USB"

Zmień nazwę pliku urządzenia na podstawie producenta urządzenia

BUS=="usb", SYSFS(producent)=="JetFlash", NAME="Wszechświat"

Ta reguła zmienia nazwę pliku urządzenia na „UNIVERSE”, jeśli producentem napędu flash USB jest firma JetFlash.

Selektywnie zezwalaj na korzystanie z urządzeń blokowych USB za pomocą specjalnego programu

BUS=="usb", PODSYSTEM=="blok", PROGRAM="/bin/usbc.jar", WYNIK!="mój", OPCJE+="ignore_device"

Jeśli program wyświetli „my”, urządzenie może być używane, w przeciwnym razie urządzenie jest ignorowane.

Wyobraź sobie zwykły poranek w jednym z wieżowców części sypialnej naszego ukochanego miasta: muszla klozetowa, prysznic, golenie, herbata, mycie zębów, woda dla kota (lub w dowolnej innej kolejności) - i do pracy... Wszystko odbywa się automatycznie i bez wahania. Tak długo, jak zimna woda płynie z kranu zimnej wody, a ciepła woda płynie z ciepłej wody. A czasem otwierasz zimną, a stamtąd gotującą się wodę!! 11#^*¿>.

Rozwiążmy to.

Zaopatrzenie w zimną wodę lub zimną wodę

Lokalna pompownia dostarcza wodę do magistrali z sieci wodociągowej. Duża rura zasilająca wchodzi do domu i kończy się zaworem, po którym znajduje się wodomierz.

W skrócie zespół wodomierza składa się z dwóch zaworów, sitka i wodomierza.



Niektóre mają dodatkowy zawór zwrotny.

i obejścia wodomierza.

Obejście wodomierza to dodatkowy wodomierz z zaworami, który może zasilać instalację w przypadku serwisowania głównego wodomierza. Po licznikach woda jest dostarczana do głównej sieci domowej


gdzie jest rozprowadzana wzdłuż pionów doprowadzających wodę do mieszkań na piętrach.



Jakie jest ciśnienie w układzie?

9 pięter

Domy o wysokości do 9 pięter mają wylewanie dna od dołu do góry. Te. z wodomierza przez dużą rurę woda wypływa przez piony na 9 piętro. Jeśli vodokanal jest w dobrym nastroju, to na wejściu dolnej strefy powinno być około 4 kg/cm2. Biorąc pod uwagę spadek ciśnienia o jeden kilogram, na każde 10 metrów słupa wody, mieszkańcy 9. piętra otrzymają około 1 kg ciśnienia, co jest uważane za normalne. W praktyce w starych domach ciśnienie wejściowe wynosi tylko 3,6 kg. A mieszkańcy 9 piętra zadowalają się jeszcze mniejszym ciśnieniem niż 1kg/cm2

12-20 pięter

Jeśli dom jest wyższy niż 9 pięter, np. 16 pięter, to taki system dzieli się na 2 strefy. Wyżej i niżej. Tam, gdzie pozostają te same warunki dla dolnej strefy, a dla górnej strefy ciśnienie wzrasta do około 6 kg. Aby podnieść wodę na samą górę do linii zasilającej, a wraz z nią woda podnosi się do 10 piętra. W domach powyżej 20 pięter zaopatrzenie w wodę można podzielić na 3 strefy. Przy takim schemacie zasilania woda w systemie nie krąży, stoi na cofce. W mieszkaniu wielopiętrowym średnio dostajemy ciśnienie od 1 do 4 kg. Istnieją inne wartości, ale nie będziemy ich teraz rozważać.

Zaopatrzenie w ciepłą wodę lub CWU

W niektórych budynkach o niskiej zabudowie ciepła woda jest podłączona w ten sam sposób, stoi na cofce bez cyrkulacji, co tłumaczy fakt, że po odkręceniu kranu z ciepłą wodą płynie przez pewien czas zimna, schłodzona woda. Jeśli weźmiemy ten sam dom z 16 piętrami, to w takim domu system ciepłej wody jest ułożony inaczej. Ciepła woda, podobnie jak zimna woda, jest również dostarczana do domu przez dużą rurę, a po liczniku trafia do głównego domu

który podnosi wodę na strych, gdzie jest rozprowadzana wzdłuż pionów i opada na samo dno do przewodu powrotnego. Nawiasem mówiąc, liczniki ciepłej wody liczą nie tylko objętość utraconej (zużytej) wody w domu. Liczniki te zliczają również straty temperatury (higokalorie)

Temperatura jest tracona, gdy woda przepływa przez podgrzewane wieszaki na ręczniki w mieszkaniu, które pełnią rolę pionów.

W tym schemacie gorąca woda zawsze krąży. Jak tylko odkręcisz kran, ciepła woda już tam jest. Ciśnienie w takim układzie wynosi około 6-7 kg. na zasilaniu i nieco mniej na powrocie, aby zapewnić cyrkulację.

Ze względu na krążenie uzyskujemy ciśnienie w pionie, w mieszkaniu 5-6 kg. i od razu widzimy różnicę ciśnienia między zimną a ciepłą wodą, od 2 kg. To jest właśnie istota wyciskania gorącej wody do zimnej wody w przypadku awarii armatury. Jeśli zauważyłeś, że nadal masz większe ciśnienie na ciepłej wodzie niż na zimnej, pamiętaj o zainstalowaniu zaworu zwrotnego na wlocie zimnej wody, a zawory regulacyjne mogą być umieszczone na wlocie ciepłej wody, co pomoże wyrównać ciśnienie przez około jednej cyfry z zimnem. Przykład instalacji regulatora ciśnienia

gorąca wtyczka- hot plug) - znaczenie terminów zamknięcie Lub połączenie sprzętu elektronicznego do/z systemu (komputera) w trakcie jego pracy bez wyłączania zasilania i zatrzymywania (systemu) (HotPlug), a także wymiany (ponownego podłączenia) urządzenia jako całości ( gorąca wymiana ). Istnieje również termin określający przeciwieństwo hot swap - Zimna zamiana , to znaczy wszystkie (ponowne) połączenia są wykonywane po zatrzymaniu systemu i usunięciu napięcia (potencjału szczątkowego).

Sprzęt dzieli się zgodnie z tą zasadą na pozwalać wymiana na gorąco i nie pozwolić.

Fabuła

Wcześniej sprzęt przeznaczony do podłączania podczas wymiany był używany tylko w drogich systemach i był uważany za trudny do zaprojektowania. Ostatni raz podobne systemy stały się powszechne nawet na niedrogich komputerach.

  • Zaprojektowany, aby można go było wymieniać podczas pracy, a zatem można go wymieniać podczas pracy zgodnie ze standardami PCMCIA, USB, FireWire, Fibre Channel i eSATA.
    Wśród urządzeń tego typu znajdują się pendrive'y, niektóre dyski twarde, w tym do macierzy w serwerach, karty rozszerzeń PCI-X, PCI Express, ExpressCard (PCMCIA, dawniej nazywane też PC Cards) stosowane w laptopach, a nawet niektóre zasilacze . .
  • Nie w pełni wymienia interfejsy dysków SATA podczas pracy i nie obsługuje w pełni protokołu IDE (IDE można podłączać podczas pracy).

Projekt systemu

Komputery przeznaczone do wymiany sprzętu w locie muszą w jakiś sposób wykrywać, kiedy urządzenie jest odłączone, a także zawierać obwody elektryczne, które są niewrażliwe na skoki napięcia podczas podłączania i odłączania. Ponadto część oprogramowania musi być zaprojektowana na nagłą utratę komunikacji z urządzeniem.

Niektóre schematy wymiany podczas pracy wymagają najpierw wydania polecenia odłączania, co upraszcza ich konstrukcję, ale zagraża integralności danych, jeśli urządzenie nie zostanie odłączone we właściwy sposób lub w urządzeniu wystąpi błąd.

Bardziej złożone schematy mają margines redundancji i łatwo przywracają dane w przypadku nagłego wyłączenia urządzenia.

Termin „hot swap” jest używany w dwóch znaczeniach. Z jednej strony oznacza to możliwość odłączenia lub podłączenia urządzenia bez wyłączania zasilania. Z drugiej strony może to również oznaczać automatyczne wykrywanie urządzenia po podłączeniu. Pierwsze znaczenie terminu dotyczy interfejsów RS-232, FireWire oraz najprostszych implementacji SCSI, drugie znaczenie dotyczy interfejsów USB, FireWire, PCI Express i wyrafinowane warianty SCSI.

Projekt gniazda

Skrajne pola stykowe zasilacza są dłuższe niż sygnał wewnętrzny

Bardzo nowoczesne urządzenia używane są ruchome styki z możliwością wymiany podczas pracy. Jeden z nich jest dłuższy niż pozostałe, aby jako pierwszy zetknął się z przymocowaną częścią, przez który podłączony jest przewód uziemiający. Pozostałe styki są krótsze, w sumie mogą być 3 różne długości. Opóźnienie pomiędzy połączeniem pierwszego styku, a kolejnymi wynosi od 25 do 250 milisekund.

Łączenie obwodów zasilających odbywa się dwuetapowo: w pierwszym styki o ograniczonym natężeniu są łączone dłuższymi stykami, a następnie krótszymi stykami pełne zasilanie. Wszystkie obwody biorące udział w połączeniu zawierają zabezpieczenie przed elektrycznością statyczną.

Oto przykład typowej sekwencji połączeń:

  1. Najdłuższe styki są zwarte (masa). Zapewnia to bezpieczeństwo elektryczne połączenia i ochronę przed wyładowaniami elektrostatycznymi.
  2. Długie lub średnie styki wstępnego podawania zamykają się. Obwody wejściowe obwodów mocy są ładowane.
  3. Podłączone są krótkie styki zasilania.
  4. Połączenie uważa się za nawiązane. Włączy się sygnał włączenia.
  5. Miękki obwód włączania zasila urządzenie.
  6. Opóźnienie w dziesiątkach milisekund.
  7. Obwód zasilania zakończył miękkie połączenie. Sygnał włączenia wyłącza się.
  8. Urządzenie rozpoczyna pełną pracę.

Szczególnie trudne jest podłączenie kilku urządzeń, ponieważ podłączenie drugiego, trzeciego urządzenia może zakłócić działanie już podłączonego. Aby zwalczyć to zjawisko stosuje się filtry w obwodach wyjściowych lub czasowe logiczne wyłączenie transmisji danych.

Hot plug w oprogramowaniu

Termin „hot plug” jest również używany w odniesieniu do oprogramowania i oznacza możliwość zmiany programu bez zatrzymywania jego wykonywania. Tylko kilka języków programowania obsługuje tę funkcję, w tym Lisp, Erlang i Smalltalk. Język Java obsługuje tę funkcję tylko podczas uruchamiania debugera (Java Platform Debugger Architecture, JPDA).

Język programowania zorientowany na domeny 1C v8 zapewnia możliwość zmiany kodu podczas działania programu. (http://v8.1c.ru/overview/release_8_1_5/administration.htm sekcja „Aktualizowanie części konfiguracyjnych”). Ponieważ poszczególne moduły są kompilowane w czasie wykonywania programu, a po zmianie modułu jest on ponownie kompilowany w sesji, nie jest to tak naprawdę „hot plug”. Musisz ponownie utworzyć sesję, aby zmiany zostały uwzględnione efekt i tylko dla tego użytkownika (inni muszą ponownie uruchomić nową sesję). W wersji v7 ta funkcja była również dostępna podczas korzystania z dodatkowych narzędzi programowych (http://openconf.1cpp.ru/vk/turbomd/) i standardowego polecenia #LoadFromFile.... (wystarczy ponownie otworzyć formularz lub raport ). Ogólnie rzecz biorąc, w przypadku korzystania z interpretowanych języków programowania (z zapisywaniem tekstów programów w modułach) „hot plugging” jest realizowane po prostu przez zamianę tekstów.

Zgniła stara hydraulika w mieszkaniu. Pot na rurach, przetoka za przetoką; zakręć wodę, a potem włącz ponownie - rdza tryska z kranów. A w planach jest remont kuchni z łazienką, a starych rur nie da się dotknąć ani odetchnąć - strach na nie patrzeć. Musimy się zmienić, ale praca jest kosztowna. Czy można wymienić instalację wodociągową w mieszkaniu własnymi rękami? Tak, można i to bez żadnych pozwoleń-wzorów. Konieczne będzie jedynie uzgodnienie ze ślusarzem DEZ odcięcia dopływu wody do pionów na maksymalnie godzinę; najprawdopodobniej będzie można zarządzać za 10 minut lub ostrzec sąsiadów, jeśli nie jest to szkodliwe, i zablokuj / ponownie zastosuj się.

Procedura wymiany

Wymiana zaopatrzenia w wodę odbywa się w określonej kolejności. Praca „na oko” i „w biegu” w wykonaniu nieprofesjonalnym często kończy się przeciekiem. Plan pracy wygląda mniej więcej tak:

  1. Wybór materiału na nowe rury.
  2. Wybór schematu dystrybucji ciepłej i zimnej wody.
  3. Opracowanie schematu zaopatrzenia w wodę mieszkania.
  4. Obliczanie średnicy rur według wybranego materiału i schematu.
  5. Przygotowanie narzędzia montażowego.
  6. Zakup materiałów.
  7. Montaż jednostek selekcyjnych i rozliczeniowych, ich instalacja na pionach i rejestracja.
  8. Demontaż starych rur i armatury sanitarnej.
  9. Podłączenie HMS i aquastopu, jeśli występuje.
  10. Podłączenie filtra do kolby (wymagane z HMS).
  11. Montaż rur ciepłej i zimnej wody.
  12. Montaż i podłączenie instalacji wodno-kanalizacyjnych, starych lub nowych.
  13. Zaopatrzenie w wodę testową; eliminacja stwierdzonych usterek.
  14. Montaż i podłączenie kotła.

HMS, filtr do kolby i aquastop

HMS, czyli system hydromagnetyczny, od dawna stosowany jest w przemyśle do przygotowania wody do filtracji. W życiu codziennym urządzenie to, bez wchodzenia w szczegóły, zamienia zanieczyszczenia w wodzie w drobną zawiesinę, która następnie osadza się w filtrze w postaci szlamu i jest okresowo usuwana. HMS jest całkowicie nieszkodliwy, nie wymaga zasilania i konserwacji podczas pracy, ale koniecznie wymaga zamontowania wodomierza w wykonaniu antymagnetycznym (te są droższe) oraz po przepływie wody zespolonego filtra kolbowego.

Filtr kolbowy składa się z trzech połączonych szeregowo sekcji: pierwsza zbiera szlam, druga usuwa chlor, a trzecia służy do dokładnego oczyszczania wody i jej zmiękczania. To ostatnie (od dawna nikt nie pije wody z kranu) jest szczególnie ważne dla bojlera pralki.

HMS z kolbami sporo kosztują, ale dobrze chronią nie tylko sprzęt, ale i zdrowie. Narzekaj czy nie, oburzaj się - nie oburzaj się, a woda pitna jest mocno trzymana w dziesięciu najrzadszych zasobach na świecie i nie ma globalnych programów, które mogłyby podnieść jej jakość do poziomu co najmniej połowy ostatniego wieku i nie są przewidziane. Ogólnie rzecz biorąc, ratowanie tonących jest dziełem samych tonących.

Aquastop to również przydatne urządzenie, również nie wymaga zasilania i konserwacji, ale jego funkcja jest inna. Przy gwałtownym wzroście prądu (przełomu) wody uruchamiany jest aquastop, a jego zawór odcina całe mieszkanie od pionu. Aquastopy są dostępne w różnych systemach, w tym elektrodynamicznych, dlatego przy montażu aquastopu potrzebny jest również licznik antymagnetyczny.

Wybór rur

Nowa hydraulika w mieszkaniu zaczyna się od wyboru rur. Stal w życiu codziennym stała się przestarzała i masz do wyboru metal-plastik, plastik i lutowaną miedź. Ten etap pracy jest chyba najbardziej odpowiedzialny - zły wybór zniweczy wszystkie wysiłki, wydatki i kłopoty.

Miedź

O miedzianych rurach wodociągowych można od razu powiedzieć: ich propagandyści nie wiedzą, o czym mówią. Albo wiedzą, ale się nie nastawiają. Po pierwsze, w kontakcie z wodą na miedzi tworzy się tlenek miedzi – ten sam grynszpan, o którym Tom Sawyer rozmawiał z Huckleberry Finnem. Tak, człowiek potrzebuje miedzi, ale w znikomych ilościach w postaci mikroelementu, a nie jako część silnej trucizny. Jako kontrargument mówią, że miedź tworzy film ochronny z chlorem z wody. Absurd dla każdego, kto pamięta chociaż chemię ze szkoły.

Po drugie, skład lutu do miedzi obejmuje cynę. Biała cyna, miękki metal, z czasem zamienia się w swoją inną, jak mówią chemicy, odmianę alotropową - szarą cynę, kruszący się proszek. Oznacza to, że instalując rury miedziane (bardzo drogie), w ten sposób gwarantujemy w 100% szczelność. I zapłata za pracę firmy specjalizującej się w rurach miedzianych, ponieważ nie można ich poprawnie lutować samodzielnie.

metal-plastik

Rury metalowo-plastikowe są dość drogie, ale można je łączyć ręcznie bez doświadczenia. Armatura metalowo-plastikowa jest montowana na specjalnych gwintowanych zespołach z uszczelkami lub pod zagniataniem - złączkami. Ponadto rury metalowo-plastikowe można gładko wyginać. Opór hydrodynamiczny i strata ciśnienia w metal-plastik są bardzo małe.

Do włożenia rury w kształtkę potrzebny jest obcinak do rur, szczypce dociskowe oraz komplet rozwiertaków (rozwiertaków) do średnicy rur. Z ich pomocą praca idzie bez wysiłku, a improwizowanymi środkami - pełna gwarancja wycieku. Ponadto żywotność uszczelek w kształtkach jest ograniczona, a z czasem spoina zaczyna kapać. Dlatego wmurowanie metalowo-plastikowego w ściany jest niedopuszczalne i zdecydowanie zaleca się, aby nie ukrywać go w stroboskopach.

Zaleca się prowadzenie zaopatrzenia w wodę metalowo-plastikowego w oddzielnych otwartych przestrzeniach, gdzie ważny jest minimalny opór przepływu wody oraz możliwość prostej i szybkiej przegrody złącza: przy podłączaniu kotła, pralki, zlewu itp. Przejściówki z metalu-plastiku na inne rodzaje rur są zawsze w sprzedaży.

Plastikowy

Plastikowa hydraulika mieszkaniowa stała się teraz standardem, ale tworzywa sztuczne są inne. Aby dokonać właściwego wyboru, musisz znać ich właściwości i cechy.

Polibutylen (PB)

Elastyczne tworzywo sztuczne o dobrej przewodności cieplnej dla tworzyw sztucznych. Utrzymuje temperaturę do 90 stopni. Prawidłowo zlutowane złącze jest absolutnie niezawodne. Całkiem drogi. Stosowany do ogrzewania podłogowego.

Polietylen (PE)

Tanie, ale do ciepłej wody potrzebne są rury wzmocnione polietylenem; zwykły polietylen nie wytrzymuje 60 stopni. Nie można zginać i kleić, złącze lutowane niezawodnie utrzymuje ciśnienie nie większe niż 3,5 atm, a ciśnienie wody w miejskiej sieci wodociągowej może wynosić do 6 atm (0,6 Mbar) dla zimnej wody i 4,5 atm dla gorącej wody , więc istnieje możliwość nagłego przełomu. Opór hydrauliczny jest jednak najmniejszy ze wszystkich.

Wydaje się, że rury polietylenowe są złe dla wszystkich, ale mają zaletę, która może być warta wszystkich ich wad: nie boją się zamarznięcia. Korek od lodu rozsadza je, a kiedy się topi, ponownie się kurczą i nie pękają, nawet jeśli pękniesz. Dlatego instalacja instalacji wodociągowej z polietylenu jest zdecydowanie zalecana w pomieszczeniach nieogrzewanych, sezonowych i podziemnych. Nie ma alternatywy dla polietylenu. Ale przy stale wypełnionym systemie potrzebny jest aquastop.

PCW (PVC)

Właściwości polichlorku winylu (PVC) są dobrze znane: odporny chemicznie, niedrogi, odporny na ciepło do 80 stopni, łatwy do klejenia, ale niezbyt mocny i boi się promieniowania ultrafioletowego. Połączenia, zarówno lutowane, jak i klejone, wychodzą bardziej kruche niż materiał lity, więc niebezpieczeństwo przebicia pozostaje i potrzebny jest aquastop. Wymiana poszczególnych odcinków sklejonego PVC jest oczywiście trudniejsza niż w przypadku składanego metal-plastik, ale łatwiejsza niż w przypadku połączeń lutowanych: podgrzanie złącza za pomocą domowej suszarki do włosów, połączenie można rozdzielić, a następnie ponownie skleić. Ogólnie opcja jest budżetowa lub dla początkującego mistrza o długości głównej gałęzi od pionu do najdalszego punktu losowania nie większej niż 10 m i nie więcej niż 7 punktów pobierania próbek.

Propylen (PP)

Układanie wodociągu w mieszkaniu za pomocą rur poliizopropylenowych (propylenu) jest obecnie ogólnie akceptowane. Materiał nie jest bardzo drogi, wytrzymały, wytrzymały, złącza lutowane zachowują wszystkie walory podłoża, odporność termiczna - do 130 stopni, odpowiednio zlutowane wytrzymuje do 12 atm. Opór hydrauliczny jest wyższy niż w przypadku PCW, ale i tak gromadzenie się płytki nazębnej w świetle jest minimalne, aw przypadku HMS jest to wykluczone. Robienie tego samemu ma tylko dwie wady:

  • Nie klei się, a lutowanie wymaga specjalnego sprzętu i ścisłego przestrzegania technologii.
  • Ma dość wysoki współczynnik rozszerzalności cieplnej. Wmurowana w ścianę lub schowana w stroboskopie potrafi wygiąć i złamać płytkę, dlatego przy układaniu każdej fajki trzeba założyć pończochę z merylonu lub syntetycznego winterizera, co podwyższa koszty pracy.

Jednak rurociąg propylenowy jest zdecydowanie jedynym, który można zrobić raz na zawsze i zapomnieć. Dlatego osobno zajmiemy się lutowaniem propylenu, zwłaszcza że lutowanie innych tworzyw sztucznych różni się tylko niższą temperaturą (110-130 stopni dla polietylenu i około 150 dla PVC).

Lutowanie propylenowe

Lutowanie propylenu ręczną „żelazną” lutownicą od końca do końca (patrz rysunek po prawej) jest niedopuszczalne:

  1. Zanieczyszczenia gromadzą się na „kiełbasie” wewnątrz, a tak zmontowany rurociąg jest bardziej podatny na zatykanie niż stal.
  2. Ciśnienie wody, rozsadzając rury, ma tendencję do pękania złącza. Przy 16 stopniach w rurze i 20-25 na zewnątrz po około trzech miesiącach próg zmęczenia materiału zostaje przekroczony i spoina płynie.

Montaż rurociągu propylenu odbywa się na kształtkach do lutowania - prostych (do łączenia odcinków rur), kątowych, trójników, krzyżaków. Rurę podgrzaną do zmiękczenia wkłada się do uchwytu również nagrzanej kształtki, a złącze zamarza. Przeciwnie, w tym przypadku ciśnienie wody dociska rurę do obudowy od wewnątrz, zapewniając wytrzymałość, a dla strefy stopionej pozostaje tylko uszczelnienie. Dość duża sztywność propylenu nie pozwala na elastyczne rozszerzanie się obejmy zakrywającej rurę. Właśnie taka konstrukcja połączenia w połączeniu z właściwościami materiału sprawia, że ​​rurociąg propylenowy nadaje się do zamurowania w ścianach na dziesięciolecia.

Notatka: mniej lub bardziej przyzwoita lutownica do propylenu kosztuje co najmniej 2000 rubli. i dalej się do czegoś nie nadaje, ale nie męczy pracą. Dlatego nie musisz go kupować, lepiej go wypożyczyć.

  • Do ukrytego okablowania w typowym mieszkaniu w stroboskopach lub monolicie - zdecydowanie propylen.
  • Do gałęzi o dużej długości z dużą liczbą punktów poboru wody - otwarte metalowo-plastikowe lub w kanałach ze zdejmowanymi pokrywami.
  • Do domów wiejskich, sezonowych mieszkań na wynajem, domów wiejskich z odległymi budynkami gospodarczymi, szklarni itp. - polietylen.
  • Do remontów budżetowych lub na obszarach z niedoborem wody, niskim ciśnieniem w sieci wodociągowej, z wodą złej jakości - PVC.

Schemat połączeń

Grzebienie-kolektory

Istnieją dwa schematy pobierania wody w pomieszczeniach: szeregowy i równoległy. W przypadku schematu szeregowego punkty analizy są połączone ze wspólną rurą za pomocą trójników. Ten schemat jest najbardziej ekonomiczny, ale przy dużej długości okablowania, dużej liczbie punktów analizy i / lub przy niskim ciśnieniu wody nie jest odpowiedni, ponieważ znacznie zmniejsza ciśnienie.

W takim przypadku pobór wody odbywa się równolegle z kolektora „grzebieniowego”, patrz rys. Grzebień to zespół zaworów obejściowych, z których każdy ma stałe odgałęzienie do punktu analizy. Zawory regulują ciśnienie oddzielnie punktowo. Gałęzie do punktów są wykonane z metalu-plastiku lub polietylenu: w tym przypadku rolę odgrywa ich niski opór hydrauliczny, a po ułożeniu w jednym kawałku są dość niezawodne.

Opracowanie schematu ujęcia wody

Schemat zaopatrzenia w wodę w mieszkaniu jest potrzebny przede wszystkim dla siebie, aby się nie pomylić, nie przeliczyć, a następnie dokładnie wiedzieć, gdzie wszystko jest - do tej pracy nie jest wymagane specjalne pozwolenie. Ale podczas rejestracji licznika inspektor wodociągów może poprosić cię o spojrzenie na schemat, więc musisz go poprawnie narysować.

Kompletny schemat zgodny ze wszystkimi zasadami to poważna praca dla doświadczonego specjalisty; na przykład - na dużym rysunku schemat zaopatrzenia w wodę prywatnego domu z letnią kuchnią, który jest niezbędny do zatwierdzenia projektu. Ale aby wymienić rury w mieszkaniu, nie musisz się tak przejmować, wystarczy, że schemat wyraźnie pokazuje i rozumie:

  1. Rury ciepłej i zimnej wody, ich rodzaj i średnica światła.
  2. Urządzenia pomiarowe.
  3. Zawory awaryjne i spusty.
  4. Zawór odcinający.
  5. Punkty analizy ze wskazaniem konsumentów.
  6. Tworzenie kopii zapasowych oddziałów i urządzeń.
  7. Kierunek przepływu wody.

Aby to wszystko było jasne nie tylko dla siebie lub dla siebie rok później, podczas rysowania należy przestrzegać pewnych zasad. Spójrzmy na przykłady, patrz ryc. Po lewej - mniej więcej dobrze, ale z komentarzami, po prawej - źle:

  • Schemat po prawej jest wykonany w izometrii - dla piękna, czy co? Skrzyżowania rur są dla niej mylące, a ona nie daje pojęcia o prawdziwej lokalizacji punktów analizy: pralka z kotłem wychodzi pod podłogę.
  • Jest też zbyt wiele strzałek prądu, gdzie już wiadomo, gdzie płynie, co również dezorientuje obwód.
  • W tym samym miejscu zawory odcinające z urządzeniami pomiarowymi są przedstawione niewyraźnie i niezgodnie z zasadami.
  • W tym samym miejscu - rodzaj i średnica rur nie są wskazane.
  • W tym samym miejscu - kto, gdzie i kiedy widział, że woda była dostarczana do kotła z góry, a toaleta była spłukiwana przez odpływ?
  • Ale na schemacie po lewej stronie nawet dla specjalisty nie jest jasne, że kocioł (6) jest zapasowy. Uwaga będzie brzmiała: „Gdzie jest zawór zwrotny na gorąco? Bez niej, po wstrzymaniu zasilania, kocioł sam wjedzie do pionu, jeśli zawór (10) nie będzie zamknięty. Ale to już w istocie iz pełnym zrozumieniem.

Prawidłowy uproszczony schemat instalacji wodociągowej w mieszkaniu

Przykład jest arbitralny, niezgodny z zasadami projektowania dokumentacji projektowej, ale całkowicie zrozumiały i bez zbędnych dodatków, ukończony schemat ujęcia wody pokazano na poniższym rysunku. Jest to również przykład wypłaty równoległej; gdzie grzebienie, oczywiście.

Obliczanie rur

Zanim ostatecznie wybierzesz rury, musisz obliczyć przynajmniej w przybliżeniu ich średnicę. Nie jest to konieczne dla „sprytności” - z jednej strony im węższa rura, tym jest tańsza. Z drugiej strony rura o zbyt małej średnicy do zaopatrzenia w wodę spowoduje turbulencje w przepływie w niej. W tym samym czasie przepustowość rury gwałtownie spada, a przy normalnym ciśnieniu na wlocie z kranu prawie nie wycieka.

Dokładne obliczenie rurociągu jest kwestią wysoko wykwalifikowanych specjalistów, ale w przypadku mieszkania w mieście, aby normalnie płynąć, możesz sam to rozgryźć. Wstępne dane to:

  1. Minimalne dopuszczalne ciśnienie wynosi 0,3 at.
  2. Strata ciśnienia na 1 m rury propylenowej 16 mm - 0,05 at.
  3. Średnia strata ciśnienia w okablowaniu mieszkania na jednostkę armatury i armatury wynosi 0,15 at.
  4. Strata ciśnienia w jednostce selekcyjnej i rozliczeniowej - 0,25 at.
  5. Przy normalnych wartościach ciśnienia na wlocie do pionu 1,5-4,5 atm okresowe turbulencje są nieuniknione w rurze 12 mm i nie obserwuje się ich w rurach 16 mm.
  6. Przestrzeń dla najdalszego punktu jest co najmniej dwa razy większa.

Pozostaje ustalić ciśnienie (ciśnienie) na wlocie i można określić, czy przy szeregowym okablowaniu takiej biegnącej rury ciśnienie będzie wystarczające dla najdalszego kranu, czy też trzeba będzie zrobić to szerzej i drożej . Ciśnienie na dole pionu można uzyskać z manometru w piwnicy lub od operatora budynku; następnie odejmij 0,6 atm na piętro. Możesz również oszacować dla sąsiadów na podstawie tego samego 0,6 at / piętro: jeśli, powiedzmy, trzy piętra wyżej od kranów, nadal płynie, to mamy dobre 2 at. Ale w wieżowcach taka sztuczka nie działa: aby nie nadmiernie zwiększać kosztów okablowania mieszkania, wykonują osobne piony dla dolnego i górnego, a nawet dla dolnego, środkowego i górnego piętra.

Przykład obliczenia: drugie piętro dziewięciopiętrowego budynku; mieszkańcy wyższych pięter nie narzekają na wodę. Mamy co najmniej 4 pod presją. 11 jednostek złączek (5 trójników, 6 kolanek, 1 zawór) daje straty 1,65 atm. Długość rury od pionu do przeciwległej ściany kuchni wynosi 6,5 m, co stanowi kolejne 0,325 atm straty. W sumie z jednostką selekcyjną i rozliczeniową mamy 0,325 + 1,65 + 0,25 = 2,225 atm strat. Za dużo, musisz sprawdzić ciśnienie za pomocą manometru i najprawdopodobniej wziąć główną rurę 20-25 mm lub rozwieść się równolegle z grzebieniem, w przeciwnym razie możesz pozostać „suchy” w suche lato.

Notatka: z tego widać, jak ważne jest prostowanie rur i jak niepożądane jest ich wydłużanie i zaśmiecanie łącznikami.

Zależność strat w rurach i kształtkach jest nieliniowa: zależą one od prędkości przepływu, która z kolei zależy od przekroju światła rury. Nieznaczne zwiększenie średnicy rury drastycznie zmniejsza straty, więc zwykłe okablowanie rurowe 20 mm do mieszkań z kranami do punktów 16 mm sprawdza się w większości przypadków. W trudnych przypadkach można dokonać dokładnych obliczeń zgodnie z SNiP, wewnętrznym zaopatrzeniem w wodę i kanalizacją budynków. Istnieją wszystkie niezbędne formuły i nomogramy; obliczenia może dokonać osoba z wykształceniem inżynierskim o dowolnym profilu.

Trzeba tylko pamiętać, że na tym koncie są już trzy SNiP o tym samym indeksie: 2.04.01-85, 2.04.01-85 (2000) i 2.04.01-85 * „(Krajowe systemy zaopatrzenia w wodę i odwadniania w budynkach)”. Poprawnie - SNiP ostatni.

Narzędzia, materiały, demontaż starego

Specjalne narzędzia do montażu rurociągów w mieszkaniach zostały opisane powyżej w trakcie prezentacji. Aby kupić materiały, oczywiście będziesz musiał obliczyć materiał, nazewnictwo i ilość na miejscu. Demontaż starych rur odbywa się w zwykły sposób. Lepiej to zrobić po zainstalowaniu i zarejestrowaniu wodomierza, aby przez długi czas nie wyłączać wody na podłogi.

Damy tylko jedną radę: nie bierz zaworów z dźwignią. Jest wykonany z siluminu lub plastiku i ma tendencję do zrywania się w najbardziej nieodpowiednim momencie, właśnie wtedy, gdy trzeba go pilnie zamknąć. Weź zawory kulowe z uchwytem motylkowym. Okrągłe karbowane uchwyty również się nie łamią, ale ślizgają się po nich mokre lub spocone dłonie.

Rachunkowość i kontrola

Zespół selekcyjny i rozliczeniowy składa się z zaworu odcinającego, filtra zgrubnego, wodomierza i zaworu zwrotnego. Zmontowany jak na zdjęciu. Każde z urządzeń wskazuje dla niego kierunek przepływu wody, należy tego przestrzegać podczas montażu.

Zespół jest montowany z hydroizolacją połączeń za pomocą taśmy FUM, a także jest podłączony do pionu po uprzednim zablokowaniu wody; Pamiętaj o zamknięciu zaworu odcinającego przed doprowadzeniem wody. Jest to jedyna operacja, i to krótkotrwała, wymagająca odcięcia dopływu wody do sąsiadów w pionie.

Do zimnej i ciepłej wody potrzebne są osobne liczniki. Bardzo pożądane jest, aby liczniki i uchwyty zaworów były podświetlone kolorem. Wskazania liczników powinny być czytelne bez żadnych dodatkowych operacji (zdejmowanie włazów itp.), dlatego często konieczne jest wstępne zmontowanie części integralnego rurociągu, czasami o dość dziwacznej konfiguracji, aby podłączyć urządzenia pomiarowe do pionu. Oprócz rur i lutownicy potrzebne będą do tego złącza przejściowe z tworzywa sztucznego na metal MPV - gwintowane złącze wewnętrzne. Tworzywo sztuczne łączy się z jednostkami dozującymi za pomocą złączy z gwintem zewnętrznym MRN.

Liczniki są sprzedawane zaplombowane, ale to nie znaczy, że możesz od razu zadzwonić do wodociągu i zapłacić za wodę według zużycia. Do tego służy pieczęć fabryczna (ziemia rosyjska jest bogata w rzemieślników), aby nikt nie dostał się do licznika i tam niczego nie przekręcił ani nie spiłował. Plomba fabryczna musi być chroniona; bez niego licznik jest uważany za bezużyteczny, a także bez certyfikatu.

Podczas instalowania wodomierzy należy zgłosić się do zakładu wodociągowego i wezwać jego inspektora. Można skorzystać z wody przed jego przybyciem, inspektor nie potrzebuje odczytów zerowych, zapisze początkowe, zapieczętuje licznik i odpływ filtra swoją plombą. Płatność za zużycie wody nastąpi po rejestracji urządzeń pomiarowych.

HMS, aquastop, filtr

Chociaż konstrukcja HMS jest nierozłączna i nie pozwala na kradzież wody za jego pomocą, a tego urządzenia nie da się zaplombować, to podłączenie HMS do licznika jest niedopuszczalne: wirnik licznika może zostać zatkany szlamem. HMS z filtrem kolby jest podłączony za urządzeniami dozującymi; filtr - zaraz po HMS. Aquastop można podłączyć bezpośrednio za filtrem, ale jeśli jest elektrodynamiczny, pole magnetyczne HMS może spowodować jego fałszywe działanie, ale nie ma sensu przypisywać aquastop daleko od pionu: nie reaguje na przełom przed To.

Wideo: przegląd opcji układu elementów hydraulicznych

Instalacja rurociągów

Więc teraz robimy hydraulikę. Montaż rur został już opisany, ale montaż całego systemu ma również cechy pozakonstrukcyjne, takie jak ułożenie kanałów w jastrychu. Ten ostatni powinien przechodzić nie dalej niż 150 mm od ściany i nie bliżej niż 200 mm od mebli. Osprzęt hydrauliczny jest oczywiście usuwany przed rozpoczęciem układania rur.

Przede wszystkim musisz zainstalować łuki - plastikowe paski z kwadratami MRV do mikserów. Są przymocowane do ściany głównej za pomocą wkrętów samogwintujących w kołkach. Podczas mocowania należy wziąć pod uwagę grubość wykończenia: tynku i płytek lub innej powłoki dekoracyjnej.

Bez dużego doświadczenia budowlanego bardzo trudno jest uzyskać położenie króćców wylotowych równo ze ścianą. Lepiej jest zrobić je z góry WŁAŚCIWOŚCI nad gotową ścianą o połowę szerokości boku ozdobnych nakrętek miksera: jeśli nasadki nie są regulowane, można je łatwo regulować na kole ściernym lub ręcznie na szmerglu.

Kolejnym momentem jest montaż odcinków rurociągów. Najwygodniej jest zmontować go na stole i umieścić w całości w stroboskopach. Ale wtedy pojawia się pytanie: jak przeprowadzić rury przez ściany? Nie ma problemów z metalem-plastikiem, wszystko jest na odłączanych łącznikach, aw przypadku rur lutowanych można zaoferować dwie metody:

  • Za pomocą adapterów MPH/MRV i wkładek metalowo-plastikowych. W mieszkaniu jest to dość niezawodne, aw rogach nad stroboskopami można wykonać wyjmowane włazy do rewizji i naprawy połączeń gwintowanych.
  • Zainstaluj rurociągi lokalnie. Wymaga to kompaktowej lutownicy. Ta jest droższa i trzeba pracować w bawełnianych rękawiczkach, żeby przypadkiem się nie poparzyć.

Czwarty punkt to lutowanie. Jeden lut zajmuje 15 mm rury. Oznacza to, że jeśli między dwoma łącznikami jest dokładnie 1 m, należy wyciąć 1030 mm; jeśli 0,6 m - 630 mm itp.

Piąty punkt to gięcie rur metalowo-plastikowych. Minimalny dopuszczalny promień gięcia wynosi 5 średnic zewnętrznych rury. Można spotkać się z zaleceniami: mówią, włóż tam sprężynę, zasyp piaskiem, a generalnie można ją wygiąć pod kątem, a sprężynę wyciągnąć i hakiem z drutu wydobyć piasek. W żadnym wypadku: powłoka rury nie ulega zniszczeniu, naprężenia szczątkowe w niej są znacznie wyższe niż dopuszczalne, a rura metalowo-plastikowa nabiera właściwości bardzo słabo zardzewiałej stali.

I w końcu, . Jest to odrębny cykl produkcyjny i odbywa się po uruchomieniu systemu zaopatrzenia w wodę. Rury do kotła są wykonane z góry, ale zawory na nich (są one zdecydowanie potrzebne na obu) są blokowane natychmiast po zainstalowaniu rur, a rury są dodatkowo tłumione.

Wideo: przykład zamontowanej hydrauliki

Istnieją dwa różne sposoby rozważenia podłączania na gorąco. Jądro postrzega hotplugging jako interakcję między sprzętem, jądrem i sterownikiem jądra. Użytkownicy myślą o hotpluggingu jako interakcji między jądrem a przestrzenią użytkownika za pośrednictwem programu o nazwie /sbin/hotplug . Ten program jest wywoływany przez jądro, gdy chce powiadomić przestrzeń użytkownika, że ​​w jądrze właśnie wystąpiło jakieś zdarzenie typu hotplug.

Urządzenia dynamiczne

Najczęstsze użycie znaczenia terminu „hot plug” pojawia się podczas omawiania faktu, że większość systemów komputerowych może teraz obsługiwać urządzenia, które pojawiają się lub znikają po włączeniu systemu. To bardzo różni się od systemów komputerowych jeszcze kilka lat temu, kiedy programiści wiedzieli, że wystarczy przeskanować wszystkie urządzenia podczas uruchamiania i nigdy nie musieli się martwić, że ich urządzenia znikną po wyłączeniu zasilania całej maszyny. Teraz, wraz z pojawieniem się kontrolerów USB, CardBus PCMCIA, IEEE1394 i PCI z możliwością podłączania podczas pracy, jądro Linuksa musi działać niezawodnie bez względu na to, jaki sprzęt zostanie dodany lub usunięty z systemu. Stanowi to dodatkowe obciążenie dla autora sterownika urządzenia, ponieważ musi on teraz zawsze pracować z urządzeniem, które nagle wymyka się spod kontroli bez uprzedniego powiadomienia.

Każdy typ magistrali inaczej radzi sobie z utratą urządzenia. Na przykład, gdy urządzenie PCI, CardBus lub PCMCIA jest usuwane z systemu, zwykle dzieje się to, zanim sterownik zostanie powiadomiony o akcji za pomocą funkcji usuwania. Zanim to nastąpi, wszystkie odczyty z magistrali PCI zwracają wszystkie ustawione bity. Oznacza to, że sterowniki muszą zawsze sprawdzać wartość danych odczytanych z magistrali PCI i umieć poprawnie przetworzyć wartość 0xff.

Przykład tego można zobaczyć w plikudrivers/usb/host/ehci-hcd.c , który jest sterownikiem PCI dla płyty kontrolera USB 2.0 (High-Speed). Ma następujący kod w swojej głównej pętli uzgadniania, aby wykryć, że płyta kontrolera została usunięta z systemu:

wynik = odczytl(ptr);

if (result == ~(u32)0) /* mapa usunięta */

Powrót -ENODEW;

W przypadku sterowników USB, gdy urządzenie, z którym powiązany jest sterownik USB, zostanie usunięte z systemu, wszelkie oczekujące pliki urb, które zostały wysłane do urządzenia, najpierw zakończą się niepowodzeniem z błędem -ENODEV. Sterownik powinien rozpoznać ten błąd i odpowiednio wyczyścić wszelkie oczekujące wejścia/wyjścia, jeśli takie występują.

Urządzenia podłączane podczas pracy nie ograniczają się do tradycyjnych urządzeń, takich jak myszy, klawiatury i karty sieciowe. Istnieje wiele systemów, które obsługują teraz usuwanie i dodawanie całych procesorów i kart pamięci. Na szczęście jądro Linuksa poprawnie obsługuje dodawanie i usuwanie takich podstawowych urządzeń „systemowych”, więc poszczególne sterowniki urządzeń nie muszą się o to martwić.

Narzędzie /sbin/hotplug

Jak wspomniano wcześniej w tym rozdziale, gdy urządzenie jest dodawane do systemu lub usuwane z systemu, generowane jest zdarzenie „hot plug”. Oznacza to, że jądro wywołuje program przestrzeni użytkownika /sbin/hotplug . Ten program jest zwykle bardzo małym skryptem basha, który po prostu przekazuje wykonanie liście innych programów znajdujących się w drzewie katalogów /etc/hotplug.d/. W przypadku większości dystrybucji Linuksa ten skrypt wygląda następująco:

DIR="/etc/hotplug.d"

dla I w "$(DIR)/$1/"*.hotplug "$(DIR)/"default/*.hotplug ; Do

Jeśli [-f $I]; Następnie

Test -x $I && $I $1 ;

zrobione

wyjście 1

Innymi słowy, skrypt szuka wszystkich programów z sufiksem .hotplug, które mogą być zainteresowane tym zdarzeniem, i wywołuje je, przekazując im pewną liczbę różnych zmiennych środowiskowych, które zostały ustawione przez jądro. Więcej informacji na temat działania skryptu /sbin/hotplug można znaleźć w komentarzach do programu oraz na stronie podręcznika użytkownika hotplug(8).

Jak wspomniano wcześniej, /sbin/hotplug jest wywoływany, gdy kobject jest tworzony lub niszczony. Program hotplug jest wywoływany z jednym argumentem wiersz poleceń A, które reprezentuje tytuł tego wydarzenia. Główne jądro i określony podsystem są również zaangażowane w ustawianie zestawu zmiennych środowiskowych (patrz poniżej) z informacjami o tym, co się właśnie wydarzyło. Zmienne te są używane w programach typu hotplug w celu określenia, co właśnie wydarzyło się w jądrze i czy należy wykonać jakieś specjalne działanie.

Argument wiersza poleceń przekazany do /sbin/hotplug to nazwa powiązana z tym zdarzeniem hotplug, określona przez kset przypisany do kobject. Nazwę tę można ustawić przez wywołanie funkcji name, która jest częścią struktury hotplug_ops kset, opisanej wcześniej w tym rozdziale; jeśli tej funkcji brakuje lub nigdy nie była wywoływana, używana jest nazwa samego zestawu kset.

Domyślne zmienne środowiskowe, które są zawsze ustawiane dla programu /sbin/hotplug to:

DZIAŁANIE

Ciąg dodaj (dodaj) lub usuń (usuń), w zależności od tego, czy dany obiekt został właśnie utworzony, czy zniszczony.

ŚCIEŻKA ROZWOJU

Ścieżka do katalogu w systemie plików sysfs, który wskazuje na kobject, który jest aktualnie tworzony lub niszczony. Należy zauważyć, że punkt montowania systemu plików sysfs nie jest dodawany do tej ścieżki, więc jego zdefiniowanie pozostawia się programowi przestrzeni użytkownika.

SEQNUM

Numer sekwencyjny dla tego zdarzenia hotplug. Numer sekwencyjny jest liczbą 64-bitową, która zwiększa się wraz z każdym wygenerowanym zdarzeniem hotplug. Pozwala to przestrzeni użytkownika na sortowanie zdarzeń typu hotplug w kolejności, w jakiej generuje je jądro, ponieważ programy w przestrzeni użytkownika mogą działać nieprawidłowo.

PODSYSTEM

Ten sam ciąg przekazany jako argument wiersza poleceń, jak opisano powyżej.

Szereg różnych podsystemów magistrali do wywoływania /sbin/hotplug dodaje swoje własne Zmienne środowiska kiedy urządzenie powiązane z magistralą zostało dodane lub usunięte z systemu. Robią to w wywołaniu zwrotnym hotplug określonym w strukturze kset_hotplug_ops przypisanej do tej magistrali (jak opisano w sekcji Operacje Hotplug). Dzięki temu przestrzeń użytkownika może automatycznie ładować niezbędne moduły, które mogą być potrzebne do sterowania urządzeniem wykrytym na magistrali. Oto lista różnych typów magistrali i zmiennych środowiskowych, które dodają do wywołania /sbin/hotplug.

IEEE1394 (FireWire)

Wszystkie urządzenia na magistrali IEEE1394, znanej również jako FireWire, mają opcję nazwy dla /sbin/hotplug, a zmienna środowiskowa SUBSYSTEM jest ustawiona na ieee1394 . Podsystem Ieee1394 zawsze dodaje również następujące cztery zmienne środowiskowe:

IDENTYFIKATOR SPRZEDAWCY

24-bitowy identyfikator dostawcy dla urządzenia IEEE1394.

MODEL_ID

24-bitowy identyfikator modelu dla urządzenia IEEE1394.

GUID

64-bitowy identyfikator GUID dla tego urządzenia.

SPECIFIER_ID

Wartość 24-bitowa określająca właściciela specyfikacji protokołu dla tego urządzenia

WERSJA

Wartość określająca wersję specyfikacji protokołu dla tego urządzenia.

Internet

Wszystkie urządzenia sieciowe generują komunikat hotplug, gdy urządzenie jest zarejestrowane lub wyrejestrowane w jądrze. Wywołanie /sbin/hotplug ma parametr name, a zmienna środowiskowa SUBSYSTEM jest ustawiona na net i dodaje tylko następującą zmienną środowiskową:

INTERFEJS

Nazwa interfejsu, który został zarejestrowany lub wyrejestrowany z jądra. Przykładami tego są lo i eth0 .

PCI

Każde urządzenie na szynie PCI ma parametr nazwy, a zmienna środowiskowa SUBSYSTEM jest ustawiona na pci . Podsystem PCI zawsze dodaje również następujące cztery zmienne środowiskowe:

KLASA_PCI

Numer klasy PCI dla tego urządzenia w systemie szesnastkowym.

PCI_ID

Identyfikatory dostawcy i urządzenia PCI dla tego urządzenia, w postaci szesnastkowej, połączone w formacie vendor:device .

PCI_SUBSYS_ID

Identyfikatory dostawców i podsystemów PCI połączone w formacie subsys_vendor:subsys_device .

PCI_SLOT_NAME

„Nazwa” gniazda PCI nadana urządzeniu przez jądro w formacie domain:bus:slot:function . Przykładem może być 0000:00:0d.0 .

Wejście

W przypadku wszystkich urządzeń wejściowych (myszy, klawiatur, joysticków itd.) generowany jest komunikat „hotplug”, gdy urządzenie jest dodawane i usuwane z jądra. Opcja /sbin/hotplug i zmienna środowiskowa SUBSYSTEM są ustawione na input . Podsystem wejściowy zawsze dodaje również następujące zmienne środowiskowe:

PRODUKT

Ciąg wielowartościowy zawierający wartości w systemie szesnastkowym, bez wiodących zer, w formacie typ autobusu: dostawca: produkt: wersja.

Następujące zmienne środowiskowe mogą być obecne, jeśli urządzenie je obsługuje:

NAZWA

Nazwa urządzenia wejściowego podana przez urządzenie.

FIZYKA

Fizyczny adres urządzenia, który podsystem wejściowy nadał temu urządzeniu. Powinien być stabilny, w zależności od lokalizacji magistrali, do której urządzenie zostało podłączone.

Wszystkie pochodzą z uchwytu urządzenia wejściowego i są ustawione na odpowiednie wartości, jeśli dane urządzenie wejściowe to obsługuje.

USB

Każde urządzenie na magistrali USB ma parametr nazwy, a zmienna środowiskowa SUBSYSTEM jest ustawiona na usb . Podsystem USB zawsze dodaje również następujące zmienne środowiskowe:

PRODUKT

Ciąg znaków w formacie idVendor/idProduct/bcdDevice

TYP

Ciąg w formacie bDeviceClass/bDeviceSubClass/bDeviceProtocol, który definiuje te pola zależne od urządzenia USB.

Jeśli pole bDeviceClass jest ustawione na 0, ustawiana jest również następująca zmienna środowiskowa:

INTERFEJS

Ciąg w formacie bInterfaceClass/bInterfaceSubClass/bInterfaceProtocol, który definiuje te pola zależne od urządzenia USB.

Jeśli wybrana jest opcja kompilacji jądra CONFIG_USB_DEVICEFS, która wybiera, że ​​system plików usbfs ma być zbudowany w jądrze, ustawiana jest również następująca zmienna środowiskowa:

URZĄDZENIE

Ciąg, który pokazuje, gdzie znajduje się urządzenie w systemie plików usbfs. Ta linia ma format /proc/bus/usb/USB_BUS_NUMBER/ SB_DEVICE_NUMBER, gdzie USB_BUS_NUMBER to trzycyfrowy numer magistrali USB, do której podłączone jest urządzenie, a USB_DEVICE_NUMBER to trzycyfrowy numer przypisany przez jądro temu urządzeniu USB.

SCSI

Wszystkie urządzenia SCSI generują zdarzenie hotplug, gdy urządzenie SCSI jest tworzone lub usuwane z jądra. Wywołanie /sbin/hotplug ma parametr name i zmienną środowiskową SUBSYSTEM ustawioną na scsi dla każdego urządzenia SCSI dodawanego do systemu lub usuwanego z systemu. System SCSI nie dodaje żadnych dodatkowych zmiennych środowiskowych, ale jest o tym tutaj mowa, ponieważ istnieje specjalny skrypt SCSI w przestrzeni użytkownika, który może określać, czy sterowniki SCSI (napęd dysków, napęd taśm, normalny itp.) urządzenie SCSI.

Stacje dokujące do notebooków

Jeśli stacja dokująca do laptopa obsługująca technologię Plug-and-Play zostanie dodana lub usunięta z działającego systemu systemy linuksowe(podłączając laptopa do stacji lub usuwając go), generowane jest zdarzenie hotplug. Wywołanie /sbin/hotplug ma parametr name i zmienną środowiskową SUBSYSTEM ustawioną na dock . Żadne inne zmienne środowiskowe nie są ustawione.

S/390 i zSeries

W architekturze S/390 architektura magistrali kanałowej obsługuje szeroką gamę sprzętu, z których każdy uruchamia zdarzenia /sbin/hotplug, gdy są one dodawane do wirtualnego systemu Linux lub usuwane z niego. Wszystkie te urządzenia mają parametr name dla /sbin/hotplug i zmienną środowiskową SUBSYSTEM ustawioną na dasd . Żadne inne zmienne środowiskowe nie są ustawione.

Używając /sbin/hotplug

Teraz, gdy jądro Linuksa wywołuje /sbin/hotplug dla każdego urządzenia dodawanego lub usuwanego z jądra, w przestrzeni użytkownika stworzono wiele bardzo przydatnych narzędzi, aby to wykorzystać. Dwa najpopularniejsze narzędzia to Linuxowe skrypty hotplug i udev .

Skrypty hotplug dla Linuksa

Skrypty hotplug systemu Linux zostały uruchomione jako pierwszy użytkownik wywołujący /sbin/hotplug . Skrypty te sprawdzają różne zmienne środowiskowe ustawiane przez jądro w celu opisania właśnie wykrytego urządzenia, a następnie próbują znaleźć moduł jądra pasujący do tego urządzenia.

Jak omówiono wcześniej, gdy sterownik używa makra MODULE_DEVICE_TABLE, program depmod pobiera te informacje i tworzy pliki znalezione w /lib/module/KERNEL_VERSION/modules.*map. Znak * jest wyróżnieniem, w zależności od typu autobusu obsługiwanego przez kierowcę. Obecnie pliki kart modułów są tworzone dla sterowników współpracujących z urządzeniami obsługującymi podsystemy PCI, USB, IEEE1394, INPUT, ISAPNP i CCW.

Skrypty Hotplug używają tych plików tekstowych map modułów do zdefiniowania modułu, który będzie próbował załadować go w celu obsługi urządzenia, które zostało niedawno wykryte przez jądro. Ładują wszystkie moduły i nie zatrzymują się na pierwszym dopasowaniu, aby jądro mogło zdecydować, który moduł jest najbardziej odpowiedni. Skrypty te nie zwalniają wszystkich modułów po usunięciu urządzeń. Jeśli spróbują to zrobić, mogą przypadkowo wyłączyć urządzenia, które są również kontrolowane przez usunięty sterownik urządzenia.

Zauważ, że teraz, gdy program modprobe może odczytywać informacje MODULE_DEVICE_TABLE bezpośrednio z modułów bez potrzeby używania plików map modułów, skrypty hotplug można zredukować do małego opakowania wokół programu modprobe.

udew

Jednym z głównych powodów stworzenia pojedynczego modelu sterowników w jądrze było umożliwienie przestrzeni użytkownika do dynamicznego zarządzania drzewem /dev. Kiedyś było to robione w przestrzeni użytkownika przez implementację devfs, ale ta baza kodu powoli gniła z powodu braku aktywnego opiekuna i niektórych nieodwracalnych błędów. Kilku programistów jądra zdało sobie sprawę, że gdyby wszystkie informacje o urządzeniach zostały wyeksportowane do przestrzeni użytkownika, mogłoby to wykonać wszystkie niezbędne czynności związane z zarządzaniem drzewem /dev.

devfs ma kilka bardzo istotnych wad w swoim projekcie. Wymaga modyfikacji każdego sterownika urządzenia, aby go obsługiwał, oraz wymaga, aby sterownik urządzenia określił nazwę i lokalizację w drzewie /dev, w którym jest umieszczony. Nie obsługuje również poprawnie dynamicznych liczb głównych i pomocniczych, zmuszając politykę nazewnictwa urządzeń do przynależności do jądra, a nie do przestrzeni użytkownika. Twórcy jądra Linuksa naprawdę nienawidzą posiadania polityki w jądrze, a ponieważ polityka nazewnictwa devfs nie jest zgodna ze specyfikacją Linux Standard Base, naprawdę im to przeszkadza.

Odkąd jądro Linuksa zaczęło być instalowane na ogromnych serwerach, wielu użytkowników stanęło przed problemem zarządzania bardzo dużą liczbą urządzeń. Przy macierzach dysków składających się z ponad 10 000 unikalnych urządzeń bardzo trudno jest zapewnić, aby każdy dysk miał zawsze taką samą nazwę, niezależnie od tego, gdzie jest umieszczony w macierzy dyskowej lub kiedy zostanie wykryty przez jądro. Jest to ten sam problem, z którym borykają się użytkownicy komputerów stacjonarnych, gdy próbują podłączyć dwie drukarki USB do swojego systemu, a następnie zdają sobie sprawę, że nie mają możliwości zapewnienia, że ​​drukarka znana jako /dev/lpt0 nie zostanie zmieniona i ponownie przypisana do innej drukarki. przypadku restartu systemu.

W ten sposób powstał udev. Opiera się na wszystkich informacjach o urządzeniu wyeksportowanych do przestrzeni użytkownika przez sysfs i powiadomieniu przez /sbin/hotplug, że urządzenie zostało dodane lub usunięte. Decyzje dotyczące zasad, takie jak nazwa urządzenia, można określić w przestrzeni użytkownika, poza jądrem. Zapewnia to usunięcie polityki nazewnictwa z jądra i pozwala na większą elastyczność w nazewnictwie każdego urządzenia.

Aby uzyskać więcej informacji na temat korzystania z udev i sposobu jego konfigurowania, zapoznaj się z dokumentacją dołączoną do pakietu udev w Twojej dystrybucji.

Wszystko, co sterownik urządzenia musi zrobić, aby udev współpracował z nim poprawnie, to upewnić się, że wszystkie główne i pomocnicze numery przypisane do urządzenia kontrolowanego przez sterownik są eksportowane do przestrzeni użytkownika przez sysfs. W przypadku każdego sterownika, który używa podsystemu do nadania mu numeru głównego i pomocniczego, jest to już wykonywane przez podsystem i kierowca nie musi wykonywać żadnej pracy. Przykładami podsystemów, które to robią, są podsystemy tty, misc, usb, input, scsi, block, i2c, network i frame buffer. Jeśli twój sterownik obsługuje sam pobieranie głównych i drugorzędnych liczb przez cdev_init lub przestarzały register_chrdev , sterownik musi zostać zmodyfikowany, aby udev działał z nim poprawnie.

udev szuka w drzewie /class/ w sysfs pliku o nazwie dev, aby określić, który numer główny i pomocniczy jest przypisany do danego urządzenia, gdy jest ono wywoływane przez jądro za pośrednictwem interfejsu /sbin/hotplug. Sterownik urządzenia musi po prostu utworzyć taki plik dla każdego sterowanego przez siebie urządzenia. Zazwyczaj interfejs class_simple jest najłatwiejszym sposobem na zrobienie tego.

Jak wspomniano w sekcji „interfejs class_simple”, pierwszym krokiem w korzystaniu z interfejsu class_simple jest utworzenie struktury class_simple przez wywołanie funkcji class_simple_create:

struktura statyczna class_simple *foo_class;

foo_class = class_simple_create(THIS_MODULE, "foo");

if (IS_ERR(foo_class)) (

Printk(KERN_ERR "Błąd podczas tworzenia klasy foo.\n");

Błąd przejścia;

Ten kod tworzy katalog w sysfs w /sys/class/foo .

Za każdym razem, gdy sterownik znajdzie nowe urządzenie i przypiszesz mu numer podrzędny, jak opisano w rozdziale 3, sterownik musi wywołać funkcję class_simple_device_add:

class_simple_device_add(foo_class, MKDEV(FOO_MAJOR, drugorzędny), NULL, "foo%d", drugorzędny);

Ten kod powoduje utworzenie podkatalogu o nazwie fooN w /sys/class/foo , gdzie N jest numerem pomocniczym tego urządzenia. W tym katalogu tworzony jest pojedynczy plik, dev , który jest dokładnie tym, czego udev potrzebuje do utworzenia węzła urządzenia dla twojego urządzenia. Gdy sterownik zostanie zwolniony z urządzenia i odrzucisz numer pomocniczy, który został do niego przypisany, wymagane jest wywołanie funkcji class_simple_device_remove w celu usunięcia wpisu sysfs dla tego urządzenia:

class_simple_device_remove(MKDEV(FOO_MAJOR, drugorzędny));

Później, gdy cały sterownik ulegnie awarii, konieczne jest wywołanie class_simple_destroy, aby usunąć pierwotnie utworzoną klasę, wywołując class_simple_create :

class_simple_destroy(foo_class);

Plik dev , który jest tworzony przez wywołanie class_simple_device_add , składa się z większej i mniejszej liczby oddzielonych znakiem :. Jeśli twój sterownik nie chce używać interfejsu class_simple, ponieważ chcesz udostępnić inne pliki w katalogu klas dla podsystemu, użyj funkcji print_dev_t, aby poprawnie sformatować numery główne i pomocnicze dla każdego urządzenia.

mob_info