tuXXX Posté(e) le 16 juillet 2004 Partager Posté(e) le 16 juillet 2004 Il est souvent question de recompiler le noyau sous linux, de manière à en avoir un qui corresponde le plus près possible au système, que ce soit pour les périphériques que pour le processeur et la mémoire. Je vais donc essayer de rendre cette opération la plus simple possible, tout en essayant de ne pas être redondant avec les autres topic dédiés concernant une distribution précise. Mon but ici est notamment de donner des explications par rapport aux différentes options des noyaux, et je supposerait que tous les outils nécessaires pour compiler sont là (make, gcc, ncurses, etc...). Je supposerait également que le noyau choisi est un 2.6, les noyaux 2.4 n'étant plus à jour (même si malheureusement certains drivers ne sont compatibles uniquement pour ces versions) Sommaire Pourquoi un noyau? Installation du noyau Installation d'un patch Configuration du noyau Un module? Mais queskecé? (update : 22/08/2004) Part I : General setup Part II : Processor & System Part III : File format, system et devices Part IV : Kernel Hacking & Others Sauvegarde Compilation Installation Trucs et astuces A quoi sert l'initrd? (new : 19/08/2004)Quelques liens du forum : [Debian GNU/Linux] Recompiler son propre noyau [Gentoo] Topic principal Pourquoi un noyau? Tout d'abord, à quoi il sert? Le noyau permet la gestion de la mémoire et des processus, ainsi que la communication entre le système et les périphériques. Il peut y avoir plusieurs raisons pour vouloir changer de noyau, mais la plus courante est pour mettre à jour les drivers. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 Installation du noyau Je vais ici expliquer comment installer les sources d'un noyau correctement, ainsi que le patcher. Si vous utilisez les "kernel-source" de votre distribution, vous pouvez passer cette partie Tout d'abord, télécharger le noyau sur http://www.kernel.org, il vaut mieux en général prendre celui qu'ils appellent "latest stable version". Une fois que ceci est fait, il faut décompresser ce fichier (qui est au format .tar.bz2) dans le répertoire /usr/src $ cd /usr/src $ tar -xvjf linux-2.6.X.tar.bz2 Maintenant que le noyau est décompressé, il va falloir faire un lien symbolique vers lui à /usr/src/linux: $ ln -s linux-2.6.X linux (si "linux" existe déjà, le supprimer avec "rm linux") Et vous pouvez vérifier : $ ls -l /usr/src/linux /usr/src/linux -> /usr/src/linux-2.6.X maintenant, il suffit d'aller dans ce répertoire pour être prêt pour les étapes suivante Installation d'un patch Il existe des patches de noyau, qui modifient certains fichiers afin d'optimiser certaines partie du code. Par exemple, le patch "mm" d'Andrew Morton, disponible sur kernel.org, incluant par exemple il y a peu un patch pour les P4 "HT" (entre beaucoup d'autres !!! Il suffit de regarder le "Changelog" pour voir la quantité de modifications) Une fois le patch téléchargé et décompressé ("bunzip2 2.6.X-mmY.bz2" par exemple), il faut patcher le noyau avec la commande suivante : $ patch -p1 < 2.6.X-mmY Voilà ! le noyau est patché et prêt à être compilé ! Configuration du noyau Il y a plusieurs manières de configurer un noyau, mais la plus intéressante est le "make menuconfig", c'est donc cela que bous allons faire Mais avant, il faut s'assurer que plus rien ne reste des configurations précédentes, de même que les modules qui pourraient rester... $ make clean $ make mrproper C'est bon, vous pouvez maintenant faire le fameux "make menuconfig" (c'est ici qu'il faut avoir toutes les librairies, notamment ncurses.), il existe aussi "make config", que je déconseille fortement (de toute façon, vous abandonneriez avant la 100eme question ) et "make xconfig", qui est plus abordable, mais mois pratique à mon goût. $ make menuconfig Vous vous retrouvez donc devant une jolie interface (c'est pas mal, quand même...) Donc on se déplace avec les flêches directionnelles, on choisit <Select> <Exit> ou <Help> et on utiliser la touche "Entrée". Pour mettre une fonction en module, il faut appuyer sur la touche "M" (comme module, tient ) Pour intégrer une fonction au noyau, il faut appuyer sur "Y" Et pour enlever totalement cette fonctionnalité, appyer sur "N" Il est aussi possible d'appuyer sur "?" pour avoir l'aide au lieu de sélectionner <Help> Garder l'ancienne configuration Il est aussi possible de garder l'ancienne configuration. Pour cela, il faut d'abord vérifier que cette configuration est dans le noyau : $ ls /proc/config.gz Si le fichier existe, c'est bon ! Après le traditionnel "make clean && make mrproper", il suffit maintenant de décompresser ce fichier pour obtenir le fichier .config : $ gunzip -c /proc/config.gz > .config Puis de mettre à jour : make oldconfig Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 Un module? Mais queskecé? Un module permet de rendre le systèle linux plus modulaire, et peut être chargé (quasiment) à n'importe quel moment. Il s'agit d'un fichier binaire qui communique avec le noyau. Cela permet d'alléger la taille du noyau, mais aussi de pouvoir ajouter plus tard des modules (par exemple pour des drivers vidéo) Les modules sont uniques à un noyau, et sont d'ailleur stockés dans /lib/modules/<numéro du noyau> C'est donc le cas pour les drivers vidéos, et les drivers propriétaires qu'il faudra recompiler à chaque fois. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 Part I : General setup Code maturity level options 1: [*] Prompt for development and/or incomplete code/drivers 2: [*] Select only drivers expected to compile cleanly 3: [*] Select only drivers that don't need compile-time external firmwware Ici, il faut tout laisser : Cela permet d'avoir accès aux drivers en développement (1), ne montrer que ceux qui compilent bien(2), et cacher ceux qui nécessitent un firmware spécifique(3) (ouais, enfin vous savez lire l'anglais ) General setup 1: [*] Support for paging of anonymous memory (swap) 2: [*] System V IPC 3: [*] POSIX Message Queues 4: [ ] BSD Process Accounting 5: [*] Sysctl support 6: [*] Auditing support 7: [*] Enable system-call auditing support 8: [*] Support for hot-pluggable devices 9: [*] Kernel .config support 10:[*] Enable access to .config through /proc/config.gz 11:[ ] Configure standard kernel features (for small systems) ---> 1) Support pour la SWAP 5) Pour activer certains contrôles du noyau "on the fly" (file:Documentation/sysctl/) 9 et 10) permet d'avoir le .config du noyau dans /proc... très très utile ! 11) On va pas toucher à ça, on veut pas faire un noyau pour système embarqué... Loadable module support 1: [*] Enable loadable module support 2: [*] Module unloading 3: [ ] Forced module unloading 4: [*] Module versioning support 5: [*] Automatic kernel module loading 1) Active le support des modules 2) pouvoir enlever des modules (rmmod) 3) forcer à décharger les modules avec rmmod -f ...pas recommandé 4) ça peut être utile... donc tant qu'à faire... 5) utile pour charger automatiquement les dépendances des modules, obligatoire pour hotplug entre autres Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 Part II : Processor & System Processor type and features 1: Subarchitecture Type (PC-compatible) ---> 2: Processor family (Athlon/Duron/K7) ---> 3: [ ] Generic x86 support 4: [*] HPET Timer Support 5: [*] Symmetric multi-processing support 6: (2) Maximum number of CPUs (2-255) 7: [ ] SMT (Hyperthreading) scheduler support 8: [*] Preemptible Kernel 9: [*] Machine Check Exception 10:<*> Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 11:[ ] check for P4 thermal throttling interrupt. 12:< > Toshiba Laptop support 13:< > Dell laptop support 14:< > /dev/cpu/microcode - Intel IA32 CPU microcode support 15:< > /dev/cpu/*/msr - Model-specific register support 16:< > /dev/cpu/*/cpuid - CPU information support 17: Firmware Drivers ---> 18: High Memory Support (off) ---> 19:[ ] Math emulation 20:[*] MTRR (Memory Type Range Register) support 21:[ ] Boot from EFI support 22:[*] Enable kernel irq balancing 23:[ ] Use register arguments 24: Performance-monitoring counters support ---> 2) Changer en fonction du processeur 3) Seulement pour que les distribs soient largement compatibles 4) Pour activer le timer inclu dans le noyau... 5) Activer le support de plusieurs processeurs 6) Nombre précis de processeurs (chacun en plus du premier ajoute 8Ko au noyau inutilement) A activer ([http://kerneltrap.org/node/view/3043] ICI pour un petit topo ) 18) Activer si plus de 1Go de ram, sinon off pour performances 20) Accélère les bus PCI et AGP, obligatoire pour les cartes ATI ! 23) Peut permettre éventuellement des meilleures performances, auparavant invompatible avec les drivers vidéos ATI et nVIDIA, les drivers nVIDIA (>6106) supportent maintenant cette fonction, mais je ne sais pas pour les ATI Power management options (ACPI, APM) 1: [*] Power Management support 2: [ ] Software Suspend 3: [ ] Suspend-to-Disk Support 4: ACPI (Advanced Configuration and Power Interface) Support ---> 4- 1: [*] ACPI Support 4- 2: [*] Sleep States 4- 3: <*> AC Adapter 4- 4: <*> Battery 4- 5: <*> Button 4- 6: <*> Fan 4- 7: <*> Processor 4- 8: <*> Thermal Zone 4- 9: < > ASUS/Medion Laptop Extras 4-10: < > Toshiba Laptop Extras 4-11: [ ] Debug Statements 4-12: [ ] Power Management Timer Support 5: APM (Advanced Power Management) BIOS Support ---> 6: CPU Frequency scaling ---> 1) Active la gestion de l'énergie ... Indispensable 2) et 3) permet d'activer une sorte de "veille prolongée", activez si vous pensez l'utiliser. 4) support de l'ACPI 5) support de l'APM, seulement si l'ACPI ne marche pas/fait planter l'ordinateur 6) seulement pour les portables Bus options (PCI, PCMCIA, EISA, MCA, ISA) 1: [*] PCI support 2: PCI access mode (Any) ---> 3: [ ] Vector-based interrupt indexing (MSI) 4: [ ] Legacy /proc/pci interface 5: [*] PCI device name database 6: [ ] ISA support 7: [ ] MCA support 8: < > NatSemi SCx200 support 9: PCMCIA/CardBus support ---> 10: PCI Hotplug Support ---> 1) Permet d'activer le support pour les ports PCI (utile, non?) 2) Choix du mode "Any" devrait convenir pour 99.99% des cas 3) Moyennement utile 4) Anciennement utilisé pour voir les périphériques PCI, délaissé au profit de "lspci" 6) Pour les ports ISA => désactivé 9) Si portable avec PCMCIA 10) Support du "PCI hotplug" de certaine CM, à ne pas confondre avec le système "Hotplug" qui permet de détecter les périphériques et de charger les modules correspondant. A désactiver. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 Part III : File format, system et devices Executable file formats 1: [*] Kernel support for ELF binaries 2: <*> Kernel support for a.out and ECOFF binaries 3: <*> Kernel support for MISC binaries Tout laisser pour un maximum de compatibilité Device Drivers Bon là je ne détaillerais pas tout... à vous de chercher et d'agir en fonction du matériel. Si vous avez un doute, mettez en module, ça ne peut pas faire de mal 1: Generic Driver Options ---> 2: Memory Technology Devices (MTD) ---> 3: Parallel port support ---> 4: Plug and Play support ---> 5: Block devices ---> 6: ATA/ATAPI/MFM/RLL support ---> 7: SCSI device support ---> 8: Multi-device support (RAID and LVM) ---> 9: Fusion MPT device support ---> 10:IEEE 1394 (FireWire) support ---> 11:I2O device support ---> 12:Networking support ---> 13:ISDN subsystem ---> 14:Telephony Support ---> 15:Input device support ---> 16:Character devices ---> 17:I2C support ---> 18:Misc devices ---> 19:Multimedia devices ---> 20:Graphics support ---> 21:Sound ---> 22:USB support ---> 3) Port parallèle ça peut être utile, mais à vous de voir... 5) Activer "Loopback device support !!! (pour pouvoir monter les images CD .iso directement) 6) Activez en fonction de votre matériel... Pour faire du raid software 12) Activez le driver correspondant à votre carte réseau. (le driver pour les cartes mères nVIDIA se trouve là : "Ethernet (10 or 100Mbit)">"Reverse Engineered nForce Ethernet support", appelé "forcedeth", activer les RealTek 8139 est généralement une bonne idée, au moins en module ! 16) Pour modifier l'"agpgart" ... Possibilité de le désactiver pour laisser le driver de la carte 3D le faire tout seul... Le mettre dans un premier temps, histoire d'avoir un noyau qui marche 17) à activer pour les cartes TV (notamment bt848) : "I2C Support"+"Bit Banging interfaces". Aussi utile pour les senseurs de la carte mère (température) pour lm_sensors. (mettre tous les Hardware Sensors en module ) 19) Activer pour avoir le support des cartes TV (en général 848 ou 878, regardez le "lspci") (il vaut mieux mettre en module pour pouvoir passer des paramètres) 20) Activer le framebuffer peut produire des effets négatif sur la stabilité ensuite, en plus c'est à peut près inutile en général. 21) Activer alsa absolument ! Ne pas oublier "OSS [*] API" . Et configurer pour la carte son (dans PCI devices) 22) Activer surtout ehci et ohci, uhci éventuellement (si carte Intel ou Via) (enfin au moins tout en modules). Activer aussi "USB Mass Storage support" pour avoir le support des clé USB (mettre en dur pour ne pas à avoir à charger le module!) ainsi que "USB Human Interface Device (full HID) support" pour les souris/claviers USB File systems Mettre le maximum de systèmes de fichiers en dur afin de pouvoir booter n'importe où... (Ext2, Ext3, Reiserfs, JFS, XFS), ainsi que le NTFS éventuellement (pas en écriture! voire aide). Activer aussi "SMB file system support" dans "Network File Systems" Activer également "NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)" sous "Native Language Support" afin de pouvoir accéder tranquillement aux données des disques ntfs et fat de windows. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 Part IV : Kernel Hacking & Others Profiling support Moyennement utile, "If unsure say N" Kernel hacking 1: [*] Kernel debugging 1-1: [ ] Check for stack overflows 1-2: [ ] Stack utilization instrumentation 1-3: [ ] Debug memory allocations 1-4: [*] Magic SysRq key 1-5: [ ] Spinlock debugging 1-6: [ ] Page alloc debugging 1-7: [ ] Compile the kernel with debug info 2: [ ] Kernel lock metering 3: [*] Sleep-inside-spinlock checking 4: [ ] Compile the kernel with frame pointers 5: [*] Use 4Kb for kernel stacks instead of 8Kb 1-4) Permet d'activer les combinaisons de touches "Alt"+"Sys"+[lettre] ... afin de ne pas faire de reset trop violent. 5) Permet d'utiliser des piles de 4K au lieu de 8 afin de faire tourner plus de threads et de réduire la "pression" de l'interface graphique sur le système. Vous pouvez activer sans problème si vous avez une carte nVIDIA (et les drivers >6106), je ne sais pas pour ATI mais il semble que ce soit bon (à tester quand même sans avant;) ) Security options Pour rendre encore plus sécurisé linux... A priori c'est inutile sauf si vous savez ce que vous faîtes... Cryptographic options Pour crypter un système de fichiers... à vous de voir mais à piori c'est moyennement utile... Library routines Activer CRC32c pour permettre le chargement de certains modules... Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 Sauvegarde Une fois que tout est bien configuré, je vous conseille de faire "Save Configuration to an Alternate File" Car il ne sauvegarde pas toujours très bien (et puis, pour pouvoir recharger après un "make clean mrproper") Personnellement, je sauvegarde avec le noyau en 0.config (puis 1.config pour le suivant, etc...) Il va sans dire qu'il est préférable de reconfigurer à chaque fois le noyau... Même si copier le fichier de config marche dans 99% des cas... Il peut y avoir des nouvelles options, ainsi que disparition d'anciennes. (Je vous conseille aussi d'utiliser les touches numériques au-dessus des lettres, et non le pavé numérique, je me suis déjà fait avoir : ça a quitté le make menuconfig quand je tapais des chiffres et tout ça sans sauvegarder, bien sûr ) Ensuite, il suffit de quitter en disant de sauvegarder la configuration. Compilation Comme il est écrit dans le README... la méthode pour compiler le noyau est la suivante : $ make $ make modules_install ($ mount /boot) $ cp ../linux/arch/i386/boot/bzImage /boot/kernel-2.6.X /!\Je vous conseille de ne jamais écraser l'ancien noyau... Copiez donc avec un nouveau nom dans le répertoire /boot, ceci afin de pouvoir toujours booter sur l'ancien noyau/!\ Puis configurer : *lilo: modifier /etc/lilo.conf et lancer "lilo" *grub: modifier /boot/grub/grub.conf ou /boot/grub/menu.lst /!\De même, créez une nouvelle entrée dans le bootloader, afin de pouvoir choisir entre l'ancien et le nouveau... Comme cela, si le noyau ne boote pas, il reste toujours l'ancien!/!\ Rebooter, et c'est bon !!! Trucs et astuces Modifier le nom du noyau:Il est parfois utile de modifier le nom du noyau (par exemple pour fair plusieurs version...Il vaut mieux séparer les modules, et donc avoir des noms différents)Il faut pour cela modifier le Makefile et changer le paramètre EXTRAVERSION. Cette chaîne de caractère sera ajoutée au numéro du noyau, que ce soit pour le "uname" ou pour le répertoire où sont stockés les modules.Cela est à faire avant la compilation. Utiliser les "Magic SysKeys":Quand tout à l'ai planté, au lieu de rebooter sauvagement le PC, il est possible d'utiliser les "Magic SysKeys". Cela consiste à appuyer simultanément sur "Alt", "Sys" (Impr.écran) et une touche du clavier.Alt+Sys+S : resynchronise les systèmes de fichiers montés afin de vider notamment les cachesAlt+Sys+U : remonte les systèmes de fichiers en écriture seulementAlt+Sys+B : reboote l'ordinateurIl faut faire ces 3 commandes l'une après l'autre, dans un interval d'au moins 1 seconde (le temps que ça agisse)...Si l'ordinateur redémarre après avoir appuyé sur "B", il n'y aura pas de problèmes sur les systèmes de fichiers...Sinon il faudra faire un restet brutal. Quelques optimisations->Mettre de préférence le périphérique PCI correspondant à votre carte son (alsa) en "dur", cela permet au noyau de détecter automatiquement et de ne pas avoir à charger tous les modules...->Pour ceux qui ont des cartes graphiques nvidia, désactivez totalement le support de l'agp, cela afin d'activer celui des drivers nvidia qui est plus efficace... Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 A quoi sert l'initrd? L'initrd est une une sorte d'image disque qui contient principalement un exécutable ("linuxrc") et qui permet de faire certaines choses entre le chargement du noyau et l'init du système... Par exemple : ->détecter les périphériques de boot et charger les modules correspondants (contrôleurs SATA/SCSI/USB/...) ->détecter le type de la partiton et cherger les modules correspondants (reiserfs, xfs, jfs...) ->booter en réseau avec un menu ->permettre d'avoir une ligne de commande simplifiée en cas de problème, etc... Cependant, en général, tout ce que le noyau a besoin pour booter (contrôleur et système de fichiers) est mis "en dur" dans le noyau, et cet initrd est alors tout simplement inutile... Si c'est votre cas, vous pouvez tout simplement vous en passer. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 [reserved] Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 16 juillet 2004 Auteur Partager Posté(e) le 16 juillet 2004 Voilà, c'est fini... Je met en forme pour que ce soit tout zoli maintenant ! EDIT : C'est bon, c'est fini !!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
warzi Posté(e) le 18 juillet 2004 Partager Posté(e) le 18 juillet 2004 bô travail très bonne initiative de ta part ... on a de plus en plus envie de se (re)mettre a linux Lien vers le commentaire Partager sur d’autres sites More sharing options...
-rem- Posté(e) le 18 juillet 2004 Partager Posté(e) le 18 juillet 2004 je suis en train de l'incorporer dans le guide linux des inpactiens, mais c'est long a mettre en page... Je me suis permis aussi tuxxx de faire des screenshots avec gimp sur mon serveur pour les images des menu du noyau.... Je te les mailerais si tu veux...ou tu les repiqueras dans le guide.. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 18 juillet 2004 Auteur Partager Posté(e) le 18 juillet 2004 je suis en train de l'incorporer dans le guide linux des inpactiens, mais c'est long a mettre en page... Tu m'étonne Je me suis permis aussi tuxxx de faire des screenshots avec gimp sur mon serveur pour les images des menu du noyau.... Je te les mailerais si tu veux...ou tu les repiqueras dans le guide... OK Lien vers le commentaire Partager sur d’autres sites More sharing options...
-rem- Posté(e) le 18 juillet 2004 Partager Posté(e) le 18 juillet 2004 j'en integrerais d'autres par la suite, car je me suis rendu compte que ca ne serait pas tres pratique avec ta numerotation des lignes, pour y faire reference apres, donc, l'idee est de mettre le screenshot, suivi de ta version txt qui comporte la numerotation, qu'en penses tu ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.