From 5c4f970213967c2b0667d684cf02ceeb2833095e Mon Sep 17 00:00:00 2001 From: Martin GOUNABOU Date: Mon, 15 Mar 2021 16:55:47 +0100 Subject: [PATCH 1/9] My message about the fix --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c8cbeb53..50a6e5fc 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,4 @@ Several exercises are available : * GNU/Linux System Programming * Embedded system with RPI3 * Usefool Tools (autotools, docker, git, ...) +My new fix From 80c41e8d753f80ed72097fcc40b30a6b0127aa90 Mon Sep 17 00:00:00 2001 From: Martin GOUNABOU Date: Mon, 15 Mar 2021 17:15:11 +0100 Subject: [PATCH 2/9] ajout fichier --- test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 00000000..e69de29b From 958ff5bd1430f24c3a570b0ed4db67e59140fc01 Mon Sep 17 00:00:00 2001 From: Martin GOUNABOU Date: Mon, 15 Mar 2021 17:18:19 +0100 Subject: [PATCH 3/9] ajout dossier TP1 --- TP1_MartinGounabou/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 TP1_MartinGounabou/test.txt diff --git a/TP1_MartinGounabou/test.txt b/TP1_MartinGounabou/test.txt new file mode 100644 index 00000000..e69de29b From ee5eb3aad622d63a17abb5996010732f6c630781 Mon Sep 17 00:00:00 2001 From: Martin GOUNABOU Date: Mon, 15 Mar 2021 17:27:42 +0100 Subject: [PATCH 4/9] test 2 --- TP1_MartinGounabou/test.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/TP1_MartinGounabou/test.txt b/TP1_MartinGounabou/test.txt index e69de29b..9daeafb9 100644 --- a/TP1_MartinGounabou/test.txt +++ b/TP1_MartinGounabou/test.txt @@ -0,0 +1 @@ +test From a367710988385f4b6f8dd152d076bab22334cd66 Mon Sep 17 00:00:00 2001 From: Martin GOUNABOU Date: Mon, 12 Apr 2021 04:04:07 +0200 Subject: [PATCH 5/9] ajout reponses tp1 et tp2 --- TP1_MartinGounabou/question4/question4 | Bin 0 -> 16704 bytes TP1_MartinGounabou/question4/question4.c | 9 ++++ TP1_MartinGounabou/question5/hello.c | 7 ++++ TP1_MartinGounabou/question5/hello.h | 6 +++ TP1_MartinGounabou/question5/main | Bin 0 -> 16680 bytes TP1_MartinGounabou/question5/main.c | 9 ++++ TP1_MartinGounabou/reponses_tp1.txt | 26 ++++++++++++ TP1_MartinGounabou/test.txt | 1 - TP2_Exercice1_MartinGounabou/reponses_tp2.txt | 39 ++++++++++++++++++ 9 files changed, 96 insertions(+), 1 deletion(-) create mode 100755 TP1_MartinGounabou/question4/question4 create mode 100644 TP1_MartinGounabou/question4/question4.c create mode 100644 TP1_MartinGounabou/question5/hello.c create mode 100644 TP1_MartinGounabou/question5/hello.h create mode 100755 TP1_MartinGounabou/question5/main create mode 100644 TP1_MartinGounabou/question5/main.c create mode 100644 TP1_MartinGounabou/reponses_tp1.txt delete mode 100644 TP1_MartinGounabou/test.txt create mode 100644 TP2_Exercice1_MartinGounabou/reponses_tp2.txt diff --git a/TP1_MartinGounabou/question4/question4 b/TP1_MartinGounabou/question4/question4 new file mode 100755 index 0000000000000000000000000000000000000000..9fb9b93959cb89935ec0e2a95ab17d4b956a7013 GIT binary patch literal 16704 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 literal 0 HcmV?d00001 diff --git a/TP1_MartinGounabou/question4/question4.c b/TP1_MartinGounabou/question4/question4.c new file mode 100644 index 00000000..130f4430 --- /dev/null +++ b/TP1_MartinGounabou/question4/question4.c @@ -0,0 +1,9 @@ +#include +#include + + +int main(void) +{ + printf("Hello World\n"); + return EXIT_SUCCESS; +} diff --git a/TP1_MartinGounabou/question5/hello.c b/TP1_MartinGounabou/question5/hello.c new file mode 100644 index 00000000..7e1bb28e --- /dev/null +++ b/TP1_MartinGounabou/question5/hello.c @@ -0,0 +1,7 @@ +#include +#include + +void Hello(void) +{ + printf("Hello World\n"); +} diff --git a/TP1_MartinGounabou/question5/hello.h b/TP1_MartinGounabou/question5/hello.h new file mode 100644 index 00000000..6213682f --- /dev/null +++ b/TP1_MartinGounabou/question5/hello.h @@ -0,0 +1,6 @@ +#ifndef H_GL_HELLO +#define H_GL_HELLO + +void Hello(void); + +#endif diff --git a/TP1_MartinGounabou/question5/main b/TP1_MartinGounabou/question5/main new file mode 100755 index 0000000000000000000000000000000000000000..7ce40d82b1a2d1d195afdd5801948d5a8dae7de5 GIT binary patch literal 16680 zcmeHOZ)_Y#6`%9jiPOaAOPWw8De)GHNJ_nN(!_OIOz!+Id-U=L$8HQwx;^_gzLV~c zbGJwBstQ4dN~hMu5+A5a5k*KP5)>j)r0@kC1qvSuO1_}9Rn<@tNKsmx^p8RzIo_Lj z@4UBOr$X?pJJ#KA-f!M}GxKJ4Z`M2WwZ3?NT_7Mh1;rNxN{@sU6QP3C4$1&TM5kzi z?^dxvECIP*a;iL{07_LlUssEb#0LSSNk}(N1FCT@T9|DnZiZ_k4Z($gZ9W+{pDX za(!O{I~rQ@cyr)k9-#Ub8;44soR@y*BKjl1f6Bv; zfViftOePPZ6lQF2x0$pG)>yh|TZO^hJ(+yY8cd92EMb~s*?i6{+KGZ~no8AE(LitL zb`(da0}Mwe66WD_E|Ez;hJLV!{A3g9oY)nQb@!NC^{x7L)j*CnVgUYz0eSwE)}@!> zC`?gb_&Vn6C$dr%oTTfNc|m+*M3pno^7);L=do3i5EmRgw+qWIIe4C9$j>==d4EF^ z(lrO~yl&1CzZ7)%+L8wTmmdK?0)7Pi2>223Bj88CkHE(w0`E3&_|TZT+-N-6@XBT( zjBn1`b(OQm)NdNk$o^NhKLhmD%4fa{(A+9eKZPY%-}-ZeJ#3WUG^YMCw{I{$-S8kh&KT28Z-5_Ty6ZGRWz7JXyf*{lBxH=~h62KlYxWvw znvQvB+Oo=p=GJ4NF3u2weoX3b??%{k!zj-gr{CFWoW2$`0xucoZrH2AK?6BxtXw$U z+zRbvdu;!)E-V(M&kY$cYe+A*vTIlDcBz(Qp@H)tWLttBD|JI{W zh>nK9?$U=hDwR{%M5%{#^gw*N>;Aiih&~uA|0y~YE59EdjF$gBWK6f+4fOu_rt3Hc zm-1k0oW35kTerMM{fn2c#>?;Ymj4#5tbW6oIukHH$DqpSL3E6G%c@B6DP=vz$p_VT;FMqW0nAo}QzPs+Z zQ@%b#zgX|npvUjzP#t+2J~J*J>v{@4N1(l^Bl<$&C+d2dmOKCr0udhl#ZTaqf^rK` z^oPR7>tdmnZw328+H`$iXya22y`lCemKdSVsinI@kzA-V8fuS*Hg<=!?odm2DBK-t zlk0*0Y3tM1pEm25%446N5GGOAA$cR0=&Rm(O;fjL)o?Zc`xUs3FX^lg#a&B|X^G zDHHqKKr-w7tD^b`@s$+3nU(zwlRtRlD`k#9JO)ZxZ88_)pCofX$o>Bfs{6rR9^0J{ z$*!`SiM%g$S5MD<+Qy-gQqC@EJM??>_O>nemZZ4l=+<_}61z|63i$?&0 z@IMFMC+>6;gx$}>p8ECTaZkRXI{#|@ED=2KYWbyt=VvVsL(CJ{Q4kc%1dq3ahF0Dp zcwW`=%d7LRmWQj+V_br8ibC_`Ln7kIH;a9qe7JgEqqg3a)$6^Mhn?J-lTrDgxK-49 z@~eg6$*-y2Kb+oz;uC`J8@2px!fW0JMN9QMuhoaURK&@sd{C?tVNag#V)Hh5eb$RB zm3cxweE(Hmgt!+n0Y`iIe$X%Zg>k^m`dDxEeol@irT)Tr zJ`KEA`xooi_obiJB90AqB`-fONS!qc#_LzW2jH&i9MBclhP( z5czS>!x7*$R&wAG;8)hI6?{MCqNB)T4P-<=lVTcpuX?{NdAP1A4i-83C14olTT6rp zf`?e2;<=gl9|Dj1?(5}eq#q;y{CoN$@YsI0{w(lXZIx1b6?plNT6fuK!7kb**qJmc z=1+K-cGeulGaf}amyyhyW10L&B4Z})e4%J2N)uuLwww2U7+dJC5mGEpw+DsG* ziAmGS*@a1QxRA(NX0nvcPJ)R;GC|X>QN`}g+^nuF2qcprL|Cr?I;CE4PepLVg5 z2|K|i>d*@|H4<^2R)Ls-mO9GnTaxw>1D6|WzF1QW^% zRwjW4lpD|3LYF<)A*+w&LBvea8Wp;2O@N3q3$*icFmx+Lb19VsZ!9SvYEmf+&O=p+ zY#N*?bBM0cVM1qNlDe;s|60ahHn`N_o~aVAs~CBGPQ_A}^N62@53Y&Xp4VTD8k9K` zuY;NEfQ-|AnAT&A_&&#(`2NOR3^Go8Ue7UVtVrm#KLGp(u%_nr^K%Cy*Ux92-0e?* zJw9`=J+BWLPf)$sMvODt^YcL(IP5ap^E#68IFvaP`f#QrAmB3t+gI0{^aF?M4ouvB z)?+*hW%vxjGOtS+H8h6gZoguMn1&3-lM(wn1pGjg2J9`kPd z9{`6jVgK->q!OWf<>ns$XI=Ih*;SF;F}U1|AGz!!q`=7fi`k!a+4DM_@uTeVciY+j zN63J&q+NJLX=4 z40e(2`FVn|(ba#RKWu*yGI)*fV<4|T`CPACpJm1?VB74l=jW4?Z9qa|JtfV{%wLBB zoV#2 +#include +#include "hello.h" + +int main(void) +{ + Hello(); + return EXIT_SUCCESS; +} diff --git a/TP1_MartinGounabou/reponses_tp1.txt b/TP1_MartinGounabou/reponses_tp1.txt new file mode 100644 index 00000000..cc1716a7 --- /dev/null +++ b/TP1_MartinGounabou/reponses_tp1.txt @@ -0,0 +1,26 @@ + +**Reponses aux questions** + +Question 1: Qu'est ce qu'un Makefile? À quoi sert make? + +le Makefile est un fichier qui contient des paramètres pour une compilation avec gcc + +En revanche make est l'outil qui appelle le makefile pour exécuter un ensemble d'actions, comme la compilation d'un projet, l'archivage de document, la mise à jour de site, etc... + + +Quel compilateur est utilisé ici? + +Le compilateur utilisé est le compilateur gcc + +Qu'est ce qu'une librairie partagée? + +les librairies partagées sont du code compilé destiné à être partagé entre plusieurs différents programmes. Ils sont distribués en tant que fichiers .so + + +Question 4: Donnez un exemple de fichier C et la ligne de commande correspondante pour obtenir un binaire exécutable (un hello world par exemple). + +Fichier question4.c, le code a exécuter est gcc question4.c -o question4 + +Question 5: Donnez un exemple de fichier C et les lignes de commandes correspondantes pour obtenir une librairie partagée. + +fichier question5.c diff --git a/TP1_MartinGounabou/test.txt b/TP1_MartinGounabou/test.txt deleted file mode 100644 index 9daeafb9..00000000 --- a/TP1_MartinGounabou/test.txt +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/TP2_Exercice1_MartinGounabou/reponses_tp2.txt b/TP2_Exercice1_MartinGounabou/reponses_tp2.txt new file mode 100644 index 00000000..fb1156f3 --- /dev/null +++ b/TP2_Exercice1_MartinGounabou/reponses_tp2.txt @@ -0,0 +1,39 @@ +Question 1 : Que se passe-t-il au bout de quelques secondes? Qu'en déduisez vous? + +Apres quelques secondes, le processus s'arrete et affiche une erreur de segmentation, j'en deduis qu'il y a une violation de memoire + +Question 2 : Quel signal a reçu le processus pour se terminer ainsi? Comment vérifiez vous le numéro du signal reçu? + +Après avoir l'aide en ligne, la violation de la protection memoire correspond au signal SIGSEGV, qui a pour numero 12, on peut juste executer la commande kill -l , on a la liste des signaux precedes de leurs numeros. + +Question 3 : Grâce à GDB et au fichier core généré, analysez la source du problème du binaire gps. Quelle partie du code est fausse? Pourquoi? + +Le problème se produit au niveau du code gps, avec l'utilisation de * nmea_vtg (& vtg) * à la ligne 40 de la source, ce qui déclenche une erreur au niveau de la bibliothèque nmea à la ligne 23 avec la commande * met (NULL) *, étant NULL un paramètre défectueux pour les put. + +Question 4 : Que se passe-t-il quand vous lancez GDB en mode interactif sur le binaire gps? + +lorsque on lance le GDB en mode interactif sur le binaire gps, le programme plante comme precedemment + +Question 5 : À quoi sert la commande ldd? Quelle information supplémentaire cela vous apporte-t-il? + +La commande ldd permet de lister l'ensemble des bibliothèques partagées requises par un exécutable. + +l'information supplementaire est la liste des bibliothèques partagées manquantes, ce qui permet de resoudre les problèmes de bibliothèques partagées manquantes. + + +Question 6 : Comment résoudre ce problème en tant qu'utilisateur? N'hésitez pas à regarder le fichier gps/run.sh. + +pour resoudre le probleme il suffit d executer les commandes suivantes + - LD_LIBRARY_PATH="$(pwd)/lib" + - export LD_LIBRARY_PATH + +Question 7 : Quelle est la différence entre les commandes s et n dans le prompt gdb suite à un breakpoint? + +La commande n, s'exécute jusqu'à la prochaine ligne de code dans le code source, tandis que La commande s, fait la même chose, mais n'entre pas dans les fonctions telles qu'elles apparaissent dans le code, sautant leur exécution. + +Question 8 : Dans quel contexte ce type d'outils peut être intéressant? + +ce type d'outils peut etre interresant lorsque on travaille sur un meme projet a plusieurs. un autre pourra debugger votre code de son ordinateur. + + + From 5adfb839dd7a6477686a9a114ac2ec738aa77bd3 Mon Sep 17 00:00:00 2001 From: Martin GOUNABOU Date: Mon, 19 Apr 2021 04:57:07 +0200 Subject: [PATCH 6/9] TP4 termine --- TP4_MartinGounabou/tp4.txt | 90 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 TP4_MartinGounabou/tp4.txt diff --git a/TP4_MartinGounabou/tp4.txt b/TP4_MartinGounabou/tp4.txt new file mode 100644 index 00000000..30bf6011 --- /dev/null +++ b/TP4_MartinGounabou/tp4.txt @@ -0,0 +1,90 @@ +Question 1: Décriver de manière plus précise l'utilité ainsi que la syntaxe de chacun des 3 fichiers mentionnés ci-dessus + + +- configs/embsys_defconfig : c'est le fichier de configuration de buildroot, ce fichier contient les intructions permettant de spécifier les éléments que nous voulons dans le système qui sera construit, la configurations se fait en choisissant des booléens ou des strings. + syntaxe: +BR2_PACKAGE_MODULE_INIT_TOOLS is not set +BR2_TARGET_UBOOT_CUSTOM_GIT_REPO_URL="" + +- busybox.config : C'est le fichier de configuration de busybox, qui permet plus ou moins de faciliter la création du lien symbolique. Les champs peuvent être activés ou désactivés en utilisant ( is not pu = y ) + syntaxe +CONFIG_FEATURE_SYSLOGD_DUP is not set +CONFIG_FEATURE_SYSLOGD_CFG=y + +- users.table : C'est un fichier utilisé par buildroot pour sauvegarder les informations relatives aux utilisateurs comme leurs shell par defaut. Chaque ligne correspond à un utilisateur. + syntaxe +user -1 users_group -1 =user1* /home/user /bin/sh - + + +Question 2: En considérant que la cible est une carte RaspberryPi3 avec un OS 32 bits, quel est le fichier de configuration Buildroot par défaut à utiliser? + +raspberrypi3_defconfig dans le dossier configs + + +Question 3: Que contient le répertoire package et à quoi servent les sous-répertoires et fichiers associés? + +Le dossier package contient tous les packages qui pourront être utilisés ou disponible à l'OS cible. +Les sous repertoires contiennent les fichiers HASHS qui sont couramment utilisés comme une méthode de vérification de la taille du fichier. +il y a aussi les fichiers configure.in qui contient les configurations du package + +Question 4: À quoi sert la commande précédente? + +cette commande permet le lancement d’une IHM de configuration utilisant Kconfig se fait, elle permet aussi de configuré le busybox, on obtient un fichier de configuration à la sortie. + +Question 5: En naviguant dans le menu, repérez: + +- Architecture : ARM little endian +- CPU : ARMV8 +- ABI : EABIhf +- Bibliothèque C : uClibc-ng +- Compilateur croisé : GCC 6.x +- version du noyau : depend du depot git +(https://github.com/raspberrypi/linux.git) URL of custom reposito│ │ + │ │ (9126e25b0934bd7bd843763310ea4b34c6e139d0) Custom repository vers│ + + +Question 6: En recherchant dans l'interface de Buildroot, déterminez si le paquet openssh sera compilé et disponible dans l'OS cible. De même, retrouver cette information en analysant le fichier de configuration embsys_defconfig. + +Dans le fichier embsts.config on a la ligne suivante BR2_PACKAGE_OPENSSH=y qui prouve que le package sera compilé et utilisable. +De même en faisant une recherche dans l'IHM ( /openshh ) on a BR2_PACKAGE_OPENSSH [=y] qui prouve que le package sera compilé et utilisable. + +Question 7: Qu'est ce que busybox? À quoi sert la commande make busybox-menuconfig? Qu'obtiens t'on et que pouvons nous faire? + +busybox est un binaire unique fournissant les commandes grâce à un jeu de liens symboliques, la commande busybox-menuconfig permet de spécifier les configurations du busybox, après on obtiens un fichier de configuration qui sera utilisé par le buildroot pour compiler l'OS cible. + +Question 8: Que contient le répertoire output/host? À quoi correspond le binaire output/host/usr/bin/arm-linux-gcc? + +le répertoire output/host contient la chaine de cross-compilation + +le binaire output/host/usr/bin/arm-linux-gcc est la chaine d'outils de cross-compilation + +Question 9: Décrire le résultat de la commande file. Que se passe t-il si vous exécutez la commande ./hw? + +nous avons un exécutable de type "object share" avec des liens dynamiques ce i signifie que es bibliothèques externes incluses dans le code source sont compilées mais un lien vers la bibliothèque compilée (ou un objet dans la perspective de l'éditeur de liens) est ajouté à l'exécutable (et les bibliothèques / objets compilés sont chargés par l'éditeur de liens au moment de l'exécution si nécessaire. +Le compilateur utilisé est le gcc de notre ordinateur. +Le fchier hw s'exécute parfaitement + + +Question 10: Utilisez la commande file sur le binaire résultant. Quelle différences constatez vous par rapport au cas précédent (binaire généré avec gcc)? Que se passe t-il si vous essayez d'exécuter la commande ./hw? Expliquez pourquoi. + +ous avons un exécutable de type "executable", la différence est que un executable compilé peut être lié à un "object share" mais pas un "executable". +ce fichier est compilé avec le compilateur compilé +il y a une erreur de format. + +Question 11: Que contient le répertoire output/images? Décrivez notamment l'utilité des fichiers rootfs.tar, zImage et sdcard.img. + +le repertoire output/images contient les images compilées. + + +Question 12: Que vous dis les résultats de la commande file lorsque vous l'utilisez sur les fichiers zImage et sdcard.img? + + +le fichier zimage est lié au kernel tandis que sdcar.img enumère les partitions de cartes SD ainsi que leurs tailles ( en gros des informations sur la carte SD du système compilé) + + +Question 13: Que contient le répertoire /tmp/rootfs? + + +le repertoire /tmp/roootfs contient plusieurs sous-repertoires (etc lib linuxrc mnt proc run sys usr ,dev home lib32 media opt root sbin tmp var ) + + From 76e59226b821a59c5a8a45172774eed1dbd2f45a Mon Sep 17 00:00:00 2001 From: Martin GOUNABOU Date: Mon, 19 Apr 2021 06:11:07 +0200 Subject: [PATCH 7/9] TPE_autotools_MartinGOUNABOU --- TP5_autotools_MartinGOUNABOU/tp5.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 TP5_autotools_MartinGOUNABOU/tp5.txt diff --git a/TP5_autotools_MartinGOUNABOU/tp5.txt b/TP5_autotools_MartinGOUNABOU/tp5.txt new file mode 100644 index 00000000..bc8acc2d --- /dev/null +++ b/TP5_autotools_MartinGOUNABOU/tp5.txt @@ -0,0 +1,28 @@ +Question 1 : En analysant le contenu du fichier configure.ac, déterminez quel header est vérifié pendant la phase de configuration. + +sys/socket.h + +Question 2 : Modifiez le fichier configure.ac pour forcer l'étape de configuration à vérifier la présence d'un header inexistant sur le système. Relancez la phase de configuration et observez les plaintes! Remettez les choses dans l'ordre lorsque vous avez terminé. + + +en ajoutant la ligne suivante dans le fichier configure.ac AC_CHECK_HEADER(sys/inexistant.h, [], [AC_MSG_ERROR(["Couldn't find sys/socket.h"])]) on obtient les erreurs suivantes : +checking sys/inexistant.h usability... no +checking sys/inexistant.h presence... no +checking for sys/inexistant.h... no + + +Question 3 : En cherchant sur le net, déterminez à quoi sert la macro AC_ENABLE_SHARED utilisée dans le fichier configure.ac. + +Modifiez le comportement par défaut pour LT_INITactiver les bibliothèques partagées. + +Question 4 : À quoi sert le fichier Makefile.am? + +Makefile.amest un fichier défini par le programmeur et est utilisé par automakepour générer le fichier Makefile.in + + +Question 5 : Modifiez le fichier Makefile.am pour qu'il compile le fichier src/miniserver/miniserver.c en un binaire nommé miniserver. + +fait + +Question6 : test de fonctionnement +erreur lors de l execussion From 5b0d72f0f3ca818d24de638eae9a6342b300fc09 Mon Sep 17 00:00:00 2001 From: Martin GOUNABOU Date: Mon, 19 Apr 2021 08:48:27 +0200 Subject: [PATCH 8/9] TP4 termine --- TP4_MartinGounabou/tp4.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/TP4_MartinGounabou/tp4.txt b/TP4_MartinGounabou/tp4.txt index 30bf6011..e13f33b2 100644 --- a/TP4_MartinGounabou/tp4.txt +++ b/TP4_MartinGounabou/tp4.txt @@ -70,6 +70,7 @@ Question 10: Utilisez la commande file sur le binaire résultant. Quelle différ ous avons un exécutable de type "executable", la différence est que un executable compilé peut être lié à un "object share" mais pas un "executable". ce fichier est compilé avec le compilateur compilé il y a une erreur de format. +avant de pour executer le fichier .hw il faudrait ajouter les varibales d'environnements avec une comande export ... Question 11: Que contient le répertoire output/images? Décrivez notamment l'utilité des fichiers rootfs.tar, zImage et sdcard.img. From b36865d769915286fa1fa9bc494f8cef75f113d2 Mon Sep 17 00:00:00 2001 From: Martin GOUNABOU Date: Mon, 10 May 2021 23:31:02 +0200 Subject: [PATCH 9/9] Projet final [MartinGounabou][EnzoEssono][JulienTaran] --- Projet_MartinGounabou_EnzoEssono_JulienTaran | 1 + 1 file changed, 1 insertion(+) create mode 160000 Projet_MartinGounabou_EnzoEssono_JulienTaran diff --git a/Projet_MartinGounabou_EnzoEssono_JulienTaran b/Projet_MartinGounabou_EnzoEssono_JulienTaran new file mode 160000 index 00000000..c47f06eb --- /dev/null +++ b/Projet_MartinGounabou_EnzoEssono_JulienTaran @@ -0,0 +1 @@ +Subproject commit c47f06eb44fc96970f0abfcc941ec16425b2a9e6