首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ubuntu 12在Xen上运行时不会产生串行ttyS0

Ubuntu 12在Xen上运行时不会产生串行ttyS0
EN

Ask Ubuntu用户
提问于 2012-11-07 19:13:07
回答 2查看 4.2K关注 0票数 2

我在不止一个主机上有这个问题,所以具体的硬件不是问题。

在默认配置中,裸金属Ubuntu 12并不是在唯一的串口上创建登录进程。串口与固件一起正确工作。它与Grub2一起正确工作。我甚至将串行线路连接到两个不同的外部客户端,所以问题既不是硬件,也不是远程客户端。

当最终启动时,系统无法创建登录进程。

代码语言:javascript
运行
复制
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时,我的串行行输出如下所示

代码语言:javascript
运行
复制
/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给了我一长串

代码语言:javascript
运行
复制
[  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!

这并不奇怪,因为我看到了

代码语言:javascript
运行
复制
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规则,所以我看不出这个问题是从哪里来的。

由衷地,

分段断层加载

EN

回答 2

Ask Ubuntu用户

发布于 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次,切换到与系统管理程序的直接串行通信。

由衷地,

分段断层加载

票数 5
EN

Ask Ubuntu用户

发布于 2016-10-12 21:02:05

我有这个问题。在我的例子中,从/etc/init/删除ttyS0.conf并重新启动解决了问题。

我使用了一些其他人提供的不同的ubuntu映像。在我所有的其他VM中,ttyS0.conf不存在。我不知道它是怎么被放在我的“问题”VM上的

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/214263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档