Ip kvm своїми руками

Вирішено було виправити це прикре непорозуміння і як можна дешевше і компактніше. Почнемо зі стереотипів Raspberry Pi і Arduino, а в наступній статті буде продовження вже на інше залізо.

Отже, що нам знадобиться:

Ip kvm своїми руками

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

2. VGA to AV Конвертер:

Ip kvm своїми руками

Ip kvm своїми руками

Зверніть увагу! Потрібен саме VGA to AV, а не навпаки.

3. Arduino UNO, саме UNO, так як на ній є чіп Atmega16u2, він нас цікавить в першу чергу. Ось він поруч з USB портом, так само бувають Ардуіно з чіпом Atmega8u2 підійдуть і з тим і з тим.

Ip kvm своїми руками

4. Ну і звичайно Raspberry Pi, у мене був версії 2 b тому все написане в цій статті актуально саме для нього, але в цілому думаю не повинно виникнути особливих складнощів і з іншими моделями малини.

заливаємо дистрибутив

Переходимо в консоль, оновлюємо пакети:

Перевіряємо чи визначилася плата:

Повинно видати щось на кшталт: / dev / video0.

Встановлюємо Motion, трансляцію захопленого зображення будемо вести саме через нього:

Редагуємо конфиг автозапуску:

У рядку start_motion_daemon ставимо 'yes'. Зберігаємо зміни Ctrl + x, y, Enter.

Редагуємо конфиг самого motion (а):

Міняємо значення параметрів як зазначено далі:

Параметр визначає запуск програми в якості служби:

Частота захоплення кадрів:

Відключаємо збереження скріншотів:

Якість передачі зображення:

Частота передачі кадрів:

Скасування обмеження на підключення з інших ip

Зберігаємо зміни Ctrl + x, y, Enter.

Підключаємося браузером до порту 8081 распберрі і бачимо сірий або синій прямокутник з біжучим знизу часом.

Ip kvm своїми руками

Ip kvm своїми руками

Що ж передавати зображення навчилися, залишилася справа за малим - передати управління.

передача управління

Для цього, як ви вже здогадалися, будемо використовувати Ардуіно. Вибір припав на Arduino UNO неспроста, там є дуже потрібна для наших цілей мікросхема з назвою Atmega16u2, тільки завдяки їй мені вдалося змусити БІОС комп'ютера визначити arduino як USB клавіатуру. За замовчуванням в складі плати Ардуіно ця мікросхема виконує роль USB to Serial конвертера для заливки прошивки в мікроконтролер Atmega328p, велика прямокутна мікросхема на платі Ардуіно. По суті ж Atmega16u2 є той же мікро контролером, але з важливою відмінністю, вона здатна безпосередньо працювати з шиною USB. Atmega16u2, при наявності потрібної прошивки, може емулювати практично будь-який USB пристрій. Розумієте до чого я веду? Ми прошу це диво інженерної думки і змусимо працювати на благо суспільства.

прошивка Atmega16u2

На просторах інтернету була знайдена прошивка. яка перетворює Atmega16u2 в USB клавіатуру приймаючу команди, певного виду, через Serial Port.

Інструкція в даній статті написана для windows, лінуксоїди ж можуть скористатися цією.

І так приступимо, для прошивки потрібно утиліта від виробника під назвою Flip. Качаємо, встановлюємо, запускаємо і ось перед нами вікно програми:

Ip kvm своїми руками

Спочатку кнопки (галки) не активні, це нормально, підключаємо Ардуіно до комп'ютера і замикаємо - розмикаємо два крайніх контакту з боку USB порту, RESET і GND.

Ip kvm своїми руками

В системі повинно з'явитися новий пристрій під назвою, як не дивно, ATmega16u2 встановлюємо драйвер (в папці з програмою), вибираємо в програмі flip вкладку «Settings» → «Communication» → «USB» → «open», кнопки повинні стати активними. Про всяк випадок можна зробити бекап прошивки, щоб можна було все повернути на місце. В меню «File» натискаємо «Load HEX File», програма вимоглива до шляхів, найкраще покласти файл прошивки в корінь диска C. вибираємо потрібний hex файл з прошивкою, перевіряємо чи варті галки «Erase», «Program», «Verify» і натискаємо «Run». Відключаємо - підключаємо arduino і вуаля ... Тепер ми більше не зможемо завантажувати прошивки в Ардуіно через вбудований USB, зате отримали відмінну клавіатуру без кнопок.

