Dans cet article rien de révolutionnaire avec ce que l’on peut trouver ici ou sur le web, mais comme ce blog est autant un moyen pour moi de partager mes découvertes qu’un espace « personnel » de prise de notes, je publie tout de même mon retour d’expérience sur l’installation de Debian sur le Dockstar.

 

Première chose avant de commencer il faut connecter/brancher le Dockstar sans qu’il ait accès à Internet afin qu’il ne réalise pas une mise à jour de son système et coupe ainsi l’accès SSH (si c’est trop tard c’est réparable)

Trouver l’IP du Dockstar

Ensuite il faut trouver l’adresse IP du Dockstar, 3 solutions :

  1. Brancher le Dockstar sur un routeur DHCP (la Freebox par exemple) en ayant bien au préalable déconnecté le câble du WAN (câble téléphonique pour les boxs), puis aller dans la console de gestion et repérer l’adresse IP qui lui a été affecté
  2. Brancher le Dockstar en direct sur le PC et scanner les ports avec nmap
  3. Brancher le Dockstar en direct sur le PC et scanner le réseau avec netdiscover

J’ai personnellement testé les solutions 2 et 3 (je ne pouvais pas la 1 car ma femme regardais la TV via la box), la 3ème est sensée être plus rapide mais de mon expérience ce fut l’inverse (60s pour nmap et 90s pour netdiscover)

Trouver l’IP du Dockstar avec nmap

sudo aptitude install nmap

(nmap avec ses dépendance « pèse » 7221 ko)

Configuration du réseau du PC pour être sur le même sous réseau que le Dockstar (qui va s’attribuer une adresse APIPA en 169.254.*.* en absence de DHCP)

sudo ifconfig eth0 169.254.1.0

Scan du réseau APIPA avec nmap

nmap -e eth0 -sP 169.254.0.0/16

Dont voici la sortie

Starting Nmap 5.21 ( http://nmap.org ) at 2011-03-09 21:10 CET
Strange error from connect (105):No buffer space available
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for 169.254.1.0
Host is up (0.0015s latency).
Nmap scan report for 169.254.213.140
Host is up (0.0021s latency).
Nmap done: 65536 IP addresses (2 hosts up) scanned in 60.27 seconds

nmap trouve 2 équipements réseau en 169.254.*.*, le PC que l’on utilise et le Dockstar

 

Trouver l’IP du Dockstar avec netdiscover

C’est à peut près semblable :

sudo aptitude install netdiscover

(netdiscover avec ses dépendances est plus léger que nmap : 668ko)

 

Il n’est pas nécessaire pour netdiscover de mettre le PC sur le réseau en APIPA mais comme ce sera nécessaire après (ssh) on le fait.

sudo ifconfig eth0 169.254.1.0

Scan du réseau APIPA avec netdiscover

sudo netdiscover -r 169.254.0.0/16 -P

Dont voici la sortie

_____________________________________________________________________________
 IP            At MAC Address      Count  Len   MAC Vendor                  
 -----------------------------------------------------------------------------
 169.254.213.140 00:10:75:1a:d5:8c    01    060   Maxtor Corporation
 
-- Active scan completed, 1 Hosts found.

(netdiscover nous donne directement l’adresse MAC du Dockstar, utile pour faire une réservation d’adresse IP sur votre serveur DHCP)

 

Désactivation de la mise à jour automatique du Dockstar

Une fois son adresse IP connue on peut se connecter en SSH sur le Dockstar :

ssh root@[adresse IP du Dockstar]
The authenticity of host '169.254.213.140 (169.254.213.140)' can't be established.
RSA key fingerprint is b4:6c:97:5d:6a:44:22:23:c9:a1:72:cd:f7:bb:30:91.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '169.254.213.140' (RSA) to the list of known hosts.
root@169.254.213.140's password:

Le mot de passe par défaut étant stxadmin

On monte ensuite la partition root en écriture

mount / -rw -o remount

Puis on édite le fichier host pour re-diriger les URLs de pogoplug vers l’hôte locale (elle sont ainsi injoignables).

On édite donc le ficher /etc/hosts avec vi (seul éditeur disponible nativement sur le Dockstar) et on ajoute les lignes suivantes :

127.0.0.1 service.pogoplug.com
127.0.0.1 pm2.pogoplug.com
127.0.0.1 service.cloudengines.com
127.0.0.1 upgrade.pogoplug.com

On monte ensuite la partition root en lecture seule

mount / -r -o remount

 

Certains Dockstar ont été livré avec 512Mo de NAND (mémoire flash) au lieu de 256Mo, on peut vérifier si on fait partie de ces chanceux :

dmesg | grep "NAND"

Ce n’est pas mon cas :

[    1.040000] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit)

 

