Настройте UART/COM в Linux с помощью виртуальной машины Hyper-V Generation 2
Я установил Linux Mint x64 в Hyper-V в качестве виртуальной машины 2-го поколения на рабочем столе Windows 10. Я хотел бы подключить USB-> последовательный преобразователь (FT232RL) к виртуальной машине, чтобы я мог программировать и отлаживать встроенное оборудование. В Windows FT232RL отображается как "последовательный порт USB (COMx)" и работает нормально. Когда я использую VirtualBox, я могу просто подключить или отключить COM-порт от виртуальной машины, и все работает просто отлично.
Виртуальные машины поколения 2 в Hyper-V не отображают COM-порты / именованные каналы в своих настройках, в отличие от виртуальных машин поколения 1, поэтому я не уверен, как получить доступ к соответствующим настройкам. Здесь есть статья ( более подробно), которая показывает, чего я хочу достичь, за исключением того, что я использую Linux вместо Windows в качестве гостевой ОС.
Итак, как бы я настроить это? Я уже взглянул на setserial в Linux, но пока не нашел решения.
0 ответов
Итак, похоже, что есть по крайней мере три способа заставить это работать, которые я со временем обнаружил.
Первый - это довольно просто использовать удаленный рабочий стол для доступа к виртуальной машине вместо средства запуска Hyper-V. Конечно, для этого требуется, чтобы гостевая ОС имела сервер удаленного рабочего стола, а брандмауэр открывался и имел IP-адрес в диапазоне для хоста. Используя RDP, вы можете перейти в "Показать параметры" -> "Локальные ресурсы" / "Локальные устройства и ресурсы" -> "Еще" -> "Выбрать порты". Затем подключитесь как обычно.
Второй - использовать COMpipe. Это включает использование настроек Hyper-v для настройки именованного канала на одном из COM-портов, например MySerialPort на COM1 (создает путь именованного канала:\.\ Pipe\MySerialPort). Затем в ОС хоста запустите администратор PS, введите команду вроде:
COMpipe.exe -b 115200 -c \\.\COM5 -p \\.\pipe\MySerialPort
где COM5 - это COM-порт на хост-ОС, которую вы пытаетесь использовать. Если все работает, вы сможете использовать COM1 в гостевой ОС и подключить его напрямую к COM5 на хосте. По опыту, ошибка GLE=5 означает, что именованный канал не создается в гостевой ОС.
Третье решение намного сложнее и описано здесь (резервная ссылка). Это включает в себя сборку hub4com и запуск com0com (также от имени администратора) и нескольких других сценариев с проектом hub4com как на гостевой, так и на основной ОС.