Configuration d’un Olinuxino A20 en serveur Debian headless

J’ai acheté un deuxième appareil Olinuxino A20 MICRO.

Source : Olimex
Source : Olimex

Cet appareil correspond tout à fait à mes attentes pour en faire un serveur headless : 1 à 4W de consommation, fanless, architecture armhf (donc utilisation des packages debian standards), processeur dual core à 1GHz, 1Go de mémoire vive, open hardware, connectique très complète, pas cher.

Voici comment je l’ai paramétré pour m’en servir de serveur Debian.

Configuration de base

J’ai utilisé la carte micro-SD proposée par le fabricant : https://www.olimex.com/Products/OLinuXino/A20/A20-Debian-SD/. Mais on peut a priori utiliser n’importe quelle carte : le contenu (filesystem Debian Wheezy) est disponible au téléchargement sur leur wiki : https://www.olimex.com/wiki/A20-OLinuXino-MICRO. Au moment où j’écris ces lignes, la dernière version est la « release 8 ».

Avant d’insérer la carte micro-SD dans l’appareil, j’ai configuré le réseau en DHCP (je préfère affecter des baux DHCP permanents). Il suffit d’éditer le fichier /etc/network/interfaces, pour y mettre :

auto eth0
iface eth0 inet dhcp

Une fois accessible en TCP/IP, le serveur peut être administré via SSH.

Il manque l’auto-complétion dans Bash, dont je ne sais plus me passer :

apt-get install bash-completion

Dans la release 5,  il fallait également ajouter dans ~/.bashrc :

source /etc/bash_completion

… mais ce n’est plus nécessaire dans la release 8

Pour être à l’heure française :

dpkg-reconfigure tzdata

Pour renommer le serveur (qui s’appelle « a20-olimex » par défaut), il suffit de modifier les fichiers /etc/hosts et /etc/hostname

Récupération de la mémoire réservée à la carte graphique

L’appareil possède 1Go de mémoire vive. Pourtant, dans la configuration de base, 115 à 175 Mo (selon la version) sont réservés à la carte graphique.

Pour un serveur headless, ça ne sert à rien donc on peut récupérer cette mémoire. Voir https://www.olimex.com/forum/index.php?topic=2509.msg11180#msg11180

Il suffit de créer un fichier uEnv.txt dans la partition de boot.

Comme cette partition de boot n’est pas montée par défaut, je conseille de le faire en rajoutant dans /etc/fstab :

UUID=587A-1A07 /boot           auto    defaults        0       2

(ajuster si nécessaire le uuid : c’est celui de l’image d’Olimex. Un « blkid » vous donnera le vôtre)

puis en faisant un :

mount /boot

On peut ensuite créer le fichier /boot/uEnv.txt avec le contenu :

extraargs=sunxi_no_mali_mem_reserve sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16

Suppression du serveur X et de tous les packages associés

Dans l’image proposée par Olimex, il y a un serveur X et quelques applications graphiques (puisqu’il y a une sortie HDMI, cela fait partie des usages possibles). Ils ne me sont d’aucune utilité en headless.

Plutôt que de supprimer les packages un par un, j’ai préféré supprimer d’un coup tout ce qui dépend du serveur X :

apt-get remove --auto-remove --purge libx11-.*

A faire suivre d’un :

apt-get autoremove --purge

Optimisation de la gestion des fréquences du processeur

Edité le 05/12/2014 : Les manipulations ci-dessous fonctionnaient en release 5, mais ne fonctionnent plus en release 8. En release 8, on choisit la stratégie dans le fichier /etc/default/cpufrequtils. Par défaut, c’est en mode « performance ». Après réflexion, j’ai gardé ces valeurs par défaut.

En release 5, j’avais initialement choisi la stratégie dite « ondemand ». Cf https://www.olimex.com/forum/index.php?topic=2575.0.

Pour choisir cette stratégie, il faut créer un fichier /root/tune_sunxi.sh avec le contenu :

#!/bin/sh
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 336000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1008000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo 336000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
echo 1008000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo 40 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 200000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate

… et l’appeler depuis /etc/rc.local, en y rajoutant la ligne suivante AVANT le « exit 0 » :

sh /root/tune_sunxi.sh

Utilisation des miroirs Debian français

C’est optionnel, mais pas la peine d’aller chercher à l’autre bout du monde ce qui se trouve pas très loin.

Remplacer le contenu de /etc/apt/sources.list par :

# Stable
deb ftp://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb-src ftp://ftp.fr.debian.org/debian/ wheezy main contrib non-free

# Stable-updates
deb ftp://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free
deb-src ftp://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free

# Security
deb ftp://security.debian.org/debian-security/ wheezy/updates main contrib non-free
deb-src ftp://security.debian.org/debian-security/ wheezy/updates main contrib non-free

Et finir par installer les mises à jour :

apt-get update && apt-get upgrade

Enjoy!

Et vous voilà avec un serveur Debian (presque) standard, avec lequel vous allez pouvoir jouer comme vous voulez :-)

Laisser un commentaire

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