Bon je tente de récapituler
tout ce que j'ai dû faire pour que native theory fonctionne sur debian buster (les native atlas tournent sans tous ces soucis "native theory utilise des conteneurs "runc" alors que ATLAS native utilise des conteneurs "singularity".).
Les steps décrits en haut par ElGrande sont évidemment requis, et ça vient
de là.
Pour rappel j'avais des erreurs comme ça (sur LHC comme sur LHCdev) :
11:59:21 CET +01:00 2021-01-09: cranky-0.0.32: [INFO] Creating cgroup for slot 6
mkdir: impossible de créer le répertoire /sys/fs/cgroup/hugetlb : Système de fichiers accessible en lecture seulement
(encore merci à F6FGZ looking for DX ! qui fut mon sauveur sur le forum de LHC, je me contente de remettre dans l'ordre et traduire un peu tous les "essai/erreur/essai" que j'ai dû faire)
1 - Ajouter le support HugeTLB au noyauHugeTLB n'est pas supporté par le noyau Debian Buster, la version actuelle est 4.19.0-13-amd64.
J'ai dû récupérer le paquet source du noyau, activer HugeTLB et le compiler.
Tout d'abord, installer le paquet source du noyau si ce n'est pas déjà fait :
sudo apt install linux-source.
# Faire le kernel après la mise à jour du package source
# ADAPTER les NUMEROS de VERSION de noyau selon la version en cours
mkdir KERNEL [j'ai fait tout ça depuis mon répertoire perso ~]
sudo apt install linux-config-4.19 bison fakeroot libelf-dev
tar xaf /usr/src/linux-source-4.19.tar.xz -C KERNEL
xzcat /usr/src/linux-config-4.19/config.amd64_none_amd64.xz > /tmp/config.amd64_none_amd64
cd KERNEL/linux-source-4.19
# make ARCH=x86 defconfig (plutôt faire la copie cf. ci-dessous)
#
# Alternatively, you can use the configuration from a Debian-built kernel that
# you already have installed by copying the /boot/config-* file to .config and
# then running make oldconfig to only answer new questions.
# If you do this, ensure that you modify the configuration to set: [j'ai dû faire ça pour que ça passe]
# CONFIG_SYSTEM_TRUSTED_KEYS = ""
cp -p /boot/config-4.19.0-13-amd64 .config [ici la commande initiale était avec 4.19.0-10 mais chez moi j'ai dû mettre 4.19.0-13 pour que ça passe]
diff -u .config /tmp/config.amd64_none_amd64
make oldconfig
make menuconfig
General setup --> Control Group support ---> [*] HugeTLB controller [il faut donc naviguer dans le menu "semi-graphique" pour aller activer l'option HugeTLB controler qui n'est pas activée par défaut]
make -j 14 bindeb-pkg # N-2 CPU's et patience ensuite ... [chez moi j'ai mis 2 au lieu de 14 car j'ai 2 cores sur la VM OVH]
cd ..
sudo dpkg -i linux-headers-4.19.160_4.19.160-1_amd64.deb [ici il avait donné 132 et j'ai dû mettre 160 partout]
sudo dpkg -i linux-image-4.19.160_4.19.160-1_amd64.deb
rm -fR linux-source-4.19
# Recompiler le module vboxdrv pour VirtualBox [c'est donc complètement optionnel, moi je n'ai pas VB dans la VM OVH que j'utilise...]
sudo /sbin/vboxconfig
Vérifiez que le fichier /etc/systemd/system/multi-user.target.wants/boinc-client.service n'a pas été modifié par le processus de mise à jour et ressemble à :
[Unit]
Description=Berkeley Open Infrastructure Network Computing Client
Documentation=man:boinc(1)
After=network-online.target
[Service]
ProtectHome=true
Type=simple
Nice=10
User=boinc
PermissionsStartOnly=true
WorkingDirectory=/var/lib/boinc
ExecStartPre=/usr/bin/touch /var/log/boinc.log /var/log/boincerr.log
ExecStartPre=/bin/chown boinc:boinc /var/log/boinc.log /var/log/boincerr.log
ExecStartPre=/bin/sh -c "/bin/chmod +x /sbin/create-boinc-cgroup && /sbin/create-boinc-cgroup"
ExecStart=/bin/sh -c '/usr/bin/boinc --dir /var/lib/boinc-client >/var/log/boinc.log 2>/var/log/boincerr.log'
ExecStop=/usr/bin/boinccmd --quit
ExecReload=/usr/bin/boinccmd --read_cc_config
ExecStopPost=/bin/rm -f lockfile
IOSchedulingClass=idle
[Install]
WantedBy=multi-user.target
2 - Ajouter l'émulation vsyscall aux paramètres de démarrage du noyauVous devez éditer le fichier GRUB par défaut (utilisez votre éditeur préféré si vous n'êtes pas familier avec vi) [prendre nano à la place ! prendre nano ! vi c'est pour les fous de linux !! ]
$ sudo vi /etc/default/grub
Vous devez avoir une ligne avec le paramètre GRUB_CMDLINE_LINUX_DEFAULT comme :
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
Il suffit d'y ajouter vsyscall=emulate :
GRUB_CMDLINE_LINUX_DEFAULT="vsyscall=emulate quiet"
(mais dans mon cas j'avais
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0"
alors ça a donné
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0 vsyscall=emulate"
)
Ensuite, mettez à jour GRUB :
$ sudo update-grub
Une fois que les en-têtes linux et les paquets linux-image sont prêts, il suffit de les installer comme décrit et redémarrer.
Vous devriez maintenant avoir ces répertoires :
$ find /sys/fs/cgroup/ -type d -name boinc -exec ls -ld {} \;|sort -k9,9
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/blkio/boinc
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/cpu,cpuacct/boinc
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/cpuset/boinc
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/devices/boinc
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/freezer/boinc
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/hugetlb/boinc
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/memory/boinc
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/net_cls,net_prio/boinc
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/perf_event/boinc
drwxrwxr-x 2 root boinc 0 janv. 31 14:38 /sys/fs/cgroup/pids/boinc
Et le paramètre de noyau ajouté :
$ sudo grep emulate /var/log/syslog
Jan 31 11:24:42 pitot kernel: [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.19.160 root=UUID=107d3155-5b10-440d-91f9-a410f99a549d ro vsyscall=emulate quiet
Jan 31 11:24:42 pitot kernel: [ 0.531334] Kernel command line: BOOT_IMAGE=/vmlinuz-4.19.160 root=UUID=107d3155-5b10-440d-91f9-a410f99a549d ro vsyscall=emulate quiet
Vous êtes prêt pour theory native avec Debian Buster.
------------------------------------------------------------------
J'espère pas avoir merdé dans ma récap et que ça en aidera certains !