Issues getting serial to work
-
G'day, can someone please help me before I go insane. I had already typed out a post and then when I went to post it asked me to confirm my email (despite posting before) which made me lose everything I typed which has made this even more frustrating after spending hours trying to get this working...
Ok, so I have 2 hypevisors.
I've managed to get serial connection working on it very easily in just a few minutes.
Machine 1
dmesg | grep tty [ 0.000000] Command line: root=LABEL=root-pjvhsg ro nolvm hpet=disable console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles xen-pciback.hide=(0000:21:00.0) [ 0.436953] Kernel command line: root=LABEL=root-pjvhsg ro nolvm hpet=disable console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles xen-pciback.hide=(0000:21:00.0) [ 0.491878] console [tty0] enabled
All I needed to do was edit the grub.cfg file, reboot and it showed up straight away on my laptop connected via serial hub.
cat /boot/efi/EFI/xenserver/grub.cfg serial --unit=0 --speed=115200 terminal_input serial console terminal_output serial console set default=0 set timeout=5 if [ -s $prefix/grubenv ]; then load_env fi if [ -n "$override_entry" ]; then set default=$override_entry fi menuentry 'XCP-ng' { search --label --set root root-pjvhsg multiboot2 /boot/xen.gz dom0_mem=4096M,max:4096M watchdog ucode=scan dom0_max_vcpus=1-16 crashkernel=256M,below=4G com1=115200,8n1 console=com1,vga vga=mode-0x0311 module2 /boot/vmlinuz-4.19-xen root=LABEL=root-pjvhsg ro nolvm hpet=disable console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles xen-pciback.hide=(0000:21:00.0) module2 /boot/initrd-4.19-xen.img }
Machine 2
This one is a bit different as it doesn't have any serial headers on the motherboard so I've bought a PCIe serial/parallel card.
lspci -v | grep -A 14 'Serial\|Parallel' 0b:00.0 Serial controller: MosChip Semiconductor Technology Ltd. PCIe 9912 Multi-I/O Controller (prog-if 02 [16550]) Subsystem: Asix Electronics Corporation (Wrong ID) Device 1000 Flags: fast devsel, IRQ 30 I/O ports at b030 [size=8] Memory at 91f00000 (32-bit, non-prefetchable) [size=4K] Memory at 91f01000 (32-bit, non-prefetchable) [size=4K] Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+ Capabilities: [78] Power Management version 3 Capabilities: [80] Express Legacy Endpoint, MSI 00 Capabilities: [100] Virtual Channel Capabilities: [800] Advanced Error Reporting Kernel driver in use: serial 0b:00.1 Serial controller: MosChip Semiconductor Technology Ltd. PCIe 9912 Multi-I/O Controller (prog-if 02 [16550]) Subsystem: Asix Electronics Corporation (Wrong ID) Device 1000 Flags: fast devsel, IRQ 31 I/O ports at b020 [size=8] Memory at 91f02000 (32-bit, non-prefetchable) [size=4K] Memory at 91f03000 (32-bit, non-prefetchable) [size=4K] Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+ Capabilities: [78] Power Management version 3 Capabilities: [80] Express Legacy Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting Kernel driver in use: serial 0b:00.2 Parallel controller: MosChip Semiconductor Technology Ltd. PCIe 9912 Multi-I/O Controller (prog-if 03 [IEEE1284]) Subsystem: Asix Electronics Corporation (Wrong ID) Device 2000 Flags: fast devsel, IRQ 11 I/O ports at b010 [disabled] [size=8] I/O ports at b000 [disabled] [size=8] Memory at 91f04000 (32-bit, non-prefetchable) [disabled] [size=4K] Memory at 91f05000 (32-bit, non-prefetchable) [disabled] [size=4K] Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [78] Power Management version 3 Capabilities: [80] Express Legacy Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting
dmesg | grep tty [ 0.000000] Command line: root=LABEL=root-fsidtl ro nolvm hpet=disable console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles xen-pciback.hide=(0000:01:00.0)(0000:01:00.1)(0000:0a:00.0)(0000:09:00.0) pci=realloc=on [ 0.770474] Kernel command line: root=LABEL=root-fsidtl ro nolvm hpet=disable console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles xen-pciback.hide=(0000:01:00.0)(0000:01:00.1)(0000:0a:00.0)(0000:09:00.0) pci=realloc=on [ 0.837499] console [tty0] enabled [ 6.010629] 0000:0b:00.0: ttyS4 at I/O 0xb030 (irq = 30, base_baud = 115200) is a ST16650V2 [ 6.033192] 0000:0b:00.1: ttyS5 at I/O 0xb020 (irq = 31, base_baud = 115200) is a ST16650V2
I've used screen to determine the connection between the serial hub and machine is ok.
screen /dev/ttyS5 115200
I could see text I entered appear in the putty serial connection when I was typing via SSH so it appears the cable is ok, serial hub is ok and PCIe card is ok.
So I made the exact same changes to my grub.cfg (Slight differences in PCI settings as well as the ports used by COM# and ttyS#)
cat /boot/efi/EFI/xenserver/grub.cfg serial --unit=5 --speed=115200 terminal_input serial console terminal_output serial console set default=0 set timeout=5 if [ -s $prefix/grubenv ]; then load_env fi if [ -n "$override_entry" ]; then set default=$override_entry fi menuentry 'XCP-ng' { search --label --set root root-fsidtl multiboot2 /boot/xen.gz dom0_mem=4272M,max:4272M watchdog ucode=scan dom0_max_vcpus=1-16 crashkernel=256M,below=4G com6=115200,8n1 console=com6,vga vga=mode-0x0311 module2 /boot/vmlinuz-4.19-xen root=LABEL=root-fsidtl ro nolvm hpet=disable console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles xen-pciback.hide=(0000:01:00.0)(0000:01:00.1)(0000:0a:00.0)(0000:09:00.0) pci=realloc=on module2 /boot/initrd-4.19-xen.img }
Upon reset putty shows a single weird character as if it was trying to establish a connection or something but then I don't get any sort of output or input.
Please help.
Cheers.
-
I have managed to get a serial connection to the second machine with the following grub.cfg configuration.
serial --unit=4 --port=0xb030 --speed=115200 terminal_input serial console terminal_output serial console set default=0 set timeout=5 if [ -s $prefix/grubenv ]; then load_env fi if [ -n "$override_entry" ]; then set default=$override_entry fi menuentry 'XCP-ng' { search --label --set root root-fsidtl multiboot2 /boot/xen.gz dom0_mem=4272M,max:4272M watchdog ucode=scan dom0_max_vcpus=1-16 crashkernel=256M,below=4G console=com5,115200 console=com5,vga vga=mode-0x0311 module2 /boot/vmlinuz-4.19-xen root=LABEL=root-fsidtl ro nolvm hpet=disable console=hvc0 console=ttyS4,115200 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles xen-pciback.hide=(0000:01:00.0)(0000:01:00.1)(0000:0a:00.0)(0000:09:00.0) pci=realloc=on module2 /boot/initrd-4.19-xen.img }
I believe the trick was adding
console=ttyS4,115200
Unfortunately, I still don't get the grub boot selection to screen to show on reboot like it does on the first machine.
Can anyone explain why?
I had already tried changing COM1 to COM5 in the multiboot line. Having access to the boot loader could be useful if I ever had issues booting and needed to access the grub command line. Also tried changing COM5 to ttyS4 as well. Is there a specific serial= command I should use instead there?
-
I don't think you need the
--unit
declaration. Tryserial --port=pci,0b:00.0
perhaps?