Récupérer les sources du noyau, le patch grsec et la config ovh qui va bien
Se rendre dans un dossier de travail
Téléchargement du kernel
Téléchargement du patch grsecurity [1] correspondant à la version du noyau (3.9.6 dans l’article)
récuperer la config du noyaux ovh sur leur serveur ftp [2]
Préparer les sources
décompresser [3] le noyau
copier la configuration ovh dans racine du noyau linux décompressé précédemment
aller dans le répertoire du noyau fraichement décompressé
appliquer le patch grsec
Configuration des cgroups
dans le repertoire du kernel, lancer l’utilitaire de configuration du noyau make menuconfig
et configurer lxc cgroup [4] en activant les options suivantes :
-> General setup
[renommer votre kernel] Local version - append to kernel release
-> Control Group support
[x] Namespace cgroup subsystem
[x] Freezer cgroup subsystem
[x] Cpuset support
[x] Simple CPU accounting cgroup subsystem
[x] Resource counters
[x] Memory resource controllers for Control Groups
-> Group CPU scheduler
[x] Basis for grouping tasks (Control Groups) (!)
[x] Group scheduling for SCHED_OTHER (NEW)
[x] CPU bandwidth provisioning for FAIR_GROUP_SCHED
[x] Group scheduling for SCHED_RR/FIFO
-> Namespaces support
[x] UTS namespace
[x] IPC namespace
[x] User namespace (!)
[x] Pid namespace
[x] Network namespace
-> Device Drivers
-> Character devices
[x] Support multiple instances of devpts
[*] Unix98 PTY support
-> Network device support
[x] MAC-VLAN support
[x] Virtual ethernet pair device
-> Networking support
-> Networking options
[x] 802.1d Ethernet Bridging
[x] Network priority cgroup
-> Security options
[x] File POSIX Capabilities (!)
Une fois votre configuration terminée, retourner sur la page d’accueil de menuconfig sélectionner < Exit >
, une boite de dialogue vous demande d’enregistrer votre configuration selectionner < yes >
avant de quitter.
Avant de compiler, On va tester la configuration :
CONFIG=/usr/src/linux-3.9.6/.config lxc-checkconfig --- Namespaces --- Namespaces: enabled Utsname namespace: enabled Ipc namespace: enabled Pid namespace: enabled User namespace: enabled Network namespace: enabled Multiple /dev/pts instances: enabled --- Control groups --- Cgroup: enabled Cgroup clone_children flag: enabled Cgroup device: enabled Cgroup sched: enabled Cgroup cpu account: enabled Cgroup memory controller: missing (!) Cgroup cpuset: enabled --- Misc --- Veth pair device: enabled Macvlan: enabled Vlan: enabled File capabilities: enabled
Cgroup memory controller : missing (!) - Debian Wheezy
Youpi ! la configuration est maintenant terminée, il est temps de lancer la compilation avant de boire un café !
Compilation du noyau
Penser à installer les outils pour la compilation des noyaux. Sur Debian, le paquet s’appelle build-essential c’est un meta-paquet dédié a l’installation de tous les outils de compilation make, gcc, etc..
Lancer la compilation, ou -j X (correspond au nombre de core ) :
Le kernel se retrouve dans le dossier arch/x86/boot. On va Copier/renommer le nouveau kernel dans le dossier /boot du système :
Installer le kernel et redémarrer
Je vous invite à consulter mon article précédent intitulé Installer un nouveau kernel Linux en 5 étapes