{{tag>virtualbox console connexion}}
====== 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 =====
* http://wiki.zs64.net/VirtualBox_on_FreeBSD_cheat_sheet
* http://doc.ubuntu-fr.org/console_serie