我在不止一个主机上有这个问题,所以具体的硬件不是问题。
在默认配置中,裸金属Ubuntu 12并不是在唯一的串口上创建登录进程。串口与固件一起正确工作。它与Grub2一起正确工作。我甚至将串行线路连接到两个不同的外部客户端,所以问题既不是硬件,也不是远程客户端。
当最终启动时,系统无法创建登录进程。
root@xenpro3:~# ps ax | grep tty
1229 tty4 Ss+ 0:00 /sbin/getty -8 38400 tty4
1233 tty5 Ss+ 0:00 /sbin/getty -8 38400 tty5
1239 tty2 Ss+ 0:00 /sbin/getty -8 38400 tty2
1241 tty3 Ss+ 0:00 /sbin/getty -8 38400 tty3
1245 tty6 Ss+ 0:00 /sbin/getty -8 38400 tty6
1403 tty1 Ss+ 0:00 /sbin/getty -8 38400 tty1
1996 pts/0 S+ 0:00 grep --color=auto tty
root@xenpro3:~# dmesg | grep tty
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.2.0-30-generic root=/dev/mapper/xenpro3-root ro console=ttyS0,115200n8
[ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.2.0-30-generic root=/dev/mapper/xenpro3-root ro console=ttyS0,115200n8
[ 0.000000] console [ttyS0] enabled
[ 2.160986] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 2.203396] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[ 2.263296] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 2.323102] 00:09: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
root@xenpro3:~# uname -a
Linux xenpro3 3.2.0-30-generic #48-Ubuntu SMP Fri Aug 24 16:52:48 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
root@xenpro3:~#
我已经尝试过在/etc/initab中放置一个ttyS0.conf文件,这解决了这个问题,但在Xen之上启动Ubuntu时,我仍然无法将它作为域0来运行。在引导Xen时,我的串行行输出如下所示
/dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]
SSL tunnels disabled, see /etc/default/stunnel4
[ 18.654627] XENBUS: Unable to read cpu state
[ 18.659631] XENBUS: Unable to read cpu state
[ 18.664398] XENBUS: Unable to read cpu state
[ 18.669248] XENBUS: Unable to read cpu state
* Starting Xen daemons
[ OK ]
mountall: Disconnected from Plymouth
此时,串行线路不再连接到进程。Xen本身运行得很好。Dmesg给了我一长串
[ 120.236841] init: ttyS0 main process ended, respawning
[ 120.239717] ttyS0: LSR safety check engaged!
[ 130.240265] init: ttyS0 main process (1631) terminated with status 1
[ 130.240294] init: ttyS0 main process ended, respawning
[ 130.242970] ttyS0: LSR safety check engaged!
这并不奇怪,因为我看到了
root@xenpro3:~# ls -l /dev/ttyS?
crw-rw---- 1 root tty 4, 64 Nov 7 14:04 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Nov 7 14:04 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Nov 7 14:04 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Nov 7 14:04 /dev/ttyS3
crw-rw---- 1 root dialout 4, 68 Nov 7 14:04 /dev/ttyS4
crw-rw---- 1 root dialout 4, 69 Nov 7 14:04 /dev/ttyS5
crw-rw---- 1 root dialout 4, 70 Nov 7 14:04 /dev/ttyS6
crw-rw---- 1 root dialout 4, 71 Nov 7 14:04 /dev/ttyS7
crw-rw---- 1 root dialout 4, 72 Nov 7 14:04 /dev/ttyS8
crw-rw---- 1 root dialout 4, 73 Nov 7 14:04 /dev/ttyS9
如果手动将/dev/ttyS0
组更改为dialout
,则会将其更改回。我没有修改默认的udev规则,所以我看不出这个问题是从哪里来的。
由衷地,
分段断层加载
发布于 2012-11-08 17:27:27
这个问题的答案是在/etc/init
中为Xen所需的/dev/hvc0
串行控制台提供一个“条目”。
怎么做?
无论是作为root用户还是使用sudo命令,打开一个终端并切换到/etc/init目录。复制tty1的文件,即/etc/init/tty1.conf
到/etc/init/hvc0.conf
。然后在您最喜欢的文本编辑器中编辑新的hvc0
文件,用hvc0
替换所有出现的tty1
。下次使用Xen启动时,您的串行终端现在应该可以正常工作了。您应该能够登录到dom0
并使用命令行,或者通过按Ctrl-a
3次,切换到与系统管理程序的直接串行通信。
由衷地,
分段断层加载
发布于 2016-10-12 21:02:05
我有这个问题。在我的例子中,从/etc/init/删除ttyS0.conf并重新启动解决了问题。
我使用了一些其他人提供的不同的ubuntu映像。在我所有的其他VM中,ttyS0.conf不存在。我不知道它是怎么被放在我的“问题”VM上的
https://askubuntu.com/questions/214263
复制相似问题