Налаштування послідовного порту Hyper-V: покрокові інструкції

Ми вже знайшли час, щоб розглянути способи доступу до COM-портів у віртуальній машині (ви можете знайти статтю тут.) Хоча Serial to Ethernet Connector є чудовим рішенням для COM у разі пробросу послідовного порту в Hyper-V, варто також ознайомитися з кількома іншими варіантами додавання COM-порту до послідовного порту Hyper-V — про які ми розповімо нижче.

Як отримати доступ до послідовного порту в Hyper-V

Якщо вам потрібно підключитися до послідовного порту віртуальної машини, вам знадобиться Serial Port Redirector. Виконайте ці кроки, щоб дізнатися, як користуватися цим інструментом і використовувати його для доступу до віртуального порту:

1. Отримайте Serial to Ethernet Connector як на віртуальній машині, так і на хостовій операційній системі.

2. Почніть із відкриття застосунку у VM. Відкрийте меню “Connections” і виберіть “New Server Connection”.

Нове підключення до сервера

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

Примітка: поставте прапорець, щоб зробити порт віртуальним.

послідовний до Ethernet-конектор - створити COM-порт сервера

4. Натисніть «Створити».

5. Тепер на головній машині перемкніться на Serial to Ethernet. Відкрийте «Віддалені підключення».

6. Якщо все було налаштовано правильно, порт віртуальної машини має з’явитися у списку. Виберіть його.

7. Налаштуйте параметри підключення клієнта, такі як порт, який буде використовуватися для отримання даних.

8. Натисніть «Створити» ще раз — і все готово.

Відеоурок:

Як підключити послідовне обладнання до віртуальної машини за допомогою PipeDream

Для користувачів Virtual Machine, які хочуть додати COM-порт до послідовних портів Hyper-V, PipeDream є ідеальним варіантом. Цей інструмент послідовного порту в Hyper-V працює через той самий сервер, на якому розміщено Hyper-V (який є хостом віртуалізації), заповнюючи прогалину між віртуальними машинами та послідовними портами.

PipeDream працює шляхом передавання даних, отриманих від послідовного обладнання (будь-чого, що підключено до COM-порту), і допомагає Virtual Machine розпізнавати та отримувати до нього доступ (і навпаки).

Крім того, PipeDream не потребує клієнтського компонента для роботи на сервері, що робить passthrough підтримки послідовних портів Hyper-V ще зручнішим. PipeDream не вимагає жодного встановлення (пристрою, програмного забезпечення чи іншого) на віртуальній(их) машині(ах), що беруть участь — таким чином максимально підвищуючи сумісність із застарілими ОС/ПЗ та забезпечуючи надійну підтримку операційних систем XP (і старіших).

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

Відмова від відповідальності: Програмне забезпечення PipeDream для послідовного порту в Hyper-V сумісне з Microsoft Hyper-V, але є інструментом стороннього розробника і не має жодного відношення до Microsoft. Наше використання терміна «Hyper-V» не має на меті схвалення або афіліацію з Microsoft Corporation.

Для тих, у кого віртуальна машина Hyper-V покоління 1

Дотримуйтесь покрокового посібника нижче, щоб дізнатися, як додати COM-порт до Hyper-V.

1. Запустіть диспетчер Hyper-V і відкрийте параметри гостьової машини (віртуальної машини, яку ви хочете налаштувати);

2. Виберіть COM1 або COM2 у новому вікні (розташованому в лівому списку обладнання);

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

4. Підключіть канал із назвою “PipeDream” до послідовного порту гостьової системи (зробіть це, натиснувши на Named pipe, і введіть “PipeDream” як назву каналу — див. зображення нижче для довідки);

5. Для тих, у кого серійний пристрій знаходиться на віддаленому комп’ютері, переконайтеся, що встановлено прапорець «Віддалений комп’ютер», і введіть назву машини;

6. Натисніть OK;

назва труби

Як налаштувати для віртуальних машин Gen-2

