Started compiling
This commit is contained in:
63
Tp3.md
63
Tp3.md
@@ -71,25 +71,84 @@ Pour patcher notre kernel on doit donc passer par deux étapes :
|
||||
1: passer à la version Mainline (ici passer de 6.5 à 6.6)
|
||||
2: passer de la version Mainline à la version longterm avec les différentes modifications (ici de passer de 6.6 à 6.6.112)
|
||||
|
||||
Quand on se balade sur https://www.kernel.org/pub/linux/kernel/ que en plsu des distributions on peut tomber sur des patchs. Le premier qui nous intéresse est le patch nommé `patch-6.6.xz` c'est le patch implicite qui permet de passer de la version 6.5 à la version 6.6 ce qui est exactement ce que l'on cherche.
|
||||
|
||||
Ensuite pour finir on peut prendre le patch `patch-6.6.56.xz` qui nous permettras de passer de la 6.6 à la 6.6.56. J'avoue que c'était pas hyper clair mais dans le repertoire incr on a des patchs de 6.6.50 vers 6.6.51 et ils sont très petits alors que la le patch 6.6.56 fait 3m ce qui est énorme donc je pense que c'est bien pour passer de mainline à 56
|
||||
|
||||
Maintenant on a bien installé notre kernel version 6.5 et no patchs 6.6 et 6.6.56
|
||||
|
||||
Pour les appliquer on peut utiliser les commandes
|
||||
|
||||
`xz -d patch-6.6.xz` pour décompresser les patchs deja
|
||||
|
||||
`patch -p1 --dry-run < ../patch-6.6`
|
||||
|
||||
Le -p1 indique qu'il faut skip le premier nom de directory pour taper directement dans le bon directory. Dans notre cas 1 suffit car on est déja à la racine de notre kernel
|
||||
|
||||
--dry-run permet de ne pas faire de modifs si il y a une erreur. La dans notre cas tout se fait sans erreur donc on peut refaire le patch sans le --dry-run
|
||||
|
||||
Ca prend quelques secondes et on a plein de texte qui fuse mais normalement aucune erreur et après cette commande on a donc un linux kernel mainline 6.6
|
||||
|
||||
Il faut donc désormais appliquer le patch 6.6.56
|
||||
|
||||
`patch -p1 --dry-run < ../patch-6.6.56`
|
||||
|
||||
et ensuite sans le --dry-run
|
||||
|
||||
et voila, normalement on devrait avoir un linux 6.6.56 prêt à être compilé.
|
||||
|
||||
## Préparation à la compilation croisée du noyau
|
||||
|
||||
On n'oublie pas de mettre notre variable d'environnement ARCH sur arm
|
||||
|
||||
```
|
||||
echo $ARCH
|
||||
arm
|
||||
```
|
||||
|
||||
C'est important ensuite pour la compilation croisée
|
||||
|
||||
## Configuration du noyau
|
||||
|
||||
J'ai voulu faire un `make help` mais j'ai eu des erreurs bizarre alors j'ai fait un `make mrproper` et ensuite le make help a fonctionné
|
||||
|
||||
Dans une des lignes de make help on peut lire
|
||||
|
||||
` sama5_defconfig - Build for sama5`
|
||||
|
||||
### [Q7] : Quelle configuration avez-vous choisie ?
|
||||
|
||||
[TODO]
|
||||
Dans une des lignes de make help on peut lire
|
||||
|
||||
` sama5_defconfig - Build for sama5`
|
||||
|
||||
Il faudrait donc utiliser sama5_defconfig
|
||||
|
||||
`make sama5_defconfig`
|
||||
|
||||
### [Q8] : Comment pouvez-vous vous assurez avec une assez bonne certitude qu’il s’agit de la bonne configuration ?
|
||||
|
||||
[TODO]
|
||||
`make menuconfig`
|
||||
|
||||
On peut y voir des mentions de ARM, de AT91 que la target est 32 bits que l'on a un MMU
|
||||
|
||||
Bon après je vois nulle part mention du CPU exact que l'on a mais c'est déja pas mal
|
||||
|
||||
## Compilation croisée du noyau
|
||||
|
||||
`make`
|
||||
|
||||
Bon chez moi ca prend un certain temps car la machine virtuelle est pas au top
|
||||
|
||||
Après genre 5min de compilation pouf erreur "certs/extract-cert.c:21:10: fatal error: openssl/bio.h: No such file or directory
|
||||
21 | #include <openssl/bio.h>" par ce que sinon c'est pas drole
|
||||
|
||||
On va donc installer les bons outils et essayer à nouveau.
|
||||
|
||||
`sudo apt install libssl-dev`
|
||||
|
||||
OH SA GRAND MERE COMMENT C'EST LONG DE COMPILER WTF
|
||||
|
||||
### [Q9] : Une fois la compilation du noyau terminée, où se trouve le noyau compilé et quelle est sa taille ?
|
||||
|
||||
[TODO]
|
||||
|
||||
Reference in New Issue
Block a user