--- categories: ['OpenBSD','Système','Base'] date: 2021-02-21T23:14:42+01:00 description: "Résoudre le problème de console série pour une VM, copiée depuis un autre OS vers OpenBSD !" draft: false tags: ['OpenBSD','Virtualisation','vmd','astuce'] title: "[OpenBSD :: Virtualisation] Pas d'écran de connexion ; pas de login !" translationKey: "openbsd-vmd-no-login-screen" --- ## Description Pour rappel, l'hyperviseur [vmm(4)](https://man.openbsd.org/vmm) sous OpenBSD n'a pas de support vidéo pour les VM invités. **Seule la console série est prise en charge**. Quand vous faites de la virtualisation sous OpenBSD amd64 ou i386, OpenBSD gère tout ce qu'il faut, comme de nécessaire. Ainsi la console série est configurée au sein du fichier de configuration `/etc/boot.conf` et le dispositif `tty00` est configuré correctement pour utiliser ladite console série. --- Le problème est quand vous avez l'idée de créer votre VM, sous Linux par exemple, à moins de spécifiquement répondre `yes` lorsqu'est demandé le paramétrage de `com0`, il est possible de se retrouver avec le problème suivant : **Pas d'écran de connexion == pas de login possible** ! *(où il y en a des malchanceux, et d'autres où ça roule sans soucis… je suis souvent de la première catégorie)* --- Pour illustrer le propos, une fois la VM OpenBSD copiée sur un hôte OpenBSD, voici le démarrage : ```ksh $ vmctl start -c vm-test Using drive 0, partition 3. Loading...... probing: pc0 com0 mem[638K 1022M a20=on] disk: hd0+ >> OpenBSD/amd64 BOOT 3.52 boot> booting hd0a:/bsd: 14329128+3191816+337072+0+872448 [999468+128+1135344+859361]=0x14ba488 entry point at 0xffffffff81001000 [ using 2995336 bytes of bsd ELF symbol table ] Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2020 OpenBSD. All rights reserved. https://www.OpenBSD.org OpenBSD 6.8 (GENERIC) #4: Mon Jan 11 10:34:36 MST 2021 root@syspatch-68-amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC real mem = 1056956416 (1007MB) avail mem = 1010040832 (963MB) random: good seed from bootblocks mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xf3f40 (10 entries) bios0: vendor SeaBIOS version "1.11.0p3-OpenBSD-vmm" date 01/01/2011 bios0: OpenBSD VMM acpi at bios0 not configured cpu0 at mainbus0: (uniprocessor) cpu0: AMD FX-8320E Eight-Core Processor, 3211.59 MHz, 15-02-00 cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,CX8,SEP,PGE,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,POPCNT,AES,XSAVE,AVX,F16C,HV,NXE,MMXX,FFXSR,PAGE1GB,LONG,LAHF,CMPLEG,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,OSVW,IBS,XOP,SKINIT,WDT,FMA4,TCE,NODEID,TBM,TOPEXT,CPCTR,ITSC,BMI1 cpu0: 64KB 64b/line 2-way I-cache, 16KB 64b/line 4-way D-cache, 2MB 64b/line 16-way L2 cache, 8MB 64b/line 64-way L3 cache cpu0: ITLB 48 4KB entries fully associative, 24 4MB entries fully associative cpu0: DTLB 64 4KB entries fully associative, 64 4MB entries fully associative cpu0: smt 0, core 0, package 0 pvbus0 at mainbus0: OpenBSD pvclock0 at pvbus0 pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 "OpenBSD VMM Host" rev 0x00 virtio0 at pci0 dev 1 function 0 "Qumranet Virtio RNG" rev 0x00 viornd0 at virtio0 virtio0: irq 3 virtio1 at pci0 dev 2 function 0 "Qumranet Virtio Network" rev 0x00 vio0 at virtio1: address fe:e1:bb:d1:a9:7b virtio1: irq 5 virtio2 at pci0 dev 3 function 0 "Qumranet Virtio Storage" rev 0x00 vioblk0 at virtio2 scsibus1 at vioblk0: 1 targets sd0 at scsibus1 targ 0 lun 0: sd0: 51200MB, 512 bytes/sector, 104857600 sectors virtio2: irq 6 virtio3 at pci0 dev 4 function 0 "OpenBSD VMM Control" rev 0x00 vmmci0 at virtio3 virtio3: irq 7 isa0 at mainbus0 isadma0 at isa0 com0 at isa0 port 0x3f8/8 irq 4: ns8250, no fifo com0: console vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets root on sd0a (6dc570f70e2c7991.a) swap on sd0b dump on sd0b Automatic boot in progress: starting file system checks. /dev/sd0a (6dc570f70e2c7991.a): file system is clean; not checking /dev/sd0m (6dc570f70e2c7991.m): file system is clean; not checking /dev/sd0d (6dc570f70e2c7991.d): file system is clean; not checking /dev/sd0f (6dc570f70e2c7991.f): file system is clean; not checking /dev/sd0g (6dc570f70e2c7991.g): file system is clean; not checking /dev/sd0h (6dc570f70e2c7991.h): file system is clean; not checking /dev/sd0j (6dc570f70e2c7991.j): file system is clean; not checking /dev/sd0i (6dc570f70e2c7991.i): file system is clean; not checking /dev/sd0e (6dc570f70e2c7991.e): file system is clean; not checking /dev/sd0k (6dc570f70e2c7991.k): file system is clean; not checking /dev/sd0l (6dc570f70e2c7991.l): file system is clean; not checking pf enabled kern.seminfo.semmni: 10 -> 60 kern.seminfo.semmns: 60 -> 1024 starting network reordering libraries: done. starting early daemons: syslogd pflogd nsd ntpd. starting RPC daemons:. savecore: no core dump checking quotas: done. clearing /tmp kern.securelevel: 0 -> 1 creating runtime link editor directory cache. preserving editor files. starting network daemons: sshd smtpd. starting local daemons: cron. Thu Feb 18 12:25:45 CET 2021 ``` Et, voilà cela s'arrête à l'affichage de l'heure… et vous allez pouvoir attendre longtemps l'écran de connexion de session qui ne viendra jamais ! --- Et, au cas où tu te le demandes, toi lecteur, non cela ne vient pas d'une corruption de la VM lors de la copie/synchronisation, des tests à base de somme de contrôle sha256 ont été faits avant la copie et après celle-ci, tel que : Sur la station Linux : ```bash $ cat vm-test.qcow2.sha256 73054a89bb2e0b13d78e8cb446424baa01f7761099d8681a59137655b28c979c vm-test.qcow2 ``` Puis sur l'hôte OpenBSD : ```ksh $ sha256 vm-test.qcow2 SHA256 (vm-test.qcow2) = 73054a89bb2e0b13d78e8cb446424baa01f7761099d8681a59137655b28c979c $ sha256 -C vm-test.qcow2.sha256 vm-test.qcow2 (SHA256) vm-test.qcow2: OK ``` --- Mais alors que faire ?! Sur ton OS source, par exemple le Linux où la VM a été créée, avec **qemu** et les différents outils **virt\***, connectes-toi à ta VM, et fais les deux petites modifications suivantes nécessaires : ## Configuration ### boot.conf Le fichier de configuration `/etc/boot.conf` n'a pas été créé - *s'il l'est, vérifies l'écriture*. Il doit absolument contenir à minima ceci : ```cfg set tty com0 ``` Par défaut, le taux de connexion est ainsi de 9200 baups. --- Or, étant donné que le futur hôte est OpenBSD, faisons ça bien : ```cfg stty com0 115200 set tty com0 ``` Ainsi nous configurons le taux de débit au maximum supporté, soit de 115200. ### ttys L'autre modification nécessaire à faire est de reparamétrer les informations d'initialisation du Terminal **tty00**. Le fichier est `/etc/ttys`, et il faut commenter/supprimer la ligne correspondante à **tty00** pour ajouter la déclaration correcte suivante : ```cfg tty00 "/usr/libexec/getty std.115200" vt220 on secure ``` Si vous déclarez le fichier `boot.conf` ci-dessus a sa valeur par défaut, configurez cette déclaration ainsi : ```cfg tty00 "/usr/libexec/getty std.9600" vt220 on secure ``` --- Et, voilà ! Une fois la VM recopiée sous OpenBSD, vous aurez à nouveau l'écran de connexion. ## Documentations - la FAQ Officielle d'OpenBSD "[Configuring a Serial Console](https://www.openbsd.org/faq/faq7.html#SerCon)" *(cf : la traduction [FR](https://wiki.openbsd.fr.eu.org/doku.php/openbsd.org/faq/faq7#configurer-une-console-serie) faite par la communauté "OpenBSD Pour Tous")* ## Remerciements @[jggimi](http://daemonforums.org/showthread.php?t=11643)… ---