Installer CentOS sur une carte PC Engines APU 2

PC Engines APU 2Un de mes clients m’a demandé récemment de lui installer une solution de monitoring et de filtrage web basée sur un pare-feu Linux tournant sous CentOS avec un proxy Squid transparent. J’ai déjà effectué des installations de ce genre au cours des dernières années. Côté hardware, je choisis le plus souvent du matériel serveur standard comme les HP Proliant ou Dell PowerEdge. Or, cette fois-ci, je me suis retrouvé confronté à une simple contrainte d’encombrement, étant donné qu’il fallait essayer de caser le tout dans un rack déjà passablement rempli de matériel.

Choix du matériel

Après avoir cherché un peu sur le web, je suis tombé sur les cartes mère de la marque PC Engines, commercialisées en France par Calexium. J’ai appelé cette entreprise, et je suis tombé sur Sébastien, un commercial/technicien extrêmement compétent, qui a pris le temps de tout m’expliquer de A à Z. Je tiens ici à le remercier pour sa gentillesse.

J’ai donc commandé une carte APU 2 munie d’un processeur AMD GX quatre coeurs, de 4 Go de RAM, de trois ports Ethernet Gigabit, de deux ports USB, d’un port SATA et d’un port série. Pour avoir quelque chose de fonctionnel, j’ai également commandé un disque dur 2,5″, un boîtier, une alimentation, un câble série et un adaptateur USB/série.

PC Engines APU 2

Je note au passage qu’initialement, j’avais voulu installer deux disques SATA 2,5″ pour les configurer en software RAID 1, et je me suis rendu compte un peu trop tard que la carte mère que j’ai commandée ne disposait que d’un seul port SATA. Si l’on souhaite disposer de deux ports SATA, il faut commander la carte APU 1 et spécifier le nombre de ports dans le menu déroulant au moment de la commande. Ce sera donc pour la prochaine fois.

Montage

Le matériel a été livré sans la moindre notice, ce qui m’a un peu surpris. Du coup j’ai cherché des infos sur le web, et je me suis inspiré de cette vidéo pour le montage.

De mémoire, voici ce que j’ai fait, dans l’ordre.

  1. Coller la pâte thermique sur le processeur.
  2. Coller la plaque de refroidissement sur le boîtier.
  3. Enlever les caches des ports Ethernet de la façade.
  4. Poser la carte mère délicatement à l’emplacement prévu.
  5. Visser la carte mère dans le boîtier (4 vis).
  6. Visser les deux barres de fixation sur le disque SATA 2,5″ (4 vis).
  7. Visser le disque dur dans le boîtier (4 vis).
  8. Relier le disque dur au port SATA et à l’alimentation.

Voilà à quoi ça ressemble une fois que c’est monté.

PC Engines APU 2

Configurer le port série

Port sériePour l’instant, le port série est le seul moyen de communiquer avec la machine. Dans un premier temps, je branche mon convertisseur USB/série à ma station de travail, et je la relie au port série du routeur. Mon convertisseur apparaît en tant que /dev/ttyUSB0.

[root@alphamule:~] # dmesg | grep tty
... console [tty0] enabled
... 00:03: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
... 0000:00:16.3: ttyS1 at I/O 0x2180 (irq = 17) is a 16550A
... usb 2-1.7: ch341-uart converter now attached to ttyUSB0

Pour communiquer avec le port série, j’utiliserai Minicom, un programme de contrôle de modem et d’émulation de terminal pour systèmes Unixoïdes.

[root@alphamule:~] # yum install minicom

Je bascule ma console vers l’anglais pour rendre l’affichage de Minicom plus lisible.

[root@alphamule:~] # LANG=en_US.utf8 && export LANG

Je lance la configuration de Minicom et je me rends dans le menu Serial port setup.

[root@alphamule:~] # minicom -s
  +-----[configuration]------+
  | Filenames and paths      |
  | File transfer protocols  |
  | Serial port setup        |
  | Modem and dialing        |
  | Screen and keyboard      |
  | Save setup as dfl        |
  | Save setup as..          |
  | Exit                     |
  | Exit from Minicom        |
  +--------------------------+

Dans la configuration par défaut, Minicom est censé communiquer avec le périphérique /dev/modem.

+-------------------------------------------------------------+
| A -    Serial Device      : /dev/modem                      |
|                                                             |
| C -   Callin Program      :                                 |
| D -  Callout Program      :                                 |
| E -    Bps/Par/Bits       : 115200 8N1                      |
| F - Hardware Flow Control : Yes                             |
| G - Software Flow Control : No                              |
|                                                             |
|    Change which setting?                                    |
+-------------------------------------------------------------+

Pour changer de périphérique, choisir l’option A - Serial Device et remplacer /dev/modem par /dev/ttyUSB0.

