RoseLazuli!

Le DockStar, un dock ARM sous ArchLinux

Il n'y a pas si longtemps, je suis tombé sur un objet étrange en cherchant des infos sur la BeagleBoard. Il s'agissait du DockStar. En fait, c'est un petit boîtier qui, à la base, devait servir de socle pour poser un disque dur FreeAgent de Seagate et le rendre accessible via Internet. Le problème, c'est que le service devient payant au bout d'un an ! Une jolie arnaque si on ne lit pas le petit rectangle rose derrière la boîte. Là où ça devient intéressant, c'est que la bête n'est rien d'autre qu'un Pogoplug légèrement modifié à la sauce Seagate. Alors à partir de là, tout devient possible : j'ai donc installé ArchLinux dessus et voici comment j'ai procédé.

1. Ne pas le brancher au net

La première étape, sûrement la plus frustrante, consiste à empêcher le DockStar de se connecter à Internet, car si jamais tel est le cas, il se connectera automatiqument aux serveurs de Pogoplug et desactivera l'accès SSH. Si par malheur vous avez déjà fait cette "bêtise", sachez qu'il est possible de faire marche arrière en réactivant le service Dropbear dans l'administration du Pogoplug, mais pour y accéder il faut forcément y être inscrit (vous avez 1 an).

Donc, pour ce faire, il y a deux solutions ou plus. La plus simple est de débrancher le câble téléphonique de la box, mais du coup, plus d'Internet partout dans la maison, donc fin du monde. Alors j'ai préféré brancher directement le DockStar sur un PC avec un câble RJ45. Dans mon cas, le serveur DHCP du DockStar donne une adresse sous la forme 169.254.X.X.

Les X sont en fait les 2 derniers nombres de l'adresse MAC. Mais la façon la plus simple pour connaître l'adresse est sûrement nmap:

On défini l'adresse IP du PC dans le même réseau que le DockStar

ifconfig eth0 169.254.1.1 # 

Puis on lance nmap:

sudo nmap -Sp 169.254.1.0/24

Starting Nmap 5.00 ( http://nmap.org ) at 2011-11-12 02:22 CET
Host 169.254.1.56 is up (0.069s latency).
MAC Address: F4:6D:04:37:D2:0E (Acer Corporation)
Host dockstar.lan (168.254.137.40) is up (0.014s latency).
MAC Address: 00:10:75:1A:89:28 (Maxtor)

Et voilà le travail ! On a obtenu l'IP. Il ne nous reste plus qu'à nous connecter.

2. Se connecter via SSH et empêcher les mise à jours

Tout d'abord, il faut se connecter au DockStar via SSH. Le mot de passe par defaut est stxadmin et l'utilisateur root, oui...

ssh root@ip_du_dockstar
Password: stxadmin
#etc/bash:$

Et vous voilà connecté ! Bref, maintenant il faut l'empêcher de se mettre à jour. On va donc lui interdire l'accès au serveurs Seagate en modifiant le fichier /etc/hosts:

cat /etc/hosts
127.0.0.1 service.pogoplug.com
127.0.0.1 pm1.pogoplug.com
127.0.0.1 pm2.pogoplug.com
127.0.0.1 service.cloudengines.com
127.0.0.1 upgrade.pogoplug.com

Attention, sur cette version Linux minimale du DockStar il n'y a que VI comme éditeur... donc petit rappel, on appuie sur i pour passer en mode insertion puis Échap pour repasser en mode commande et pour sauvegarder :w

Une fois ceci fait, on peut arrêter le service de Pogoplug en le tuant, il y en a deux, hbmgr et hbwd:

killall hbmgr
killall hbwd

Pensez aussi à supprimer hbmgr.sh dans /etc/init.d/rc, ce qui évitera de le lancer au boot. Bien, voilà qui est fait, on peut continuer !

3. Changer la NAND pour pouvoir booter depuis l'USB

Cette étape est indispensable si on veut booter sur une clé USB ou un disque dur, on remerciera donc Jeff qui a conçu un script spécialement pour installer uboot sur le DockStar. Mais avant de faire cela, il faut monter le système de fichiers en écriture :

mount / -rw -o remount

Ensuite, on change de répertoire et on télécharge le script d'installation, on le chmod et on l'exécute.

cd /tmp
wget http://jeff.doozan.com/debian/uboot/install_uboot_mtd0.sh
chmod +x install_uboot_mtd0.sh
./install_uboot_mtd0.sh
fw_setenv usb_rootfstype ext3

Le script se lance, des messages vous affirment que vous allez perdre toutes vos données, etc... On continue jusqu'à voir que l'opération s'est déroulée avec succès. Voilà, votre DockStar peut booter sur via USB maintenant.

4. Installer ArchLinux ARM sur une clé.

Retournez sur votre PC, et essayez de trouver une clé USB qui traîne sur votre bureau, sûrement la plus difficile des étapes. Une fois une clé trouvée, il faut créer 2 partitions, une en ext2 ou ext3, mais pas en ext4 qui n'est pas encore supporté sur ARM. L'autre partition sera un swap. Sur la partition principale, il faut télécharger la version ArchLinux ARM sur le site officiel. Cette version fait environ 150 Mo, il faut être patient. Une fois téléchargée, on extrait directement sur la clé, on pourra ensuite supprimer l'archive.

wget http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz
tar -xzvf ArchLinuxARM-armv5te-*.tar.gz
rm ArchLinuxARM-armv5te-*.tar.gz
sync

L'étape cruciale maintenant: branchez la clé sur le DockStar et rebootez-le. Si vous êtes toujours connecté en SSH, tapez reboot qui fera l'affaire, sinon, on débranche et rebranche l'alim.

Vous êtes sous ArchLinux ! Le boot est un peu plus long que sur le système d'origine mais c'est normal. Pour info, sur mon DockStar j'utilisais une clé USB 4 Go de marque inconnue mais qui bootait seulement quand je faisais un reboot depuis SSH, j'ai donc changé pour un disque dur USB, et depuis, aucun problème.

Sous ArchLinux, le mot de passe par défaut est root. Une fois connecté, je vous recommande grandement d'installer openntpd pour pouvoir obtenir la date et l'heure depuis des serveurs de temps, et de le placer en tant que daemon dans le rc.conf. Sachant que le DockStar n'a pas d'horloge RTC ni de pile CMOS, cela vous permettra d'être toujours à l'heure ! Si tout se passe bien, lors de l'installation d'openntpd, pacman voudra se mettre à jour et mettra à jour le noyau linux, vous serez donc sous Linux 3.0.1 ARM !

À partir de là, seule votre imagination est la limite de ce que vous voulez faire avec. Chez moi, il me sert de :

Sources: