Outils pour utilisateurs

Outils du site


app:virtualbox:console-serie

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:

  • Déconnecté, le contrôleur série pourra être détecté par le système invité mais non utilisable.
  • Tube hôte, redirection du port série virtuel sur un fichier périphérique existant de l’hôte.
  • Périphérique hôte
  • Fichier, redirection de la sortie série dans un fichier (traces, débogage)

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

app/virtualbox/console-serie.txt · Dernière modification : 2021/02/01 21:51 de 127.0.0.1