Mon vieux DS-207+ n’étant pas très puissant je me suis demandé comment réduire l’impact d’un programme en background sur son petit processeur et le disque dur.
J’ai trouvé la réponse rapidement : nice et ionice.

Seulement voilà, ni nice ni ionice ne sont présents en natif sur le Syno. Pas de problème, il suffit de le cross compiler !
Ça tombe bien, je l’avais déjà fait pour mon SPK SABnzbd car ce dernier permet de les utiliser lors de la décompression/réparation.

Avec ionice, on peut voir le statut d’un processus en cours :

ionice -p [PID]

Par contre ce n’est pas possible avec nice… il faut passer par ps mais :

DiskStation> ps -h
ps: invalid option -- h
BusyBox v1.16.1 (2010-10-23 01:59:53 CST) multi-call binary.

Usage: ps

Report process status

This version of ps accepts no options

Super, une version ultra allégée de ps, cross compilons un meilleur ps !
Les sources de ps sont dans procps, sans configure, juste un Makefile… tout ça pour ça :

DiskStation> ./ps axl
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND

C’est la colonne NI qui nous intéresse et qui va nous donner la niceness des processus listés.

J’ai plus qu’a appliquer ça à mes scripts de backup, SABnzbd, Sick-Beard ou CouchPotato pour pouvoir utiliser mon Syno lors de grosse charges système sans problème. Pour mes SPK sus-cités, je pense que ce sera l’objet de la release 0.3 :)

 

La cross compilation c’est bien mais quand c’est simplifié c’est encore mieux. Jouer avec les variables d’environnement ou les liens symboliques pour arriver à cross-compiler quelque chose c’est un peu la galère.
D’où, j’imagine, l’idée de Sarav de faire un outil spécialement conçu dans le but de cross compiler pour plusieurs architectures mais aussi de faire des paquets SPK en 5 minutes.
Cet outil c’est syno-packager. Je l’ai forké pour l’améliorer comme Sarav semblait en avoir abandonné le développement mais il est fort possible que j’intègre le développement directement une fois le fork mergé.

Rien de plus simple que de l’utiliser, par exemple :

cd ~/dev
git clone git://github.com/Diaoul/syno-packager.git

Avant de commencer à cross-compiler, il faut récupérer les toolchains ici et les mettre dans ext/precomp/ telles quelles (compressées) car syno-packager s’occupe de ça tout seul.
Ensuite, il faut récupérer les sources au format .tar.gz, .tar.bz2 ou .tgz du binaire que vous souhaitez cross compiler et vous les placez dans ext/exec/. De même pour les librairies nécessaires, à mettre dans ext/libs/.
Voilà l’étape de préparation est terminée, il est tant de commencer les choses sérieuses : la configuration.

La pièce maitresse de syno-packager est le Makefile, éditez le avec votre éditeur préféré pour choisir le paquet que vous souhaitez compiler ainsi que ses dépendances et l’architecture par défaut.

Voilà c’est terminé, le reste devrait fonctionner tout seul en faisant un petit

make

Enfin, ça c’est dans nos rêves les plus fous car il n’existe pas vraiment de standard en matière de compilation et encore moins de cross compilation. Donc on se retrouve avec des sources brutes sans fichier configure ou même parfois des configure sauce maison avec des options bizarres qu’il faut tout de même renseigner pour pouvoir cross compiler.
Donc si jamais la cross compilation ne marche pas du premier coup, ne vous affolez pas et jetez donc un oeil au Makefile pour puiser de l’inspiration car beaucoup de binaires non-standards ont déjà étés traités.

Bon courage, aventuriers !

 

Quoi de plus embêtant que d’attendre que sa série préférée soit disponible au téléchargement avant de le lancer et puis d’attendre qu’il soit fini ?

Avec Sick Beard, plus besoin d’attendre, il détecte la sortie des épisodes et effectue le téléchargement. Il renomme et place le fichier au bon endroit. Moi aussi, au début, je n’y croyais pas. En prime on a droit à une interface sympathique et plein d’options pour que ça puisse convenir à tout le monde.

Dans le même style il y a le surpuissant-mais-toujours-en-développement Couch Potato pour vos films.

Heureusement pour les possesseurs de NAS Synology j’ai fait quelques SPK pour simplifier tout ça !

Enjoy

Nuage de tags

bind curl dns openssl sabnzbd shell spk syno-packager synology zlib

WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.

© 2012 Diaoul Suffusion theme by Sayontan Sinha