{"id":1344,"date":"2013-03-10T22:31:07","date_gmt":"2013-03-10T21:31:07","guid":{"rendered":"https:\/\/www.azurs.net\/carnet\/?p=1344"},"modified":"2025-10-16T14:33:43","modified_gmt":"2025-10-16T12:33:43","slug":"arch-linux-sur-raspberry-pi-installation","status":"publish","type":"post","link":"https:\/\/www.azurs.net\/carnet\/2013\/03\/arch-linux-sur-raspberry-pi-installation\/","title":{"rendered":"Arch linux sur Raspberry Pi : installation"},"content":{"rendered":"<h2>Pourquoi installer Arch Linux ARM sur le Raspberry Pi ?<\/h2>\n<p>Apr\u00e8s avoir go\u00fbt\u00e9 les joies de <a title=\"Informations en anglais sur la distribution Raspbian\" href=\"http:\/\/www.raspbian.org\/\">Raspbian<\/a>, la distribution de Linux bas\u00e9e sur la <a title=\"Wikipedia : pr\u00e9sentation d\u00e9taill\u00e9e du projet Debian\" href=\"http:\/\/fr.wikipedia.org\/wiki\/Debian\">Debian<\/a> pour le <strong><a title=\"Framboise sonore\" href=\"https:\/\/www.azurs.net\/carnet\/2013\/01\/installer-mpd-sur-raspberry-pi\/\">Raspberry Pi<\/a><\/strong>, j&rsquo;ai test\u00e9 l&rsquo;installation de la distribution <a title=\"Informations en anglais sur la distribution Arch Linux ARM\" href=\"http:\/\/archlinuxarm.org\/\">Arch Linux ARM<\/a>, une version de la distribution <a title=\"Informations sur le projet Arch Linux (en anglais)\" href=\"https:\/\/www.archlinux.org\/\">Arch Linux<\/a> d\u00e9di\u00e9e aux machines dot\u00e9es d&rsquo;une <a title=\"Wikipedia : article en anglais consacr\u00e9 \u00e0 l'architecture ARM\" href=\"http:\/\/en.wikipedia.org\/wiki\/ARM_architecture\">architecture ARM<\/a>.<\/p>\n<p>Arch Linux me paraissait l\u00e9g\u00e8re, souple, simple et solide, et me permettait surtout de choisir ce que j&#8217;embarquais sans m&rsquo;encombrer par exemple avec un serveur graphique alors que j&rsquo;ai l&rsquo;intention d&rsquo;utiliser le <strong>Raspberry Pi<\/strong> dans cette configuration uniquement en tant que serveur.<\/p>\n<p>Comme souvent, j&rsquo;ai trouv\u00e9 des informations d\u00e9taill\u00e9es sur la meilleure mani\u00e8re d&rsquo;installer et de configurer Arch Linux ARM sur le <strong>Raspberry Pi<\/strong> dans des endroits divers, en butinant gaiement au fil des questions soulev\u00e9es et des difficult\u00e9s rencontr\u00e9es. Ma principale source d&rsquo;informations a cependant \u00e9t\u00e9 le guide pour l&rsquo;installation d&rsquo;Arch Linux ARM sur le <strong>Raspberry Pi<\/strong> disponible (en anglais) sur le Wiki <a href=\"http:\/\/elinux.org\/\">Embedded Linux<\/a> : <a href=\"http:\/\/elinux.org\/ArchLinux_Install_Guide\">ArchLinux Install Guide<\/a>.<\/p>\n<p>Voici donc le parcours que j&rsquo;ai emprunt\u00e9 pour cette installation, d\u00e9crit pas \u00e0 pas&#8230; <!--more--><\/p>\n<h2>T\u00e9l\u00e9chargement de la derni\u00e8re image de la distribution Arch Linux ARM<\/h2>\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 t\u00e9l\u00e9charger la derni\u00e8re version de l&rsquo;image de la distribution d&rsquo;Arch Linux adapt\u00e9e au <strong>Raspberry Pi<\/strong>. Les liens permettant d&rsquo;acc\u00e9der aux derni\u00e8res images pour carte SD des diff\u00e9rentes distributions Linux recommand\u00e9es ou sugg\u00e9r\u00e9es pour le <strong>Raspberry Pi<\/strong> sont disponibles sur <a href=\"http:\/\/www.raspberrypi.org\/\">le site Web du projet<\/a>, sur la <a href=\"http:\/\/www.raspberrypi.org\/downloads\">page d\u00e9di\u00e9e aux t\u00e9l\u00e9chargements<\/a>. Les images \u00e0 t\u00e9l\u00e9charger se pr\u00e9sentent sous la forme de fichiers compress\u00e9s (ZIP) accessibles soit en t\u00e9l\u00e9chargement direct depuis un serveur soit sous la forme d&rsquo;un torrent.<\/p>\n<p>J&rsquo;ai choisi le torrent correspondant \u00e0 la derni\u00e8re version de l&rsquo;image pour carte SD de la distribution Arch Linux ARM qui, \u00e0 l&rsquo;heure o\u00f9 j&rsquo;\u00e9cris ces lignes, permet de r\u00e9cup\u00e9rer l&rsquo;archive compress\u00e9e <strong>archlinux-hf-2013-02-11.zip<\/strong>.<\/p>\n<p>J&rsquo;ai donc t\u00e9l\u00e9charg\u00e9 l&rsquo;archive et je l&rsquo;ai d\u00e9compress\u00e9e. Je dispose d\u00e9sormais d&rsquo;un fichier archlinux-hf-2013-02-11.img qu&rsquo;il va me falloir installer sur la carte SD que j&rsquo;ins\u00e9rerai ensuite dans le <strong>Raspberry Pi<\/strong>.<\/p>\n<h2>Montage de l&rsquo;image de la distribution Arch Linux ARM sur une carte SD<\/h2>\n<p>Une fois l&rsquo;archive archlinux-hf-2013-02-11.zip d\u00e9compress\u00e9e, il faut donc <em>monter<\/em> l&rsquo;image sur une carte SD dont la capacit\u00e9 doit \u00eatre d&rsquo;au moins 2\u00a0Go. Il ne suffit pas de copier le fichier contenu dans l&rsquo;archive et de le coller sur la carte SD: il faut utiliser un logiciel qui permet d&rsquo;installer le syst\u00e8me d&rsquo;exploitation sur la carte de mani\u00e8re \u00e0 ce que le <strong>Raspberry Pi<\/strong> puisse d\u00e9marrer \u00e0 partir de la carte.<\/p>\n<p>J&rsquo;ai choisi une carte SD de <a title=\"Wikip\u00e9dia : explications en anglais sur les diff\u00e9rentes classes de cartes SD\" href=\"http:\/\/en.wikipedia.org\/wiki\/Secure_Digital#Speed_Class_Rating\">classe 10<\/a> d&rsquo;une capacit\u00e9 de 8\u00a0Go r\u00e9cup\u00e9r\u00e9e d&rsquo;un appareil photo et dont je n&rsquo;avais plus l&rsquo;usage (l&rsquo;op\u00e9ration de montage conduira \u00e0 la perte totale des donn\u00e9es qui pouvaient \u00e9ventuellement se trouver sur la carte SD).<\/p>\n<p>Il existe plusieurs possibilit\u00e9s pour r\u00e9aliser le montage de la carte. Les diff\u00e9rentes mani\u00e8res de le faire sont expliqu\u00e9es en d\u00e9tail selon le syst\u00e8me d&rsquo;exploitation depuis lequel l&rsquo;op\u00e9ration doit \u00eatre r\u00e9alis\u00e9e sur la page <a href=\"http:\/\/elinux.org\/RPi_Easy_SD_Card_Setup\">RPi Easy Card Setup<\/a> du Wiki <a href=\"http:\/\/elinux.org\/\">Embedded Linux<\/a>. Pour ma part, Comme la seule machine sur laquelle j&rsquo;ai \u00e0 ce jour install\u00e9 une distribution de Linux ne dispose pas d&rsquo;un lecteur de cartes SD utilisable avec les cartes au standard <a title=\"Wikip\u00e9dia : d\u00e9finition en anglais du standard SDHC\" href=\"http:\/\/en.wikipedia.org\/wiki\/Secure_Digital#SDHC\">SDHC<\/a>, j&rsquo;ai effectu\u00e9 l&rsquo;op\u00e9ration depuis une autre machine tournant sous Windows 7.<\/p>\n<p>Sous Windows, il est recommand\u00e9 de recourir au logiciel <em>Win32 Disk Imager<\/em> qui peut \u00eatre <a href=\"http:\/\/sourceforge.net\/projects\/win32diskimager\/files\/\">t\u00e9l\u00e9charg\u00e9 ici<\/a>. Pour l&rsquo;utiliser, il faut d\u00e9compresser l&rsquo;archive contenant la derni\u00e8re version compil\u00e9e du logiciel dans un dossier et lancer l&rsquo;ex\u00e9cutable Win32DiskImager.exe depuis ce dossier. Il faut ensuite naviguer pour atteindre l&#8217;emplacement du fichier correspondant \u00e0 l&rsquo;image \u00e0 monter sur la carte et (la carte SD ayant \u00e9t\u00e9 ins\u00e9r\u00e9e pr\u00e9alablement), de s\u00e9lectionner l&rsquo;unit\u00e9 sur laquelle l&rsquo;image sera <em>\u00e9crite<\/em> (dans mon cas, la carte SD correspond \u00e0 l&rsquo;unit\u00e9 H:).<\/p>\n<p>Attention \u00e0 bien v\u00e9rifier ce point avant de continuer, car le montage de l&rsquo;image sur l&rsquo;unit\u00e9 correspondante revient \u00e0 une modification irr\u00e9versible du support, ce qui veut dire que les donn\u00e9es qui s&rsquo;y trouvaient \u00e9ventuellement avant le montage ont de tr\u00e8s fortes chances de ne plus \u00eatre accessibles apr\u00e8s l&rsquo;op\u00e9ration !<\/p>\n<p>Une fois que tout est bien v\u00e9rifi\u00e9, cliquer sur le bouton <em>Write<\/em> pour lancer le montage de l&rsquo;image sur la carte SD. Cette op\u00e9ration peut prendre un certain temps et se conclut normalement par le message <em>Write Successful<\/em> qui indique que tout s&rsquo;est bien pass\u00e9. On peut alors quitter Win32DiskImager et \u00e9jecter la carte SD d\u00e9sormais pr\u00eate \u00e0 faire d\u00e9marrer le <strong>Raspberry Pi<\/strong>.<\/p>\n<h2>Configuration d&rsquo;Arch Linux ARM sur le Raspberry Pi<\/h2>\n<p>La suite se passe sur le <strong>Raspberry Pi<\/strong> : une fois \u00e9ject\u00e9e de la machine depuis laquelle j&rsquo;ai proc\u00e9d\u00e9 au montage de l&rsquo;image, j&rsquo;ai ins\u00e9r\u00e9 la carte SD d\u00e9sormais configur\u00e9e dans le <strong>Raspberry Pi<\/strong> hors tension, reli\u00e9 le <strong>Raspberry Pi<\/strong> \u00e0 mon routeur via le port Ethernet. J&rsquo;ai ensuite rebranch\u00e9 l&rsquo;alimentation.<\/p>\n<p>Je dispose d&rsquo;un <a title=\"Un petit \u00e9cran pour le Raspberry Pi\" href=\"https:\/\/www.azurs.net\/carnet\/2013\/02\/un-petit-ecran-pour-le-raspberry-pi\/\">\u00e9cran miniature<\/a> pour le <strong>Raspberry Pi<\/strong>, mais il faut avoir du courage et de bons yeux pour travailler avec cet \u00e9cran plus de 5 minutes. Je n&rsquo;ai par ailleurs pas l&rsquo;intention d&rsquo;installer dans cette configuration un serveur graphique. J&rsquo;ai donc effectu\u00e9 la suite de l&rsquo;installation en me connectant au <strong>Raspberry Pi<\/strong> via SSH. C&rsquo;est possible et relativement simple, car la distribution Arch Linux ARM embarque un serveur SSH activ\u00e9 par d\u00e9faut. Pour cette installation, j&rsquo;aurais pu continuer depuis la machine tournant sous Windows \u00e0 partir de laquelle j&rsquo;ai mont\u00e9 l&rsquo;image sur la carte SD, en utilisant un client SSH tel que <a href=\"http:\/\/www.bitvise.com\/ssh-client\">Bitvise<\/a> ou encore <a href=\"http:\/\/www.9bis.net\/kitty\/?page=Accueil&amp;zone=fr\">Kitty<\/a>, mais il \u00e9tait plus pratique pour moi de le faire \u00e0 partir de mon autre machine sur laquelle tourne une distribution de Linux (Xubuntu, pour ne pas la nommer).<\/p>\n<h3>Connexion au Raspberry Pi en tant que root via SSH<\/h3>\n<p>Depuis un terminal, j&rsquo;ai lanc\u00e9 la connexion au <strong>Raspberry Pi<\/strong> via SSH en tant qu&rsquo;administrateur (utlisateur <em>root<\/em> :<\/p>\n<p><code>$ ssh root@X.X.X.X<\/code><\/p>\n<p>O\u00f9 X.X.X.X est l&rsquo;adresse IP attribu\u00e9e au <strong>Raspberry Pi<\/strong> sur mon r\u00e9seau local.<\/p>\n<p>J&rsquo;obtiens l&rsquo;invite suivante :<\/p>\n<p><code>root@X.X.X.X's password: <\/code><\/p>\n<p>Je saisis le mot de passe par d\u00e9faut de l&rsquo;utilisateur <em>root<\/em> qui n&rsquo;est autre que&#8230; <em>root<\/em>. Le prompt qui appara\u00eet dans la console est alors :<\/p>\n<p><code>[root@alarmpi ~]#<\/code><\/p>\n<p>\u00c7a y est, je suis connect\u00e9 au Raspberry (dont le nom d&rsquo;h\u00f4te est <em>alarmpi<\/em>) en tant que <em>root<\/em>. Je vais maintenant pouvoir proc\u00e9der \u00e0 l&rsquo;installation finale et \u00e0 la configuration du syst\u00e8me.<\/p>\n<h3>Changement du mot de passe de l&rsquo;utilisateur root<\/h3>\n<p>Premi\u00e8re t\u00e2che qu&rsquo;il est de bonne pratique d&rsquo;accomplir : changer le mot de passe par d\u00e9faut de l&rsquo;utilisateur <em>root<\/em>.<\/p>\n<p>Pour le faire, j&rsquo;utilise la commande passwd :<\/p>\n<p><code># passwd<\/code><\/p>\n<p>L&rsquo;invite suivante appara\u00eet alors :<\/p>\n<p><code>Enter new UNIX password: <\/code><\/p>\n<p>Je saisis le nouveau mot de passe, qu&rsquo;il m&rsquo;est demand\u00e9 de confirmer :<\/p>\n<p><code>Retype new UNIX password: <\/code><\/p>\n<p>Je m&rsquo;ex\u00e9cute, et j&rsquo;obtiens la r\u00e9ponse suivante :<\/p>\n<p><code>passwd: password updated successfully<\/code><\/p>\n<p>Le mot de passe de l&rsquo;utilisateur <em>root<\/em> est d\u00e9sormais chang\u00e9.<\/p>\n<h3>Redimensionnement des partitions de la carte SD pour en exploiter toute la capacit\u00e9<\/h3>\n<p>Ma carte SD ayant une capacit\u00e9 de 8\u00a0Go, largement sup\u00e9rieure \u00e0 la capacit\u00e9 minimale requise de 2\u00a0Go, j&rsquo;ai int\u00e9r\u00eat \u00e0 redimensionner les partitions pour utiliser toute la capacit\u00e9 de la carte.<\/p>\n<p>Comme pour le montage de l&rsquo;image, il y a plusieurs mani\u00e8res de le faire. Des <a title=\"Explications d\u00e9taill\u00e9es en anglais sur la mani\u00e8re de redimensionner les partitions de la carte SD\" href=\"http:\/\/elinux.org\/RPi_Resize_Flash_Partitions\">explications d\u00e9taill\u00e9es \u00e0 ce sujet sont disponibles (en anglais) sur le Wiki Embedded Linux<\/a>. J&rsquo;ai choisi la <a href=\"http:\/\/elinux.org\/RPi_Resize_Flash_Partitions#Manually_resizing_the_SD_card_on_Raspberry_Pi\">m\u00e9thode r\u00e9alisable sur le Raspberry Pi lui-m\u00eame<\/a>, c&rsquo;est \u00e0 dire la m\u00e9thode qui me permettait de redimensionner les partitions sans d\u00e9brancher le Raspberry Pi, en \u00e9jecter la carte SD, ins\u00e9rer la carte dans une autre machine, etc.<\/p>\n<p><strong>11\/07\/2013 : ATTENTION : les indications pour redimensionner les partitions expos\u00e9es ci-dessous ne sont plus compl\u00e8tement \u00e0 jour depuis la mise \u00e0 disposition de l&rsquo;image archlinux-hf-2013-06-15.img (<a href=\"http:\/\/archlinuxarm.org\/platforms\/armv6\/raspberry-pi\">voir ici<\/a>). Si vous avez configur\u00e9 votre carte SD \u00e0 partir de cette image, vous allez rencontrer des probl\u00e8mes avec la partition 5 (mmcblk0p5), probl\u00e8mes li\u00e9s aux changements introduits depuis la sortie de <a href=\"http:\/\/www.raspberrypi.org\/archives\/4100\">NOOBS<\/a>. La nouvelle s\u00e9quence d&rsquo;actions \u00e0 effectuer dans ce cas est <a href=\"https:\/\/www.azurs.net\/carnet\/2013\/03\/arch-linux-sur-raspberry-pi-installation\/#redimp2\">reprise en fin de billet<\/a>.<\/strong><\/p>\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 changer la table de partition en utilisant l&rsquo;outil <em>fdisk<\/em>. Il faut retirer les partitions existantes et cr\u00e9er un nouvelle partition unique qui occupe la totalit\u00e9 de l&rsquo;espace disque libre sur la carte SD. Ceci ne change que la table de partition et non les donn\u00e9es des diff\u00e9rentes partitions sur le disque. Le point de d\u00e9part de la nouvelle partition doit \u00eatre align\u00e9 avec l&rsquo;ancienne partition.<\/p>\n<p>Je lance donc <em>fdisk<\/em> :<\/p>\n<p><code>fdisk -c -u \/dev\/mmcblk0<\/code><\/p>\n<p>J&rsquo;obtiens la r\u00e9ponse suivante :<\/p>\n<p><code>Welcome to fdisk (util-linux 2.22.2).<br \/>\nChanges will remain in memory only, until you decide to write them.<br \/>\nBe careful before using the write command.<\/code><\/p>\n<p>Et l&rsquo;invite :<\/p>\n<p><code>Command (m for help):<\/code><\/p>\n<p>Fdisk me pr\u00e9vient du fait que les changements effectu\u00e9s resteront uniquement en m\u00e9moire jusqu&rsquo;\u00e0 ce que je d\u00e9cide de les \u00e9crire, et m&rsquo;invite \u00e0 faire attention avant d&rsquo;utiliser la commande <em>write<\/em>.<\/p>\n<p>Je saisis la commande <em>p<\/em> pour afficher les partitions existantes.<\/p>\n<p>Fdisk me r\u00e9pond :<\/p>\n<p><code>Disk \/dev\/mmcblk0: 8035 MB, 8035237888 bytes, 15693824 sectors<br \/>\nUnits = sectors of 1 * 512 = 512 bytes<br \/>\nSector size (logical\/physical): 512 bytes \/ 512 bytes<br \/>\nI\/O size (minimum\/optimal): 512 bytes \/ 512 bytes<br \/>\nDisk identifier: 0x0004f23a<\/code><\/p>\n<p>Device Boot Start End Blocks Id System<br \/>\n\/dev\/mmcblk0p1 * 2048 186367 92160 c W95 FAT32 (LBA)<br \/>\n\/dev\/mmcblk0p2 186368 3667967 1740800 83 Linux<\/p>\n<p>Ma carte SD a une capacit\u00e9 de 8035\u00a0Mo et comporte deux partitions : \/dev\/mmcblk0p1 qui contient le syst\u00e8me et \/dev\/mmcblk0p2, la partition que je souhaite redimensionner pour occuper tout l&rsquo;espace disponible.<\/p>\n<p>J&rsquo;efface la seconde partition :<\/p>\n<p><code>Command (m for help): d<br \/>\nPartition number (1-4): 2<br \/>\n<\/code><\/p>\n<p>Fdisk me r\u00e9pond :<\/p>\n<p><code>Partition 2 is deleted<\/code><\/p>\n<p>Je vais maintenant cr\u00e9er une nouvelle partition (commande <em>n<\/em>) :<\/p>\n<p><code>Command (m for help): n<\/code><\/p>\n<p>Fdisk me demande d&rsquo;indiquer le type de partition, et je choisis de cr\u00e9er une partition primaire (commande <em>p<\/em> :<\/p>\n<p><code>Partition type:<br \/>\np   primary (1 primary, 0 extended, 3 free)<br \/>\ne   extended<br \/>\nSelect (default p): p<br \/>\n<\/code><\/p>\n<p>Je cr\u00e9e la seconde partition (commande <em>2<\/em>) :<\/p>\n<p><code>Partition number (1-4, default 2): 2<\/code><\/p>\n<p>Fdisk me demande de d\u00e9finir le premier secteur. Je veille \u00e0 aligner la nouvelle partition sur l&rsquo;ancienne (dans mon cas, il faut faire d\u00e9marrer la partition au secteur 186368) :<\/p>\n<p><code>First sector (186368-15693823, default 186368): 186368<\/code><\/p>\n<p>Fdisk me demande de d\u00e9finir le dernier secteur. Je choisis la valeur la plus \u00e9lev\u00e9e possible pour occuper tout l&rsquo;espace disponible (dans mon cas, le dernier secteur est le 15693823) :<\/p>\n<p><code>Last sector, +sectors or +size{K,M,G} (186368-15693823, default 15693823): 15693823<\/code><\/p>\n<p>Fdisk m&rsquo;indique que la seconde partition est bien en place :<\/p>\n<p><code>Partition 2 of type Linux and of size 7.4 GiB is set<\/code><\/p>\n<p>C&rsquo;est termin\u00e9, il me reste \u00e0 confirmer l&rsquo;\u00e9criture des changements (commande <em>w<\/em>) :<\/p>\n<p><code>Command (m for help): w<\/code><\/p>\n<p>Fdisk me r\u00e9pond que la table de partition a \u00e9t\u00e9 modifi\u00e9e :<\/p>\n<p><code>The partition table has been altered!<\/code><\/p>\n<p>Calling ioctl() to re-read partition table.<\/p>\n<p>WARNING: Re-reading the partition table failed with error 16: Device or resource busy.<br \/>\nThe kernel still uses the old table. The new table will be used at<br \/>\nthe next reboot or after you run partprobe(8) or kpartx(8)<br \/>\nSyncing disks.<\/p>\n<p>Je red\u00e9marre le syst\u00e8me pour v\u00e9rifier que mes changements ont bien \u00e9t\u00e9 pris en compte :<\/p>\n<p><code># shutdown -r now<\/code><\/p>\n<p>Nouvelle connexion au Raspberry Pi via SSH (en tant que root avec le nouveau mot de passe d\u00e9fini pr\u00e9c\u00e9demment), et je relance <em>fdisk<\/em> pour v\u00e9rifier :<\/p>\n<p><code># fdisk -c -u \/dev\/mmcblk0<br \/>\nWelcome to fdisk (util-linux 2.22.2).<br \/>\nChanges will remain in memory only, until you decide to write them.<br \/>\nBe careful before using the write command.<br \/>\nCommand (m for help): p<br \/>\nDisk \/dev\/mmcblk0: 8035 MB, 8035237888 bytes, 15693824 sectors<br \/>\nUnits = sectors of 1 * 512 = 512 bytes<br \/>\nSector size (logical\/physical): 512 bytes \/ 512 bytes<br \/>\nI\/O size (minimum\/optimal): 512 bytes \/ 512 bytes<br \/>\nDisk identifier: 0x0004f23a<br \/>\nDevice Boot      Start         End      Blocks   Id  System<br \/>\n\/dev\/mmcblk0p1   *        2048      186367       92160    c  W95 FAT32 (LBA)<br \/>\n\/dev\/mmcblk0p2          186368    15693823     7753728   83  Linux<\/code><\/p>\n<p>Command (m for help):<\/p>\n<p>La seconde partition commence bien au secteur 186368 mais finit d\u00e9sormais au secteur 15693823 (au lieu de 3667967 tout \u00e0 l&rsquo;heure) : tout s&rsquo;est bien pass\u00e9 !<\/p>\n<p>Je quitte fdisk (commande <em>q<\/em>).<\/p>\n<p>Je vais d\u00e9sormais redimensionner le syst\u00e8me de fichiers pour qu&rsquo;il corresponde \u00e0 la nouvelle partition, en utilisant la commande resize2fs :<\/p>\n<p><code># resize2fs \/dev\/mmcblk0p2<\/code><\/p>\n<p>J&rsquo;obtiens le r\u00e9sultat suivant (qui prend quelques secondes) :<\/p>\n<p><code>resize2fs 1.42.6 (21-Sep-2012)<br \/>\nFilesystem at \/dev\/mmcblk0p2 is mounted on \/; on-line resizing required<br \/>\nold_desc_blocks = 1, new_desc_blocks = 1<br \/>\nThe filesystem on \/dev\/mmcblk0p2 is now 1938432 blocks long.<br \/>\n<\/code><\/p>\n<p>Je v\u00e9rifie la nouvelle taille du syst\u00e8me de fichiers en utilisant la commande df :<\/p>\n<p><code># df -h<\/code><\/p>\n<p>J&rsquo;obtiens la r\u00e9ponse suivante :<\/p>\n<p><code>Filesystem      Size  Used Avail Use% Mounted on<br \/>\nrootfs          7.3G  459M  6.6G   7% \/<br \/>\n\/dev\/root       7.3G  459M  6.6G   7% \/<br \/>\ndevtmpfs         83M     0   83M   0% \/dev<br \/>\ntmpfs           232M     0  232M   0% \/dev\/shm<br \/>\ntmpfs           232M  240K  231M   1% \/run<br \/>\ntmpfs           232M     0  232M   0% \/sys\/fs\/cgroup<br \/>\ntmpfs           232M     0  232M   0% \/tmp<br \/>\n\/dev\/mmcblk0p1   90M   24M   67M  27% \/boot<br \/>\n<\/code><br \/>\nTout semble s&rsquo;\u00eatre bien pass\u00e9.<\/p>\n<p>C&rsquo;est fini pour ce qui concerne le redimensionnement des partitions sur la carte SD.<\/p>\n<h3>Mise \u00e0 jour du syst\u00e8me<\/h3>\n<p>Il est temps de mettre \u00e0 jour l&rsquo;installation en utilisant le gestionnaire de paquets livr\u00e9 par d\u00e9faut avec Arch Linux : pacman.<\/p>\n<p>Avant d&rsquo;utiliser pacman, il faut initialiser une cl\u00e9 pacman en utilisant la commande pacman-key :<\/p>\n<p><code># pacman-key --init<\/code><\/p>\n<p>Cette op\u00e9ration prend un certain temps :<br \/>\n<code><br \/>\ngpg: \/etc\/pacman.d\/gnupg\/trustdb.gpg: trustdb created<br \/>\ngpg: no ultimately trusted keys found<br \/>\ngpg: Generating pacman keychain master key...<br \/>\ngpg: key 84E5A793 marked as ultimately trusted<br \/>\ngpg: Done<br \/>\n==&gt; Updating trust database...<br \/>\ngpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model<br \/>\ngpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u<br \/>\n<\/code><\/p>\n<p>Pacman est pr\u00eat \u00e0 \u00eatre lanc\u00e9. Pour savoir ce que je fais, je parcours la description de pacman disponible <a href=\"http:\/\/wiki.archlinux.fr\/Pacman\">en fran\u00e7ais<\/a> ou <a href=\"https:\/\/wiki.archlinux.org\/index.php\/pacman\">de mani\u00e8re plus d\u00e9taill\u00e9e en anglais<\/a> dans la documentation d&rsquo;Arch Linux.<\/p>\n<p>Pour mettre \u00e0 jour le syst\u00e8me :<\/p>\n<p><code>pacman -Syu<\/code><\/p>\n<p>\u00c0 ce stade, j&rsquo;ai rencontr\u00e9 des probl\u00e8mes de connexion avec les miroirs h\u00e9bergeant les d\u00e9p\u00f4ts, probl\u00e8mes que je n&rsquo;ai pas r\u00e9ussi \u00e0 r\u00e9soudre compl\u00e8tement \u00e0 ce jour : certains d\u00e9p\u00f4ts, et en particulier le d\u00e9p\u00f4t <em>Core<\/em> semblent fr\u00e9quemment impossibles \u00e0 atteindre. J&rsquo;ai parcouru la documentation et les forums \u00e0 la recherche d&rsquo;une solution, et j&rsquo;en ai essay\u00e9 deux sans obtenir un succ\u00e8s total : la d\u00e9sactivation d&rsquo;ipv6 d&rsquo;une part, et l&rsquo;ajout d&rsquo;un miroir h\u00e9berg\u00e9 en France \u00e0 la liste des miroirs d&rsquo;autre part.<\/p>\n<h3>D\u00e9sactivation d&rsquo;ipv6<\/h3>\n<p>J&rsquo;ai lu \u00e0 plus d&rsquo;une reprise que les probl\u00e8mes de connexion aux miroirs pour la mise \u00e0 jour des paquets pouvaient \u00eatre li\u00e9s \u00e0 l&rsquo;activation d&rsquo;ipV6, dont la d\u00e9sactivation suffirait parfois \u00e0 r\u00e9gler le probl\u00e8me.<\/p>\n<p>En suivant les <a href=\"http:\/\/wiki.archlinux.fr\/Desactiver_IPv6\">conseils donn\u00e9s sur le Wiki francophone d&rsquo;Arch Linux<\/a>, j&rsquo;ai donc tent\u00e9 d&rsquo;\u00e9diter \/boot\/config.txt en rajoutant <em>disable.ipv6=1<\/em> \u00e0 la fin.<\/p>\n<p><code># nano \/boot\/config.txt<\/code><\/p>\n<p>Apr\u00e8s la derni\u00e8re ligne, je rajoute :<\/p>\n<p><code>disable.ipv6=1<\/code><\/p>\n<p>Je red\u00e9marre ensuite et je tente \u00e0 nouveau de mettre \u00e0 jour le syst\u00e8me :<\/p>\n<p><code># shutdown -r now<br \/>\n# pacman -Syu<\/code><\/p>\n<p>Et je rencontre toujours (assez) fr\u00e9quemment des probl\u00e8mes de d\u00e9p\u00f4t(s) inatteignable(s) : il faut s&rsquo; reprendre \u00e0 plusieurs fois pour mettre \u00e0 jour les listes de paquets et\/ou installer des mises \u00e0 jour ou des paquets nouveaux.<\/p>\n<h3>Ajout d&rsquo;un miroir h\u00e9berg\u00e9 en France \u00e0 la liste des miroirs<\/h3>\n<p>Toujours en parcourant les forums, j&rsquo;ai suppos\u00e9 que le probl\u00e8me pouvait \u00eatre li\u00e9 \u00e0 un ou plusieurs miroirs indisponibles et j&rsquo;ai cherch\u00e9 \u00e0 savoir comment on pouvait \u00e9tendre et modifier la liste des miroirs utilis\u00e9e par pacman. En suivant les <a href=\"https:\/\/wiki.archlinux.org\/index.php\/Improve_Pacman_Performance#After_changing_mirrors\">instructions en anglais publi\u00e9es sur le Wiki d&rsquo;Arch Linux<\/a>, j&rsquo;ai modifi\u00e9 la liste des miroirs en transformant en instruction la ligne comment\u00e9e r\u00e9f\u00e9ren\u00e7ant le miroir h\u00e9berg\u00e9 en France.<\/p>\n<p><code># nano \/etc\/pacman.d\/mirrorlist<\/code><\/p>\n<p>Puis, comme conseill\u00e9 :<\/p>\n<p><code># pacman -Syy<\/code><\/p>\n<p>J&rsquo;ai l&rsquo;impression (que je n&rsquo;ai pas cherch\u00e9 \u00e0 objectiver) que le type d&rsquo;erreurs que je cherchais \u00e0 \u00e9liminer est moins fr\u00e9quent, mais je n&rsquo;en suis pas tr\u00e8s s\u00fbr. En tous cas, la situation est tout \u00e0 fait acceptable m\u00eame s&rsquo;il faut parfois s&rsquo;armer de patience.<\/p>\n<h2>Quelques t\u00e2ches de configuration compl\u00e9mentaires d&rsquo;Arch Linux ARM<\/h2>\n<h3>Ajout d&rsquo;un utilisateur standard<\/h3>\n<p>Il est de bonne pratique de se connecter \u00e0 la machine, pour ce qui ne concerne pas les t\u00e2ches d&rsquo;administration, avec un compte d&rsquo;utilisateur standard.<\/p>\n<p>Pour cr\u00e9er ce compte d&rsquo;utilisateur, j&rsquo;installe l&rsquo;outil <em>adduser<\/em> :<\/p>\n<p><code># pacman -S adduser<\/code><\/p>\n<p>Je lance <em>adduser<\/em> et je suis les instructions en choisissant les valeurs par d\u00e9faut. Pour permettre ult\u00e9rieurement \u00e0 cet utilisateur d&rsquo;effectuer des t\u00e2ches d&rsquo;administration, je l&rsquo;ajoute au groupe <em>wheel<\/em> :<\/p>\n<p><code># usermod -a -G wheel [loginutilisateur]<\/code><\/p>\n<h3>Installation de sudo<\/h3>\n<p>Pour permettre \u00e0 des utilisateurs standard d&rsquo;effectuer des taches d&rsquo;administration, j&rsquo;installe <em>sudo<\/em> :<\/p>\n<p><code># pacman -S sudo<\/code><\/p>\n<p>J&rsquo;\u00e9dite ensuite le fichier <em>sudoers<\/em> avec nano mais en utilisant l&rsquo;outil <em>visudo<\/em> :<\/p>\n<p><code># EDITOR=nano visudo<\/code><\/p>\n<p>Je recherche la section intitul\u00e9e :<\/p>\n<p><code>## User privilege specification<\/code><\/p>\n<p>Et je d\u00e9commente la ligne :<\/p>\n<p><code>%wheel ALL=(ALL) ALL<\/code><\/p>\n<p>Je sauvegarde et je red\u00e9marre :<\/p>\n<p><code># shutdown -r now<\/code><\/p>\n<p>Les utilisateurs du groupe <em>wheel<\/em> (dont fait partie l&rsquo;utilisateur r\u00e9gulier que je viens de cr\u00e9er) peuvent maitenant effectuer des t\u00e2ches d&rsquo;administration en utilisant <em>sudo<\/em>.<\/p>\n<h3>Montage d&rsquo;une cl\u00e9 USB pour le stockage de masse<\/h3>\n<p>C&rsquo;est quasiment termin\u00e9, il me reste \u00e0 monter une unit\u00e9 de stockage de masse. Je dispose d&rsquo;une cl\u00e9 USB format\u00e9e en ext4.<\/p>\n<p>Je cr\u00e9e un r\u00e9pertoire cleusb1 dans \/mnt\/ :<\/p>\n<p><code># mkdir \/mnt\/cleusb1<\/code><\/p>\n<p>J&rsquo;\u00e9dite le fichier \/etc\/fstab :<\/p>\n<p><code># nano \/etc\/fstab<\/code><\/p>\n<p>Auquel je rajoute \u00e0 la fin la ligne suivante :<\/p>\n<p><code>\/sda1 \/mnt\/cleusb1 ext4 defaults 0 0<\/code><\/p>\n<p>Puis je red\u00e9marre le Raspberry Pi :<\/p>\n<p><code># shutdown -r now<\/code><\/p>\n<p>Ma cl\u00e9 USB est mont\u00e9e.<\/p>\n<p>C&rsquo;est fini !<\/p>\n<p>Pour aller plus loin :<\/p>\n<ul>\n<li><a href=\"http:\/\/www.f.0x2501.org\/p\/013\/\">f.0x2501.org : Archlinux sur Raspberry Pi<\/a><\/li>\n<li><a href=\"http:\/\/raspberrypi.mythic-beasts.com\/magpi\/The-MagPi-issue-9-en.pdf\">Un article du Magpi n\u00b09 est consacr\u00e9 \u00e0 l&rsquo;installation d&rsquo;Archlinux<\/a>, <a href=\"http:\/\/thefrenchmagpi.com\/index.php?title=MagPI_9_Page_20\">traduit en fran\u00e7ais ici<\/a>.<\/li>\n<\/ul>\n<p><a name=\"redimp2\"><\/a><\/p>\n<h3>Redimensionnement des partitions d&rsquo;une carte SD d&rsquo;une capacit\u00e9 sup\u00e9rieure \u00e0 2 Go pour utiliser la totalit\u00e9 de la m\u00e9moire disponible pour le syst\u00e8me de fichiers : mise \u00e0 jour<\/h3>\n<p>On lance fdisk :<\/p>\n<p><code># <strong>fdisk -c -u \/dev\/mmcblk0<\/strong><\/code><\/p>\n<p><code>Welcome to fdisk (util-linux 2.23.1).<\/code><\/p>\n<p>Changes will remain in memory only, until you decide to write them.<br \/>\nBe careful before using the write command.<\/p>\n<p>Command (m for help):<\/p>\n<p>Commande p pour lister les partitions :<\/p>\n<p><code><strong>p<\/strong><\/code><\/p>\n<p><code>Disk \/dev\/mmcblk0: 3957 MB, 3957325824 bytes, 7729152 sectors<br \/>\nUnits = sectors of 1 * 512 = 512 bytes<br \/>\nSector size (logical\/physical): 512 bytes \/ 512 bytes<br \/>\nI\/O size (minimum\/optimal): 512 bytes \/ 512 bytes<br \/>\nDisk label type: dos<br \/>\nDisk identifier: 0x00057540<\/code><\/p>\n<p>Device Boot Start End Blocks Id System<br \/>\n\/dev\/mmcblk0p1 2048 186367 92160 c W95 FAT32 (LBA)<br \/>\n\/dev\/mmcblk0p2 186368 3667967 1740800 5 Extended<br \/>\n\/dev\/mmcblk0p5 188416 3667967 1739776 83 Linux<\/p>\n<p>Command (m for help):<\/p>\n<p>On commence par effacer la partition logique (d puis 5) :<\/p>\n<p><code><strong>d<\/strong><\/code><\/p>\n<p><code>Partition number (1,2,5, default 5):<\/code><\/p>\n<p><code><strong>5<\/strong><\/code><\/p>\n<p><code>Partition 5 is deleted<\/code><\/p>\n<p>Command (m for help):<\/p>\n<p>Puis on efface la partition \u00e9tendue (d puis 2) :<\/p>\n<p><code><strong>d<\/strong><\/code><\/p>\n<p><code>Partition number (1,2, default 2):<\/code><\/p>\n<p><code><strong>2<\/strong><\/code><\/p>\n<p><code>Partition 2 is deleted<\/code><\/p>\n<p>Command (m for help):<\/p>\n<p>On recr\u00e9e la partition \u00e9tendue (n puis e, puis 2) :<\/p>\n<p><code><strong>n<\/strong><\/code><\/p>\n<p><code>Partition type:<br \/>\np   primary (1 primary, 0 extended, 3 free)<br \/>\ne   extended<br \/>\nSelect (default p):<\/code><\/p>\n<p><code><strong>e<\/strong><\/code><\/p>\n<p><code>Partition number (2-4, default 2):<\/code><\/p>\n<p><code><strong>2<\/strong><\/code><\/p>\n<p>On la fait d\u00e9marrer au m\u00eame endroit (186368, ce qui est ici propos\u00e9 par d\u00e9faut) :<\/p>\n<p><code>First sector (186368-7729151, default 186368):<\/code><\/p>\n<p><strong>Entr\u00e9e<\/strong><\/p>\n<p>Et elle finit au maximum possible (7729151, ce qui es tpropos\u00e9 ici par d\u00e9faut) :<\/p>\n<p><code>Using default value 186368<br \/>\nLast sector, +sectors or +size{K,M,G} (186368-7729151, default 7729151):<\/code><\/p>\n<p><strong>Entr\u00e9e<\/strong><\/p>\n<p><code>Using default value 7729151<br \/>\nPartition 2 of type Extended and of size 3.6 GiB is set<\/code><\/p>\n<p>Command (m for help):<\/p>\n<p>On recr\u00e9e ensuite la partition logique (n puis l puis 5) :<\/p>\n<p><code><strong>n<\/strong><\/code><\/p>\n<p><code>Partition type:<br \/>\np   primary (1 primary, 1 extended, 2 free)<br \/>\nl   logical (numbered from 5)<br \/>\nSelect (default p):<\/code><\/p>\n<p><code><strong>l<\/strong><\/code><\/p>\n<p>La nouvelle partition 5 commence au m\u00eame secteur que l&rsquo;ancienne (188416) :<\/p>\n<p><code>Adding logical partition 5<br \/>\nFirst sector (188416-7729151, default 188416):<\/code><\/p>\n<p><strong>Entr\u00e9e<\/strong><\/p>\n<p>Et finit au maximum possible (7729151, valeur propos\u00e9e par d\u00e9faut) :<\/p>\n<p><code>Using default value 188416<br \/>\nLast sector, +sectors or +size{K,M,G} (188416-7729151, default 7729151):<\/code><\/p>\n<p><strong>Entr\u00e9e<\/strong><\/p>\n<p><code>Using default value 7729151<br \/>\nPartition 5 of type Linux and of size 3.6 GiB is set<\/code><\/p>\n<p>Command (m for help):<\/p>\n<p>On \u00e9crit les changements sur la carte :<\/p>\n<p><code><strong>w<\/strong><\/code><\/p>\n<p><code>The partition table has been altered!<\/code><\/p>\n<p>Calling ioctl() to re-read partition table.<\/p>\n<p>WARNING: Re-reading the partition table failed with error 16: Device or resource busy.<br \/>\nThe kernel still uses the old table. The new table will be used at<br \/>\nthe next reboot or after you run partprobe(8) or kpartx(8)<br \/>\nSyncing disks.<\/p>\n<p>Red\u00e9marrage du Raspberry Pi :<\/p>\n<p><code># <strong>shutdown -r now<\/strong><\/code><\/p>\n<p>On met le syst\u00e8me de fichiers \u00e0 la dimension de la partition 5 :<\/p>\n<p><code># <strong>resize2fs \/dev\/mmcblk0p5<\/strong><\/code><\/p>\n<p><code>resize2fs 1.42.7 (21-Jan-2013)<br \/>\nFilesystem at \/dev\/mmcblk0p5 is mounted on \/; on-line resizing required<br \/>\nold_desc_blocks = 1, new_desc_blocks = 1<br \/>\nThe filesystem on \/dev\/mmcblk0p5 is now 942592 blocks long.<\/code><\/p>\n<p>Et on v\u00e9rifie que tout s&rsquo;est bien pass\u00e9 :<\/p>\n<p><code># <strong>df -h<\/strong><\/code><\/p>\n<p><code>Filesystem      Size  Used Avail Use% Mounted on<br \/>\n\/dev\/root       3.6G  467M  3.0G  14% \/<br \/>\ndevtmpfs         83M     0   83M   0% \/dev<br \/>\ntmpfs           231M     0  231M   0% \/dev\/shm<br \/>\ntmpfs           231M  264K  231M   1% \/run<br \/>\ntmpfs           231M     0  231M   0% \/sys\/fs\/cgroup<br \/>\ntmpfs           231M     0  231M   0% \/tmp<br \/>\n\/dev\/mmcblk0p1   90M   24M   67M  27% \/boot<\/code><\/p>\n<p>C&rsquo;est tout !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Descrition des \u00e9tapes successives d&rsquo;une installation de la distribution Arch Linux ARM sur un Raspberry Pi.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[395],"tags":[249,228,250,206,246],"class_list":["post-1344","post","type-post","status-publish","format-standard","hentry","category-bidouillages","tag-archlinux","tag-bidouillage","tag-installation","tag-linux","tag-raspberry-pi-2"],"share_on_mastodon":{"url":"","error":""},"_links":{"self":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts\/1344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/comments?post=1344"}],"version-history":[{"count":57,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts\/1344\/revisions"}],"predecessor-version":[{"id":4613,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/posts\/1344\/revisions\/4613"}],"wp:attachment":[{"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/media?parent=1344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/categories?post=1344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.azurs.net\/carnet\/wp-json\/wp\/v2\/tags?post=1344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}