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

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.
Sommaire
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