Контролер дистанційного керування для ПК-сервера з текстовою консоллю, без паяльника і Arduino

    

Анотація

Хоча один з героїв другого плану — ІЧ-порт на материнській платі, не стану я розповідати про пульти від телевізорів і перемикання ними треків в улюбленому медіаплєєре. У продовження історії про сервер FreeNAS , побудований зі старого заліза, я розповім, як забезпечити його настільки ж нехитрим бортовим контролером з послідовним портом (консоллю) поверх IP (Serial-over-LAN), дистанційним скиданням (RESET) і керованим харчуванням. Питається: навіщо? Адже * nix і так невибагливий в дистанційному управлінні: включив той же SSH і керуй собі на здоров'я. Але що буде при аварії? Стартовому збої операційної системи? Що, якщо треба натиснути RESET? Зробити апгрейд системи? Або запустити fsck в single user? Або відновити спиляних сук невірно налаштований firewall? Не їхати ж на майданчик кожен раз, підключати монітор, клавіатуру і стирчати вночі в офісі на регламентних роботах… або муляти очі днем ​​сердитому Бізнесу.
 
 

Ще один NAS своїми руками, частина 4: привид Чорнобиля

Я давно зрозумів, що лінь — основний двигун людського прогресу. Напевно, самі витончені форми ліні зустрічаються в самій прогресивної області: сфері інформаційних технологій, де лінь вже частина професії. Це ми впроваджуємо складні helpdesk-регламенти, щоб не встановлювати користувачам потрібні програми. Це ми два дні отлаживаемого скрипт, щоб потім заощадити собі півгодини. Це ми управляємо робочим столом в сусідній кімнаті, використовуючи для цього сервер на сусідньому континенті. Це ми придумали мораторій на роботи, щоб відпочивати ще за тиждень до Нового Року. Хто це там чекає ліфт у вечірній час пік, щоб чинно спуститися на ньому з другого поверху на перший? Бізнес поблажливо кличе нас айтішниками, але ми гордо величаємо себе Інженерами ІТ…
 
Напрошується пристрій, часто іменоване off-band (baseboard) management controller, або автономний бортовий контролер дистанційного керування. Це така срібна посріблена куля, яка зменшує надмірні навантаження на священний сісадмінскій зад. За функціями наш виріб близько до IPMI за деяким вирахуванням, і до справжніх серверних продуктів на зразок iLO або DRAC тут, звичайно, далеко. Так, краще купити готовий контролер за половину вартості старого комп'ютера (або серверну платформу за п'ятикратну вартість), якщо того вимагає важливість даних і пов'язані ризики. Я ж зібрав робочий пристрій деяким дорожче $ 70, яке до моменту публікації поста встигло виручити мене вже кілька разів, чого і всім бажаю.
 
Використовуєте старий ПК-сервер Linux вдома або в офісі? Нема кому натиснути RESET? Бракує грошей на серверну платформу? Можливо, ви дізнаєтеся нові способи спростити собі життя. Програмувати майже не будемо, паяльник і Хор Друїдів не будуть потрібні, зате згадаємо веселі 90-е. Мікроелектроніка — це просто!
 
 
 

DISCLAIMER

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

Технічні вимоги

Отже, в першої частини ми зібрали сервер NAS з мотлоху і палиць старого заліза, під другій частині підібрали флеш-пам'ять для завантажувача ОС, а в третій частині практично заштовхали в звичайну «вежу» десяток шпиндельних дисків, не побоюючись за їх невдалий старт чи перегрів. Пройдемося по контрольному списку серверного :
 Контрольний список серверного                                                  
Материнська плата з ECC-пам'яттю Чи не передбачено бюджетом
SMP-архітектура ЦП Одне ядро, але зате з HyperThreading
Надмірна блок живлення Чи не передбачено бюджетом
Технології SAN і Fiber Channel Жарт гумору :)
продувається корпус, розрахований на X * дисків Є
Дисковий масив Є
Спеціалізована файлова система ZFS UFS (через ОЗУ)
Моніторинг здоров'я і телеметрія Є
Фізична безпека Товар вимогах
Сторожовий таймер Ні
Серверна ОС FreeNAS (вбудовується)
Дистанційне керування платформою TBD **
* X — римська «десять»
** TBD — To Be Done (англ.: треба зробити)
Так, далеченько наш прилад до Справжнього Сервера… І зізнаємося відразу: звичайна материнська плата по послідовному порту в BIOS нас не пустить:
 
 0. Віддалений доступ в BIOS
 
Але ця властивість самої материнської плати, і якщо воно занадто заважає, рекомендую читачеві перерватися і пошукати або рішення у вигляді серверної платформи (де повинен бути вбудований бортовий контролер дистанційного керування), або плату розширення PCI з KVM-over-IP (на зразок eRIC G4 ). Буде, звичайно, дорожче. А ми поки продовжимо писати вимоги для нашого DIY рішення.
 
 1. Підключитися до послідовного порту сервера по TCP / IP
 
Це цілком типова задача, розв'язувана звичайним конвертером інтерфейсів RS232-Ethernet. Буквально перше, що попалося під руку — MOXA NE-4110S вартістю приблизно $ 50. Знайомтеся, головний герой нашої сьогоднішньої історії — безкорпусні, трохи брутальне виріб:
 
 
 
Звичайно, це далеко не єдиний варіант: є конвертери, що випускаються під торговими марками WIZnet, TIBBO. А крім конвертерів, я абсолютно випадково відкрив ще один тип пристроїв, і навіть присвятив цьому спойлер далі по тексту (читайте, воно того варто ;-)
Отже, «Моху» мені виявилося простіше замовити в найближчому магазині, та й бренд перевірений. Як з'ясувалося, працює вона на доброму старому i80186 і, схоже, використовує IP-стек BSD. До речі, є у NE-4110S програмований брат, звуть його NE-4110S-P , до нього ж доступний і Network Enabler SDK . Ст про ит «брат» в півтора рази дорожче «сестри», продається рідше, і від написання прошивки все одно не рятує. Тому не я став замовляти «брата». І, ура, практично збулася ще одна мрія дитинства: «попрацювати на 80186». Мені завжди якось не вистачало цього пропущеного ланки еволюції…
 
 Флешбек з веселих 90х Я застав IBM PS / 2 з i8086, ліпив на асемблері IBM PC / XT з i8088 (на тому старому моніторі в проміжки між пікселями, мабуть, можна було б і сірник засунути). Грав на i80286 (причому і на AT, і на XT; а до чого ж соковитою здавалося тоді графіка VGA!).
