Гаряче та холодне підключення пристроїв. Гаряче підключення

Оригінал: Some Nifty udev Rules and Examples
Автори: Vimal Daga, Davender Singh
Дата публікації: 28 Червня 2012 р.
Переклад: А.Панін
Дата публікації перекладу: 23 жовтня 2012 р.

Завдяки системі udev, яку розробили Greg Kroah-Hartman, Kay Sievers та Dan Stekloff, процес підключення flash-накопичувачів, жорстких дисків, камер та мобільних телефонів до системи під управлінням ОС Linux став простим і керованим як ніколи раніше. Вперше реалізована в ядрі Linux версії 2.6 система udev обробляє як гаряче підключення пристроїв до працюючої системи, так і холодне підключення пристроїв (приєднаних до включення системи). У цій статті ми розглянемо процес динамічного створення файлів пристроїв у каталозі /dev і наведемо кілька прикладів налаштувань, придатних для використання або для розваги.

Під udev розуміється реалізація файлової системи пристроїв devfs у просторі користувача. Система включає службу udevd , файли налаштувань і файли правил, які використовуються для динамічного управління файлами пристроїв Linux, що знаходяться в директорії /dev , у відповідь на події, що генеруються ядром (uevents). Udev з успіхом повністю замінила стару реалізацію devfs, починаючи з ядра Linux версії 2.6.

Навіщо знадобилася повністю перероблена реалізація системи управління файлами пристроїв? І чому впровадження udev було таким успішним? Щоб отримати відповідь, необхідно розглянути історію розвитку інтерфейсів драйверів пристроїв ОС Linux.

З кожним файлом пристрою пов'язані два 8-бітові значення: молодший ідентифікатор (minor number) і старший ідентифікатор (major number). Кожен драйвер пристрою має найстарший ідентифікатор; і всі файли пристроїв, які працюють під керуванням цього драйвера, мають однаковий старший ідентифікатор. Молодші ідентифікатори пристроїв різні у різних пристроїв, які працюють під керуванням цього драйвера.

У ранніх версіях Linux файлова система /dev містила по одному статичному файлу для кожного пристрою, який міг би бути підключений до системи (і керувався драйвером пристрою). На жаль, цей підхід мав низку проблем: було недостатньо значень ідентифікаторів для присвоєння всім можливим пристроям, особливо в умовах зростання кількості підтримуваних пристроїв. Також наявність більше 18000 файлів пристроїв вимагало великої кількості додаткового дискового простору. Ці проблеми були вирішені шляхом надання можливості udev ігнорувати значення молодшого та старшого ідентифікатора файлів пристроїв.

При гарячому підключенні пристроїв, таких як обладнання з інтерфейсом USB, не було постійного присвоювання назви та ідентифікатора файлу пристрою. Наприклад, на системі з двома USB-принтерами, один з принтерів може бути представлений файлом /dev/usb/lp0, а інший файлом /dev/usb/lp1 - але при цьому немає точного розуміння, який з принтерів представлений тим чи іншим файлом . Ця поведінка могла змінюватися залежно від того, який пристрій був увімкнений при завантаженні комп'ютера або підключений раніше - або може змінюватися залежно від того, чи підключений пристрій до USB-розгалужувача або безпосередньо до USB-порту системи. Така поведінка завжди розчаровувала і збивала з пантелику користувачів. Система udev дозволяє встановити постійне ім'я пристрою за допомогою правил.

Інші можливості udev вирішують безліч проблем, що дісталися у спадок від devfs:

  • udev працює в просторі користувача, скорочуючи кількість та складність коду ядра.
  • udev дозволяє призначати постійне ім'я пристрою, яке не залежить від порядку включення пристроїв та розташування пристрою на шині.
  • udev динамічно змінює файли в директорії /dev , створюючи файли тільки для пристроїв, які присутні і підключені до системи. Також можна призначити довільні імена пристроїв за допомогою символічних посилань на файли пристроїв.
  • udev надає інформацію про пристрій додатків простору користувача, прибираючи необхідність доступу до внутрішніх структур ядра для отримання даної інформації.

Як працює udev

udevd слухає netlink-сокет в очікуванні подій, що генеруються ядром при підключенні або відключенні пристрою. Ви можете спостерігати за цими подіями за допомогою команди udevmonitor - запустіть її, підключіть USB-пристрій, наприклад, flash-накопичувач, та відключіть його (у новітніх дистрибутивах може не бути програми udevmonitor - у цьому випадку використовуйте udevadm .)

Під час запуску udev монтує файлову систему tmpfs в директорію /dev . Після цього файли пристроїв копіюються з директорії /lib/udev/device до директорії /dev і udev починає приймати події ядра для пристроїв із холодним підключенням. Директорія /etc/udev/rules.d використовується для зміни параметрів пристроїв, створення символічних посилань на файли пристроїв та виконання інших дій. Для пристроїв, що використовують гаряче підключення, udevd приймає події ядра за допомогою D-Bus, після чого отримує атрибути нового пристрою з файлової системи /sys і застосовує правила залежно від атрибутів - після цього створюється файл пристрою у файловій системі /dev. Udev також дозволяє підвантажувати призначені для цього драйвери пристроїв за допомогою механізму "modalias".

Правила та приклади використання udev

Udev надає можливість змінювати свою поведінку на основі правил та конфігураційних файлів. Ви можете перевизначити принцип роботи правил, що постачаються в комплекті з системою (зазвичай знаходяться в /lib/udev/rules.d ) або додати індивідуальні та специфічні можливості, що задовольняють ваші потреби. Правила можна додавати в директорію /etc/udev/rules.d/ - директорію для індивідуальних правил користувача.

