Ligne 108 : |
Ligne 108 : |
| Nous n'utilisons que 57Mb après démarrage de l'OS. Pas mal non plus pour un début... | | Nous n'utilisons que 57Mb après démarrage de l'OS. Pas mal non plus pour un début... |
| | | |
− | La commande {{df|cat /proc/meminfo}} nous apprend qu'une partie de cette mémoire (8Mb) est allouée mais inactive... prête a bosser. | + | La commande {{fname|cat /proc/meminfo}} nous apprend qu'une partie de cette mémoire (8Mb) est allouée mais inactive... prête a bosser. |
| | | |
| + | Le temps nécessaire au boot (et obtention de la connexion SSH est de 20 secondes. |
| | | |
| + | === Retirer le support NTFS / FUSE === |
| + | Voici encore [https://projects.drogon.net/raspberry-pi/initial-setup2/ quelques optimisations issues du site drogon.net]. |
| + | |
| + | Il y a peut de chance que nous utilisions un jour NTFS (système de fichier de Windows), nous pouvons nous séparer de quelques modules en plus. |
| + | |
| + | sudo apt-get purge libfuse2 |
| + | |
| + | ''Fuse'' permet de monter des systèmes de fichier dans l'espace utilisateur... ce n'est probablement pas/plus pertinent dans le cas de ce projet. |
| + | |
| + | <small>La recommandation original est reprise ci-dessous, il ne reste plus que libfuse2<br> |
| + | sudo apt-get purge fuse-utils<br /> |
| + | sudo apt-get purge libfuse2<br /> |
| + | sudo apt-get purge libntfs10</small> |
| + | |
| + | === Consoles Virtuelles === |
| + | Savez-vous ce qu'est une console virtuelle? Les utilisez vous? |
| + | |
| + | Sur un système de type Linux, vous avez généralement une console graphique et 6 consoles textes. Il est possible de passer d'une console texte à l'autre en pressant la combinaison de touche Alt+F1, Alt+F2, etc (ou Alt+DROITE, Alt+GAUCHE). |
| + | |
| + | Le retour à la console graphique se fait à l'aide de CTRL+ALT+F1 (mais nous nous sommes déjà occupé de la console graphique). |
| + | |
| + | |
| + | Avoir une ou deux consoles texte à disposition peut être bien pratique, par contre, votre Pi en démarre 6! Evitons le gaspillage des ressources et faisons un peu de ménage. |
| + | |
| + | |
| + | Il faut éditer le fichier système {{fname|inittab}} à l'aide de la commande |
| + | |
| + | sudo nano /etc/inittab |
| + | |
| + | et naviguer presque jusqu'à la fin du fichier pour trouver une ligne qui ressemble à ceci: |
| + | |
| + | |
| + | 4:23:respawn:/sbin/getty 115200 tty4 |
| + | |
| + | |
| + | Et commenter ces lignes en plaçant le symbole # en tout début de ligne. Faites le pour les 3 lignes mentionnant '''tty4''', '''tty5''' et '''tty6'''. |
| + | |
| + | === Préserver la console série === |
| + | Il est également possible de se connecter sur le Pi à l'aide d'une console série (nécessitant {{pl||un convertisseur USB/Série que l'on branche sur le GPIO}}). |
| + | |
| + | {{ambox-stop|text=Etant donné que nous voulons réaliser un OS dédicacé à Python et au hacking électronique, il est préférable de préserver cette console série (sauf autre nécessité comme l'utilisation du {{pl|62|module GPS Utime}} ou {{pl|581|Hat GPS}}) }} |
| + | |
| + | [[Fichier:Rasp-Hack-USB-Serie-TTL-intro.jpg|500px]] |
| + | |
| + | Si vous ne comptez pas utiliser cette fonctionnalité avec votre Pi alors vous pouvez également commenter la ligne contenant '''ttyAMA0''' dans le fichier {{fname|/etc/inittab}} (comme décrit ci-dessus). |
| + | |
| + | Voyez ce [[Rasp-Hack-USB-Serie-TTL|tutoriel pour plus d'informations]]. |
| + | |
| + | === Retirer Python Game === |
| + | Représente 1.8Mo... que nous pouvons donc éliminer puisque pas vraiment utile dans notre contexte. |
| + | |
| + | <nowiki>cd ~ |
| + | rm -rf python_games</nowiki> |
| + | |
| + | === Retirer les relicats X11 === |
| + | La commande suivante m'apprend que j'ai encore quelques paquets X11 sur la carte. |
| + | |
| + | sudo dpkg --get-selections | grep -v "deinstall" | grep x11 |
| + | |
| + | Il s'agit de... |
| + | * dbus-x11 |
| + | * libx11-6:armhf |
| + | * libx11-data |
| + | * libx11-xcb1:armhf |
| + | |
| + | Je m'empresse donc de les désinstaller avec: |
| + | |
| + | <nowiki>sudo apt-get remove `sudo dpkg --get-selections | grep -v "deinstall" | grep x11 | sed s/install//`</nowiki> |
| + | |
| + | Ce qui me désinstalle une série de dépendance dans le foulée... pour un total de 149Mb. |
| + | |
| + | sudo apt-get autoremove |
| + | |
| + | Fait encore un peu de ménage et nous enlève 129 Mb supplémentaires. |
| + | |
| + | === Préserver GCC === |
| + | |
| + | La commande suivante nous permet de lister les package GCC. |
| + | |
| + | sudo dpkg --get-selections | grep -v "deinstall" | grep gcc\- |
| + | |
| + | <font color="red">'''Nous n'allons pas éliminer GCC de la distribution pour le moment'''</font>, l'installation de certains EGG Python font parfois appel à une phase de compilation. |
| + | |
| + | <small>{{underline|Note:}} |
| + | |
| + | Il est possible d'effacer les anciennes versions de GCC et de ne garder que la version 4.7. |
| + | |
| + | sudo apt-get remove gcc-4.4-base:armhf gcc-4.5-base:armhf gcc-4.6-base:armhf |
| + | </small> |
| + | |
| + | === Préserver les paquets -dev === |
| + | |
| + | Pour le moment, nous n'allons pas éliminer les paquet '''-dev''' utilisés pour la compilation. |
| + | |
| + | Il est possible de les lister à l'aide de la commande: |
| + | |
| + | sudo dpkg --get-selections | grep "\-dev" |
| + | |
| + | <small>{{underline|Note:}} |
| + | |
| + | Il est possible d'effacer ces paquet à l'aide de la commande. |
| + | |
| + | sudo apt-get remove `sudo dpkg --get-selections | grep "\-dev" | sed s/install//` |
| + | </small> |
| + | |
| + | === Doc et fonts === |
| + | Nous n'avons pas l'intention d'utiliser cette installation pour découvrir l'utilisation des commandes systèmes.... nous n'avons donc pas besoin des ''manpages''. |
| + | |
| + | Par ailleurs, les fonts truetypes ne nous serons pas d'une grande utilité, ni a doc relative au lib raspberry pi. |
| + | |
| + | Nous allons donc désinstaller tout cela: |
| + | |
| + | <nowiki>sudo apt-get remove libraspberrypi-doc fonts-freefont-ttf manpages</nowiki> |
| + | |
| + | Cela libère 58 Mb. |
| + | |
| + | Puis faisons un peu de ménage |
| + | |
| + | sudo apt-get autoremove |
| + | |
| + | qui libère encore 6Mb |
| + | |
| + | === Deuxième évaluation === |
| + | |
| + | Passons la serpillière |
| + | |
| + | sudo apt-get clean |
| + | |
| + | et voyons ou nous en sommes arrivé. |
| + | |
| + | [[Fichier:Raspy-df-01.jpg]] |
| + | |
| + | Je n'en reviens pas, nous sommes déja en dessous du Giga (environ 887Mo) pour RootFs :-) |
| + | |
| + | Côté mémoire, nous sommes passé de 57Mb a 56Mb. Rien d'extraordinaire mais c'est normal, ce n'est pas sur ce point que les efforts étaient concentrés. |
| + | |
| + | === Les plus gros fichiers === |
| + | Voici une commande qui va nous permettre de trouver les plus gros fichier dans notre système de fichier. |
| + | |
| + | sudo find / -type f -size +10000k -exec ls -lh {} \; | awk '{ print $NF ": " $5 }' |
| + | |
| + | Ce qui produit le résultat suivant: |
| + | |
| + | <nowiki>find: `/proc/2215/task/2215/fd/5': No such file or directory |
| + | find: `/proc/2215/task/2215/fdinfo/5': No such file or directory |
| + | find: `/proc/2215/fd/5': No such file or directory |
| + | find: `/proc/2215/fdinfo/5': No such file or directory |
| + | /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages: 34M |
| + | /var/swap: 100M |
| + | /usr/lib/gcc/arm-linux-gnueabihf/4.6/cc1plus: 9.8M |
| + | /usr/share/icons/nuoveXT2/icon-theme.cache: 24M</nowiki> |
| + | |
| + | Nous avons: |
| + | * le swap qui fait 100Mb!!! |
| + | * icon-theme.cache qui est un fichier de 24Mb a lui tout seul. |
| + | |
| + | Si l'on va fureter dans /usr/share/icons/nuoveXT2/ l'on se rend vite compte qu'il y a plein d'autres ressources graphique. |
| + | |
| + | <nowiki>pi@raspy ~ $ cd /usr/share/icons/nuoveXT2/ |
| + | pi@raspy /usr/share/icons/nuoveXT2 $ ls |
| + | 128x128 22x22 32x32 48x48 72x72 extra index.theme |
| + | 16x16 24x24 36x36 64x64 96x96 icon-theme.cache |
| + | pi@raspy /usr/share/icons/nuoveXT2 $ ls -l |
| + | total 23820 |
| + | drwxr-xr-x 12 root root 4096 Feb 16 13:17 128x128 |
| + | drwxr-xr-x 12 root root 4096 Feb 16 13:17 16x16 |
| + | drwxr-xr-x 12 root root 4096 Feb 16 13:17 22x22 |
| + | drwxr-xr-x 12 root root 4096 Feb 16 13:17 24x24 |
| + | drwxr-xr-x 12 root root 4096 Feb 16 13:17 32x32 |
| + | drwxr-xr-x 12 root root 4096 Feb 16 13:17 36x36 |
| + | drwxr-xr-x 12 root root 4096 Feb 16 13:17 48x48 |
| + | drwxr-xr-x 12 root root 4096 Feb 16 13:17 64x64 |
| + | drwxr-xr-x 10 root root 4096 Feb 16 13:17 72x72 |
| + | drwxr-xr-x 10 root root 4096 Feb 16 13:17 96x96 |
| + | drwxr-xr-x 2 root root 4096 Feb 16 13:17 extra |
| + | -rw-r--r-- 1 root root 24336748 Feb 16 13:33 icon-theme.cache |
| + | -rw-r--r-- 1 root root 7512 Apr 16 2012 index.theme |
| + | pi@raspy /usr/share/icons/nuoveXT2 $ </nowiki> |
| + | |
| + | un petit {{fname|du -h -d 0}} nous apprends que cela représente quand même 32Mb. |
| + | |
| + | Ces ressources doivent appartenir à LXDE, il parait que omxplayer nous gratifie d'un joli fichier test.h264 de 30M (une vidéo en haute définition). |
| + | |
| + | === Retirer LXDE et omxplayer === |
| + | |
| + | sudo apt-get remove lxde-common lxde-icon-theme omxplayer |
| + | |
| + | <small>{{underline|Note:}}<br />lxde-common et omxplayer ne semble déjà plus installés à cet étape. lxde-icon-theme permet de récupérer 5Mb.</small> |
| + | |
| + | Pas de chance, cela laisse toujours en place mon beau fichier /usr/share/icons/nuoveXT2/icon-theme.cache de 24 Mb. |
| + | |
| + | Cette fois, je l'efface manuellement |
| + | |
| + | sudo rm /usr/share/icons/nuoveXT2/icon-theme.cache |
| + | |
| + | === Le fichier Swap === |
| + | En cherchant les plus gros fichiers, nous avons identifié le fichier swap qui fait 100 Mb tout rond. |
| + | |
| + | Nous avons déjà désinstallé dphys-swapfile... ce fichier ne sert donc normalement plus a rien. |
| + | |
| + | Nous pouvons donc nous permettre d'en diminuer la taille à... 1K ;-) |
| + | |
| + | <nowiki>sudo swapoff -a |
| + | cd /var |
| + | sudo dd if=/dev/zero of=swap bs=1K count=1</nowiki> |
| + | |
| + | <small>{{underline|Note:}}<br />Si dphys-swapfile n'avait pas été désinstallé, une bonne opération serait de le remplir de zéro (pour améliorer la compression de l'image finale). |
| + | Cela peut se faire à l'aide de la commande |
| + | |
| + | sudo dd if=/dev/zero of=swap bs=1M count=100</small> |
| + | |
| + | === Les Logs === |
| + | Il y a encore moyen de gagner de la place en effaçant les fichiers logs. Cela peut représenter de un à quelques MB. |
| + | |
| + | Cette opération sera à reconduire lorsque l'on voudra préparer l'image finale... |
| + | |
| + | <nowiki>cd /var/log/ |
| + | sudo rm `find . -type f`</nowiki> |
| + | |
| + | === Troisième évaluation === |
| + | Un petit coup de serpillière (qui récupère quand même quelques méga sur le système de fichier). |
| + | |
| + | sudo apt-get clean |
| + | |
| + | Que nous annonce ''disk free''? (avec la commande {{fname|df -h}}) |
| + | |
| + | [[Fichier:Raspy-df-02.jpg]] |
| + | |
| + | == Image de sauvegarde == |
| + | Nous allons réaliser une image de "sécurité" (faire une copie de la carte SD dans un fichier). |
| + | |
| + | Nous allons utiliser l'utilitaire {{fname|dd}} sur un système Unix/Linux. |
| + | |
| + | Nous allons éteindre proprement notre pi avec un {{fname|sudo shutdown -h now}} puis placer la carte SD dans un système Linux (nous utilisons Linux Mint... dérivé d'Ubuntu... lui même dérivé de Débian). |
| + | |
| + | === Identifier le périphérique === |
| + | Pour commencer, nous allons utiliser l'utilitaire fdisk pour lister les disques et les partitions, y compris les partitions de la carte SD. |
| + | |
| + | sudo fdisk -l |
| + | |
| + | Il y a beaucoup d'information mais cette qui nous intéresse se trouve précisément ici. |
| + | |
| + | <nowiki> |
| + | Disque /dev/mmcblk0 : 3965 Mo, 3965190144 octets |
| + | 4 têtes, 16 secteurs/piste, 121008 cylindres, total 7744512 secteurs |
| + | Unités = secteurs de 1 * 512 = 512 octets |
| + | Taille de secteur (logique / physique) : 512 octets / 512 octets |
| + | taille d'E/S (minimale / optimale) : 512 octets / 512 octets |
| + | Identifiant de disque : 0x0009bf4f |
| + | |
| + | Périphérique Amorçage Début Fin Blocs Id. Système |
| + | /dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA) |
| + | /dev/mmcblk0p2 122880 6399999 3138560 83 Linux |
| + | </nowiki> |
| + | |
| + | Notre périphérique (disque) correspondant à la carte SD est '''/dev/mmcblk0'''. Vous pouvez d'ailleurs voir les deux partitions correspondantes un peu plus bas (une en W95 et l'autre Linux). |
| + | |
| + | === Faire la copie === |
| + | Nous allons utiliser la commande {{fname|dd}} également surnommée ''Disk Destroyer''. Il faut faire bien attention à l'utilisation des paramètres if (entrée) et of (sortie). |
| + | |
| + | {{ambox-stop|text=La commande dd permet d'effacer le contenu d'un disque en quelques secondes... et c'est irrémédiable! Faites donc bien attention à vos paramètres if et of.}} |
| + | |
| + | La commande suivante copie le contenu de la carte SD (/dev/mmcblk0) dans un fichier (RasPy-Eval3.img) du répertoire courant. |
| + | |
| + | La commande est: |
| + | |
| + | sudo dd if=/dev/mmcblk0 of=RasPy-Eval3.img |
| + | |
| + | Ce qui après la copie nous offre un beau petit fichier de 4 Go (3965190144 octets pour être précis). |
| + | |
| + | Voici le résultat de la commande en sachant que le bloc-size (taille de bloc) est de 512 octets par défaut: |
| + | |
| + | <nowiki>7744512+0 enregistrements lus |
| + | 7744512+0 enregistrements écrits |
| + | 3965190144 octets (4,0 GB) copiés, 207,469 s, 19,1 MB/s</nowiki> |
| + | |
| + | === Compresser l'image === |
| + | Nous allons essayer de compresser l'image pour obtenir une archive aussi petite que possible. La compression zip produit une archive de 980Mb. |
| + | |
| + | L'utilisation de la commande |
| + | |
| + | 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on RasPy-Eval3.img.7z RasPy-Eval3.img |
| + | |
| + | produit une archive 7z de la taille de 701.6 Mo (c'est déjà mieux) |
| + | |
| + | == To Do == |
| + | * Raspi-Config: 16Mb pour le GPU. Charger I2C et SPI par défaut. |
| + | * [[Pi-Python-PuDB|INstaller puDB]] (debogeur Python en ligne de commande) |
| + | * sudo apt-get install python-pip |
| + | * sudo pip install pyserial |
| + | * Installer les sources Adafruit |
| + | * Installer PySerial, PyUsb |
| + | * S'assurer de la présence de easy_install, pip, sudo pip install RPi.GPIO |
| + | |
| + | == Ressource == |
| + | * [http://www.cnx-software.com/2012/07/31/84-mb-minimal-raspbian-armhf-image-for-raspberry-pi/ Minimal Raspbian Image] |
| | | |
| | | |
| {{RasPy-TRAILER}} | | {{RasPy-TRAILER}} |