Але довго не давала спокою думка: куди ж, чорт візьми, подівся сто вісімдесят другому? Що ж це за процесорний бенладен такий?
У часи FidoNet була така фірма US Robotics, відома модемами Sportster і Courier. Вони були як два брата: молодший Sportster (для дому) і старший Courier (для бізнесу), і обидва побудовані на i80186.
 
 
Бюджетна «мильниця» Sportster 14400, але розігнатися на ній більше 9600 було удачею; була ще зелененькая 28800
 
Оскільки система команд x86 була широко відомою в певних колах, з'явилися тоді й ордена магів-прошівальщік, здатних своїми заклинаннями перетворити дешеву «мильницю» Sportster в Courier, такий собі бульдозер для російського телефонного бездоріжжя, на гусеничному полудуплексном протоколі HST . Інтернету тоді не було, тому фрекать можна було і на напівдуплекса. А як звучав HST! Просунуті юзери не вимикали динамік модему, щоб вслухатися в шуми модуляції і по ретрейн визначати якість зв'язку. Але у HST це була просто симфонія: можна було майже фізично відчути, як потоки бітів на повному ходу ухиляються від плаваючих колод старих радянських АТС, ніби направляються вмілою рукою невидимого капітана. На цілих 16,8 кбіт / с, але повірте, тоді це було зовсім непогано.
Перероблений з «мильниці» бульдозер, правда, глючил, і часто виходив з однією «передачею»: або тільки «вперед» (на дозвон), або на прийом дзвінка, залежно від ДНК «мильниці» (це вже як пощастить). І тому до приходу Інтернету всі поважають себе фідошники мріяли роздобути червоноокого диявола електрозв'язку з справжнім логотипом Courier.
 
 
Червоноокий диявол електрозв'язку, гроза всіх перешкод і бульдозер міських телефонних мереж
 
Але лише деякі щасливці засинали під автоматні черги кур'єрського реле імпульсного набору номера. Найважче спалося тим, у кого телефонний номер боса містив нулики, дев'ятки та інші особливо довгі і тріскучі комбінації. Справжні ніндзя, звичайно, припаювали безшумні герконовиє реле , про що потім смачно розповідали в ехах , викликаючи пекучу заздрість володарів простих «мильниць». І при цьому всі дружно мріяли, що колись настане Нова Ера, і наші міські АТС теж почнуть розуміти тональний набір, як в дуже далеких і дуже щасливих країнах…
Ровесники, дістаємо серветку і ловимо нею скупу сльозу… Привіт, 80186, давно не бачилися.
 
 
Отже, поки замовлене мною блюдо перетинало державні кордони, я виявив цікавий факт: виявляється, багато конвертери інтерфейсів постачають до купи цифровим введенням-висновком (GPIO або DIO). Напевно, щоб чим-небудь покерувати, чи не так?
 
 

Чи потрібен Хор Друїдів

Словосполучення «без Аль дурив» ​​в деяких колах означає щось на зразок знака якості: мовляв, не лохи дилетанти якісь зібралися, а реальні електронщики. Хай вибачать мене дорогі читачі, але вибір свій я тоді зробив не всупереч, а по простому незнання, і тому пропоную обійтися без зламаних копій, холіваров та інших КАПСЛОКУ. Пропустивши успіхи аматорської мікроелектроніки, я під впливом старих рефлексів просто кинувся шукати конвертер інтерфейсів…
 Проти програмування МК Чи правильно я зробив, ухилившись від програмування мікроконтролерів? Начебто проста пересилання байт туди-сюди, і всього справ на п'ять хвилин, як казав один мій приятель. Але побіжно оглянувши поглядом форуми з предметної області, я досить рельєфно представив собі таке кодування IP-сервера на асемблері. Прикинув, що мені треба мінімум дві UART: одну на консоль RS232, другий на прямий зв'язок з хостом (не скидати ж сторожовий таймер за IP!). Потім почав рахувати кількість UART на МК, що використовуються в популярних моделях Ай дробини. За рідкісним винятком , вважати виходило тільки до одного. Тому довелося уявити і заталківаніе бітів в провід популярним в AVR методом наукового ногодрига (bit bang, soft serial). Продовживши уявний експеримент, я поставив все це в паралель з уявним IP-сервером на асемблері… Брр! Ні, це вже якийсь довгий і гостре азіатське блюдо для всієї родини, а я просив легкий, дієтичний обід для однієї людини.
Не нав'язую свою точку зору, але є суб'єктивне відчуття, що межсетевое взаємодія — дуже слабка ланка у мікроконтролерів, часом які згубно браком у хардкорних «железячніков» елементарних навичок інформаційної безпеки (код виходить дуже вразливим). Кесарю — кесареве.
 За програмування МК Якщо вже на те пішло, особисто мені здається тут більш доречною платформа STM32 з її нафаршированої периферією. І в черговий раз не можу не згадати в цьому зв'язку проект EasyElectronics . Як можна припустити, челябінські електронщики настільки суворі, що запускають мікроконтролери власним пальцем. Сумніваєтеся? Прочитайте про FUSE і метод пальця . Якщо цим хлопцям дати в руки паяльник (або поставити на керівну інженерну посаду в солідний концерн), я взагалі боюся уявити наслідки для світової електронної промисловості…
Є отладочная плата для таких собі амбидекстров мікроелектроніки, зі змінними мезонінами AVR, STM32, PIC і ПЛІС. Але дивитися я прошу не на саму плату, а на непримітне виріб LAN Ethernet Адаптер на ENC28J60 . Сенс у тому, що на спині у LAN Ethernet Адаптера гніздо для тієї ж плати-мезоніну AVR або STM32. На борту виходить вся необхідна обв'язка для МК, на штирові роз'єми виведені і ноги USART від STM32. Для розв'язуваної задачі залишиться прикрутити перехідники з USART на RS232 і USB, постачити пристрій харчуванням. Можливо, для промислових потреб не завадить і PoE укупі з більш теплостійким виконанням і віброзахистом, але це вже інша історія…
Здавалося б, ось уже майже готовий виріб на базі програмованого МК, але… хто вдихне в нього життя? Прошивку ніхто не відміняв, а це ще розваг на міфічний людино-місяць . Немає нічого неможливого, але ви ж йдете в ресторан пообідати, а не пожити тиждень-другий, чи не так? Задумайтеся, поки на березі…
 
