web-dev-qa-db-fra.com

Ubuntu Server 12 ne génère pas de série ttyS0 lors de l'exécution sur Xen

J'ai ce problème sur plus d'un hôte, le matériel spécifique n'est donc pas un problème.

Bare Metal Ubuntu 12 ne crée pas de processus de connexion sur le seul port série, dans la configuration par défaut. Le port série fonctionne correctement avec le firmware. Cela fonctionne correctement avec Grub2. J'ai même connecté la ligne série à 2 boîtiers clients externes différents, le problème n'est donc ni le matériel ni le client distant.

Une fois finalement démarré, le système ne parvient pas à créer le processus de connexion.

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:~# 

J'ai essayé de placer un fichier ttyS0.conf dans/etc/initab, ce qui résout le problème du métal nu, mais je ne parviens toujours pas à faire fonctionner le port série lors du démarrage d'Ubuntu sur Xen, dans le domaine 0. La sortie de ma ligne série ressemble à ceci , lors du démarrage de 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

À ce stade, la ligne série n'est plus connectée à un processus. Xen lui-même fonctionne très bien. Dmesg me donne une longue liste de

[  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!

ce qui n'est pas surprenant car je vois

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

Si je change manuellement le groupe de /dev/ttyS0 en dialout, il est modifié. Je n'ai apporté aucune modification aux règles udev par défaut, je ne vois donc pas d'où vient ce problème.

Cordialement,

Segfaultreloaded

2
segfaultreloaded

La réponse à ce problème consiste à fournir une "entrée" dans /etc/init pour la console série Xen requise /dev/hvc0.

Comment faire ça?

En tant que root ou en utilisant les commandes Sudo, ouvrez un terminal et accédez au répertoire/etc/init. Copiez le fichier pour tty1, c'est-à-dire /etc/init/tty1.conf dans /etc/init/hvc0.conf. Editez ensuite le nouveau fichier hvc0 dans votre éditeur de texte favori, en remplaçant toutes les occurrences de tty1 par hvc0. Au prochain démarrage avec Xen, votre terminal série devrait maintenant fonctionner correctement. Vous devriez pouvoir vous connecter à dom0 et utiliser la ligne de commande ou en appuyant trois fois sur Ctrl-a pour passer directement à la communication série avec l'hyperviseur.

Cordialement,

Segfaultreloaded

5
segfaultreloaded

J'ai eu ce problème. Dans mon cas, supprimer ttyS0.conf de/etc/init/et redémarrer a corrigé le problème pour moi.

J'utilise un tas de différentes images ubuntu VM que d'autres ont fournies. Le ttyS0.conf n'était pas présent sur toutes mes autres machines virtuelles. Je ne sais pas comment cela a été mis là sur mon VM "problème"

0
Jonathan Cano