Raspberry Pi : Installation Archlinux sur carte SD 16GO


Installation d’Archlinux sur Carte SD 16 Go pour un Raspberry Pi Modèle B.

Télechargement de la derniere version de archlinux ARM, sur le site de Raspberry Pi : http://www.raspberrypi.org/downloads

Actuellement la dernière version est celle datant du 18 Septembre 2012 :

$ wget http://files.velocix.com/c1410/images/archlinuxarm/archlinux-hf-2012-09-18/archlinux-hf-2012-09-18.zip

On vérifie l’intégrité (toujours utile) :

$ sha1sum archlinux-hf-2012-09-18.zip
56e043f3c629f6c408759bcc157d2d635ce0b6af  archlinux-hf-2012-09-18.zip

On extrait notre archive zip :

 unzip archlinux-hf-2012-09-18.zip

On met en place notre Carte SD, pour connaitre quel périphérique est utilisé on fait un petit « dmesg »

$ dmesg
...(extrait)...
[ 6685.088186] scsi 7:0:0:0: Direct-Access     Multiple Card  Reader     1.00 PQ: 0 ANSI: 0
[ 6685.826912] sd 7:0:0:0: [sdb] 31504384 512-byte logical blocks: (16.1 GB/15.0 GiB)
[ 6685.828905] sd 7:0:0:0: [sdb] Write Protect is off
[ 6685.828911] sd 7:0:0:0: [sdb] Mode Sense: 03 00 00 00
[ 6685.830904] sd 7:0:0:0: [sdb] No Caching mode page present
[ 6685.830910] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 6685.836904] sd 7:0:0:0: [sdb] No Caching mode page present
[ 6685.836910] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 6685.838290]  sdb: sdb1 sdb2
[ 6685.843910] sd 7:0:0:0: [sdb] No Caching mode page present
[ 6685.843917] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 6685.843921] sd 7:0:0:0: [sdb] Attached SCSI removable disk

on voit que notre carte SD correspond, au device /dev/sdb

On pose notre systeme :

$ sudo dd if=archlinux-hf-2012-09-18.img of=/dev/sdb bs=1M
1886+0 records in
1886+0 records out
1977614336 bytes (2.0 GB) copied, 168.367 s, 11.7 MB/s

On place notre carte dans le raspberry, on branche écran hdmi/clavier usb OU le cable ethernet, on boot et on peut se connecter en ssh sur notre raspberry 😉 (root/root)
Pour connaître notre ip, si on a pas d’écran HDMI (ou d’apdateur HDMI, VGA/DVI) : nmap -sn 192.168.1.0/24

$ nmap 192.168.1.0/24
 
Nmap scan report for 192.168.1.16
Host is up (0.040s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

On se connecte :

ssh root@192.168.1.16

Maintenant, on partitionne les 16 GO sur la Carte SD

# fdisk /dev/mmcblk0

On regarde les partitions avec la commande p :

Command (m for help): p
Disk /dev/mmcblk0: 16.1 GB, 16130244608 bytes
4 heads, 16 sectors/track, 492256 cylinders, total 31504384 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c21e5
 
        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *        2048      194559       96256    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          194560     3862527     1833984   83  Linux

On supprime la partition 2 afin de la refaire pour nos 16GO, il est possible si vous le désirez de partionner d’une autre manière mais cela reste le même principe

Command (m for help): d  
Partition number (1-4): 2
Partition 2 is deleted

On peut vérifier le résultat :

Command (m for help): p  
Disk /dev/mmcblk0: 16.1 GB, 16130244608 bytes
4 heads, 16 sectors/track, 492256 cylinders, total 31504384 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c21e5
 
        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *        2048      194559       96256    c  W95 FAT32 (LBA)

On crée une nouvelle partition avec les mêmes infos seul le last sector change.

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (194560-31504383, default 194560): 
Using default value 194560
Last sector, +sectors or +size{K,M,G} (194560-31504383, default 31504383): 
Using default value 31504383
Partition 2 of type Linux and of size 15 GiB is set

On enregistre avec la commande w

Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
 
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

On redémarre.

Le travail n’est pas terminé, il faut l’appliquer pour le filesystem.

Pour cela on resize, c’est assez long.

# resize2fs /dev/mmcblk0p2 
resize2fs 1.42.5 (29-Jul-2012)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mmcblk0p2 to 3913728 (4k) blocks.

Et après, c’est terminé ! On reboot notre système et voila 🙂

Après un petit redémarrage on peut faire les mises à jour, ainsi que changer le nom de la machine.

Pour les mises à jour :

# pacman -Suy

On modifie notre nom de machine.

vi /etc/hostname

Et si vous désirez installer des packages qui ne sont pas présents dans le mirror list pour ARM mais présent sur les dépôts pour x86 et x86_64 :
On récupère un package, on modifie son PKGBUILD de manière à remplacer les architectures existantes par la notre : uname -m
Et après c’est la routine : makepkg –asroot PKGBUILD et voilà
Après on installe notre archive. Dans mon cas, cela a été nécessaire lors de l’installation du package dsniff.

It’s OverSimple, isn’t it ?