Une carte SD avec Raspbian

Il y a longtemps, j’ai installé NOOBS et Raspbian sur mon Raspberry Pi. J’avais démarré la bête, j’avais trouvé fun et j’avais rangé le tout. J’avais surtout besoin de la carte SD pour la remettre dans mon appareil photo. Ces temps-ci, j’avais envie d’utiliser mon Raspberry Pi pour tester un écran qui me résiste avec un PIC. Pour faire simple, j’ai choisi d’utiliser Raspbian. Voici quelques notes pour l’installer.

La première étape était de télécharger l’archive. Un lien est disponible sur le site de la fondation. J’ai utilisé SHA-1 pour vérifier qu’elle était OK ^^ Sur cette même page de téléchargement, il y a un lien vers un guide for beginners. J’ai d’abord choisi PiWriter2. L’approche drag and drop me semblait simple et est bien dans l’esprit Mac.

Le fichier dmg contient un README.txt qui donne les instructions à suivre. Une fois la carte SD formatée (voir mon article sur NOOBS), il suffit de faire glisser l’icône de cette carte depuis le Finder vers la fenêtre de PiWriter2. Une pop-up s’ouvre et on peut choisir de sauvegarder la carte ou alors d’y écrire une image. Une autre pop-up s’ouvre pour aller trouver sur le disque dur le fichier img de la distribution Linux. Le zip de Rapsbian contient ce fichier img. Malheureusement, cela n’a pas fonctionné chez moi à partir de cette étape… Il n’arrivait pas à démonter la carte pour travailler dessus. Le README.txt indique une procédure pour fournir les droits administrateur mais cela n’a pas fonctionné non plus. En glissant ma carte SD sur la fenêtre de PiWriter2, il me demandait mon mot de passe administrateur mais s’arrêtait là… Je vous conseille cette solution si elle marche chez vous, elle semble vraiment simple.

J’ai donc choisi la méthode brute et ai utilisé la ligne de commande avec dd. Vous pouvez suivre ce tutoriel très clair. J’ai simplement changé dans les paramètres de dd le nom du lecteur : j’ai remplacé disk1 par rdisk1. Cette astuce est expliqué dans le guide pour débutant déjà cité :

Note: In OS X each disk may have two path references in /dev:

  • /dev/disk# is a buffered device, which means any data being sent undergoes extra processing.
  • /dev/rdisk# is a raw path, which is much faster, and perfectly OK when using the dd program.

On a Class 4 SD card the difference was around 20 times faster using the rdisk path.

Voici les commandes nécessaires et leurs résultats (on remarquera que la commande de démontage n’a pas beaucoup d’effets visibles sur le contenu de la liste) :

$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.9 GB    disk1
   1:             Windows_FAT_32 BOOT                    15.9 GB    disk1s1

$ diskutil unmountdisk /dev/disk1
Unmount of all volumes on disk1 was successful

$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.9 GB    disk1
   1:             Windows_FAT_32 BOOT                    15.9 GB    disk1s1

$ dd if=2014-01-07-wheezy-raspbian.img of=/dev/rdisk1 bs=2m
1412+1 records in
1412+1 records out
2962227200 bytes transferred in 683.745051 secs (4332356 bytes/sec)

Vous voyez qu’il faut attendre un moment. La première fois, je n’avais pas mis l’option bs et ça a été vraiment long… Au bout d’un moment, j’ai fait Crtl+C et la console m’a indiqué que ça avait tourné quelque chose comme 3300 secondes et ce n’était pas fini… On peut débrancher et rebrancher la carte et on constate qu’elle contient des trucs. Il suffit de la mettre dans le Raspberry Pi et de le démarrer. La suite est semblable à ce que j’ai expliqué dans mon article sur NOOBS.

Publicités

3 Réponses

  1. On peut demander à dd ou il en est en envoyant un signal SIGUSR1 par exemple à l’aide de la commande kill. Mais en effet, mettre une « block size » appropriée rendra les choses beaucoup plus rapides. La valeur par défaut est de 512 octets, mais les cartes SD travaillent avec des secteurs de 4K ou plus gros. Donc, à chaque écriture d’un block de 512 octets, la carte SD doit lire 4K dans son buffer de travail, modifier les 512 octets, et réécrire le tout en flash. Si on écrit des secteurs entiers, cette opération n’est pas nécessaire, ce qui accélère les choses. C’est valable aussi avec les clés USB et la plupart des disques dur, donc dans le doute, il vaut mieux toujours utiliser des gros blocs (genre 2M). Le seul inconvénient est qu’il faut 2M de RAM libre pour cela, mais c’est rarement un problème de nos jours.

    J'aime

    6 avril 2014 à 9:32

  2. Pingback: Raspberry Pi, WiFi, ssh et ligne de commande | Pierre Gradot

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s