3.0 KiB
\newpage
Prérequis
Noyau Linux
Ce TP requiert un noyau Linux, dans sa version 3.8 au minimum. Il doit de plus être compilé avec les options suivantes (lorsqu'elles sont disponibles pour votre version) :
General setup --->
[*] Control Group support --->
[*] Freezer cgroup subsystem
[*] PIDs cgroup subsystem
[*] Device controller for cgroups
[*] Cpuset support
[*] Simple CPU accounting cgroup subsystem
[*] Memory Resource Controller for Control Groups
[*] Group CPU scheduler --->
[*] Group scheduling for SCHED_OTHER
[*] Group scheduling for SCHED_RR/FIFO
<*> Block IO controller
-*- Namespaces support
[*] UTS namespace
[*] IPC namespace
[*] User namespace
[*] PID Namespaces
[*] Network namespace
[*] Networking support --->
Networking options --->
<M> 802.1d Ethernet Bridging
[*] Network priority cgroup
[*] Network classid cgroup
Device Drivers --->
[*] Network device support --->
<M> MAC-VLAN support
<M> Virtual ethernet pair device
Vérification via menuconfig
L'arbre ci-dessous correspond aux options qui seront built-in (signalée par
une *
) ou installées en tant que module (signalée par un M
). En effet,
chaque noyau Linux peut être entièrement personnalisé en fonction des options
et des pilotes que l'on voudra utiliser.
Pour parcourir l'arbre des options du noyau, il est nécessaire d'avoir les sources de celui-ci. Les dernières versions stables et encore maintenues sont disponible sur la page d'accueil de https://kernel.org.
Dans les sources, on affiche la liste des options avec la commande :
make menuconfig
Vérification via /boot/config-xxx
Les distributions basées sur Debian ont pour habitude de placer le fichier de
configuration ayant servi à compiler le noyau et ses modules dans le dossier
/boot
, aux côtés de l'image du noyau vmlinuz-xxx
, de l'éventuel système de
fichiers initial (initramfs-xxx
) et des symboles de débogage
System.map-xxx
.
Ce fichier répertorie toutes les options qui ont été activées. Par rapport à l'arbre présenté ci-dessus, vous devriez trouver :
CONFIG_CGROUPS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_MEMCG=y
CONFIG_CGROUP_SCHED=y
CONFIG_BLK_CGROUP=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_NET=y
CONFIG_BRIDGE=m
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NETDEVICES=y
CONFIG_MACVLAN=m
CONFIG_VETH=m
Vérification via /proc/config.gz
Dans la plupart des autres distributions, la configuration est accessible à
travers le fichier /proc/config.gz
. Comme vous ne pouvez pas écrire dans
/proc
pour décompresser le fichier, utilisez les outils zcat
, zgrep
, ...
Vous devez retrouves les mêmes options que celles de la section précédente.