web-dev-qa-db-fra.com

Comment activer et utiliser le terminal série d'un HP Microserver Gen9?

J'ai un HP ProLiant Microserver Gen9. Il a HP ILO version 4, mais la console distante basée sur Java ne fonctionne pas de manière fiable et je ne peux pas l'utiliser après l'écran POST dans le libre) version de l'OIT (me demande d'acheter une licence avancée de l'OIT). Je souhaite donc utiliser la console série à la place pour obtenir une connexion sur le serveur.

Que dois-je faire sur un système Ubuntu pour obtenir toutes les phases (POST, configuration du BIOS, sortie de GRUB, invite de connexion éventuelle) du processus de démarrage dans une console série via le port réseau BIT du serveur? Comment m'y connecter?

7
nh2

Par défaut, le port ILO du serveur HP demande une adresse IP via DHCP. Il vous suffit donc de le connecter à un réseau sur lequel un serveur DHCP est en cours d'exécution. Il s'annoncera avec un nom d'hôte comme ILOCZ12345678 ce qui devrait faciliter la recherche dans la table des baux DHCP de votre routeur, ou dans par exemple journalctl/syslog si vous exécutez un serveur DHCP (par exemple isc-dhcp-server) sur un système comme Ubuntu.

Après avoir trouvé l'IP (dites 1.2.3.4), vous pouvez vous connecter à l'interface graphique de l'OIT via https://1.2.3.4. Mais ce n'est pas ce que nous recherchons, nous voulons la console série. Donc, utilisez plutôt l'interface SSH de l'OIT: ssh [email protected]. Le mot de passe par défaut se trouve sur la petite étiquette en papier fournie avec le microserveur.

Notez que cela fonctionne également lorsque le serveur est arrêté tant qu'il a un câble d'alimentation coincé (c'est le but de l'OIT).

Là, tapez ? pour voir toutes les options. Extrait:

POWER    : Control server power.
UID      : Control Unit-ID light.
ONETIMEBOOT: Access One-Time Boot setting.
NMI      : Generate an NMI.
VM       : Virtual media commands.
LANGUAGE : Command to set or get default language
VSP      : Invoke virtual serial port.
TEXTCONS : Invoke Remote Text Console.
TESTTRAP : Sends a test SNMP trap to the configured alert destinations.

Nous choisissons VSP pour obtenir le port série; TEXTCONS serait probablement aussi bien, mais il faudrait acheter la licence Advanced ILO pour l'utiliser.

Maintenant, une fois que nous faisons cela, avec un système en cours d'exécution, il se bloque à

</>hpiLO-> VSP

Virtual Serial Port Active: COM2

Starting virtual serial port.
Press 'ESC (' to return to the CLI Session.

C'est parce que par défaut, Ubuntu (j'utilise ici 16.04) ne rend pas disponible une invite de connexion via le port série. Nous changerons cela plus tard. D'abord, nous redémarrons pour voir que la configuration du BIOS fonctionne déjà.

Le voir démarrer via le port série

Dans une autre session ssh de l'OIT, redémarrez en utilisant:

</>hpiLO-> power reset

status=0
status_tag=COMMAND COMPLETED
Sun Feb  5 20:05:59 2017

Server resetting .......

Après un certain temps d'attente, vous remarquerez que la session dans laquelle VSP s'exécute a effacé son écran.

Apparaît alors:

                            4096 MB Installed                                   

ProLiant System BIOS - J06 (11/02/2015)                                         
Copyright 1982, 2015 Hewlett-Packard Development Company, L.P.                  



1 Processor(s) detected, 2 total cores enabled, Hyperthreading is not supported
Proc 1:  Intel(R) Celeron(R) CPU G1610T @ 2.30GHz      
HP Power Profile Mode: Custom
Power Regulator Mode: Dynamic Power Savings

Redundant ROM Detected - This system contains a valid backup System ROM.
Inlet Ambient Temperature: 18C/64F

HP SmartMemory authenticated in all populated DIMM slots.

HP AHCI SATA Controller (v0.90)            
Copyright (c) 2011, Hewlett-Packard Development Company, L.P.
HP AHCI SATA Controller (v0.84)             WD30EFRX-68EUZN0
   Port3: S.M.A.R.T Capable Hard Disk - WDC WD30EFRX-68EUZN0
Copyright (c) 2011, Hewlett-Packard Development Company, L.P.
                                                                  <F9 = Setup>
iLO 4 Standard                           
iLO 4 v2.50 Sep 23 2016 192.168.178.106

Broadcom NetXtreme Ethernet Boot Agent
Copyright (C) 2000-2015 Broadcom Corporation
All rights reserved.
Press Ctrl-S to enter Configuration Menu

C'est l'écran POST. Attendez un peu et voyez:

 Press "F9" key for ROM-Based Setup Utility
 Press "F10" key for Intelligent Provisioning
 Press "F11" key for Default Boot Override Options
 Press "F12" key for Network Boot
 For access via BIOS Serial Console
 Press "ESC+9" for ROM-Based Setup Utility
 Press "ESC+0" for Intelligent Provisioning
 Press "ESC+!" for Default Boot Override Options
 Press "ESC+@" for Network Boot

Si vous souhaitez configurer le BIOS, il est maintenant temps: cet écran n'apparaît que pendant 1 seconde environ. Les touches F * ne fonctionnent généralement pas, elles doivent être échappées: vous devez littéralement appuyer sur la touche ESC puis sur le nombre/symbole comme indiqué ci-dessus. Par exemple. ESC puis 5 est pour F5.

Maintenant, sans autres réglages, nous obtenons le silence sur le port série, car comme mentionné ci-dessus, ni GRUB2 ni les terminaux de connexion Ubuntu ne sortent par défaut sur le port série en 16.04.

Nous configurons donc le serveur (maintenant via SSH) pour utiliser le port série.

Utilisation de GRUB2 par le port série

J'ai suivi les instructions à https://www.hiroom2.com/2016/06/06/ubuntu-16-04-grub2-and-linux-with-serial-console/ changer /etc/default/grub comme décrit (- signifie commenter la ligne avec #, + signifie ajouter la ligne):

DEFAULT=0
-GRUB_HIDDEN_TIMEOUT=0
-GRUB_HIDDEN_TIMEOUT_QUIET=true
-GRUB_TIMEOUT=10
+GRUB_TIMEOUT=1
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
-GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
-GRUB_CMDLINE_LINUX=""
+GRUB_CMDLINE_LINUX_DEFAULT=""
+GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200"

-#GRUB_TERMINAL=console
+GRUB_TERMINAL="console serial"
+GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --Word=8 --parity=no --stop=1"

Le délai de 10 secondes est défini car la connexion série redessine l'écran extrêmement lentement, et nous voulons suffisamment de temps pour pouvoir annuler le délai en appuyant sur par ex. key-down dans GRUB.

Après avoir modifié le fichier comme décrit, exécutez Sudo update-grub, et redémarrez.

Vous devriez maintenant voir dans votre session VSP ce qui suit après l'écran POST:

error: serial port `com2' isn't found
error: terminal `serial' isn't found
error: terminal `serial' isn't found
error: no video mode activated

Nous ignorons cela (si vous savez comment vous en débarrasser, veuillez commenter). Après un peu de temps, cela apparaît:

 GNU GRUB  version 2.02~beta2-36ubuntu3.6

 +----------------------------------------------------------------------------+
 |*Ubuntu                                                                     |
 | Advanced options for Ubuntu                                                |
 | Memory test (memtest86+)                                                   |
 | Memory test (memtest86+, serial console 115200)                            |
 |                                                                            |
 |                                                                            | 
 +----------------------------------------------------------------------------+

      Use the  and  keys to select which entry is highlighted.          
      Press enter to boot the selected OS, `e' to edit the commands       
      before booting or `c' for a command-line.                           

C'est un écran normal GRUB, et vous pouvez déplacer le * pointeur avec les touches haut et bas.

Faire la connexion Ubuntu utiliser le port série

Les bits suivants sont inspirés de http://0pointer.de/blog/projects/serial-console.html

Sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/[email protected]

Maintenant éditez /etc/systemd/system/[email protected]:

Changer la ligne

ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM

à

ExecStart=-/sbin/agetty %I 115200 vt100-nav

Nous tenons particulièrement à régler le mode vt100-nav - J'ai constaté que la connexion n'apparaît pas sans cette modification.

Je ne sais pas pourquoi nous devons utiliser ttyS1 ici en GRUB nous avons configuré ttyS0 - mais cela ne fonctionne pas pour moi d'utiliser S0 ici. Si quelqu'un sait pourquoi, veuillez commenter.

Démarrez le tty via:

Sudo systemctl start [email protected]

Vous devriez maintenant voir une invite de connexion dans votre session VSP. Faites que cela se produise automatiquement au démarrage en utilisant:

Sudo systemctl enable [email protected]

Et redémarrez. Vous devriez maintenant voir toutes les sorties dans VSP, de POST à GRUB2 à l'invite de connexion.

13
nh2

Utilisez textcons à partir de l'interface ssh de l'OIT. Cela peut nécessiter la licence avancée de l'OIT, mais en même temps, il y a un obstacle très faible à l'obtention d'une licence.

La plupart des organisations ne souhaitent pas faire fonctionner le port série virtuel car cela prend du temps.

Google pour une licence OIT
ou obtenez une licence de démonstration de HP
ou il suffit de payer 25 $ pour un clé BIT d'Amazon

2
ewwhite

Dans RHEL7, "erreur: le terminal" série "n'est pas trouvé" est dû au fait qu'Anaconda ne place pas de pilote de périphérique "série" dans l'image RAM. Il est possible de reconstruire le RAM disque avec le pilote manquant mais Grub semble fonctionner suffisamment sans lui.

1
Darryl