Table des matières

, ,

Connexion au système invité via console série

Il est possible de déclarer un UART sur la machine virtuelle et ainsi de se connecter sur le système invité de type *nix via un lien série émulé. Dans ce cas, l'invité peut être lancé sans interface graphique et contrôlé via la liaison série.

Virtualbox émule un composant UART 16550A les modes suivants peuvent être paramétrés:

Configuration de la VM

Plusieurs contrôleurs série peuvent être déclarés via l'interface graphique ou vboxmanage. Il est recommandé d'utiliser les adresses de bases et les niveaux d'interruptions classiques listées ci-dessous:

Port 1 0x3f8, IRQ 4
Port 2 0x2f8, IRQ 3
Port 3 0x3e8, IRQ 4
Port 4 0x2e8, IRQ 3

Modification de la VM, on ajoute le controleur série:

$ vboxmanage modifyvm xubuntu --uart1 0x3f8 4
$ vboxmanage modifyvm xubuntu --uartmode1 server /tmp/xubuntu-ttyVM

Configuration du système invité

Sur les systèmes *buntu récents, aucun programme n’écoute sur le port série par défaut. Il faut modifier la configuration d'Upstart. Le plus simple est de copier le fichier de configuration d'une console existante:

$ sudo cp /et/init/tty6.conf /etc/init/ttyS0.conf

Modifier le fichier de configuration:

# ttyS0 - getty
# 
# Ce service maintient le daemon getty sur le périphérique virtuel série
# jusqu'a l'extinction du système.

start on runlevel [2345] and not-container
stop on runlevel [!2345]

respawn
exec /sbin/getty 115200 ttyS0

Lancer le nouveau service:

$ sudo initctl start ttyS0

On peut maintenant lancer la VM sans interface graphique (désactivation du service VRDE)

$ vboxheadless --vrde off --startvm xubuntu

Pour se connecter depuis l'hote sur le système invité, on utilisera minicom ou socat (plus généraliste il permet de rediriger de façon bidirectionnelle les flux du fichier /tmp/xubuntu-ttyVM).

$ sudo apt-get install socat
$ socat UNIX-CONNECT:/tmp//tmp/xubuntu-ttyVM STDIO,raw,echo=0

Références