On pourra à ce moment faire une réservation d’adresse IP sur le serveur DHCP (la Freebox par exemple), ainsi le Dockstar aura toujours la même IP même lors de reboot successif.

Débrancher le Dockstar du PC pour le brancher sur son routeur (Freebox) ou remettre l’accès à Internet/WAN sur la box.

Re-démarrer le Dockstar

Dans le cas où l’on a cherché l’IP du dockstar avec nmap/netdiscover on rebootera aussi son PC pour qu’il se remette sur le réseau (la commande dhclient ayant eu chez moi un comportement bizarre).

 

Préparation de la clé USB

J’ai décidé d’installer Debian sur une clé USB de 2Go (1Go voir 512 Mo devraient suffire).

Il faut savoir que selon les clés utilisées, le boot a chaud et/ou à froid sur la Debian installé dessus peut fonctionner ou non, la solution changer de clé.

J’ai réalisé une première installation sur une clé noname et le Dockstar refusait de booter dessus, j’ai donc acheté une nouvelle clé (une SanDisk® Cruzer® Blade) et cela fonctionne parfaitement (qui plus est elle est plus rapide 23MB/s contre 14MB/s)

Cette clé doit avoir au minima 2 partitions, le première (impérativement) sera le root de Debian (d’un taille conseillé de 512Mo) et la deuxième sera le swap (128-256Mo conseillé).

J’ai personnellement fait 1700Mo pour le / et le reste (soit environ 300Mo) pour le swap.

J’ai utilisé fdisk sous Ubuntu pour faire ces partitions, voici les commandes exécutés (A adapter)

sudo fdisk /dev/sdb

Création de la première partition (n°1) primaire de 1700Mo :

