有没有办法如何转发(直通)物理串行端口到XenGuest光伏系统? 我需要在XenServer 6.2上configuration具有虚拟服务器的串行设备。
我正在寻找一些像串口转发。
对你来说可能已经太迟了,但你的问题可能是普遍的兴趣。 如果您的串口(或USB端口或其他)可以被识别为PCI设备,则可以避免XS来控制该设备,并由来宾操作系统进行pipe理。
lspci列出设备,并select哪一个代表您的串行端口,在以下示例中,串行端口PCI标识是02:00.0
01: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”行,标识您的启动默认configuration; 在以“append / boot …”开始的行上,有参数; 在“splash”之后添加另一个参数为“pciback.hide =(02.00.0)”,在这里你应该在括号中join你之前find的相同的PCI ID。 如果要传递给guest虚拟机的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设备分配给您要pipe理它们的VM。 尽pipe获取虚拟机的UUID有更多的方法,但您可以使用xe vm-list命令列出所有这些,并从结果列表中select正确的一个。 在这个例子中,想要的UUID是a82769ff-9dc4-56bb-61f9-57d741162a14
uuid ( RO) : a82769ff-9dc4-56bb-61f9-57d741162a14 name-label ( RW): sersrv03.xyz.lan power-state ( RO): running
最后,告诉虚拟机对PCI设备进行直接充电的命令如下:在虚拟机的UUID和PCI设备的PCI标识符中inputUUID。 在这个例子中,列出了两个PCI设备,用逗号分开。
xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:00:1d.0 uuid=a82769ff-9dc4-56bb-61f9-57d741162a14
启动相关的VM并检查新硬件是否被正确检测到。
这个方法来自这里 ,感谢sotech分享。
笔记
不可能。 我build议获得串口到以太网接口,然后使用那个。 虚拟化和串行端口不是真正的兼容。
我试图让RS-232通过XenServer。 而我没有成功。 最简单的方法是购买IP COM设备 。 它使VM独立于主机服务器,您可以使用VM迁移。 我很惊讶这个设备的稳定性。 没有问题。