Подключение к последовательному порту с VMWare ESXi и Ubuntu

Использование VMWare ESXi 5.0.0, с гостевой ОС Ubuntu 12.04.3, обновлено до даты 05 января 2014 года.

Я добавил «Последовательный порт 1» в гостевую ОС Ubuntu 12.04 (назовем его «MyUbuntuPC»).
Последовательный порт 1 определен для использования физического последовательного порта из пути: /dev/char/serial/uart0 (это единственный доступный параметр из раскрывающегося списка)
Последовательный порт определяется как «Подключен» и «подключается при включении».

Конфигурации BIOS для гостевой ОС , относящиеся к последовательному порту, действительны (IMHO): «Последовательный порт A» и «Последовательный порт B» настроены на «Авто». «Режим» для последовательного порта B настроен на «Обычный» (другие параметры: «IrDA», «ASK-IR» и «FIR»).

Некоторая дополнительная информация через командную строку, выполненную на гостевой ОС / Ubuntu:

 root@MyUbuntuPC:~# dmesg | grep ttyS [ 0.621913] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 0.693788] 00:0a: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A [ 4.887004] ttyS2: LSR safety check engaged! [ 4.887466] ttyS2: LSR safety check engaged! [ 4.888102] ttyS3: LSR safety check engaged! [ 4.888557] ttyS3: LSR safety check engaged! root@MyUbuntuPC:~# ll /dev/ttyS{0,1} crw-rw---- 1 root dialout 4, 64 Jan 5 18:29 /dev/ttyS0 crw-rw---- 1 root dialout 4, 65 Jan 5 18:29 /dev/ttyS1 root@MyUbuntuPC:~# groups root root : root dialout root@MyUbuntuPC:~# setserial -g /dev/ttyS{0..3} /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4 /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3 /dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 4 /dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 3 root@MyUbuntuPC:~# stty -F /dev/ttyS0 -g 500:5:cbd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 root@MyUbuntuPC:~# stty -F /dev/ttyS0 -a speed 9600 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke root@MyUbuntuPC:~# stty -F /dev/ttyS1 -g 500:5:cbd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 root@MyUbuntuPC:~# stty -F /dev/ttyS1 -a speed 9600 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke root@MyUbuntuPC:~# cu -d -l /dev/ttyS0 -s 115200 cu: fconn_open: Opening port /dev/ttyS0 (speed 115200) cu: fconn_set: Changing setting to 0, 0, 2 Connected. ~.cu: Exit status 0 cu: fconn_close: Closing connection Disconnected. 

Я разделил каждую команду и это соответствующий вывод с новым символом строки для лучшей читаемости. Как видно, процесс cu пишет «Connected», но я могу ждать несколько часов, и ничего не произойдет.

У меня есть другой компьютер с Ubuntu 12.04.2 LTS (назовем его «nonVirtual Ubuntu»). Он не запускается на виртуальной машине. Он запускает процесс ser2net который позволяет моему виртуальному Ubuntu ( успешно ) подключаться к последовательному порту «nonVirtual Ubuntu» через сеть. Конфигурационный файл ser2net содержит строку:

 3000:telnet:1800:/dev/ttyS0:115200 8DATABITS NONE 1STOPBIT banner 

Дополнительная информация с командной строкой:

 root@nonVirtual Ubuntu:~# dmesg | grep ttyS [ 0.443093] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 0.464725] 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 0.484971] 0000:00:16.3: ttyS4 at I/O 0xf0e0 (irq = 19) is a 16550A [ 0.507168] 0000:02:00.0: ttyS5 at I/O 0xe030 (irq = 16) is a ST16650V2 [ 0.529410] 0000:02:00.1: ttyS6 at I/O 0xe020 (irq = 17) is a ST16650V2 [ 0.551638] 0000:02:00.2: ttyS7 at I/O 0xe010 (irq = 18) is a ST16650V2 [ 0.573873] 0000:02:00.3: ttyS8 at I/O 0xe000 (irq = 19) is a ST16650V2 

Я не понимаю, почему процесс cu не может подключиться к плате, которая подключена к последовательному порту на виртуальной машине. (Я также пытался подключиться с помощью /dev/ttyS1 ).
Думаю, это связано с взаимодействием Linux с VMWare ESXi?