IT & + si affinités

Encore un blog de sysadmin … mais pas uniquement ;-)

Bootstrap Synology DS211

Dans cet article, je vais reprendre les étapes pour installer ipkg sur un NAS Synology DS211. On peut trouver la procédure générique sur pas mal de sites, mais cet article me permet de l’avoir toujours sous la main adapté à mon modèle ^^. De plus j’ai eu un problème suite au bootstrap sur le DSM 4.0 et j’ai mis un peu de temps à trouver la solution.

Sources :

  • Bootstrap :

http://www.nas-forum.com/forum/topic/18553-bootstrap-ds211/

  • Correction de l’erreur ipkg :

http://www.nas-forum.com/forum/topic/26393-messages-derreurs-ipkg/#entry1319132478

ATTENTION : cet article est fournit à titre informatif et sans aucune garantie, toute manipulation est à faire à vos risques et périls. De plus il est impératif d’avoir un backup de ses données avant toute manipulation de ce type sur un NAS.

Ouvrir une session SSH sur le NAS.

Se placer dans le volume1:

cd /volume1

Puis choisir un des deux méthodes suivante :

Méthode 1 (celle que j’ai utilisée) :

Lancer le téléchargement d’un bootstrap compatible :

wget ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/syno-mvkw-bootstrap_1.2-7_arm.xsh

Puis renommer et exécuter le xsh:

mv syno-mvkw-bootstrap_1.2-7_arm.xsh bootstrap.xsh
sh *bootstrap*.xsh

Vous allez obtenir un message d’erreur:

Error: CPU not Marvell Kirkwood, probably wrong bootstrap.xsh

En effet le processeur n’est pas le bon, mais dans notre cas, ce n’est pas un problème, nous allons donc faire un petit hack du script :

vi bootstrap.sh

Il faut aller à la ligne 21 et retirer le « -KW pour passer de ce code:

if ! grep Feroceon-KW /proc/cpuinfo >/dev/null 2>&1; then

à

if ! grep Feroceon /proc/cpuinfo >/dev/null 2>&1; then

Note : pour enregistrer le fichier et quitter sous vi, et taper « :wq » sans les  »

Méthode 2 :

A cette adresse vous trouverez les liens vers les bootstrap pour un grand nombre de NAS Synology :  http://tools.forret.com/synology/bootstrap.php

Télécharger celui qui convient et le renommer

wget http://wizjos.endofinternet.net/synology/archief/syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh
mv syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh bootstrap.xsh

Quel que soit la méthode choisie :

(re)lancer le bootstrap:

sh bootstrap.sh

Puis vérifier la présence du dossier init.d:

mkdir -p /opt/etc/init.d

On reboot le Syno.

Une fois le syno rebooté, lancer l’update d’IPKG:

ipkg update

Puis nettoyer l’installation:

rm -f *bootstrap*.xsh
rm -r /volume1/tmp

Normalement c’est terminé, mais voila ce que j’obtenais avec un ipkg update :

Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages.gz
An error ocurred, return value: 1.
Collected errors:
ipkg_download: ERROR: Command failed with return value 41: `wget --passive-ftp  -q -P /opt/ipkg-oVTLET http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages.gz'

Première étape : vérifier vos variables d’environnement
Un petit echo $PATH pour voir :

echo $PATH
/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

Ce qui compte, c’est voir « /opt/bin:/opt/sbin: ». Attention, autre point important, ces valeurs doivent impérativement apparaître en tête.
Si ce n’est pas le cas, il faut modifier le fichier /etc/profile (avec vi par exemple). Par sécurité, j’ai également modifié le fichier /root/.profile
Ensuite, on reboote le Synology.

Seconde étape : S’assurer que les packages libidn et wget-ssl sont correctement installés
Notre modification du profil fait que la commande ipkg est désormais reconnue, on peut donc lancer ipkg sans spécifier son répertoire d’installation. Mais ipkg a besoin des packages libidn et wget-ssl. Si ces packages sont absents, on obtient ceci lorsqu’on fait un ipkg update

Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages.gz
ipkg: /opt/ipkg-Ou9T0w/Packages.gz: No such file or directory
file_copy: ERROR: failed to copy /opt/ipkg-Ou9T0w/Packages.gz to /tmp/ipkg.UXnnIV/optware.gz
An error ocurred, return value: 1.

Normalement, le bootstrap installe ces deux packages, mais il peut arriver que cela foire. Donc on va les installer à la main. Dans un premier temps, on récupère les deux fichiers dans le repository correspondant à votre installation. C’est facile, il suffit de se rendre sur la page indiquée en réponse à la commande ipkg update. Pour moi, il s’agit donc de http://ipkg.nslu2-li…cross/unstable/ mais cela dépend évidemment de votre Synology.
Connecté en root dans un terminal, on fait donc :

cd /volume1/@tmp
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/libidn_1.25-1_arm.ipk
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/wget-ssl_1.12-2_arm.ipk

Puis on installe :

ipkg install libidn_1.21-1_arm.ipk

et donc, logiquement

ipkg install wget-ssl_1.12-2_arm.ipk

Note : Si vous obtenez un message indiquant un dépendance manquante, rendez vous avec un navigateur sur la page http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ et chercher le package. Puis vous le téléchargez et vous l’installez avant libdn et wget-ssl

Pour cette deuxième installation, si vous n’avez pas correctement renseigné votre variable $PATH, vous allez avoir une erreur de dépendance wget. C’est tout simplement parce que wget existe alors à deux endroits dans votre Synology, et que la version utilisée n’est pas la bonne. Petite vérification :

which wget
/opt/bin/wget
wget -V
GNU Wget 1.12 built on linux-gnueabi.

Tout va bien, on utilise la bonne version (celle dans /opt/bin). Mais si on obtient ceci :

which wget
/usr/syno/bin/wget
> wget -V
GNU Wget 1.10.1

C’est que la variable $PATH n’est pas bien renseignée, et que les valeurs « /opt/bin:/opt/sbin » ne sont pas en tête de ligne dans le fichier /etc/profile. Il faut corriger votre profil pour éviter ce problème, donc retour à l’étape un si c’est le cas.

Après ces deux étapes, vous devriez obtenir un ipkg opérationnel. En tout cas pour moi c’est OK maintenant :

ipkg update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages.gz
Updated list of available packages in /opt/lib/ipkg/lists/cross
Successfully terminated.