XenServer Guest PV - последовательный порт RS232
Есть ли способ, как перенаправить (сквозной) физический последовательный порт в систему XenGuest PV? Мне нужно иметь возможность настроить последовательное устройство с виртуальным сервером на XenServer 6.2.
Я ищу что-то вроде переадресации последовательного порта.
3 ответа
Возможно, вам уже поздно, но ваш вопрос может представлять общий интерес. Если ваш последовательный порт (или USB-порт или что-то еще) может быть идентифицирован как устройство PCI, вы можете избежать XS, чтобы взять под контроль это устройство и позволить управлять им с помощью гостевой ОС.
lspci
для вывода списка устройств и выбора устройства, представляющего ваш последовательный порт, в следующем примере идентификатор PCI последовательного порта - 02:00.001:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05) 02:00.0 Serial controller: MosChip Semiconductor Technology Ltd. PCIe 9922 Multi-I/O Controller 05:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
редактировать
/boot/extlinux.conf
и найдите строку "label xe", которая определяет вашу конфигурацию загрузки по умолчанию; в строке, начинающейся с "append /boot...", есть параметры; после "всплеска" добавьте еще один параметр как "pciback.hide=(02.00.0)", где вы должны поставить в скобки тот же идентификатор PCI, который вы нашли ранее. Если PCI-устройств, которые вы хотите передать гостю, несколько, перечислите их каждое, заключенное в скобки, разделенные пробелами, как в примере.label xe # XenServer kernel mboot.c32 append /boot/xen.gz mem=1024G dom0_max_vcpus=4 dom0_mem=752M,max:752M watchdog_timeout=300 lowmem_emergency_pool=1M crashkernel=64M@32M cpuid_mask_xsave_eax=0 console=vga vga=mode-0x0311 --- /boot/vmlinuz-2.6-xen root=LABEL=root-mvyxdjwc ro xencons=hvc console=hvc0 console=tty0 quiet vga=785 splash pciback.hide=(05:00.0) (02:00.0) (00:1d.0) --- /boot/initrd-2.6-xen.img
Сохраните файл, оформите
extlinux -i /boot
команда и перезагрузите ваш сервер.Теперь вы должны назначить устройства PCI на виртуальную машину, которой вы хотите управлять. Хотя есть и другие способы получить UUID виртуальной машины, вы можете перечислить их все с помощью
xe vm-list
команду и выберите правильный из полученного списка. В этом примере требуемый UUID: a82769ff-9dc4-56bb-61f9-57d741162a14uuid ( RO) : a82769ff-9dc4-56bb-61f9-57d741162a14 name-label ( RW): sersrv03.xyz.lan power-state ( RO): running
И, наконец, команда, которая говорит виртуальной машине взять на себя прямую ответственность за устройство (устройства) PCI, является следующей: вы помещаете UUID требуемой виртуальной машины и идентификаторы PCI устройств PCI. В этом примере перечислены два устройства PCI, разделенные запятой.
xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:00:1d.0 uuid=a82769ff-9dc4-56bb-61f9-57d741162a14
Запустите соответствующую виртуальную машину и проверьте, правильно ли обнаружено новое оборудование.
Этот метод происходит отсюда, благодаря Sotech для обмена.
Заметки
- Конечно, ваше устройство будет привязано к конкретной виртуальной машине.
- Если ваше приложение зависит от этого конкретного устройства PCI, забудьте о перемещении виртуальной машины в другое место.
- Если ваше устройство не указано как PCI, вам не повезло.
- Не все устройства подходят для такого управления. У меня были плохие времена с ИБП, управляемым USB, который отказывался управлять с этим видом сквозного прохождения.
- Я согласен, что предложение TomTom является наиболее общим и каноническим способом решения проблемы с последовательным портом.
Невозможно. Я предлагаю получить последовательный интерфейс Ethernet, а затем использовать его. Виртуализация и последовательные порты не совсем совместимы.
Я пытался сделать RS-232 сквозным через XenServer. И мне не удалось. Наконец, самым простым способом было купить IP COM-устройство. Это делает ВМ независимой от хост-сервера, и вы можете использовать миграцию ВМ. Я был удивлен стабильностью этого устройства. Без вопросов.