Створюйте свої правила (які призначають ім'я файлу пристрою, створюють символічні посилання, встановлюють права доступу та виконують інші необхідні вам дії) у цій директорії. Для того, щоб переконатися, що правило передує іншим, переконайтеся, що ім'я файлу починається з числа, меншого за інші правила, які повинні виконуватися після нього - наприклад, 10-local.rules .

Вимкнути обліковий запис користувача root до моменту, коли адміністратор підключить свій USB-диск

BUS=="usb", SUBSYSTEM=="block", PROGRAM="/bin/enable_root_login"

Для того, щоб це правило працювало, вам необхідно розробити програму або сценарій оболонки із заданим ім'ям для того, щоб отримувати серійний номер пристрою, підключеного до системи і порівнювати його з відомим серійним номером пристрою адміністратора. У разі збігу серійних номерів, програма видалить рядок auth requisite pam_deny.so з файлу /etc/pam.d/login , що дозволить вхід до системи під обліковим записомкористувача root. У разі підключення інших USB-пристроїв, жодних змін файлів зроблено не буде. Навпаки, як тільки USB-носій буде вимкнено, цей рядок буде знову додано до файлу.

Це правило було протестовано на дистрибутиві RHEL 5.0 і чудово працювало, проте, при використанні команди su або при вході в режим одного користувача при завантаженні це правило не буде працювати. Для заборони входу під обліком користувача root при використанні команди su , можна зробити таке:

  1. Відредагувати файл /etc/security/access.conf додавши рядок root: ALL .
  2. Відредагувати файл /etc/pam.d/system-auth , додавши як другий рядок accunt required pam_access.so.
  3. Відредагувати файл /etc/pam.d/su і зробити першим рядком файлу рядок account include system_auth .

Ці дії, звичайно, повинні виконуватися програмою enable_root_login . Після перевірки серійного номера USB-пристрою на належність адміністратору, програма повинна прибрати всі зроблені зміни у файлах, а в тому випадку, якщо приєднаний пристрій не належить адміністратору, зробити всі наведені вище дії над файлами.

Ці дії не врятують від входу під обліковим записом користувача root в режимі одного користувача, проте, ви можете встановити пароль на завантажувач GRUB для запобігання простому доступу до режиму одного користувача.

Для отримання інформації про серійний номер пристрою, назву пристрою, ідентифікатор постачальника, назву виробника та інші параметри можна використовувати наступну команду: udevinfo -a -p /sys/block/sdb

У новітніх дистрибутивах програми udevinfo може не бути - в цьому випадку слід використовувати udevadm замість udevinfo.

Вимкнути всі порти USB

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

Підсумком виконання цього правила буде відключення всіх пристроїв, приєднаних до USB-портів вашої системи - USB-принтери, клавіатури та миші не працюватимуть. Будьте обережні під час використання!

Вимкнути всі блокові пристрої, приєднані до USB-портів

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

Це правило вимикає розпізнавання блокових пристроїв, підключених до портів USB. Це правило може бути корисним для покращення безпеки даних та конфіденційності в організації.

Призначити постійне ім'я файлу другого пристрою IDE-диска

Замініть sdb, якщо хочете застосувати правило до іншого диска.

Ігнорувати другий USB SCSI/IDE-диск, підключений USB

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

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

Додати символічне посилання на заданий файл пристрої USB-миші

SUBSYSTEM=="input", BUS=="usb", SYSFS(serial)=="0000:00:1d.0", SYMLINK+=="MY-USB-MOUSE"

Змінити ім'я файлу пристрою на підставі виробника пристрою

BUS=="usb", SYSFS(manufacturer)=="JetFlash", NAME="UNIVERSE"

Це правило змінює ім'я файлу пристрою на "UNIVERSE" у випадку, якщо виробником USB-накопичувача є JetFlash.

Вибірково дозволити використання блокових USB-пристроїв за допомогою спеціальної програми

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

Якщо програма виводить "my", пристрій може використовуватися, інакше пристрій ігнорується.

Уявімо звичайний ранок в одній із багатоповерхівок спального району нашого улюбленого міста: унітаз, душ, поголитися, чай, почистити зуби, води коту (або в будь-якому іншому порядку) – і на роботу… Все на автоматі і не замислюючись. Доки з крана холодної води - тече холдна вода, а з грячів - гаряча. А буває відкриєш холодну, а звідти - окріп!!11#^*¿>.

Давайте розумітися.

Холодне водопостачання чи ХВС

Місцева насосна станція подає воду у магістраль із мережі водоканалу. Велика труба, що подає, входить у будинок і закінчується засувкою, після якої йде водомірний вузол.

Якщо говорити коротко, то водомірний вузол складається з двох засувок, сітчастого фільтра та лічильника.



У деяких є додатково зворотний клапан

та обведення водоміра.

Обведення водоміра є додатковим лічильником із засувками, який може живити систему, якщо основний водомір обслуговується. Після лічильників вода подається до домової магістралі.


де розподіляється по стоякам, які ведуть воду до квартир по поверхах.



Який тиск у системі?

9-ти поверхи

Будинки висотою до 9 поверхів мають нижній розлив знизу нагору. Тобто. від водоміра великою трубою вода йде по стояках до 9-го поверху. Якщо у водоканалу настрій гарний, то на введенні нижньої зони має бути приблизно 4 кг/см2. З урахуванням падіння тиску один кілограм на кожні 10 метрів водяного стовпа жителі 9-го поверху отримають приблизно 1 кг тиску, що вважається нормою. Насправді ж у старих будинках тиск на введенні становить лише 3,6 кг. І мешканці 9-го поверху задовольняються ще меншим тиском ніж 1кг/см2

12-20 поверхів

Якщо будинок вищий за 9 поверхів, наприклад 16 поверхів, то така система ділиться 2 зони. Верхня та нижня. Де для нижньої зони зберігаються самі умови, а верхній тиск піднімають приблизно до 6 кг. Щоб воду підняти на самий верх у магістраль, що подає, а з нею вода стояками йде до 10-го поверху. У будинках вище 20 поверхів подача води може ділитися на 3 зони. За такої схеми подачі вода в системі не циркулює, стоїть на підпорі. У квартирі багатоповерхівки в середньому ми отримуємо тиск від 1 до 4 кг. Бувають й інші значення, але зараз ми їх розглядати не будемо.

Гаряче водопостачання або ГВП

У деяких малоповерхових будинках гаряча вода підключена за такою ж схемою, стоїть на підпорі без циркуляції, цим і пояснюється те, що при відкритті крана з гарячою водою, якийсь час йде холодна вода. Якщо взяти той самий будинок на 16 поверхів, то в такому будинку система ГВП влаштована інакше. Гаряча вода, як і холодна, так само подається в будинок по великій трубі, і після лічильника йде в домову магістраль.

яка піднімає воду, на горище де вона розподіляється по стояках і опускається в низ у зворотну магістраль. До речі, лічильники ГВП вважають не лише обсяг загубленої (споживаної) води у будинку. Ці лічильники також вважають втрати температури (гігоколорії)

Температура втрачається при проході води через квартирні сушки для рушників, які і грають роль стояків.

За такої схеми гаряча вода завжди циркулює. Варто відкрити кран, гаряча вода вже тут. Тиск у такій системі приблизно 6-7 кг. на подачі та трохи нижче на звороті для забезпечення циркуляції.

За рахунок циркуляції ми отримуємо тиск у стояку, у квартирі 5-6 кг. і відразу бачимо різницю в тиску між холодною і гарячою водою, від 2 кг. Саме в цьому і полягає суть передавлення гарячої води в холодну при несправності сантехприладів. Якщо ви звернули увагу, що на гарячій воді у вас тиск все ж таки більший ніж на холодній, то на введенні холодної обов'язково встановіть зворотний клапан, а на введенні гарячої можна включити в систему регулюючу арматуру, яка допоможе вирівняти тиск приблизно в одну цифру з холодною. Приклад встановлення регулятора тиску

HotPlug- гаряче підключення) - терміни, що означають відключенняабо підключенняелектронного обладнання в/к (комп'ютерній) системі під час її роботи без вимкнення живлення та зупинки (системи) (HotPlug), а також заміну (перепідключення) блоку в цілому ( Hot Swap ). Також існує термін, що означає протилежність гарячій заміні - Холодна заміна , тобто всі (пере)підключення проводяться після зупинки системи та зняття напруги (залишкового потенціалу).

Устаткування ділиться за цим принципом на що допускаєгарячу заміну та не допускає.

Історія

Раніше обладнання, призначене для підключення під час роботи, пов'язаного із заміною, використовувалося тільки в дорогих системах і вважалося складним у проектуванні. Останнім часом подібні системистали поширеними навіть недорогих комп'ютерах.

  • Призначені для гарячої заміни і, отже, підтримують гарячу заміну стандарти PCMCIA, USB, FireWire, Fibre Channel та eSATA.
    Серед пристроїв цього типу - флеш-накопичувачі, деякі жорсткі диски у тому числі для масивів в серверах, карти розширення форматів PCI-X, PCI Express, ExpressCard (PCMCIA, також раніше звані PC Cards), що знаходять застосування в ноутбуках і навіть деякі блоки живлення .
  • Не підтримує повноцінну гарячу заміну дискових інтерфейсів SATA і повністю не підтримує протокол IDE (IDE підтримує гаряче підключення) .

Конструкція системи

Комп'ютери, розраховані на заміну обладнання на ходу, повинні тим чи іншим способом визначати, що пристрій від'єднано, а також містити електричні ланцюги, нечутливі до стрибків напруги при підключенні та відключенні. Крім того, програмна частина має бути розрахована на раптову втрату зв'язку з пристроєм.

Деякі схеми гарячої заміни вимагають попереднього виконання команди на від'єднання, що спрощує їх конструкцію, проте загрожує цілісності даних, якщо пристрій не буде від'єднано правильним способом або в ньому виникне помилка.

Більш складні схеми мають запас надмірності і легко відновлюють дані при раптовому відключенні пристрою.

Термін «гаряча заміна» використовується у двох значеннях. З одного боку, він позначає можливість від'єднати або приєднати пристрій без вимкнення живлення. З іншого боку, він також може мати на увазі ще й автоматичне визначення пристрою при підключенні. Перше значення терміна поширюється на інтерфейси RS-232, FireWire та найпростіші реалізації SCSI, друге значення – на USB, FireWire, PCI Expressта складні варіанти SCSI.

Конструкція гнізда

Крайні контактні майданчики живлення зроблені довше за внутрішні сигнальні

У більшості сучасних пристроїв, що допускають гарячу заміну, використовуються рухомі контакти Один з них робиться довшим за інших, щоб першим входити в контакт з частиною, що приєднується, через нього підключається заземлюючий провід. Інші контакти робляться коротшими, всього може бути до 3 різних довжин. Затримка між підключенням першого контакту та наступних становить від 25 до 250 мілісекунд.

Ланцюги живлення підключаються у дві стадії: у першій за допомогою довших контактів підключається ланцюг, обмежений по струму, а потім короткішими - живлення повної потужності. Усі ланцюги, що у з'єднанні, містять захист від статичного електрики.

Ось приклад типової послідовності підключення:

  1. Замикаються найдовші контакти (заземлення). Тим самим досягається електрична безпека з'єднання та захист від статичного заряду.
  2. Замикаються довгі або середні контакти попереднього живлення. Заряджаються вхідні контури ланцюгів живлення.
  3. Підключаються короткі контакти живлення.
  4. З'єднання вважається встановленим. Вмикається сигнал ініціалізації живлення.
  5. Ланцюг м'якого живлення подає напругу на пристрій.
  6. Затримка у десятки мілісекунд.
  7. Ланцюг живлення закінчив м'яке підключення. Вимикається сигнал ініціалізації живлення.
  8. Пристрій розпочинає повноцінну роботу.

Особливу складність представляє з'єднання кількох пристроїв, оскільки приєднання другого, третього пристрою може порушувати роботу вже підключеного. Для боротьби з цим явищем використовують фільтри у вихідних ланцюгах або тимчасове відключення логічне передачі даних.

Гаряче підключення у програмному забезпеченні

Термін «гаряче підключення» також використовується стосовно програмного забезпечення і означає можливість змінювати програму без зупинки її виконання. Таку можливість підтримують лише кілька мов програмування, включаючи Lisp, Erlang та Smalltalk. Мова Java підтримує цю можливість тільки в процесі відладчика (Java Platform Debugger Architecture, JPDA).

Предметно орієнтована мова програмування 1С v8 надає можливість змінювати код при працюючій програмі. (http://v8.1c.ru/overview/release_8_1_5/administration.htm розділ "Оновлення елементів конфігурації"). Так як компіляція окремих модулів відбувається в момент виконання програми, і при зміні модуля він компілюється в сеансі заново, це не зовсім "гаряче підключення". Потрібно заново створити сеанс, щоб зміни набули чинності, і тільки для цього користувача сеанс). У версії v7 ця можливість була також при використанні додаткових програмних засобів (http://openconf.1cpp.ru/vk/turbomd/) і штатною командою #ЗавантажитиІзФайла....(потрібно тільки заново відкрити форму або звіт). Взагалі під час використання інтерпретованих мов програмування (зі збереженням текстів програм усередині модулів) " гаряче підключення " реалізується просто заміною текстів.

Згнив старий водопровід у квартирі. Пот на трубах, свищ за свищем; перекрити воду, а потім знову подати - з кранів хльосне іржа. І планується ремонт кухні із санвузлом, а старі труби не те що чіпати чи дихати – дивитися на них боязко. Потрібно міняти, але робота коштує недешево. Чи можна замінити квартирний водопровід своїми руками? Так, можна, і без будь-яких дозволів-оформлень. Потрібно буде лише домовитися зі слюсарем Деза, щоб перекрив подачу води в стояки максимум на годину; швидше за все, вдасться впоратися хвилин за 10. Або попередити сусідів, якщо не шкідливі, і перекрити/знову подати самому.

Порядок заміни

Заміна водопроводу проводиться у певній послідовності. Робота «на око» і «по ходу справи» у непрофесійному виконанні нерідко закінчується протіканням. План виконання робіт приблизно такий:

  1. Вибір матеріалу нових труб.
  2. Вибір схеми розведення гарячої та холодної води.
  3. Розробка схеми водопостачання квартири.
  4. Розрахунок діаметра труб за вибраним матеріалом і схемою.
  5. Підготовка монтажних інструментів.
  6. Закупівля матеріалів.
  7. Складання відбірно-облікових вузлів, монтаж їх на стояки та реєстрація.
  8. Демонтаж старих труб та сантехнічних приладів.
  9. Підключення ГМС та аквастопу, якщо передбачено.
  10. Підключення колбового фільтра (з ГМС є обов'язковим).
  11. Монтаж труб водопроводів гарячої та холодної води.
  12. Встановлення та підключення сантехніки, колишньої чи нової.
  13. Пробне подання води; усунення виявлених дефектів.
  14. Встановлення та підключення бойлера.

ГМС, колбовий фільтр та аквастоп

ГМС, або гідромагнітна система, давно використовується у промисловості для підготовки води до фільтрації. У побуті цей пристрій, не вдаючись у подробиці, переводить домішки у воді в тонку завис, яка далі осідає у фільтрі у вигляді шламу і періодично видаляється. ГМС абсолютно нешкідлива, не вимагає електроживлення та догляду в процесі експлуатації, але обов'язково вимагає установки лічильника води в антимагнітному виконанні (такі дорожче) і, після себе струмом води, комбінованого колбового фільтра.

Колбовий фільтр складається з трьох послідовно з'єднаних секцій: у першій збирається шлам, друга видаляє хлор, у третій відбувається тонке очищення води та її пом'якшення. Останнє (воду з крана давно вже ніхто не п'є) особливо важливе для бойлера пральної машини.

ГМС із колбами коштують чимало, проте добре бережуть не лише техніку, а й здоров'я. Жалійся чи ні, обурюйся – не обурюйся, а питна вода міцно тримається в десятці найдефіцитніших ресурсів світу, і глобальних програм, здатних вивести її якість на рівень хоча б середини минулого століття, немає і не передбачається. Загалом порятунок потопаючих – справа рук самих потопаючих.

Аквастоп теж корисний пристрій, теж вимагає електроживлення і догляду, але функція його інша. При різкому посиленні струму (прорив) води аквастоп спрацьовує і його клапан відсікає всю квартиру від стояка. Аквастопи бувають різних систем, у тому числі й електродинамічні, тому антимагнітний лічильник при встановленні аквастопу теж потрібен.

Вибір труб

Новий водопровід у квартирі починається з вибору труб. Сталь у побуті віджила своє, і вибирати доводиться з металопластику, пластику та паяної міді. Ця стадія роботи, мабуть, найвідповідальніша – неправильний вибір зведе нанівець усі старання, витрати та клопіт.

Мідь

Про мідні водопровідні труби можна сказати відразу: їхні пропагандисти не знають, що кажуть. Або знають, але собі не ставлять. По-перше, на міді в контакті з водою утворюється закис міді - той самий яр-медянка, про яку Том Сойєр говорив Гекльберрі Фінну. Так, мідь людині потрібна, але в незначних кількостях у вигляді мікроелемента, а не у складі сильної отрути. Як контраргумент наводять, мовляв, мідь із хлором із води утворює захисну плівку. Абсурд для будь-кого, хто пам'ятає хоча б шкільну хімію.

По-друге, до складу припою для міді входить олово. Біле олово, м'який метал, згодом перетворюється на іншу його, як кажуть хіміки, алотропну модифікацію – сіре олово, розсипчастий порошок. Тобто, поставивши у себе мідні труби (дуже дорогі), ми цим на 100% гарантуємо протікання. І оплату роботи фірми, що спеціалізується на мідних трубах, тому що самому правильно спаяти їх неможливо.

Металопластик

Металопластикові труби досить дорогі, але їх можна поєднувати своїми руками, не маючи досвіду. Металопластиковий водопровід збирається на спеціальних різьбових вузлах із прокладками або під обтиск – фітинги. Крім того, металопластикові труби можна плавно згинати. Гідродинамічний опір та втрати тиску в металопластику дуже малі.

Для введення труби у фітінг потрібні труборіз, прес-кліщі та набір розгорток (римерів) по діаметру труб. З їхньою допомогою робота йде граючи, а підручними засобами – повна гарантія протікання. Крім того, термін служби прокладок у фітингах обмежений і з часом стик починає капати. Тому замуровувати металопластик у стіни неприпустимо, і рекомендується не ховати в штроби.

Проводити водопровід металопластиком рекомендується на окремих відкритих ділянках, де важливий мінімальний опір струму води та можливість простої та швидкої перебирання стику: при підключенні бойлера, прання, миття тощо. Перехідники з металопластику на інші види труб завжди є у продажу.

Пластик

Пластиковий квартирний водопровід нині став стандартом, але пластики бувають різні. Для правильного вибору потрібно знати їхні властивості та особливості.

Полібутилен (PB)

Гнучкий пластик з гарною, для пластику, теплопровідністю. Тримає температуру до 90 градусів. Правильно паяний стик абсолютно надійний. Досить дорогі. Застосовуються для влаштування теплої підлоги.

Поліетилен (PE)

Дешеві, але для ГВП потрібні поліетиленові армовані труби; Традиційний поліетилен не тримає вже 60 градусів. Гнути і клеїти не можна, паяний стик надійно тримає тиск не більше 3,5 ат, а тиск води в міському водопроводі може бути до 6 ат (0,6 Мбар) для холодної води та 4,5 ат для гарячої, так що зберігається ймовірність раптового прориву. Гідравлічний опір, щоправда, найменший із усіх.

Начебто б усім погані поліетиленові труби, але є в них гідність, яка може коштувати всіх їхніх недоліків: не бояться замерзання. Крижана пробка їх розпирає, а як розтане - стискаються знову, і не лопаються, хоч ти трісну. Тому пристрій поліетиленового водопроводу настійно рекомендується в приміщеннях, що не опалюються, сезонних і в грунті. Тут альтернативи поліетилену немає. Але при постійно заповненій системі потрібний аквастоп.

ПВХ (PVC)

Властивості полівінілхлориду (ПВХ) досить добре відомі: хімічно стійкий, недорогий, термостійкість до 80 градусів, легко клеїться, але не дуже міцний і боїться ультрафіолету. Стики, як паяні так і клейові, виходять більш крихкими, ніж цілісний матеріал, так що небезпека прориву залишається і потрібен аквастоп. Заміна окремих секцій ПВХ клеєного, зрозуміло, складніше, ніж у розбірного металопластику, але простіше, ніж для паяних стиків: прогрів з'єднання побутовим феном, стик можна розняти, а потім знову склеїти. Загалом, варіант бюджетний або для майстра-початківця при довжині основної гілки від стояка до найдальшої точки водорозбору не більше 10 м і при не більше ніж 7 точках відбору.

Пропілен (PP)

Прокладання квартирного водопроводу поліізопропіленовими трубами (пропіленом) нині загальноприйняте. Матеріал не дуже дорогий, міцний, стійок, паяні стики зберігають всі якості основи, термостійкість – до 130 градусів, правильно спаяний тримає до 12 ат. Гідравлічний опір вищий, ніж у ПВХ, але все одно накопичення нальоту в просвіті мінімальне, а з ГМС виключено. Недоліків при самостійному виконанні всього два:

  • Не клеїться, а для паяння необхідне спеціальне обладнання та точне дотримання технології.
  • Має досить високу коефіцієнт температурного розширення. Замурований у стіну або схований у штробу може вигнутися і виламати кахель, тому на кожну трубу при прокладці потрібно надягати панчоху з мерилону або синтепону, що здорожує роботу.

Однак пропіленовий трубопровід на сьогоднішній день єдиний, який можна зробити раз назавжди і забути. Тому зупинимося на паянні пропілену окремо, тим більше, що паяння інших пластиків відрізняється лише нижчою температурою (110-130 градусів для поліетилену і близько 150 для ПВХ).

Пайка пропилена

Паяння пропилена кустарним паяльником-«праскою» встик (див. рис. справа) неприпустима:

  1. На «ковбасці» всередині накопичуються забруднення, і зібраний у такий спосіб трубопровід виявляється більш схильний до засмічення, ніж сталевий.
  2. Тиск води, розпираючи труби, прагне розірвати стик. При 16 градусах у трубі та 20-25 зовні через приблизно три місяці поріг втоми матеріалу виявляється перевершеним, і стик тече.

Складання пропіленового трубопроводу здійснюється на фітингах під паяння – прямих (для з'єднання відрізків труб), кутових, трійниках, хрестовинах. Розігріта до розм'якшення труба вставляється в обойму теж розігрітого фітинга, і стик застигає. У такому разі тиск води, навпаки, притискає зсередини трубу до обойми, забезпечуючи міцність, а частку сплавленої зони залишається тільки герметизація. Досить висока жорсткість пропілену не дає обоймі, що охоплює трубу, пружно розширитися. Саме така конструкція з'єднання в поєднанні з властивостями матеріалу робить пропіленовий трубопровід придатним для замуровування в стіни на десятиліття.

Примітка: Пристойний паяльник для пропілену коштує не менше 2000 руб. і для чогось ще непридатний, але від роботи не зношується. Тому купувати його не потрібно, краще взяти в найм.

  • Для прихованої проводки у типовій квартирі в штробах або замоноліченій – однозначно пропілен.
  • Для гілок великої довжини при великій кількості точок водорозбору - металопластик відкритий або в каналах зі кришками, що знімаються.
  • Для дачних будиночків, сезонного житла під оренду, заміських будинків з віддаленими господарськими спорудами, теплицями тощо. - Поліетилен.
  • Для бюджетного ремонту або у місцевостях із дефіцитом води, слабким тиском у водопроводі, з водою поганої якості – ПВХ.

Схема розведення

Колектори-гребінки

Є дві схеми водорозбору у приміщеннях: послідовна та паралельна. При послідовній схемі точки аналізу підключаються до загальної труби через трійники. Ця схема найекономніша, але при великій довжині розведення, велику кількість точок розбору та/або при слабкому тиску води не годиться, оскільки сильно знижує тиск.

У такому випадку водорозбір роблять за паралельною схемою від колектора-гребінки, див. рис. Гребінка - це складання з перепускних вентилів, від кожного з яких йде цільна гілка до своєї точки аналізу. Вентилями регулюють тиск окремо по точках. Гілки на точки виконують металопластиком або поліетиленом: в даному випадку роль відіграє їх низький гідравлічний опір, а при прокладанні цілісним шматком вони цілком надійні.

Розробка схеми водорозбору

Схема водопроводу в квартирі потрібна в першу чергу для себе, щоб не заплутатися, не прорахуватись і потім точно знати, де що – особливого дозволу на цю роботу не потрібно. Але під час реєстрації лічильника інспектор водоканалу може попросити поглянути на схему, тож викреслити треба правильно.

Повна схема за всіма правилами – робота серйозна і знаючого спеціаліста; Наприклад - на великому малюнку схема водопостачання приватного будинку з літньою кухнею, необхідна, щоб проект був затверджений. Але для заміни труб у квартирі так турбуватися не потрібно, достатньо, щоб на схемі було ясно видно і зрозуміло:

  1. Труби гарячої та холодної води, їх тип та діаметр просвіту.
  2. Прилади обліку.
  3. Аварійні клапани та сливи.
  4. Запірна арматура.
  5. Точки розбору із зазначенням споживачів.
  6. Резервні гілки та пристрої.
  7. Напрямок струму води.

Щоб усе це було зрозуміло не тільки собі, або собі через рік, певних правил при викресленні потрібно дотримуватися. Розберемо з прикладів, див. рис. Зліва – більш-менш зійде, але із зауваженнями, праворуч – неправильно:

  • Схема справа виконана в ізометрії – для краси, чи що? Перетин труб її заплутують, а уявлення про реальне розташування точок розбору вона не дає: пральна машина з бойлером виходять під підлогою.
  • Там дуже багато стрілок-покажчиків струму там, де й так ясно, куди тече, що теж заплутує схему.
  • Там же – нечітко і не за правилами зображено запірну арматуру з приладами обліку.
  • Там же – не вказано тип та діаметр труб.
  • Там же – хто, де і коли бачив, щоб вода у бойлер подавалась зверху, а унітаз змивався через відлив?
  • Зате на схемі ліворуч навіть не фахівцеві ясно, що бойлер (6) – резервний. Зауваження буде: А де зворотний клапан на гарячу? Без нього при припиненні подачі котел свою в гарячий стояк пожене, якщо вентиль (10) не перекрити». Але це вже по суті і з повним розумінням.

Правильна спрощена схема водопроводу у квартирі

Приклад довільно, не за правилами оформлення проектно-конструкторської документації, але зрозуміло і без надмірностей виконаної схеми водорозбору показано на малюнку. Це ще й приклад паралельного водорозбору; де гребінки, зрозуміло.

Розрахунок труб

Перш ніж остаточно вибрати труби, потрібно розрахувати хоча б приблизно їхній діаметр. Потрібно це не для «розумності» – чим уже труба, тим вона дешевша, з одного боку. З іншого, занадто малий діаметр труби для водопроводу викличе турбулізацію потоку у ній. При цьому пропускна здатність труби різко падає, і при нормальному тиску на вході з крана ледь сочиться.

Точний розрахунок трубопроводу - справа фахівців високої кваліфікації, але для міської квартири, щоб нормально текло, можна прикинути й самому. Вихідні дані такі:

  1. Мінімально допустимий тиск – 0,3 ат.
  2. Втрата тиску на 1 м пропіленової труби 16 мм – 0,05 ат.
  3. Середня для квартирного розведення втрата тиску на одиницю фітингів та арматури – 0,15 ат.
  4. Втрата напору у добірно-обліковому вузлі – 0,25 ат.
  5. При звичайних значеннях натиску на вході в стояк 1,5-4,5 ат трубі 12 мм періодична турбулізація неминуча, а 16 мм трубах немає.
  6. Запас за натиском для найдальшої точки – не менш ніж дворазовий.

Залишилося дізнатися натиск (тиск) на вході, і можна визначити, чи вистачить при послідовній розводці такою, ходовою, трубою, тиску для найдальшого крана або доведеться взяти ширше і дорожче. Тиск унизу стояка можна дізнатися по манометру в підвалі або в експлуатант будівлі; потім забираємо по 0,6 ат на поверх. Можна і прикинути по сусідах виходячи з тих самих 0,6 ат/поверх: якщо, скажімо, через три поверхи вгору з кранів ще тече, то у нас добрих 2 ат. Але в багатоповерхівках такий фокус не проходить: щоб не дорожчати надмірно квартирну розводку, там роблять окремі стояки на нижні та верхні та навіть на нижні, середні та верхні поверхи.

Приклад розрахунку: другий поверх дев'ятиповерхівки; мешканці верхніх поверхів на воду не нарікають. Маємо не менше 4 ат напору. 11 одиниць арматури (5 трійників, 6 косинців, 1 вентиль) дають 1,65 ат втрат. Довжина труби від стояка до дальньої стіни кухні – 6,5 м, це ще 0,325 ат втрат. Усього, з добірно-обліковим вузлом, маємо 0,325 +1,65 +0,25 = 2,225 ат втрат. Багато, потрібно перевірити тиск манометром і, швидше за все, взяти основну трубу 20-25 мм, або розлучатися за паралельною схемою від гребінки, інакше в літню сушу можна залишитися «сухим».

Примітка: звідси ясно, наскільки важливо спрямовувати труби і як небажано їх подовжувати та захаращувати арматурою.

Залежність втрат у трубах і арматурі нелінійна: вони залежить від швидкості течії, що, своєю чергою, залежить від перерізу просвіту труби. Незначне збільшення діаметра труби різко знижує втрати, тому звичайне для квартир розведення 20 мм трубою з відведеннями до точок 16 мм у більшості випадків працює добре. У складних випадках точний розрахунок можна зробити за СНиП, внутрішній водопровід та каналізація будівель. Там є всі необхідні формули та номограми; розрахунок може зробити людина з інженерною освітою будь-якого профілю.

Потрібно тільки мати на увазі, що з цього приводу є аж три СНіПи з однаковим індексом: 2.04.01-85, 2.04.01-85(2000) і 2.04.01-85* (Domestic water supply and drainage systems in buildings) ». Правильний – СНіП останній.

Інструмент, матеріали, демонтаж старого

Спеціальні інструменти для збирання квартирних трубопроводів описані вище під час викладу. Для закупівлі матеріалів, ясна річ, знадобиться розрахунок метражу, номенклатури та кількості за місцем. Демонтаж старих труб робиться звичайними способами. Його краще робити після встановлення та реєстрації водоміра, щоб надовго не відключати воду на поверхи.

Дамо лише одну пораду: не беріть вентилі з важелем. Він виконаний із силуміну або пластику і має властивість обламуватися в невідповідний момент, саме тоді, коли потрібно терміново перекрити. Беріть кульові вентилі з рукояткою-метеликом. Круглі рифлені рукояті теж не ламаються, але мокрі або спітнілі руки по них ковзають.

Облік та контроль

Добірно-обліковий вузол складається із запірного вентиля, фільтра грубого очищення, лічильника води та зворотного клапана. Збирається, як показано малюнку. На кожному з приладів вказується напрям струму води для нього, його обов'язково потрібно дотримуватись при складанні.

Вузол збирають із гідроізоляцією з'єднань стрічкою ФУМ і так само підключають до стояка, попередньо перекривши воду; Перед подачею води необхідно не забути перекрити запірний вентиль. Це єдина операція і короткочасна, що вимагає відключення подачі води сусідам по стояку.

Для холодної та гарячої води потрібні окремі вузли лічильників. Вкрай бажано, щоб лічильники та рукояті вентилів були виділені кольором. Покази лічильників повинні бути чітко читані без будь-яких додаткових операцій (знімання люка тощо), тому часто доводиться заздалегідь збирати частину цільного трубопроводу, іноді досить химерної конфігурації, для підключення приладів обліку до стояка. Крім труб і паяльника для цього знадобляться перехідні муфти із пластику на метал МРВ – муфта різьбова внутрішня. Пластик до вузлів обліку підключається з допомогою МРН – муфт різьбових зовнішніх.

Лічильники продаються опломбованими, але це не означає, що можна одразу дзвонити у водоканал і платити за воду за витратою. Заводська пломба для того (умільцями російська земля багата), щоб ніхто не вліз у лічильник і не підкрутив або не підпилив там що-небудь. Заводську пломбу слід берегти; без неї лічильник вважається непридатним, як і сертифіката нею.

Після встановлення водомірів потрібно заявити у водоканал і викликати його інспектора. Користуватися водою до його приходу можна, інспектору не потрібні нульові показання, він запише початкові, опломбує своєю пломбою лічильник та злив фільтра. Оплата за воду за витрачанням піде після реєстрації приладів обліку.

ГМС, аквастоп, фільтр

Хоча конструкція ГМС нерозбірна і не дозволяє з її допомогою красти воду, і опломбування цей пристрій не підлягає, підключення ГМС до лічильника неприпустимо: шламом може забитися турбінка лічильника. ГМС із колбовим фільтром підключають після приладів обліку; фільтр – відразу після ГМС. Аквастоп можна підключити відразу після фільтра, але, якщо він електродинамічний, магнітне поле ГМС може викликати його хибне спрацьовування, але відносити аквастоп далеко від стояка немає сенсу: на прорив до нього він не реагує.

Відео: огляд варіантів компонування елементів водопроводу

Монтаж трубопроводів

Отже, тепер робимо водогін. Складання труб вже описано, але монтаж всієї системи теж має особливості не будівельного характеру, як-то, пристрій каналів у стяжці. Останні повинні проходити не далі 150 мм від стіни та не ближче 200 мм до меблів. Сантехприлади, звичайно, перед початком прокладання труб знімаються.

Насамперед потрібно встановити дуги – пластикові планки з косинцями МРВ під змішувачі. Вони кріпляться до капітальної стіни шурупами в дюбелях. При кріпленні потрібно врахувати товщину оздоблення: штукатурки та кахлю або іншого декоративного покриття.

Не маючи великого будівельного досвіду, домогтися розташування вихідних патрубків урівень зі стіною дуже складно. Краще заздалегідь зробити їх ВИСТУПНИМИ над обробленою стіною на половину ширини бортика декоративних ковпаків змішувача: якщо ковпаки нерегульовані, їх можна буде легко довести на наждачному колі або вручну на наждачному бруску.

Наступний момент – збирання секцій трубопроводів. Найзручніший спосіб - складання на столі і укладання в штроби цілком. Але тоді постає питання: як провести труби через стіни? З металопластиком проблем немає, він весь на роз'ємних фітингах, а для паяних труб можна запропонувати два способи:

  • За допомогою перехідників МРН/МРВ та металопластикових вставок. У квартирі це досить надійно, а в кутах над штробами можна зробити лючки для ревізії і ремонту різьбових з'єднань.
  • Монтувати трубопроводи за місцем. Для цього потрібний компактний паяльник. Такий коштує дорожче, і потрібно працювати в бавовняних рукавичках, щоб випадково не обпектися.

Четвертий момент – паяння. На одну пайку йде 15 мм труби. Тобто якщо між двома фітингами рівно 1 м, відрізати потрібно 1030 мм; якщо 0,6 м – 630 мм.

П'ятий момент – згинання металопластикових труб. Мінімально допустимий радіус вигину – 5 зовнішніх діаметрів труби. Можна зустріти рекомендації: мовляв, засунути туди пружину, набити піску, і можна гнути взагалі на кут, а пружину витягнути й пісок виколупати дротяним гачком. У жодному разі: покриття труби псується, залишкова напруга в ній набагато перевищує допустимі, і металопластикова труба набуває властивостей дуже поганої сталевої проржавілої.

І наостанок, . Це окремий виробничий цикл, і робиться вона після введення водопроводу в експлуатацію. Патрубки під бойлер робляться заздалегідь, але вентилі на них (вони обов'язково потрібні на обох) перекриваються відразу після монтажу труб, і патрубки додатково заглушуються.

Відео: приклад змонтованого водопроводу

Існують два різні способи розглядати гаряче підключення. Ядро розглядає гаряче підключення як взаємодію між обладнанням, ядром та драйвером ядра. Користувачі розглядають гаряче підключення як взаємодія між ядром і простором користувача в рамках програми, званої /sbin/hotplug . Ця програма викликається ядром, коли він хоче повідомити простір користувача, що в ядрі щойно стався якийсь тип події гарячого підключення.

Динамічні пристрої

Найчастіше використання значення терміна "гаряче підключення" відбувається під час обговорення того, що більшість всіх комп'ютерних систем тепер може обробляти пристрої, які з'являються чи зникають, коли система включена. Це дуже відрізняється від комп'ютерних систем лише кілька років тому, коли програмісти знали, що їм необхідно сканувати всі пристрої тільки під час завантаження і їм ніколи не доводилося турбуватися про свої пристрої, що зникають при відключенні живлення для всієї машини. Тепер, з появою USB, CardBus PCMCIA, IEEE1394 та PCI контролерів гарячого підключення ядру Linux необхідно мати здатність працювати надійно, незалежно від того, яке обладнання додається або видаляється із системи. Це лягає додатковим тягарем на автора драйвера пристрою, оскільки тепер вони повинні завжди працювати з пристроєм, що раптово виривається з підпорядкування без попереднього повідомлення.

Кожен тип шини обробляє втрату пристрою по-різному. Наприклад, коли PCI, CardBus або PCMCIA пристрій видаляється з системи, це зазвичай відбувається до того, як драйвер був повідомлений про це через свою функцію remove . Перш, ніж це трапляється, всі читання з PCI шини повертають всі встановлені біти. Це означає, що драйверам необхідно завжди перевіряти значення даних, які вони прочитали з шини PCI і бути спроможним належним чином обробити значення 0xff.

Приклад цього можна побачити в драйвері drivers/usb/host/ehci-hcd.c, який є PCI драйвером для плати контролера USB 2.0 (High-Speed). Він має наступний код у своєму основному циклі встановлення зв'язку для виявлення, що плату контролера було видалено із системи:

result = readl(ptr);

if (result == ~(u32)0) /* карта видалена */

Return-ENODEV;

Для драйверів USB, коли пристрій, з яким пов'язаний USB драйвер видалено з системи, всі очікувані urb-и, які були відправлені в пристрій, спочатку закінчуються невдачею з помилкою -ENODEV . Драйвер повинен розпізнати цю помилку і належним чином очистити весь очікуваний введення/виведення, якщо він має місце.

Пристрої гарячого підключення не обмежені лише традиційними пристроями, такими як миша, клавіатури та карти мережі. Є багато систем, які тепер підтримують видалення та додавання повністю процесорів і карт пам'яті. На щастя, ядро ​​Linux належним чином обробляє додавання та видалення таких основних "системних" пристроїв, тому окремі драйвери пристроїв не повинні звертати увагу на ці речі.

Утиліта /sbin/hotplug

Як згадувалося раніше у цьому розділі, коли пристрій додається або видаляється із системи, генерується "подія гарячого підключення". Це означає, що ядро ​​викликає програму простору користувача /sbin/hotplug . Ця програма зазвичай дуже невеликий скрипт bash, який просто передає виконання списку інших програм, які знаходяться в дереві каталогу /etc/hotplug.d/ . Для більшості дистрибутивів Linux цей скрипт виглядає так:

DIR="/etc/hotplug.d"

for I in "$(DIR)/$1/"*.hotplug "$(DIR)/"default/*.hotplug ; do

If [-f $ I]; then

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

done

exit 1

Іншими словами, скрипт шукає всі програми, які мають суфікс .hotplug , які можуть бути зацікавлені в цій події і викликає їх, передаючи їм ряд різних змінних оточення, які були встановлені ядром. Докладнішу інформацію про роботу скрипта /sbin/hotplug можна знайти в коментарях до програми та на сторінці посібника hotplug(8) .

Як згадувалося раніше, /sbin/hotplug викликається під час створення чи знищення kobject-а. Програма гарячого підключення викликається з одним аргументом командного рядка, що представляє назву для цієї події. Основне ядро ​​та певна підсистема також беруть участь у встановленні набору змінних оточення (дивіться нижче) з інформацією про те, що сталося. Ці змінні використовуються в програмах гарячого підключення, щоб визначити, що тільки-но сталося в ядрі, і чи є якась спеціальна дія, яка повинна мати місце.

Аргумент командного рядка, переданий у /sbin/hotplug , є ім'ям, пов'язаним із цією подією гарячого підключення, як визначено kset-ом, призначеним для kobject. Це ім'я може бути встановлене викликів функції name, яка є частиною структури hotplug_ops kset-а, описаної раніше в цьому розділі; якщо ця функція відсутня або ніколи не викликалася, використовується назва самого kset-а.

Змінними середовищем за промовчанням, які завжди встановлюються для програми /sbin/hotplug , є:

ACTION

Рядок add (додати) або remove (видалити), залежно від того, був даний об'єкт щойно створений або знищений.

DEVPATH

Шлях до каталогу у файловій системі sysfs, який вказує на kobject, який нині або створено, або знищено. Зверніть увагу, що точка монтування файлової системи sysfs не додана до цього шляху, так що її визначення надано зробити програмі простору користувача.

SEQNUM

Порядковий номер цієї події гарячого підключення. Порядковий номер є 64-х розрядним числом, яке збільшується з кожною подією гарячого підключення, що генерується. Це дозволяє користувальницькому простору відсортувати події гарячого підключення в порядку, в якому їх генерує ядро, так як для програм простору користувача можлива робота не по порядку.

SUBSYSTEM

Той самий рядок, що передається як аргумент командного рядка, як описано вище.

Ряд різних шинних підсистем для виклику /sbin/hotplug додають свої власні змінні оточення, коли пов'язане з шиною пристрій було додано або видалено із системи. Вони роблять це у зворотному виклику гарячого підключення, зазначеному в struct kset_hotplug_ops , призначеній цій шині (як описано в розділі "Операції гарячого підключення"). Це дозволяє користувальницькому простору мати можливість автоматичного завантаження необхідних модулів, які можуть бути необхідні для керування пристроєм, що було виявлено на шині. Ось список різних типів шин та змінних оточення, які вони додають для виклику /sbin/hotplug .

IEEE1394 (FireWire)

Всі пристрої на шині IEEE1394, також відомої як FireWire, мають параметр імені для /sbin/hotplug і змінна оточення SUBSYSTEM встановлюється значення ieee1394 . Підсистема Ieee1394 також завжди додає наступні чотири змінні оточення:

VENDOR_ID

24-розрядний ідентифікатор постачальника для пристрою IEEE1394.

MODEL_ID

24-розрядний ідентифікатор моделі для пристрою IEEE1394.

GUID

64-розрядний GUID для цього пристрою.

SPECIFIER_ID

24-х розрядне значення, що визначає власника специфікації протоколу для цього пристрою

VERSION

Значення, яке визначає версію специфікації протоколу цього пристрою.

Мережа

Всі мережні пристрої створюють повідомлення гарячого підключення, коли пристрій зареєстрований або розреєстрований у ядрі. Виклик /sbin/hotplug має параметр імені та змінна оточення SUBSYSTEM встановлюється в значення net і додає тільки наступну змінну оточення:

INTERFACE

Ім'я інтерфейсу, який було зареєстровано чи розреєстровано з ядра. Прикладами його є lo і eth0.

PCI

Будь-які пристрої на шині PCI мають параметр імені та змінна оточення SUBSYSTEM встановлюється значення pci . Підсистема PCI також додає наступні чотири змінні оточення:

PCI_CLASS

Номер PCI класу для цього пристрою, у шістнадцятковому вигляді.

PCI_ID

Ідентифікатори постачальника та пристрої PCI для цього пристрою, у шістнадцятковому вигляді, об'єднані у форматі vendor:device .

PCI_SUBSYS_ID

Ідентифікатори постачальника та підсистеми PCI, об'єднані у форматі subsys_vendor: subsys_device .

PCI_SLOT_NAME

Ім'я слота PCI, яке дається пристрою ядром у форматі domain:bus:slot:function . Прикладом може бути 0000:00:0d.0.

Введення

Для всіх пристроїв введення (миша, клавіатури, джойстики і так далі) повідомлення гарячого підключення генерується, коли пристрій додається і видаляється з ядра. Параметр /sbin/hotplug і змінна оточення SUBSYSTEM встановлюються значення input . Підсистема введення завжди додає наступні змінні оточення:

PRODUCT

Багатозначний рядок, що перераховує значення у шістнадцятковому вигляді, без провідних нулів, у форматі bustype:vendor:product:version.

Наступні змінні оточення можуть бути присутніми, якщо пристрій їх підтримує:

NAME

Назва пристрою введення, як задано пристроєм.

PHYS

Фізична адреса пристрою, яку підсистема введення дала цьому пристрою. Він має бути стабільним, що залежить від місцезнаходження шини, на яку було підключено пристрій.

Всі вони походять з дескриптора пристрою введення та встановлюються у відповідні значення, якщо пристрій введення його підтримує.

USB

Будь-які пристрої на шині USB мають параметр імені та змінна оточення SUBSYSTEM встановлюється у значення usb. Підсистема USB також додає наступні змінні оточення:

PRODUCT

Рядок у форматі idVendor/idProduct/bcdDevice

TYPE

Рядок у форматі bDeviceClass/bDeviceSubClass/bDeviceProtocolяка визначає ці залежні від пристрою USB поля.

Якщо поле bDeviceClass встановлено в 0, також встановлюється наступне змінне оточення:

INTERFACE

Рядок у форматі bInterfaceClass/bInterfaceSubClass/bInterfaceProtocolяка визначає ці залежні від пристрою USB поля.

Якщо вибрано опцію ядра CONFIG_USB_DEVICEFS , який вибирає, що файлова система usbfs буде зібрана в ядрі, також встановлюється наступна змінна оточення:

DEVICE

Рядок показує, де знаходиться пристрій у файловій системі usbfs . Цей рядок має формат /proc/bus/usb/USB_BUS_NUMBER/ SB_DEVICE_NUMBER, в якому USB_BUS_NUMBER є тризначним номером шини USB, до якої підключено пристрій, а USB_DEVICE_NUMBER є тризначним номером, призначеним ядром для цього USB пристрою.

SCSI

Всі пристрої SCSI створюють подію гарячого підключення, коли пристрій SCSI створений або видалений з ядра. Виклик /sbin/hotplug має параметр імені та змінна оточення SUBSYSTEM встановлена ​​у значення scsi для кожного SCSI пристрою, який додається або видаляється із системи. Ніякі додаткові змінні оточення не додаються системою SCSI, але вона згадується тут тому, що існує спеціальний SCSI скрипт в просторі користувача, який може визначити, що драйвери SCSI (дисковода, стрічкового накопичувача, звичайний і т.д.) повинні бути завантажені для зазначеного пристрою SCSI.

Настановні станції ноутбуків

Якщо підтримуюча Plug-and-Play настановна (док) станція ноутбука додана або видалена з працюючої системи Linux(шляхом включення ноутбука до станції або його видалення), створюється подія гарячого підключення. Виклик /sbin/hotplug має параметр імені та змінна оточення SUBSYSTEM встановлена ​​у значення dock . Жодних інших змінних оточень не встановлено.

S/390 та zSeries

На архітектурі S/390 архітектура канальної шини підтримує широкий спектр обладнання, кожне з яких генерує події /sbin/hotplug, коли вони додаються або видаляються з віртуальної системи Linux. Всі ці пристрої мають для /sbin/hotplug параметр імені та змінна оточення SUBSYSTEM встановлена ​​у значення dasd . Жодних інших змінних оточень не встановлено.

Використання /sbin/hotplug

Тепер, коли ядро ​​Linux викликає /sbin/hotplug для кожного доданого або видаленого з ядра пристрою, щоб скористатися цим, в просторі користувача було створено ряд дуже корисних інструментів. Двома з найбільш популярних інструментів є скрипти Linux гарячого підключення та udev.

Скрипти гарячого підключення Linux

Скрипти гарячого підключення Linux почалися як перший користувач виклику /sbin/hotplug . Ці скрипти дивляться на різні змінні оточення, які ядро ​​встановлює для опису пристрою, яке було тільки що виявлено і потім намагаються знайти модуль ядра, який відповідає цьому пристрою.

Як уже говорилося раніше, коли драйвер використовує макрос MODULE_DEVICE_TABLE , програма, depmod , приймає цю інформацію та створює файли, що знаходяться в /lib/module/KERNEL_VERSION/modules.*map. Знак * є різницею залежно від типу шини, яку підтримує драйвер. В даний час файли модульної картки створюються для драйверів, які працюють з пристроями із підтримкою підсистем PCI, USB, IEEE1394, INPUT, ISAPNP та CCW.

Скрипти гарячого підключення використовують ці текстові файли модульної картки для визначення модуля, щоб спробувати завантажити його для підтримки пристрою, який нещодавно було виявлено ядро. Вони завантажують всі модулі і не зупиняються на першій відповідності, щоб дозволити ядру вибрати, який модуль краще підходить. Ці скрипти не вивантажують усі модулі під час видалення пристроїв. Якби вони спробували це зробити, вони могли б випадково вимкнути пристрої, які також керуються драйвером пристрою, який був видалений.

Зверніть увагу тепер, коли програма modprobe може читати інформацію MODULE_DEVICE_TABLE безпосередньо з модулів без необхідності файлів модульної картки, скрипти гарячого підключення можуть бути скорочені до невеликої обгортки навколо програми modprobe .

udev

Однією з основних причин створення єдиної моделі драйвера в ядрі було дозволити користувальницькому простору керувати деревом /dev в динамічному стилі. Раніше це було зроблено в просторі користувача реалізацією devfs , але ця кодова база поступово згнила через відсутність активного супроводжуючого і деяких невиправних базових помилок. Декілька розробників ядра зрозуміли, що якби всю інформацію пристрою експортувати в простір користувача, він міг би виконувати все необхідне керування деревом /dev .

devfs має у своєму дизайні деякі суттєві недоліки. Вона вимагає від кожного драйвера пристрою бути зміненим для її підтримки і вона вимагає від драйвера пристрою вказати ім'я та місцезнаходження в дереві /dev , де він розміщений. Вона також не належним чином обробляє динамічні старші та молодші номери, змушуючи політику іменування пристроїв належати ядру, а не простору користувача. Розробники ядра Linux дійсно ненавидять мати політику в ядрі і так як політика іменування devfs не слідує специфікації Linux Standard Base, це дійсно їх непокоїть.

З того часу, як ядро ​​Linux почало встановлюватися на величезних серверах, багато користувачів зіткнулися з проблемою, як керувати дуже великою кількістю пристроїв. Масиви дискових накопичувачів з понад 10.000 унікальних пристроїв є дуже складним завданням забезпечення того, щоб кожен диск завжди був пройменований тим же точним ім'ям, де б він не був поміщений у дисковому масиві або коли він був виявлений ядром. Ця та сама проблема, від якої страждають користувачі настільних комп'ютерів, які намагаються підключити два USB принтери до своєї системи і потім розуміють, що вони не могли забезпечити, щоб принтер, відомий як /dev/lpt0 , не був би змінений і віднесений до іншого принтера у разі перезавантаження системи.

Так було створено udev . Він спирається на всю інформацію пристрою, експортовану в простір користувача через sysfs і на повідомлення через /sbin/hotplug , що пристрій був доданий або видалений. Політичні рішення, такі як ім'я дати пристрою, можуть бути вказані в просторі користувача, поза ядром. Це гарантує, що політика іменування видалена з ядра і дозволяє більшу ступінь гнучкості при назві кожного пристрою.

Для отримання додаткової інформації щодо використання udev та як його налаштувати, будь ласка, дивіться документацію, яка постачається включеною до пакету udev у вашому дистрибутиві.

Все, що драйверу пристрою необхідно зробити, щоб udev правильно з ним працював, є забезпечення того, щоб будь-які старші та молодші номери, присвоєні пристрою, керованому драйвером, експортувалися в простір користувача через sysfs. Для будь-якого драйвера, який використовує підсистему для присвоєння йому старшого та молодшого номера, це вже зроблено підсистемою і драйвер не повинен виконувати жодної роботи. Прикладами підсистем, які роблять це, є підсистеми: tty, misc, usb, input, scsi, block, i2c, network та frame buffer. Якщо ваш драйвер самостійно обробляє отримання старшого та молодшого номера через виклик функції cdev_init або застарілої функції register_chrdev, драйвер повинен бути змінений, щоб udev працював з ним належним чином.

udev шукає у дереві /class/ у sysfs файл з ім'ям dev , щоб визначити, який старший і молодший номер присвоєний даному пристрою, коли він викликається ядром через інтерфейс /sbin/hotplug . Драйверу пристрою просто необхідно створити такий файл для кожного пристрою, яким він керує. Як правило, інтерфейс class_simple – найпростіший спосіб це зробити.

Як вже згадувалося в розділі "Інтерфейс class_simple", першим кроком у використанні інтерфейсу class_simple є створення struct class_simple за допомогою виклику функції class_simple_create:

static struct class_simple *foo_class;

foo_class = class_simple_create(THIS_MODULE, "foo");

if (IS_ERR(foo_class)) (

Printk(KERN_ERR "Error creating foo class.\n");

Goto error;

Цей код створює каталог в sysfs /sys/class/foo .

Щоразу, коли драйвер знаходить новий пристрій і ви присвоюєте йому молодший номер, як описано в Розділі 3, драйвер повинен викликати функцію class_simple_device_add :

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

Цей код викликає створення /sys/class/foo піддиректорії, названої fooN , де N - молодший номер для цього пристрою. У цьому каталозі створюється один файл, dev , і саме те, що необхідно udev , щоб створити вузол пристрою для вашого пристрою. Коли ваш драйвер звільняється від пристрою і ви відмовляєтесь від молодшого номера, який був за ним закріплений, для видалення запису в sysfs для цього пристрою потрібний виклик class_simple_device_remove :

class_simple_device_remove(MKDEV(FOO_MAJOR, minor));

Пізніше, коли весь ваш драйвер вимикається, для видалення класу, який ви спочатку створили викликом class_simple_create , необхідно викликати class_simple_destroy :

class_simple_destroy(foo_class);

Файл dev , який створюється викликом class_simple_device_add , складається із старшого та молодшого номера, розділених символом : . Якщо ваш драйвер не хоче використовувати інтерфейс class_simple , тому що ви хочете надати інші файли всередині каталогу класу для підсистеми, використовуйте функцію print_dev_t для правильного формату старшого та молодшого номера для кожного пристрою.

mob_info