Commande (m pour l'aide): n
Commande d'action
 e   étendue
 p   partition primaire (1-4)
p
Numéro de partition (1-4): 1
Premier cylindre (1-969, par défaut 1):
Utilisation de la valeur par défaut 1
Dernier cylindre, +cylindres or +taille{K,M,G} (1-969, par défaut 969): +1700M

Création de la partition n°1 primaire du reste de la clé :

Commande (m pour l'aide): n
Commande d'action
 e   étendue
 p   partition primaire (1-4)
p
Numéro de partition (1-4): 2
Premier cylindre (865-969, par défaut 865):
Utilisation de la valeur par défaut 865
Dernier cylindre, +cylindres or +taille{K,M,G} (865-969, par défaut 969):
Utilisation de la valeur par défaut 969

Positionnement du flag d’amorce (boot) sur la première partition :

Commande (m pour l'aide): a
Numéro de partition (1-4): 1

Positionnement du type swap sur la deuxième partition :

Commande (m pour l'aide): t
Numéro de partition (1-4): 2
Code Hexa (taper L pour lister les codes): 82
Type système de partition modifié de 2 à 82 (Linux swap / Solaris)

Vérification

Commande (m pour l'aide): p
 
Disque /dev/sdb: 2000 Mo, 2000682496 octets
64 têtes, 63 secteurs/piste, 969 cylindres
Unités = cylindres de 4032 * 512 = 2064384 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x00000000
 
Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1   *           1         864     1741792+  83  Linux
/dev/sdb2             865         969      211680   82  Linux swap / Solaris

Écriture des changements et sortie de fdisk :

Commande (m pour l'aide): w
La table de partitions a été altérée!

La clé peut être insérée dans le Dockstar (emplacement arrière droit) et ce dernier rebooté

 

Installation de Debian avec le script de Jeff Doozan

Un gars merveilleux nommé Jeff Doozan à fait un script qui réalise l’installation et la configuration spécifique pour le Dockstar d’un bootloader (uboot) sur la NAND du Dockstar, installe Debian avec le kernel kirkwood (spécifique aux processeurs ARM) en mode tout automatique (formattage) et sans qu’il soit nécessaire d’avoir une console (écran), installe quelques paquets pour le Dockstar (ssh, ntp pour la mise à l’heure, etc.). Plus de détails

On se connecte donc sur son Dockstar :

ssh root@[adresse IP du Dockstar]

On télécharge et lance le script de Jeff :

cd /tmp
wget http://jeff.doozan.com/debian/dockstar.debian-squeeze.sh
chmod +x dockstar.debian-squeeze.sh
export PATH=$PATH:/usr/sbin:/sbin
./dockstar.debian-squeeze.sh

Message d’avertissement, indiquant que le bootloader par défaut va être remplacé et que Debian va être installé sur la clé sda (devant contenir 2 partitions) :

!!!!!!  DANGER DANGER DANGER DANGER DANGER DANGER  !!!!!!
 
This script will replace the bootloader on /dev/mtd0.
 
If you lose power while the bootloader is being flashed,
your device could be left in an unusable state.
 
This script will configure your Dockstar to boot Debian Squeeze
from a USB device.  Before running this script, you should have
used fdisk to create the following partitions:
 
/dev/sda1 (Linux ext2, at least 400MB)
/dev/sda2 (Linux swap, recommended 256MB)
 
This script will DESTROY ALL EXISTING DATA on /dev/sda1
Please double check that the device on /dev/sda1 is the correct device.
 
By typing ok, you agree to assume all liabilities and risks
associated with running this installer.
 
If everything looks good, type 'ok' to continue:

Que l’on accepte avec ok

Le script télécharge et installe divers outils d’interaction avec les NAND et test la présence du bootloader d’origine puis le script demande si on doit désactiver le service d’auto-update de pogoplug :

DISABLE POGOPLUG SERVICES
 
The pogoplug service includes an auto-update feature which could
be used to cripple or disable your device.  It is recommended
that you disable this service.
 
NOTE: The pogoplug service is proprietary software
created by Cloud Engines.  It is not available for use
in other distributions and will not be available in
your new linux installation even if you choose not to disable it.
 
Would you like to disable the pogoplug services? [Y/n]

On accepte avec Y

Le script installe alors le bootloader modifié sur la NAND, formate la première partition de la clé USB et y installe Debian et divers paquets.

A partir de ce moment l’installation prend environ 45 minutes (dépendant de la vitesse d’écriture de votre clé)

Le log complet d’installation est disponible ici : JeffDoozan_Debian_Installation

Au terme de l’installation le script propose de rebooter, on accepte avec Y, la connexion SSH est alors perdue.

Quelque instants plus tard (30s – 1 min) on peut rétablir la connexion SSH en root avec le mot de passe root et là normalement vous devriez avoir un superbe prompt Debian :

root@debian:~#

Si le mot de passe root est refusé essayez le mot de passe par défaut du Dockstar (stxadmin), si cela marche cela veut dire que votre clé USB n’est pas bootable à chaud, donc que le Dockstar n’a pu booter sur Debian, il a donc booté sur son OS d’origine. Il vaut mieux alors changer de clé USB et recommencer.

 

 

Petite comparaison Debian / Pogo OS

Avec top sur Pogo OS :

Mem: 22796K used, 103268K free, 0K shrd, 0K buff, 6876K cached
CPU:   0% usr   0% sys   0% nice 100% idle   0% io   0% irq   0% softirq
Load average: 0.00 0.00 0.00
 PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
 340   338 root     S    11708   9%   0% /usr/local/cloudengines/bin/hbplug
 703   637 root     R     3404   3%   0% top
 308     1 root     S     3404   3%   0% udhcpc -b Pogoplug
 1     0 root     S     3400   3%   0% init
 310     1 root     S     3400   3%   0% telnetd
 315     1 root     S     3208   3%   0% ntpd -g
 319   315 root     S     3208   3%   0% ntpd -g
 637   636 root     S     2676   2%   0% -bash
 339     1 root     S     2672   2%   0% -sh
 636   313 root     S     2580   2%   0% /usr/sbin/dropbear
 313     1 root     S     2100   2%   0% /usr/sbin/dropbear
 338     1 root     S     1696   1%   0% /usr/local/cloudengines/bin/hbwd /usr/local/cloudengines/bin/hbplug
 639     2 root     SWN      0   0%   0% [jffs2_gcd_mtd2]
 72     2 root     SW       0   0%   0% [pdflush]
 49     2 root     SW<      0   0%   0% [khubd]
 2     0 root     SW<      0   0%   0% [kthreadd]
 3     2 root     SWN      0   0%   0% [ksoftirqd/0]
 4     2 root     SW<      0   0%   0% [events/0]
 5     2 root     SW<      0   0%   0% [khelper]
 46     2 root     SW<      0   0%   0% [kblockd/0]
 51     2 root     SW<      0   0%   0% [kmmcd]
 65     2 root     SW       0   0%   0% [crypto]
 66     2 root     SW       0   0%   0% [crypto_ret]
 71     2 root     SW       0   0%   0% [pdflush]
 73     2 root     SW<      0   0%   0% [kswapd0]
 74     2 root     SW<      0   0%   0% [aio/0]
 227     2 root     SW<      0   0%   0% [mtdblockd]
 228     2 root     SW<      0   0%   0% [nftld]
 262     2 root     SW<      0   0%   0% [kcryptd/0]
 337     2 root     SW<      0   0%   0% [xce]

Sur Debian :

top - 19:59:01 up  1:24,  1 user,  load average: 0.01, 0.02, 0.00
Tasks:  37 total,   1 running,  36 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    125732k total,    19580k used,   106152k free,      804k buffers
Swap:   211672k total,        0k used,   211672k free,    11116k cached
 
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 529 root      20   0  2548 1028  824 R  2.0  0.8   0:00.02 top
 1 root      20   0  2020  696  604 S  0.0  0.6   0:01.00 init
 2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd
 3 root      20   0     0    0    0 S  0.0  0.0   0:00.03 ksoftirqd/0
 4 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
 5 root      20   0     0    0    0 S  0.0  0.0   0:00.01 events/0
 6 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cpuset
 7 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper
 8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
 9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr
 10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm
 11 root      20   0     0    0    0 S  0.0  0.0   0:00.01 sync_supers
 12 root      20   0     0    0    0 S  0.0  0.0   0:00.01 bdi-default
 13 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0
 14 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kblockd/0
 15 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kseriod
 16 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khungtaskd
 17 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kswapd0
 18 root      25   5     0    0    0 S  0.0  0.0   0:00.00 ksmd
 19 root      20   0     0    0    0 S  0.0  0.0   0:00.00 aio/0
 20 root      20   0     0    0    0 S  0.0  0.0   0:00.00 crypto/0
 25 root      20   0     0    0    0 S  0.0  0.0   0:00.00 mtdblockd
 26 root      20   0     0    0    0 S  0.0  0.0   0:00.00 orion_spi
 82 root      20   0     0    0    0 S  0.0  0.0   0:14.76 kmmcd
 84 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksuspend_usbd
 86 root      20   0     0    0    0 S  0.0  0.0   0:00.09 khubd
 94 root      20   0     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_0
 95 root      20   0     0    0    0 S  0.0  0.0   0:00.06 usb-storage
 168 root      16  -4  2328  696  380 S  0.0  0.6   0:00.10 udevd
 217 root      20   0     0    0    0 S  0.0  0.0   0:00.00 mv_crypto
 420 root      20   0  1824  260  160 S  0.0  0.2   0:00.00 dhcpcd-bin
 447 root      18  -2  2324  548  236 S  0.0  0.4   0:00.01 udevd
 448 root      18  -2  2324  548  236 S  0.0  0.4   0:00.01 udevd
 498 root      20   0  5824  976  616 S  0.0  0.8   0:00.01 sshd
 516 root      20   0  1644  532  464 S  0.0  0.4   0:00.01 getty
 521 root      20   0  8972 2760 2256 S  0.0  2.2   0:00.15 sshd
 523 root      20   0  3092 1616 1300 S  0.0  1.3   0:00.03 bash

Plus de processus mais moins de mémoire consommée !!

Et tout cela en 258Mo d’espace disque :

df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                1.7G  258M  1.4G  17% /
none                   60M   36K   60M   1% /dev
/dev/sda1             1.7G  258M  1.4G  17% /
tmpfs                  62M     0   62M   0% /lib/init/rw
tmpfs                  62M     0   62M   0% /dev/shm
tmpfs                  62M     0   62M   0% /tmp

Post installation

Je détaillerais mes configurations et autres installations dans un autre article sauf une très importante pour la sécurité, le changement du mot de passe root qui se fait avec la commande :

passwd

Et demande de saisir 2 fois le nouveau mot de passe :

Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Si vous n’utilisez pas de réservation d’adresse IP sur le DHCP, il peut être conseillé de configurer une IP fixe sur votre Dockstar (voir à la fin de cet excellent article)

 

A suivre dans Configuration de base du Dockstar

 

Sources :

La partitionnement par défaut du Dockstar

Un retour d’expérience d’installation et un autre

Les commentaires sont fermés.