+-------------------------------------------------------------+
| A -    Serial Device      : /dev/ttyUSB0                    |
|                                                             |
| C -   Callin Program      :                                 |
| D -  Callout Program      :                                 |
| E -    Bps/Par/Bits       : 115200 8N1                      |
| F - Hardware Flow Control : Yes                             |
| G - Software Flow Control : No                              |
|                                                             |
|    Change which setting?                                    |
+-------------------------------------------------------------+

Confirmer par Entrée, puis enregistrer la configuration en optant pour Save setup as dfl. Quitter le menu de configuration avec Exit (et non pas Exit from Minicom). On se retrouve alors dans la console de Minicom.

Welcome to minicom 2.6.2

OPTIONS: I18n
Compiled on Jun 10 2014, 03:20:53.
Port /dev/ttyUSB0, 10:21:53

Press CTRL-A Z for help on special keys

Pour naviguer dans Minicom, il suffit d’appuyer sur [Ctrl]+[A], puis [Z] pour afficher le menu principal. La touche [X] permet alors de quitter Minicom, la commande minicom invoquée sans arguments permet de relancer l’application.

Lancer l’installation de CentOS

Logo CentOSJe ne détaille pas ici la confection d’une clé USB d’installation de CentOS, qui est une tâche triviale. Voici ce qu’il faut faire tout en gardant l’affichage de Minicom dans le terminal du PC.

  1. S’assurer que le port série est bien relié au convertisseur USB/série du PC.
  2. Brancher un câble Ethernet relié au switch local à la prise juste à côté du port série.
  3. Insérer la clé USB d’installation de CentOS.
  4. Brancher l’alimentation à côté des prises USB du routeur.

Si tout se passe bien, on apercevra le message suivant dans la console de Minicom.

PCEngines apu2
coreboot build 20170228
4080 MB ECC DRAM

SeaBIOS (version rel-1.10.0.1)

Press F10 key now for boot menu

Et quelques secondes plus tard, c’est le menu de l’installateur de CentOS qui s’affiche en mode texte.

+--------------------------------------------------------------+
|                        CentOS Linux 7                        |
|--------------------------------------------------------------|
|                                                              |
|                                                              |
| Install CentOS Linux 7                                       |
| Test this media & install CentOS Linux 7                     |
|                                                              |
| Troubleshooting                                            > |
|                                                              |
|                                                              |
|                                                              |
|   Press Tab for full configuration options on menu items.    |
|                                                              |
|                                                              |
+---------------Automatic boot in 56 seconds...----------------+
  1. Appuyer sur [Tab] pour accéder aux paramètres de démarrage.
  2. Supprimer les deux dernières options rd.live.check quiet en appuyant sur la touche [Backspace].
  3. Ajouter les options inst.vnc inst.vncpassword=centos edd=off.

Si tout se passe bien, Minicom nous affiche le démarrage de l’installateur comme ceci.

Loading vmlinuz........
Loading initrd.img....................................ready.

Les deux options inst.vnc inst.vncpassword=centos ont lancé un serveur VNC dans le routeur, qui nous permettra de nous connecter à l’installateur graphique depuis la station de travail. Le problème, c’est que l’affichage de l’installateur a disparu depuis le message initial, et nous ne savons plus où le joindre.

Dans ce cas, il suffit de faire une simple recherche avec nmap dans le réseau local.

[root@alphamule:~] # nmap -sP 192.168.2.* | grep scan
Nmap scan report for nestor.microlinux.lan (192.168.2.1)
Nmap scan report for raymonde.microlinux.lan (192.168.2.4)
Nmap scan report for amandine.microlinux.lan (192.168.2.5)
Nmap scan report for 192.168.2.178
Nmap scan report for hp-officejet.microlinux.lan (192.168.2.252)
Nmap scan report for wifi.microlinux.lan (192.168.2.254)
Nmap scan report for alphamule.microlinux.lan (192.168.2.2)
Nmap done: 256 IP addresses (7 hosts up) scanned in 2.03 seconds

Je procède par élimination, et je me dis que l’adresse 192.168.2.178, c’est la seule que je ne connais pas dans le réseau. Il y a donc de fortes chances à ce que ce soit mon routeur. Voyons ça de plus près.

[root@alphamule:~] # nmap -sP 192.168.2.178
Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-28 11:10 CEST
Nmap scan report for 192.168.2.178
Host is up (0.00021s latency).
MAC Address: 00:0D:B9:47:7D:48 (PC Engines GmbH)
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

Effectivement, il s’agit bien de mon routeur. Voyons si le serveur VNC est accessible.

[root@alphamule:~] # nmap 192.168.2.178
Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-28 11:13 CEST
Nmap scan report for 192.168.2.178
Host is up (0.00015s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
5901/tcp open  vnc-1
6001/tcp open  X11:1
MAC Address: 00:0D:B9:47:7D:48 (PC Engines GmbH)
Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds

À partir de là, je lance un client VNC sur ma station de travail pour me connecter à l’installateur. Vu que je tourne sous KDE, j’utilise KRDC. Si vous êtes sous GNOME ou Xfce, vous utiliserez sans doute Remmina ou Vinagre ou n’importe quel autre client VNC, peu importe.

Je me connecte au serveur VNC à l’adresse 192.168.2.178:1.

CentOS installation VNC

Étant donné que la machine se situe dans le réseau local, je peux opter pour une connexion de qualité élevée. Ce n’est pas la peine de mémoriser le mot de passe, étant donné que nous y accédons une seule fois.

CentOS installation VNC

Ici, il faut saisir le mot de passe que nous avons défini un peu plus haut, c’est-à-dire centos. Notez au passage que je me suis tapé la tête sur le clavier pendant un bon moment avant de me rendre compte que le mot de passe pour le serveur VNC de l’installateur doit impérativement comprendre entre 6 et 8 caractères. J’ai fini par tomber sur cette limitation dans la documentation Red Hat.

CentOS installation VNC

Si tout s’est bien passé, nous nous retrouvons dans l’installateur graphique de CentOS.

CentOS installation VNC

À partir de là, nous pouvons installer notre routeur comme n’importe quel autre matériel, en utilisant les fonctionnalités de l’installateur graphique. Pour les détails de cette opération, vous pourrez consulter cet article.

Configuration post-installation

À l’issue du redémarrage initial, il ne faut pas oublier d’enlever la clé USB pour démarrer sur le système installé.

Dans la configuration par défaut, notre nouveau système n’offre pas d’accès via le port série. Il faut donc invoquer à nouveau nmap comme nous l’avons fait plus haut.

[root@alphamule:~] # nmap -sP 192.168.2.* | grep scan
Nmap scan report for nestor.microlinux.lan (192.168.2.1)
Nmap scan report for raymonde.microlinux.lan (192.168.2.4)
Nmap scan report for amandine.microlinux.lan (192.168.2.5)
Nmap scan report for 192.168.2.178
Nmap scan report for hp-officejet.microlinux.lan (192.168.2.252)
Nmap scan report for wifi.microlinux.lan (192.168.2.254)
Nmap scan report for alphamule.microlinux.lan (192.168.2.2)
Nmap done: 256 IP addresses (7 hosts up) scanned in 2.03 seconds

L’adresse IP attribuée est toujours la même, et je peux me connecter en SSH.

[root@alphamule:~] # ssh root@192.168.2.178

Pour accéder à la console via le port série, il faut modifier le chargeur de démarrage GRUB en éditant /etc/default/grub. Voici une série d’options qui vont bien.

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=false
GRUB_TERMINAL_OUTPUT="serial console"
GRUB_SERIAL_COMMAND="serial \
                     --unit=0 \
                     --speed=115200 \
                     --word=8 \
                     --parity=no \
                     --stop=1"
GRUB_CMDLINE_LINUX="nomodeset \
                    quiet \
                    edd=off \
                    console=ttyS0,115200n8"
GRUB_DISABLE_RECOVERY="true"

Prendre en compte les modifications.

# grub2-mkconfig -o /boot/grub2/grub.cfg

À partir du prochain redémarrage, on pourra se connecter au routeur uniquement via le port série avec Minicom. Voilà à quoi cela ressemble dans la console de ma station de travail.

Console Minicom

Ce contenu a été publié dans CentOS, Documentation Microlinux, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

5 réponses à Installer CentOS sur une carte PC Engines APU 2

  1. Tony dit :

    Thanks – interesting and informative..
    appears there’s a typo?

    “[root @ alphamule: ~] # nmap -sP 192.168.2. * | grep scan”

    shouldn’t that be 192.168.2.* (no space before the *

  2. Bonjour Nicolas, merci beaucoup pour ton petit commentaire en ma faveur sur l’article.

    Pour info, si l’affichage à été perdu après:
    Loading initrd.img………………………………ready.

    C’est que tu démarres en mode vga et non série.

    Méthode pour debian qui doit être sensiblement identique pour centos

    Redémarrer, et à l’affichage du grub appuyer sur e pour l’éditer
    A la ligne linux après quiet ajoutez : console=ttyS0,115200n8, puis faite ctrl x pour démarrer avec ces changement.

    # Editez : /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT=”console=tty0 console=ttyS0,115200n8″

    # A la fin du fichier, vérifier la présence des lignes :
    GRUB_TERMINAL=serial
    GRUB_SERIAL_COMMAND=”serial –unit=0 –speed=115200 –word=8 –parity=no –stop=1″

    # Reconstruire le fichier avec la commande:
    grub-mkconfig -o /boot/grub/grub.cfg

  3. André Ray dit :

    Bonjour,
    Rien à dire de spécial sur l’installation. Je connaissais PC Engine, (surtout avec le modèle Alix) pour installer linux voyage mpd (http://linux.voyage.hk/) afin de réaliser un serveur audio.
    Votre article a réveillé en moi un projet de petit mediacenter avec kodi.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.