Finished the transfer to board part and compiled the kernel

This commit is contained in:
2024-10-17 17:40:01 +02:00
parent eb51a9df77
commit 1f8e00ca1d
2 changed files with 103 additions and 5 deletions

37
Tp2.md
View File

@@ -660,7 +660,6 @@ Et quand je sors de l'invite de commande tftp on peut bien voir que le fichier a
## [Q13] Comment pouvez-vous vous assurer que votre serveur TFTPD est bien en attente de connexions (indice : ss. . . ) ? ## [Q13] Comment pouvez-vous vous assurer que votre serveur TFTPD est bien en attente de connexions (indice : ss. . . ) ?
En cas de problème avec l'autonegiciation c'est intéressant d'essayer de changer le port ethernet utilisé sur la carte. En cas de problème avec l'autonegiciation c'est intéressant d'essayer de changer le port ethernet utilisé sur la carte.
Pour verifier que tftpd fonctionne, on peut utiliser la commande `sudo ss -ulpn | grep :69` Pour verifier que tftpd fonctionne, on peut utiliser la commande `sudo ss -ulpn | grep :69`
@@ -717,7 +716,41 @@ On peut directement aller lire la rom à l'addresse ou le fichier est sensé se
## [Q15] Donnez le contenu du script, comment vous lavez converti en image et comment vous lavez récupéré et exécuté depuis U-Boot. ## [Q15] Donnez le contenu du script, comment vous lavez converti en image et comment vous lavez récupéré et exécuté depuis U-Boot.
[TODO] ## Setup le tftpd sur macos
instructions trouvées sur https://bacnh.com/howto-start-tftp-server-on-macos
`sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist`
Sur la board :
```
=> tftp 0x22000001 192.168.1.240:test.txt
ethernet@f0028000: PHY present at 7
ethernet@f0028000: Starting autonegotiation...
ethernet@f0028000: Autonegotiation complete
ethernet@f0028000: link up, 1000Mbps full-duplex (lpa: 0x7800)
Using ethernet@f0028000 device
TFTP from server 192.168.1.240; our IP address is 192.168.1.201
Filename 'test.txt'.
Load address: 0x22000001
Loading: #
0 Bytes/s
done
Bytes transferred = 18 (12 hex)
```
On a donc bien réussi à transfèrer le fichier sur la board mais maintenant si on veut le voir on doit aller à l'addresse 0x22000001 avec la commande md
```
md 0x22000001 0x10
22000001: 70207554 20787565 20736170 74736574 Tu peux pas test
22000011: 8a4d0a21 a2a81380 a9c0a46c c0001be0 !.M.....l.......
22000021: 03020040 10381110 48a02044 82a49b12 @.....8.D .H....
22000031: 78241d82 c2e4924d 0014100e 41080120 ..$xM....... ..A
```
Et on peut voir que le fichier a bien été transfèré :)

71
Tp3.md
View File

@@ -149,17 +149,82 @@ On va donc installer les bons outils et essayer à nouveau.
La compilation est vraiment lente sur ma machine il faudrait la rendre multithreadée et peut-être la faire sur une machine x86 native la prochaine fois. La compilation est vraiment lente sur ma machine il faudrait la rendre multithreadée et peut-être la faire sur une machine x86 native la prochaine fois.
J'ai retenté une seconde fois avec `-j` ce qui permet de profiter des différents coeurs de la machine et à la fin de compilation on recoit
```bash
make -j
CALL scripts/checksyscalls.sh
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
```
Ce qui devrait nous donner des indices sur ou se trouvent les inmages compilées
### [Q9] : Une fois la compilation du noyau terminée, où se trouve le noyau compilé et quelle est sa taille ? ### [Q9] : Une fois la compilation du noyau terminée, où se trouve le noyau compilé et quelle est sa taille ?
[TODO] On peut aller regarder sous `arch/arm/boot/`
à l'intérieur on peur voir
```bash
Image Makefile bootp compressed deflate_xip_data.sh dts install.sh zImage
```
On a donc une image et une zImage
```
du -sh Image
12M Image
```
et pour la zimage
```
du -sh zImage
5.5M zImage
```
### [Q10] : Aussi, quel est le fichier de Device Tree Blob (binaire) pour votre carte Sama5D3 Xplained et quelle est sa taille ? ### [Q10] : Aussi, quel est le fichier de Device Tree Blob (binaire) pour votre carte Sama5D3 Xplained et quelle est sa taille ?
[TODO] Le fichier device tree blob se trouve lui un peu plus bas dans `arch/arm/boot/dts/microchip` la on a une liste assez enorme de board mais parmis ces dernières on peut trouver une qui se nomme
```
ls | grep sama5d3_xplained
at91-sama5d3_xplained.dtb
at91-sama5d3_xplained.dts
```
Et dans ces noms on veut le blob binaire et donc on peut prendre le fichier qui finit en .dtb
```
du -sh at91-sama5d3_xplained.dtb
40K at91-sama5d3_xplained.dtb
```
Elle fait donc 40kb
Le fichier DTS est le fichier lisible par un humain avec tous les peripheriques et memoires de notre carte en particulier.
### [Q11] : Quelle est la nouvelle taille du noyau et quel pourcentage de taille en espace disque avez-vous ainsi gagné par rapport au noyau précédent ? ### [Q11] : Quelle est la nouvelle taille du noyau et quel pourcentage de taille en espace disque avez-vous ainsi gagné par rapport au noyau précédent ?
[TODO] Il va ici falloir retourner dans notre configuration
`make menuconfig`
et ensuite à partir de la on peut recompiler notre kernel
`make -j`
Et on retourne sous `arch/arm/boot/` pour voir notre noyeau nouvellement compilé.
```
du -sh zImage
3.9M zImage
```
On gagne un peu de place par rapport à Gzip mais comparé aux 12mb originaux on gagne pas mal de place
## Chargement et boot du noyau avec U-Boot ## Chargement et boot du noyau avec U-Boot