Не буду зв'язуватися з МК, награтися завжди встигну. Ось, до речі, з недавнього: habrahabr.ru/post/208026
А під моїми добрими жартівливими назвами читач, звичайно, без праці дізнався популярну платформу, використовувану і любителями, і професіоналами по всьому світу. Ринок все сам розставляє по місцях…
 
Отже, із завданням Serial-over-LAN все зрозуміло, але доповнимо наше основне меню технічних вимог першою стравою:
 
 2. Віддалений скидання сервера, використовуючи лінію RESET на материнській платі
 
Подивимося, що вже було зроблено на цю тему. Варто було мені побачити пост благородного дона workDNK , як отриманий в інституті багаж знань ожив і попросився на роботу. Шановний дон цілком обгрунтовано посадив оптореле прямо на цифровий висновок МК, але у мене з «Мохой» вийшла невдача. Стор. 3-8 NE-4100 Users Manual вельми недвозначно натякає:
 
The output current for digital output channels carries only 1 mA.
Тобто на відміну від PIC18F1320-I / P, цифровий порт на «мохе» більше 1мА з себе не видавить, а для надійного відкриття оптореле треба більше разів у десять. Тут з далеких закутків пам'яті раптом є транзисторний ключ (я здивувався, тому що останній раз це було років п'ятнадцять тому). Ескізну схему закидаємо прямо в стоїть поруч з Хабре тостер , і що ви думаєте? Майже відразу отримуємо пару корисних відповідей від благородних донів. Тут вже скупу сльозу, напевно, впустив би сам Пан Гейтс (ви нічого такого не подумайте, це його знаменита мова про інформацію на кінчиках пальців).
 
У теорії все досить просто, і на цьому я майже було зупинився; але апетит, як відомо, приходить під час їжі.
 