Для тих, хто використовує віртуальні машини Gen-2, налаштування pipe, показані вище, не можна налаштувати за допомогою GUI, тому користувачі повинні застосовувати команди Powershell.

1. Відкрийте сеанс Powershell;

2. Виконайте Get-VM;

3. Скопіюйте назву віртуальної машини з потрібним послідовним портом;

4. Виконайте Set-VMComPort -Number < 1 або 2, для послідовного порту COM1 або COM2 > -Path \.pipePipeDream

5. Використайте Get-VMComPort, щоб підтвердити створення каналу (див. знімок екрана, показаний нижче, використовуючи ВМ з назвою “SillyRabbit” як приклад).

підтвердити створення каналу

Але ж для ВМ Gen 2 немає COM-портів, так...?

Відверто кажучи, відповідь — це суміш «так» і «ні» (де «ні» переважно стосується можливостей стандартного пробросу послідовного порту Hyper-V.) Захоплива новина полягає в тому, що це можна налаштувати!

Наведені нижче знімки екрана зроблено з ВМ Windows 8 (зокрема з використанням носія, створеного в попередньому розділі, де було додано драйвер для програмної клавіатури.)

У наведеному нижче прикладі ви побачите, що налаштування для базової віртуальної машини покоління 2 не мають параметрів COM-порту.

Налаштування Hyper v

Причина полягає в тому, що незалежно від того, чи доступні послідовні порти, чи ні, Диспетчер Hyper-V Gen-2 ніколи не відображає COM-порти.

Нижче ми зазирнемо всередину того, що може сказати PowerShell:

PowerShell

Зверніть увагу, як PowerShell показує два доступні COM-порти? Однак, якщо ви відкриєте Диспетчер пристроїв гостьової машини, для ВМ не буде показано жодних COM-портів.

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

налаштувати шлях до каналу

Як згадувалося раніше, під час перевірки «Диспетчера пристроїв» гостьової машини COM1 не відображається — але щойно віртуальну машину буде вимкнено та перезапущено, потрібний COM-порт стане доступним у списку (див. нижче).

диспетчер пристроїв COM-порт

Для тих, хто має досвід із налагодженням ядра, решта процесу досить проста й зрозуміла — з лише одним незначним винятком, специфічним для віртуальних машин Gen-2 (ще більш конкретно — комп’ютерів на основі UEFI, що використовують Secure Boot.)

Через msconfig ми ввімкнули налагодження ядра для VM на COM1. Однак після того, як ми натиснули OK, з’являється таке повідомлення про помилку:

конфігурація системи

Чому? Тому що політика Windows стверджує, що Secure Boot і налагодження ядра несумісні. Це означає, що користувачам слід вимкнути віртуальну машину, а потім вимкнути Secure Boot у налаштуваннях мікропрограми.

увімкнути Secure Boot
  1. Знову скористайтеся msconfig, щоб увімкнути налагодження ядра (цього разу буде успішно);
  2. Перезапустіть віртуальну машину;
  3. Підключіться до каналу через windbg батьківського розділу;
підключитися до каналу

Висновок

Підсумовуючи, хоча Hyper-V не забезпечує прямої передачі фізичного COM-порту у віртуальні машини, послідовний зв’язок усе ж можна організувати за допомогою іменованих каналів, налаштування PowerShell і спеціалізованих інструментів перенаправлення. Ці методи дають змогу працювати як із VM Gen 1, так і Gen 2 для таких завдань, як підтримка застарілого програмного забезпечення, інтеграція з апаратним забезпеченням або налагодження.

У сценаріях, коли прямий доступ до послідовного порту є непрактичним, ефективною альтернативою може бути Serial to Ethernet Connector. Перетворюючи послідовні дані на мережевий трафік, такі пристрої дають змогу отримувати доступ до обладнання на базі COM через TCP/IP і легко надавати його у спільне користування віртуальним машинам. У поєднанні з програмним забезпеченням для перенаправлення послідовних портів цей підхід забезпечує більшу гнучкість і спрощує доступ до фізичних послідовних пристроїв у віртуалізованих середовищах Hyper-V.