Не переживайте з приводу прошивки arduino, прошивку можна буде завантажити з Arduino IDE через окремий USB To TTL адаптер, хоча треба сказати, тепер це буде менш зручно.

Підключаємо USB To TTL адаптер, наприклад такий:

Ip kvm своїми руками

Нам знадобляться Білий, зелений і чорний контакти це RX, TX і GND відповідно, підключаємо їх до пінам з такими ж позначками на Ардуіно, тільки навпаки RX до TX, а TX до RX. Червоний контакт використовувати не слід!

Підключаємо USB To TTL до комп'ютера, встановлюємо драйвера, в диспетчері пристроїв повинен з'явитися новий COM Port. Відкриваємо arduino IDE і виставляємо: Плата - Arduino / Genuino Uno, Порт - наш новоспечений послідовний порт.

Приступаємо до прошивці arduino

Додамо необхідну бібліотеку в arduino IDE: Переходимо по посиланню github.com/SFE-Chris/UNO-HIDKeyboard-Library натискаємо «Clone or download» → «Download ZIP». далі в arduino IDE вибираємо вкладку «Скетч» → «Підключити бібліотеку» → «Додати .ZIP бібліотеку» і вибираємо тільки що завантажений zip архів.

Підготовка закінчена, переходимо безпосередньо до прошивці. Копіюємо мою писанину:

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

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

Фінішна пряма

Відкриваємо консоль на распберрі і пишемо:

Відкриється меню налаштування распберрі, вибираємо «Advanced Options» → «Serial» і вибираємо «No».

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

Встановлюємо програму minicom.

Minicom - простенька програма для роботи з serial портом.

Задаємо права на доступ до пристрою, / dev / ttyAMA0 - це той самий серіал порт.

Відкриється меню програми, вибираємо пункт «Serial port setup», відкриється ще одне меню, вибираємо «Serial Device» натисканням на клавішу A, прописуємо / dev / ttyAMA0, натискаємо Enter, далі вибираємо пункт Bps / Par / Bits під літерою E, з'являється чергове меню натискаємо C і Q рядок Current: повинна виглядати ось так «9600 8N1» натискаємо Enter. Переконаємося що в рядках F - Hardware Flow Control: і G - Software Flow Control: варто No, в загальному все повинно бути як на скріншоті нижче, натискаємо Enter.

Ip kvm своїми руками

Збережемо ці настройки як стандартні параметри «Save setup as dfl» і закриваємо «Exit from Minicom».

підключення

Їдемо далі, тепер у нас практично все готово, залишилося тільки підключити Ардуіно до serial порту малини, от якось так:

Ip kvm своїми руками

Тут є один момент, у Ардуіно і распберрі різні рівні напруги і по ідеї їх потрібно узгодити, раджу ознайомитися зі статтею.

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

Ip kvm своїми руками

Або хоча б зібрати дільник напруги на резисторах.

Ip kvm своїми руками

Все готово, можна починати.

Перевіряємо всі з'єднання, вкючаются raspberry pi, переходимо в консоль малини. Відразу обмовлюся я підключався до малині через ssh, як клієнт використовував KiTTY (модифіковану версію PuTTY), це важливо тому з іншими терміналами значення переданих клавіш можуть бути іншими і відповідно потрібно буде зробити поправку на вітер - поміняти номер переходу switch case.

Загалом передаю вам в руки як то кажуть «as is». Що ж на цьому мабуть закінчу, саморобний IP KVM готовий.

На останок опишу що вийшло в сухому залишку.

- Тонка настройка
Можна перехоплювати практично будь-які комбінації і призначати на них практично будь-які клавіші аж до KEYBOARDPOWER і VOLUMEUP, до речі можливі значення можна подивитися в заголовки HIDKeyboard.h, а можна і додати свої.

To be continued ...

Схожі статті