А чи можна управляти вимкненим ПК? Звичайно, можна. Більше того, ми це і робимо постійно, натискаючи більшу кнопку на корпусі ПК (у когось вона маленька і не на корпусі, та й не на ПК, але не в цьому суть). Навіть найпростіші блоки живлення ATX мають лінію +5 VSB, живильну материнську плату в стані STANDBY (рубильник включений, комп'ютер вимкнений). Включення ПК з клавіатури — це все звідти ж. До речі, в STANDBY на деяких материнських платах можна навіть що-небудь спалити, переставляючи планки пам'яті, але мова зараз не про це. Звичайно потужність в режимі STANDBY близько 10Вт, але для живлення нашого контролера вистачить, чай не адронний коллайдер. Тому додамо-но ще салат і гарнір:
 
 3. Незалежне харчування контролера в режимі STANDBY
 4. Віддалене включення і виключення живлення хоста, використовуючи лінію PWR_BTN
 
Уважний читач, звичайно, заперечить на п. 4: а як же Wake-on-LAN ? І буде абсолютно правий: дійсно, навіть звичайнісінька материнська плата сьогодні дозволяє пробудити комп'ютер від сплячки особливим мережевим пакетом. І, до речі, не шукайте ethtool під FreeNAS, там для цих цілей служить ifconfig (8) . Все це досить затребуване і тому добре розжовано, є приклади налаштувань для популярних домашніх роутерів, утиліта-пускач для Linux і багато іншого. Що ж, гарнір можна і не замовляти, я не наполягаю. Але й без десерту залишати читача не збираюся.
На солодке у нас сьогодні яблучне желе зелений індикатор живлення:
 
 5. Віддалений моніторинг включеного харчування з повним збереженням функцій візуального індикатора на корпусі
 
Мій сервер не відгукується на ping… Ха-ха, перевірте, чи підключений шнур живлення чи включений сервер. Звичайно, я маю на увазі зчитування стану світлодіодного індикатора PWR_LED, хоча можна і лінію +5 V зчитувати, це як більше подобається. Мені ось подобається саме ідея з світлодіодом, благо він найбільш довірений свідок і сусідить на материнській платі з усіма іншими інгредієнтами. На що найпростіше замінити зелений світлодіод в схемі, щоб комп'ютер нічого не помітив? Очевидно, на другий світлодіод, вбудований в оптореле, а сигнал на корпусних світлодіод просто повернути назад по іншій лінії. Далі, я думаю, пояснювати не треба, на схемі все буде зрозуміло.
Наші кнопки RESET і PWR_BTN для нормальної роботи комп'ютера повинні бути відпущені, але в теорії може або транзистор пробити, або ворог відправити невірний логічний сигнал. В результаті наш контролер несанкціоновано замкне оптореле, і кнопки виявляться, так сказати, «нормально натисненими». Від цього хочеться захиститися, не розбираючи нашу гіпотетичну плату. Також на етапі налагодження ми хочемо візуально контролювати що відбувається. Тому не забуваємо про сіль, перець та інші приправи до нашого столу:

6. Апаратна блокування керування лініями RESET і PWR_BTN
7. Контрольні світлодіоди на лінії RESET і PWR_BTN
8. Дублюючі світлодіоди на лінії LED_100M і LED_10M

А компот? Морс з лісових ягід червоний індикатор дискової активності на корпусі все одно відображає тільки два дискових порту з десяти наявних, тому знайдемо йому більш корисне застосування:

9. Візуальний моніторинг готовності контролера (READY_LED) на корпусі ПК через індикатор HDD_LED

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

Ось, що вийшло (хай вибачать мені читачі деякі негостовие вольності):
Схема
Принципова електрична схема бортового контролера управління; якщо дрібно, відкрийте зображення окремо

Коментар для початківців електроніків Переконайтеся, що верхній спойлер зі схемою відкритий. Поїхали.
Ядро схеми: маленький квадратик зліва посередині — це як роз'єм J2 MOXA NE-4110S, з нього все починається.
Обмежувальні резистори R4, R7, R8 для світлодіодів і R1, R2 для оптореле вважаються (ви не повірите!) за законом Ома. Щоб і відкрити оптореле, і запалити світлодіод (але не спалити на смерть!), Потрібен струм порядку 10мА. Виходимо з того, що на діод впаде від півтора до двох вольт (і струм, і напруга дивимося в характеристиках приладів). Оскільки шина харчування дає 5В, на резистори потрібно «втратити» 3В при струмі 10мА, тобто потрібно опір порядку 300Ом. Нічого складного, і без калькуляторів . Дозвольте, а куди подівся обмежувальний резистор для оптореле по лінії PWR_LED? Туди ж, куди для індикатора READY_LED (HDD_LED): вони обидва вбудовані в схеми наших готових виробів, один на материнській платі, другий на «мохе». Без обману.
Підтягують резистори R3, R5, R6 (див. wikipedia ) номіналом 10кОм. Підтягувати будемо логічні рівні, щоб не бовталися в повітрі і не ловили нам перешкоди звідти.
Транзисторні ключі . Щоб вирішити проблему з браком керуючого струму (треба 10мА, але є всього 1мА), поставимо пару ключів 2N7000. Польові транзистори — прилади, керовані напругою: коли «моху» дає високий рівень, транзисторний затвор відкривається, але струм при цьому практично не споживає. При цьому замикається ланцюг стік-витік, і електрику біжить собі з шини +5 В через обмежувальний резистор на «землю», по дорозі запалюючи світлодіод, або відкриваючи оптореле. Польовик — хороший прилад, тільки статичної електрики боїться до смерті в буквальному сенсі.
Оптореле здвоєне односпрямоване, нормально розімкнене. Цей полезнейший прилад дозволяє замикати (або розмикати в нормально замкнутому випадку) електричні ланцюги, при цьому ізолюючи їх один від одного. Керуючий струм подається за тими ж законами, що й на світлодіод, через обмежувальний резистор. Наше реле односпрямоване: це значить, що керований (ведений) струм через нього можна пускати строго в одному напрямку: «плюс» потрібно з'єднувати з контактом № 6 або № 8, інакше струм не піде, реле буде наче закритим. Оптореле теж боїться електростатики.
Як бачите, зовсім квантова теорія.


Ну і нагадаю в кінці, що ми маємо справу зі вбудовуваним безкорпусним виробом. Якщо його не закріпити належним чином, при необережному ривку за Ethernet-кабель наш контролер буде базікати в корпусі ПК, як труси в пральній машині . Щоб цього не сталося, подамо столові прилади:

10. Жорстко закріплений на корпусі комп'ютера порт Ethernet

Задачу вдалося вирішити так: Навіщо насправді потрібні внутрішні модеми та адаптери 10/100BaseT на шину PCI Виявляється, є відмінне застосування старим, непотрібним платам PCI з квадратними роз'ємами.


Конвертер інтерфейсу на скобі від внутрішнього модему PCI

Відстань між кріпильними отворами на «мохе», ясна річ, не збіглися з скобою, тому замість другого болта я використовував звичайну нейлонову стяжку: тримається досить міцно, а широке віконце під два телефонних роз'єму дозволило комфортно розмістити RJ-45 від «Мохі».


Замість другого болта — туго затягнута нейлонова стяжка

Якщо під рукою не виявилося внутрішнього модему PCI (буває), підійшла б скоба від мережевого адаптера PCI (найкраще підійде 10 або 100 мегабіт, але 1000 теж можна). Допуск на розміщення болтів, звичайно, буде дещо іншим, але немає нічого неможливого.

Отже, ваше замовлення прийнятий, готуємо страви і приступаємо до їжі!

Ще одне цікаве рішення віддаленого доступу Займаючись дачними інтернеті, натрапив на скромне виріб TP-LINK MR3020 .



Цей, на перший погляд, несерйозний кишеньковий роутер розміром з невелику пачку печива може перетвориться на багатоцільову платформу віддаленого доступу з функціями, про які виробник вироби і близько не здогадувався. Під корпусом у нього захований Atheros AR7240 @ 400MHz, 4Мб флеш-пам'яті, ОЗУ 32Мб, а також (за деякою кмітливості та паяльнику ) послідовний порт і GPIO . Зв'язок зі світом через USB-модем, Ethernet або WiFi (правда, вбудована антена слабенька). Дізнайтеся, скільки ще цікавих речей можна отримати всього за $ 25: http://wiki.openwrt.org/toh/tp-link/tl-mr3020 . До речі, USB-модеми йдуть з microSD (почитайте про всяк випадок пост про флеш-пам'ять і приготуйте пізнання Linux, вони будуть дуже до речі).
В принципі, цю штуку можна по-шпигунськи приліпити всередину корпусу ПК, живити від тих же +5 VSB і підключивши послідовний порт (увага: там TTL-рівень, для RS232 потрібен перехідник, а для USB — перехідник плюс підтримка в ОС). Тільки стежте за безпекою, віддалений доступ — палиця з двома кінцями, і слово «шпигун» тут не просто так…


Щоб не зв'язуватися поки з агресивними середовищами, паяльником і його другом праскою (це вже не герої з 90-х, так плати зараз роблять у домашніх умовах), але обкатати все на реальному залізі, я вирішив зібрати своє нехитре виріб на беспаечная макетної платі ( breadboard). До речі, вельми практична штука, особливо для тих, хто на «ви» з паяльником. Що стосується саморобних макетних перемичок, я поважаю професіоналів, але не люблю всі ці «вибухи на телефонному комутаторі», тому купив гарний фірмовий набір різнокаліберних перемичок.

Несамовита сцена
Запозичене з сайту: www.rfcafe.com / references / electrical / bob-pease-breadboard.htm

Заспокійливе засіб
Набір «втомлений айтишник» для зняття стресу

Хоч перемички і коштують грошей, зате можна годинами сидіти і втикати їх у макетке так і сяк, підбираючи оптимальну довжину. Це така спеціальна терапія для змучених стресами трудівників інформаційного цеху, заспокоює не гірше склеювання корабликів з літачками: нету ні біло-помаранчевого, ні біло-зеленого, ні біло-синього, ні біло-коричневого, все спеціально однотонне. Більш стресостійкі колеги можуть, звичайно, перемичок з одножильний кручений пари нарізати, перетин підходяще.
А взагалі початківцям рекомендую прочитати бестселер: habrahabr.ru/post/148656 / , після нього я ледве втримався від покупки всього асортименту найближчого радіоаматорського магазину.

Схема беспаечная макетної плати у вільній системі позначень
Трафарет для Visio брав звідси: www.sandrila.co.uk/articles/visio-articles/electronics-breadboards/

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

Напевно це не новина, але попутно я знайшов (буквально) прикольний спосіб для сполучення беспаечная макетке з навколишнім світом роз'ємами на плоский шлейф (Insulation-Displacement Connector, IDC): наколюємо на один кінець шлейфа роз'єм типу DIP (з кроком 2.54мм, увійде в макетке), а інший кінець розчленовуємо і обжимаємо кримпери, потім взуваємо потрібним штирьовим роз'ємом BLS / BLD (кліщі-крімпер використовую ті ж, що в іншому пості ). Або не розчленовуємо шлейф, але просто наколюємо другий IDC-роз'єм. Можна їх багато наколоти, як на шлейфах для старих дисків IDE. Про скільки нам відкриттів дивних готує магазин електроніки.

За цим принципом я зібрав два шлейфи: один (простий) для зв'язку моєї плати з MOXA NE-4110S, а другий (хитрий) для сполучення з роз'ємами на материнській платі. Дуже рекомендую кольоровий шлейф: він не тільки порадує око веселою райдугою кольорового маркування, але на нестандартних завданнях ще й сильно заощадить дорогі ресурси вашої центральної нервової системи, звільнивши її для більш цікавих завдань. Нудний сірий шлейф хороший для простих і прямих варіантів, всякі перевернуті фігури на ньому краще не виконувати.

Якщо хто не бачив веселощі
Кольоровий веселий шлейф


Цей IDC роз'єм-вилку з кроком 2.54мм наколюємо на дальній від макетної плати кінець шлейфа


Хитрий шлейф
Ліворуч: підключаємо кнопки і світлодіоди від корпусу ПК до вилки (IDC-роз'єму) на шлейфі; від роз'єму далі пішли дві пари…
Cправа: дві пари дійшли до стандартних контактів RST_SW і PWR_SW на материнській платі, майже всі потрібні ланцюги замкнулися


Ці два роз'єми IDC (крок 2.54мм) наколюємо на ближні кінці шлейфів, вони «сядуть» на макетну плату


Макетна плата з двома підключеними шлейфами.

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

Про правильне харчування

Щоб виконати вимогу № 3 з незалежного харчуванню в режимі STANDBY, пошукаємо щось підходяще на материнській платі. Ну не вріз а ться ж в 20-контактний роз'єм живлення ATX, справді. Ось так удача: судячи по стор 17 керівництва P4i65G , абсолютно даремний роз'єм ІК-порту якраз і харчується лінією +5 VSB (забігаючи вперед, відзначу, що це виявилося цинічним обманом). Відмінно, додаємо в кошик відповідний 2-рядний 6-контактний раз'емчік з кроком 2.54мм, що позначається іноді як BLD 2x3.


Майже даремний роз'єм для підключення ІЧ-пристроїв до материнської плати P4i65G, BLD 2x3

речі, якщо читач раптом побажає +5 VSB, я б рекомендував шукати харчування його десь на внутрішніх роз'ємах USB, або на клавіатурному роз'ємі PS / 2. Зайдіть в розділ управління живленням BIOS і подивіться, від чого комп'ютер може прокидатися. Ті пристрої, які здатні висмикнути комп'ютер з відключки, якраз і пов'язані з +5 VSB.


Роз'єм J2 на MOXA NE-4110S, BLD 2x7

Крім послідовного порту J1 в стандарті RS232 (аналог того, що стирчить на материнських платах), на «мохе» мається недвозначний роз'єм J2 для підключення живлення, GPIO (DIO), контрольних світлодіодів і отладочного послідовного порту TTL-рівня (TXD1, RXD1, GND ). На всякий випадок скажу, що TTL UART вимагає лінійний драйвер для сполучення з RS232, там напруги інші; але ми цей порт підключати і використовувати не будемо. Просто додамо до покупок 14-контактний роз'єм типу «мама», з відомим кроком 2.54мм (1/10 ").
Стоп, а чому у «Мохі» два контакти VCC +5 V? Начитавшись профілакторію про смачне і здорове харчування мікроконтролерів, я вже почав було підозрювати роздільну шину. Але побачивши вельми недвозначну спайку на платі перед єдиним стабілізатором напруги (і навіть помірявши на всякий випадок її опір), я зрозумів, що такий подвійне введення харчування до внутрішньої обв'язці не має відношення. Тому повернемо ситуацію в своїх корисливих цілях: наведемо на один контакт харчування з +5 VSB, а з іншого тут же заберемо його ж на свою макетке. І вовки цілі, і вівці ситі. Може, для мене і залишили ці два контакти?

Трохи про електростатики Я останній раз був на радіоринку, напевно, в кінці 90-х. Нещодавно я взагалі нічого не знав ні про беспаечная макетке, ні про AVR і їх Хор Подрібнений. Все це занурення в мікроелектроніку зайняло близько двох тижнів у режимі хобі, протягом яких довелося багато читати.
Заодно я вирішив все-таки спершу здати самому собі залік з макетування, прикупивши для вправ 7-сегментний індикатор і всяку микрухой з рассипухі. Ясна річ, що замість загального катода я взяв загальний анод, і при підключенні до мікросхемі 4511 мій індикатор показував цифри инверсно і вимагав багато транзисторів. Добре, що мої мікроелектронні знущання ніхто не бачив…
Не тільки від ліні, а й заради експерименту я вирішив майже повністю знехтувати електростатичної безпекою, взявши пару захисних пінцетів і десяток польових транзисторів про запас. І як у воду дивився: в процесі здачі заліку смертю хоробрих полягли аж сім з десяти «полевиков». Висновок: якщо працюєте з польовими транзисторами або іншими КМОП-деталями, захищайте ноги цих ніжних приладів від електростатики, реальність проблеми підтверджена тепер ще одним експериментом. Варіантів захисту багато: від ритуального замотування в фольгу в чому мати народила до спеціальних браслетів і килимків. Тільки якщо в квартирі немає справжньої «землі», врахуйте, що під час ваших електронних медитацій небудь добрий сусід за законами жанру обов'язково упустить фазу заземлені пральну машину на ту ж трубу. І тоді, якщо ваша захист сама не захищена, то можна з фольгированной шапочки ненароком отримати шолом віртуальної реальності, як в одному давно забутому фідошном баяні (тоді ще не було поняття «я пацталом», але тепер я знаю, як це називається). Особисто я волів заплатити парою пінцетів і декількома пробитими транзисторами (вічна їм пам'ять). І вибачте мене, монстри-електронники. А якщо серйозно, погуглити по темі електростатичний браслет .

Безпека

Не будемо, однак, забувати про дверях, вікнах і тому подібних зборах. Наш пристрій NE-4110S паролями не закривається, але може використовувати прості ACL на IP-адреси, які рекомендується обмежити адміністративної мережею. Операційна система сервера повинна обов'язково запитувати логін і пароль для входу через послідовний порт. Весь вміст Serial-over-LAN передається по мережі у відкритому вигляді (telnet), тому передачу по публічних мереж без шифрованих VPN робити ніяк не можна (інакше піде пароль root, який ви напевно будете вводити). З цієї ж причини потрібен і окремий VLAN (простий мережевий комутатор Ethernet з переповненими таблицями ARP перетворюється на хаб, який починає дзвонити пакетами на всі порти сегмента). Всі пристрої віддаленого доступу до серверів — це потенційні уразливості, ставиться до них потрібно з належною повагою, помилки рідко прощаються.
До речі, як виявили деякі користувачі, і у FreeNAS близько релізу 9.2.x виявилося не все гладко з реалізацією serial console (https://bugs.freenas.org/issues/4266 ). Будьте обережні, якщо використовуєте цю систему.

Лінивий нуль-модем

Нуль-модемний кабель RS232 для з'єднання послідовних портів сервера і контролера я виготовив з шнура від картрідера-інваліда, якому Бізнес деякий час тому вивихнув десяток ніг. Довелося замовляти нові 2-рядні 10-контактні роз'єми типу «мама», т.к. стара захист від дурня (у вигляді «залитої ніжки») якраз і не давала підключити кабель USB до роз'єму COM-порту. Можна легко виготовити такий кабель з плоского шлейфу, просто я ледачий, і тому взяв готовий шнур, обжимати кримпери довелося всього пару проводков замість двох десятків. Знову ж, читачеві рекомендую використовувати для таких завдань веселий кольоровий шлейф.


Схема повного нуль-модемного кабелю, запозичена з bogpeople.com/networking/SerialComms/rs232pinouts.shtml

Питається: а чи потрібні всі ці DTR, DSR, RTS, CTS? І взагалі, навіщо DCD в нуль-модемі? Давним-давно я підключав консоль до комутатора Frame Relay трьома проводками (RXD, TXD, GND) по кручений парі, і все працювало. Але подивимося на пристрій послідовної консолі під FreeNAS. Використовує вона записи типу freenas_serial9600 з gettytab (5) , і при цьому ознаки `` nc'' там не видно. А в теорії це означає, що за відсутності сигналу DCD послідовний порт буде вважатися «мертвим», і консоль по ньому не поїде, принаймні, без втручання в код FreeNAS. Я можу помилятися і не враховувати електричні властивості висить в повітрі лінії, але філософські практики Крепсондо рекомендують у таких випадках саме обжимати лінію DCD, а не курочіть прошивку FreeNAS на read-only файлової системи, пріючи потім при кожному дистанційному апгрейде сервера. Не читайте історій в Інтернеті про нестандартні нуль-модеми, робіть стандартний. Потім знадобиться ще де-небудь.
Отже, наведу схему обтискача нуль-модему до виду на уявні 10-контактні роз'єми типу «мама», що сидять на уявному кабелі. Схема, до речі, в момент випробувань мало не довела мене до цугундера , але про це пізніше.


Схема нуль-модему, вид на роз'єми типу «мама», колірна маркування USB-кабелю (два чорних: один товстіший, другий тонший)

Софт

Братики, подивіться на довжину цього поста, але ж ми навіть не збираємося програмувати мікроконтролер! Проте, самий простенький скрипт на мові perl для віддаленого натискання кнопок я все-таки додам для повноти розповіді. Він трохи надлишковий, але це для краси.

Відправка секундного натискання на кнопку живлення
#!/usr/bin/perl

use IO::Socket::INET;

$|=1; #flush

my $s = new IO::Socket::INET (
        PeerHost => '10.100.200.1', # NE-4110S host
        PeerPort => 5001, # DIO port
        Proto => 'tcp',
) or die "IO::Socket::INET: $!\n";

my $CMD_PWR_ACTIVE = pack('C7',
        2,      # command number, fixed
        2,      # version, fixed
        0,      # this byte is only used in response
        3,      # data length, fixed
        3,      # desired DIO channel number
        1,      # 1: set to output mode
        1,      # 1: set to high
        );

my $CMD_PWR_INACTIVE = pack('C7',
        2,      # command number, fixed
        2,      # version, fixed
        0,      # this byte is only used in response
        3,      # data length, fixed
        3,      # desired DIO channel number
        1,      # 1: set to output mode
        0,      # 0: set to low
        );

my $res;
my ($hdr_cmd, $hdr_ver, $hdr_err, $hdr_len);
my @data;

print "PWR_ACTIVE\n";
print $s $CMD_PWR_ACTIVE;
$s->recv($res, 4);
($hdr_cmd, $hdr_ver, $hdr_err, $hdr_len) = unpack('C4', $res);
printf("result: CMD %d VER %d ERR %d LEN %d\n", $hdr_cmd, $hdr_ver, $hdr_err, $hdr_len);
$s->recv($res, $hdr_len);
@data = unpack("C$hdr_len", $res);
sleep(1);
print "PWR_INACTIVE\n";
print $s $CMD_PWR_INACTIVE;
$s->recv($res, 4);
($hdr_cmd, $hdr_ver, $hdr_err, $hdr_len) = unpack('C4', $res);
printf("result: CMD %d VER %d ERR %d LEN %d\n", $hdr_cmd, $hdr_ver, $hdr_err, $hdr_len);
$s->recv($res, $hdr_len);
@data = unpack("C$hdr_len", $res);
sleep(1);
$s->close();
exit(0);



Відправка секундного натискання на кнопку RESET
#!/usr/bin/perl

use IO::Socket::INET;

$|=1; #flush

my $s = new IO::Socket::INET (
        PeerHost => '10.100.200.1', # NE-4110S host
        PeerPort => 5001, # DIO port
        Proto => 'tcp',
) or die "IO::Socket::INET: $!\n";

my $CMD_RST_ACTIVE = pack('C7',
        2,      # command number, fixed
        2,      # version, fixed
        0,      # this byte is only used in response
        3,      # data length, fixed
        2,      # desired DIO channel number
        1,      # 1: set to output mode
        1,      # 1: set to high
        );

my $CMD_RST_INACTIVE = pack('C7',
        2,      # command number, fixed
        2,      # version, fixed
        0,      # this byte is only used in response
        3,      # data length, fixed
        2,      # desired DIO channel number
        1,      # 1: set to output mode
        0,      # 0: set to low
        );

my $res;
my ($hdr_cmd, $hdr_ver, $hdr_err, $hdr_len);
my @data;

print "RST_ACTIVE\n";
print $s $CMD_RST_ACTIVE;
$s->recv($res, 4);
($hdr_cmd, $hdr_ver, $hdr_err, $hdr_len) = unpack('C4', $res);
printf("result: CMD %d VER %d ERR %d LEN %d\n", $hdr_cmd, $hdr_ver, $hdr_err, $hdr_len);
$s->recv($res, $hdr_len);
@data = unpack("C$hdr_len", $res);
sleep(1);
print "RST_INACTIVE\n";
print $s $CMD_RST_INACTIVE;
$s->recv($res, 4);
($hdr_cmd, $hdr_ver, $hdr_err, $hdr_len) = unpack('C4', $res);
printf("result: CMD %d VER %d ERR %d LEN %d\n", $hdr_cmd, $hdr_ver, $hdr_err, $hdr_len);
$s->recv($res, $hdr_len);
@data = unpack("C$hdr_len", $res);
sleep(1);
$s->close();
exit(0);


Комплектація

Перелік інгредієнтів з цінами
Найменування Кількість Вартість
Конвертор інтерфейсу MOXA NE-4110S 1шт. $ 50
Плата макетна беспаечная 1шт. від $ 10
Здвоєне оптореле КР293КП4Б, корпус DIP8 2шт. $ 4
Польовий транзистор 2N7000, корпус TO92 2шт. $ 1
Обмежувальний резистор 330Ом 5%, «вивідний» корпус 5шт. $ 0.30
Підтягаючий резистор 10кОм 5%, «вивідний» корпус 3шт. $ 0.20
Світлодіод червоний АЛ307ЛМ d = 5мм 1шт. $ 0.30
Світлодіод жовтий АЛ307ЖМ d = 5мм 1шт. $ 0.30
Світлодіод зелений АЛ307НМ d = 5мм 2шт. $ 0.60
Перемикач DIP, 4 контакту 1шт. $ 1
Роз'єм-вилка 2.54мм IDC (на шлейф), дворядний 10 контактів 1шт. $ 0.50
Роз'єм DIP IDC (на шлейф), 10 контактів 2шт. $ 0.50
Шлейф кольоровий, 10 контактів $ 2.40
Роз'єм-гніздо 2.54мм на кабель BLD 2x7 (для MOXA J2) 1шт. $ 0.50
Роз'єм-гніздо 2.54мм на кабель BLD 2x5 (для COM-порту) 2шт. $ 1
Роз'єм-гніздо 2.54мм на кабель BLD 2x3 (для IR-порту) 1шт. $ 0.30
Роз'єм-гніздо 2.54мм на кабель BLS 2x1 (для підключення до мат. платі) 3шт. $ 0.45
Непотрібна плата внутр. модему PCI завалялася
Маленька нейлонова стяжка була
Кліщі для обтиску контактів роз'ємів BLS і BLD теж були, але взагалі від $ 20
Патч-корд Cat5e знайшов ;)
Перемички для макетної плати купіть або зробіть самі
Час не рахується
РАЗОМ трохи дорожче $ 70
Всі прилади в DIP, або в «вивідних" (не SMD, що не планарних) корпусах — для беспаечная макетної плати


Конвертер MOXA NE-4110S (на скобі), а також плата та кабелі

Дух експерименту

Вечір п'ятниці. Злегка гудучи малими оборотами вентиляторів, методично смокче довколишню офісну пил наш трудяга Zeus, приютив на своїй спині обнімаються пару з комутатора і домашнього роутера. Збережено всі дані. Розігнані по домівках і шинках всі користувачі. Затишно блимають світлодіоди, і в повітрі вже витає Дух Експерименту.
Насамперед замінимо домашній роутер на дикий . Це, звичайно, окрема історія; варто сказати, що принесений дикий роутер вже повністю приручений на стенді: оновлені всі прошивки, задані всі налаштування, адреси, паролі, явки і файрволи. Витрачаємо кілька хвилин на метушню з проводами, і все поїхало з першого разу. Ай, який я молодець. Домашній роутер поїде на дачу.
Потім повертаємося до основної мети візиту і пробуємо реалізувати вихідний задум, покладаючись на наявність обіцяних +5 VSB на роз'ємі ІК-порту.
Дістаємо наш конструктор, збираємо і включаємо. Темно і тихо, але пахне поки не димом, а все ще духом експерименту. Шукаємо перемичку PS2_USB_PWR1. Чорт, вона під воздуховодом кулера. Розібравши на час наш керований вектор тяги (див. habrahabr.ru/post/214707 / ), пробуємо її так і сяк. Нічого не виходить.
Як говориться, прочитайте, нарешті, інструкцію. На стор 26 керівництва P4i65G в розділі 3.3.3 ACPI Configuration з пристроїв згадані Ring-In (модем), PCI (Wake-on-LAN) і PS / 2 (клавіатура). Порт IR в явному вигляді не згадано. Хм. І про USB взагалі ні слова. Добре, пробуємо клавіатуру PS / 2. При правильному положенні перемички PS2_USB_PWR1 клавіатура PS / 2 в режимі STANDBY дійсно світить індикатором і виводить комп'ютер зі сплячки. Ага, в крайньому випадку позичимо харчування з PS / 2. Клавіатура USB в режимі STANDBY глуха, як риба об паркан, і будити комп'ютер явно не хоче. Значить, назва перемички PS2_ USB _PWR1 слід читати як PS2_PWR1, а обіцяні +5 VSB на роз'ємі IR — як жарт виробника. USB в стані STANDBY ця материнська плата не живить зовсім. Мабуть, розробники подумали, що ніхто і не помітить настільки цинічний мухлеж.


Перемичка PS2_USB_PWR1, яка насправді до USB відношення не має

Але як же живити наше господарство без неестетичних соплів, що стирчать з PS / 2 зовні корпусу? Знімаємо перемичку PS2_USB_PWR1 зовсім і підключаємо харчування нашої схеми висновку № 3. Включаємо. Сервер якось ображено і обурено пискнув, і стартувати, схоже, не збирається. І ось вже в повітрі почувся ледве вловимий Привид Чорнобиля… Мозок рефлекторно обчислює можлива витрата: одна материнська плата, один блок живлення, що там ще можна спалити? Не смертельно, але бігати в суботу за залізом, та ще й з відчуттям програшу ніяк не входило в плани великого комбінатора. Гаразд, швидко вирубуємо від гріха подалі і знову дивимося на наш електронний ребус.


Електронний ребус: скільки положень є у перемички?

Щось ми не врахували. Напевно, пятівольтового шину живлення, на якій сидить клавіатурний контролер і ще, напевно, півдюжини полезнейших пристроїв. Мабуть, це її вхід стирчить у нас прямо під носом у вигляді контакту № 2. Зліва під № 1 вихід з лінії +5 V, а справа під № 3 — вихід з +5 VSB. Спасибі, Капітан Очевидність, і де ж Вас носило 26 квітня 1986р. ? «Приїжджайте в Київ, ви будете вражені !» — Пожартував тоді один респектабельний джентльмен. «Ідіот, Запитай мені пятівольтового шину!» — Пищав мені комп'ютер…

Причому тут взагалі аварія на Чорнобильській АЕС? А ви згадайте себе у відомій позі Данила-майстра з кам'яним квіткою : скільки разів доводилося діставати шаманський бубон , з'єднувати бегемотів з носорогами і покладатися на авось ? Скільки разів доводилося включати те, чого включати не можна, і вимикати те, що краще б взагалі не чіпати? Я недавно читав якесь глобальне дослідження, з якого досить чітко випливало: значна частина аварій в ІТ-сфері відбувається з вини персоналу, в процесі того, що зазвичай прийнято називати регламентними роботами . Цей айтішной авось не російська, він загальносвітової. Ось і мене понесло туди ж. Авось, пронесе…


Чергова авось-схема

Ставимо перемичку в положення 1-2 (даємо звичайні +5 V на шину), а наш виріб заживлюємо прямо з контакту № 3 +5 VSB, позичивши «землю» у марного роз'єму ІК-порту. Обов'язково взуваємо клему в термоусадку або роз'єм BLS 1x1 (інакше обов'язково коротнет; це зазвичай не смертельно, але захист блоку живлення не дасть запустити машину). Робимо глибокий вдих і включаємо рубильник… Видихаємо під веселе переморгування світлодіода LED_100M. Вентилятори і вся інша механіка мовчки стоять і чекають. Telnet бадьоро видає головне меню контролера. Ура, тепер ми дійсно управляємо вимкненим комп'ютером! Привид Чорнобиля благополучно тане в повітрі, залишаючи біляста хмарина дитячих спогадів. Завіса.

Стоп, стоп, який знявся? Читач прекрасно знає, що так красиво сервери стартують тільки в казках. Тому так, між включенням рубильника і результатом було півгодинне повзання по підлозі навколо глухого послідовного порту, супроводжуване спробами перемикання швидкості / режиму потоку, чесання ріпи і командами UNIX, упереміж з матом. Тому що при обтискача обох кінців шнура я дивився на одну і ту ж картинку (обидва рази на ліву), зібравши замість нуль-модему звичайний прямий кабель…


Один роз'єм треба обжимати по лівій картинці, а інший по правій; порядок неважливий

Тьху! Виявивши настільки епічність косяк, я відразу підбадьорився, видавив з офісного степлера скріпку і взявся розгинати нею роз'єм назад. Переробивши кабель як треба, я отримав у нагороду консольне меню FreeNAS. Цугундер минув. Звичайно, був і самий чарівний момент перевірки, коли стоїть за півметра ящик слухняно глухнув і оживав, підкоряючись незримим командам з сервера в далекій країні. Помігают контрольні світлодіоди, телеметрія на цифровому введенні (зеленого світлодіода) показала «вниз» при включеному сервері і «вгору» при вимкненому, і все це під німе, але веселе переморгування індикатора LED_100M.
Крім косяка з нуль-модемним кабелем, експеримент вдався з першого разу.
Як того і вимагала її величність Інженерія.

На прощання ще один давно забутий, але улюблений баян з 90-их невідомого автора:
Було ортогонально Мірно погойдуючись на хвилях синусоїди, аргумент плавно ковзає в нескінченність. Повз стрімко проносяться гіпотенузи і катети. Зі свистом пролітають межі.
Повільно тащаться зворотні тригонометричні функції, поступаючись дорогу важливим Похідним Вищих порядків. На узбіччях безмовно стоять модулі та флагової підпростору. Зрідка промайне і зникне, тягнучи за собою свій хвіст, статечної ряд. На коротких ніжках, підстрибуючи і спотикаючись, біжать групи, алгебри, області D, Омега, супроводжувані зграйкою невгамовних ідеалів.
Вектор нормалі хилився до факторіальна, фазовий простір прагнуло до граничної точці, вже супремум з Інфінум, пораскінув потужністю, апроксимувались константою, сошки подрібніше, начебто директриси та центру мас вже скільки завгодно близько наблизилися до малому числу Дельта, всі погані точки витіснені без обмеження спільності, розподіл Дірака застосовано до системи зі зв'язками; наближалася збіжність. Ще що не наведені многочлени векторно множилися на матрицю переходу, а ті, хто не встигли, були задавлені експонентою. Всюди сновигали хвилясті координати. Маленькі безправні логарифми ганялися за Епсілон, безпорадно розмахуючи сумовною особливістю.
Було ортогонально.
У настала нестійкості там і сям лунав хрускіт кілець. На них діяла друга квадратична форма.
Фактор-простір, дошкуляє поточечной сходимостью, вешталося між подвійними і повторними інтегралами, які гордо бралися і акуратно підбирали вирази в елементарних функціях.
Гомоморфізми, вибравши куточок полокальнее, займалися любов'ю з матрицями Грама і Якобі.
Безперервність йшла своєю чергою. Комплексні змінні — охоронці порядку, звужуючись на клас еквівалентності, розкладалися в ряд Фур'є і швидко знижували порядок, якщо який-небудь умовний екстремум, уделала алгоритмом Евкліда, намагався послідовністю затиснути з двох сторін нескінченно малу. О-велике і о-мале, з точністю до величин першого порядку, оцінювали умовно збіжний ряд. М'якої періодичністю лилася тригонометрическая система функцій. За ними щосили залицятись узагальнені. Гладкість не змінювалася, лінійність не порушувалася, сингулярність виявлялася тільки в точках накопичення. Ріманово різноманіття подернулісь серпанком субгармонічності, імплікація з детерминантом мовчки задовольняли крайові умови.
Починався наступний крок. За ним підуть ще і ще, і так далі, до нескінченності. Так триватиме до тих пір, поки для будь-якого епсилон існує дельта, поки суми — Дарбу, правило — Лопиталя, принцип — Максимуму Модуля. Поки не прийде новий Гаусс, Коші, Лагранж, Піфагор, Ферма, Фур'є, новий Остроградський і не явить світу нове, невідоме раніше знання,
нове Одкровення,
нову Математику.

Завіса.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.