Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Supercharger votre PC de salon / HTPC / NAS / ...


Ces bestioles se démocratisant avec le temps, de plus en plus de personnes ont à la maison un nas, un pc multimedia transformé en pc de salon, voire htpc, quand il n'a pas été monté spécifiquement pour cet usage.
Seulement voilà, cet appareil est avant tout un ordinateur, avec une disponibilité qui peut s'avérer bien supérieure à un pc de bureau classique.
Il y a donc nombre de services pouvant être rajoutés pour se simplifier la vie. Certains sont évidents, d'autres moins.
Et c'est ici que vient l'intérêt de ce wiki, pour recenser les principales options disponibles.

[titre]Quelques généralités et préparatifs[/titre]
Avant de s'aventurer dans ce monde, il y a certaines informations qui peuvent être utiles de connaître, notamment ce qu'implique la gestion et l'utilisation de fichiers multimédia. Autant avoir un appareil qui s'occupe de tout en masquant la partie technique est pratique, autant lorsque l'on veut monter un tel appareil, tant que vous ne le lui dites pas explicitement, il ne s'occupera de rien du tout.


[soustitre]Choix du système : embarqué, Linux ou Windows[/soustitre]

Vous en êtes encore à la préparation du projet, mais vous hésitez encore sur la question du système : la question va être de ce que vous voulez faire, du temps que vous voulez y consacrer, et votre niveau sur linux.

Linux : contrôle total assuré, mais requiers pas mal de temps en contrepartie pour configurer le tout, en plus de nécessiter des connaissances allant plus loin que la simple ligne de commande dès que ça dérape.
De plus, en cas de matériel sortant des sentiers battus (récepteur TNT par ex), ça devient vite pénible si le fabriquant n'a pas de drivers linux.

Windows : a l'avantage d'être plus simple, et gomme déjà toute la partie drivers et partage de fichiers. Si vous n'êtes pas trop à l'aise avec le pingouin ou n'avez pas envie de passer trop de temps dessus, c'est la solution préférée.

Système embarqué : système propre à chaque NAS ou appliance, dont certaines box, et simplifiant grandement les actions nécessaire : une bonne partie du travail requis étant déjà effectué.
Mais implique aussi une limitation des possibilités. A commencer par le fait que ce type d'appareil n'a pas la même puissance de calcul qu'un pc plus classique.

Si on veut vraiment pousser le vice, l'os Synology peut tourner dans une machine virtuelle sans difficulté notable sur un pc standard, on peut donc avoir le beurre, l'argent, et tout le reste qui suit


[soustitre]Choix du processeur [/soustitre]

Actuellement, de nombreux processeurs à usage nomade ont une puissance de calcul permettant de traiter les derniers formats video, donnant droit à de la qualité bluray sur un appareil qui fait la taille d'une main, écran compris.

Sauf que, existe un petit détail dont les fabricants ne font aucun cas, ou se contente de le survoler : ces possibilités sont offertes au travers d'un pré-cablage dans ces processeurs. Plus connu sous le terme d'accélération matérielle.
La problématique est que ces accélérations ne sont valides que pour une liste fixe de formats. Face à un format video inconnu, ces processeurs seront obligés de repasser sur un décodage logiciel de la video, et donc offrir des performances proches du zero absolu.

Hors, le problème apparait déjà, puisque le format HEVC/h265 venu avec la 4k, futur remplaçant du format bluray AVC/h264, commence à se généraliser tout doucement. A qualité et taille d'image identiques, on peut cibler facilement une réduction de moitié ou plus de l'espace disque nécessaire
La contrepartie étant que face à ce format, tout matériel embarqué (smartphones, tablettes, nas dédiés, ou raspberry) devient incapable de traiter autre chose qu'une image de la taille d'un timbre poste.
Seul un processeur plus classique type I3/I5 peut traiter sans sourciller ce nouveau format.

Tout dépend donc de l'utilisation réellement voulue, sachant que le choix d'un appareil spécialisé sera définitif.
A moins de racheter encore un autre appareil ...


[soustitre]Le transcoding : kezako ? [/soustitre]

C'est le principe de convertir à la volée un format en entrée pour en fournir un autre à la sortie. Le plus souvent, ce sera de la video à convertir en temps réel.
Les utilisateurs de Playstation comme lecteur de fichiers video connaissant bien le problème.

Deux notions ici : d'un coté le fichier de stockage, ou conteneur (.mkv, .avi, .mov, ...), de l'autre le codec : un pour la video (mpeg, divx, xvid, avc/h264, ...) et un pour l'audio (mp3, aac, flac, ...)
Passer d'un type de conteneur à un autre est négligeable en terme de calcul.
Par contre, modifier le codec video est lui très consommateur, surtout qu'il faut faire l'opération 2 fois : décoder l'image, puis la recoder dans le codec voulu.
Pour la question de réduction de taille d'image video, comme transformer du 1080p en 480p pour que le téléphone ne s'étouffe pas dessus, considérer que c'est similaire à un changement de codec video.

Il faut donc prévoir la puissance adéquate pour ce type d'usage. Hors la majorité du matériel mobile ne dispose que d'une accélération matérielle pour le décodage, et rien pour l'encodage. Se tourner vers un processeur standard devient donc obligatoire.


[titre]Media Center / Serveur multimedia[/titre]

[soustitre]Kodi (xbmc)[/soustitre]
Site internet : http://kodi.tv/
systèmes supportés : Linux, Mac, Windows, Android, IOS, raspberry, ...
Media center par excellence, son utilisation principale est de le brancher en direct sur un écran type TV.
il s'occupe d'indexer et enrichir toute bibliothèque video, audio, images, ... que vous lui fournissez.
Sont supportés l'upnp/dlna, tuner tv local ou réseau (HDHomeRun), les partages windows (smb) et linux (nfs), ...

Controlable à distance via une télécommande USB, et applis (Kore, Yatse) disponibles sur Android et IOS.

Kodi a cependant le défaut d'être assez strict sur le nommage et rangement des fichiers, il peut être nécessaire de devoir repasser dessus au début.
Un de ses points faible est l'absence de transcoding (projet en cours pour fin 2015)
Il est au final un peu plus lourd à mettre en place.
Au besoin est disponible l'iso KodiBuntu, contenant ubuntu et kodi prêts à servir en cd/usb bootable.


[soustitre]Plex[/soustitre]
Site internet : https://plex.tv/
systèmes supportés : Linux, Mac, Windows, QNap, Synology, et autres nas.
Similaire à Kodi (c'est un fork), il a une approche plus orientée client/serveur et transcoding : Là où Kodi brille plus quand branché sur une TV, plex est plus intéressant pour une utilisation nomade, adaptant la qualité (et donc les ressources nécessaires) à l'appareil utilisé.
La contrepartie étant que pour pouvoir effectuer du transcoding, il faut une puissance de calcul minimale assez importante, que l'on ne retrouvera surtout que pour des PC. Cette fonctionnalité reste cependant optionnelle.
Autre point non négligeable, il nécessite d'acheter d'un pass pour pouvoir en profiter pleinement sur les appareils mobiles.
Mais une fois cette marche franchie, vous vous retrouverez avec entres autres, la possibilité de commencer une video sur un appareil, puis arrêter pour ensuite reprendre sur un autre appareil où vous en étiez.


[soustitre]Openelec (mention spéciale)[/soustitre]
Site internet : http://openelec.tv/
systèmes supportés : boot linux
Openelec est en réalité une appliance agencée autour de Kodi. Autrement dit, un linux léger et auto suffisant.
L'intérêt principal est de limiter grandement l'aspect maintenance, si vous ne cherchez que le mediacenter prêt à l'emploi, la seule difficulté est d'avoir une clef usb pour installer le boot d'openelec dessus, via un outil qui s'occupe de tout.

Il est par ailleurs capable de tourner sur différents type de processeurs (x86 et arm), comprenant en sus plusieurs drivers pour matériel et tuner exotiques. Ce qui permet par ailleurs de recycler du vieux matériel, ou avec une puissance de calcul suffisante, mais trop juste avec un système complet.
La partie mediacenter étant elle gérer par Kodi, une fois openelec démarré.


[soustitre]Subsonic (Audio uniquement)[/soustitre]
Site internet : http://www.subsonic.org/pages/index.jsp
systèmes supportés : Linux, Mac, Windows, et tout ce qui peut faire tourner java.
Même s'il y a un service principal à coté comme Kodi ou Plex, subsonic a certaines qualités qui peuvent le faire préférer pour gérer la partie audio et streaming vers les différents clients.
Déjà, son installation se limite à avoir la jvm java 1.7 installée, et lancer le conteneur subsonic.war.
Sur un NAS dédié, la JVM peut être inaccessible, installer alors Tomcat pour héberger Subsonic.

Ensuite, par rapport à Kodi et Plex, il est bien moins contraignant sur le rangement de la bibliothèque, ce qui est vite appréciable.
Mais le principal intérêt étant qu'il est compatible shoutcast, donc la majorité des clients peuvent l'utiliser. De plus, certains clients sur mobiles font usage d'un cache local important, permettant ainsi de continuer à profiter de sa musique sans avoir de connexion internet disponible.

Un plugin (madsonic) existe permettant d'utiliser subsonic depuis kodi, la fonction upnp depuis Kodi étant assez instable.


[titre]Cloud personnel[/titre]

Envie de couper le cordon avec Google ? Ces solutions de cloud personnel n'offrent pas toutes les possibilités, mais permettent au minimum de fournir une équivalence à Dropbox / Drive et Google calendar / contacts.

En passant, petite présentation des termes CardDAV et CalDAV : ce sont des normes d'usage de calendrier et répertoire d'adresses via internet, créées et généralisées entres autres par Apple, et supportés par tous, mais planqués sous les couches de l'interface utilisateur.
Hors, pour pouvoir utiliser un cloud personnel sur Android/IOS/..., il faut ignorer les options standard pour trouver celle permettant de choisir son serveur. D'où l'intérêt d'être familiarisé avec ces termes.

[soustitre]Owncloud[/soustitre]
Site internet : http://owncloud.org
systèmes supportés : linux avec apache/nginx, php et sqlite/mysql/pgsql
Solution open source qui commence à prendre de la maturité, les éléments principaux sont stables et fonctionnels, sans accrocs avec les divers outils
Evolue cependant encore de manière importante, au point que dans le cas de mises à jour d'un système déjà fonctionnel, il vaut mieux ne pas sauter immédiatement sur la dernière version majeure venant de sortir, les surprises peuvent être nombreuses

Offre de base une gestion des utilisateurs avec partages de documents, et pour chacun, stockage de fichiers, calendriers, et contacts.
Modules supplémentaires possibles.


[soustitre]Clients Windows et linux[/soustitre]
Le client mail thunderbird est fortement conseillé :
  • pour les contacts, utiliser le module SOGO connector, puis utiliser la nouvelle option "remote contacts" pour indiquer le serveur cloud
  • pour les calendriers, le module officiel Lightning de Mozilla gère tout, ajouter ensuite chaque calendrier manuellement (il faut les faire un par un, pas de sélection multiple) en utilisant l'adresse fournie par votre cloud (chercher info/url caldav ou IOS dans les propriétés via l'interface web)
Après il existe différents modules pour outlook, et autres outils, mais les solutions ne sont pas toujours génériques.

Sous KDE, la suite Kontact (Kmail, Kaddressbook, Korganizer) supporte nativement CardDav et CalDAV.

Concernant la synchro de fichiers, se reporter au client officiel de votre cloud.


[soustitre]Clients MAC[/soustitre]
Apple a implément ses solutions en respectant les normes card/cal DAV (ils sont d'ailleurs un peu à l'origine de ces derniers), les outils intégrés sont donc capable de se brancher directement sur votre cloud personnel.


[soustitre]Clients android et IOS[/soustitre]
Détail : si vous utilisez un certificat ssl auto-signé, il faut utiliser auparavant le navigateur par défaut (chrome/safari) pour pouvoir autoriser le certificat. Seulement après cette manipulation, les clients spécifiques pourront fonctionner avec votre serveur web.

Pour IOS, il faut enregistrer le serveur en tant que caldav pour le calendrier, ou carddav pour les contacts.
Note : il arrive que IOS rejette HTTPS. Mettre alors http, et une fois l'adresse renseignée et validée, modifiez la pour vérifier que HTTPS soit présent.

Pour android, il y a 2 clients stables et régulièrement suivis :
  • caldav et carddav sync (clients séparés) disponibles sur http://dmfs.org/. Ils sont payants, mais le coût reste raisonnable.
  • davdroid, client opensource gérant les 2 types de données, disponible sur https://davdroid.bitfire.at/what-is-davdroid .
    Payant via le google store, mais aussi disponible gratuitement sur Foss Droid
    Si installé depuis foss, les mises à jours de l'app deviennent manuelles (sauf à installer le client foss, ce qui n'est pas une obligation)
Dans les 2 cas, installer aussi l'app JB Workaround associée.

L'ajout de comptes se fait ensuite dans paramètre (android) => comptes


[soustitre]Clients Windows Phone[/soustitre]
Microsoft a encore une fois fait tout le travail nécessaire tout en rendant l'accès très pénible : l'utilisation de serveurs perso n'est pas disponible (au premier abord).
Il existe cependant un "hack", qui pourrait disparaitre avec les futurs patchs du système.
Pour ce faire, ajouter un faux compte iCloud sur le téléphone, ce dernier ne vérifie pas la validité. Editer ensuite le compte créé, aller dans les propriétés avancée, puis modifier le serveur dans les champs CardDAV et CalDAV.
Pensez ensuite à mettre le bon user/password


[titre]Accès extérieur via VPN[/titre]
Tous ces outils sont bien jolis, mais c'est mieux si on peut s'en servir de n'importe où.
Une solution bien pratique dans ce cas est d'installer un service VPN sur votre serveur : seul ce dernier doit permettre un accès depuis l'extérieur, et donc seul ce dernier est à protéger

De même si vous êtes souvent amenés à utiliser une connexion wifi gratuite, comme celle d'un hotel ou au mcdo, il faut garder en tête que vos données peuvent être captée par un voisin mal intentionné.
Activer un vpn jusqu'à votre serveur vous permet d'être assuré d'une sécurité suffisante.

Un prérequis pour se simplifier la vie : une adresse dns extérieure de type dyndns, no-ip, ...
Et rajouter la redirection de ports sur le routeur/box depuis l'extérieur vers votre serveur vpn.

[soustitre]Solution OpenVPN[/soustitre]
Site internet : https://openvpn.net
Solution open source qui a fait ses preuves et existe depuis un bon moment. Le serveur openvpn est disponible sur à peu près tout type de matériel, tout comme pour les clients.
L'avantage est que la configuration des clients se fait automatiquement : vous lui fournissez un fichier paramètre et son certificat, l'utilisateur a juste à les déposer dans l'espace du client, et faire ajout, puis "on/off"

Pour la partie serveur, si vous êtes sur un linux, installez aussi le module Web-UI Access Server (openvpnas), il est gratuit pour 2 comptes à gérer, et simplifie grandement la configuration.
Il génère automatiquement les fichiers de configuration pour les clients.

Coté client, installer l'app openvpn client, transférer sur l'appareil le couple certif+conf donnés par le serveur, puis dans l'app, ajouter une nouvelle configuration, et pointer sur ces fichiers.
Désactiver le wifi pour passer en 3/4G, puis activer ensuite la nouvelle entrée vpn pour la tester.
petit écueil : le fichier de conf pour le client doit avoir l'extension ".ovpn" . Si ce n'est pas le cas, le renommer au préalable

note : si l'installation vous effraie, openvpn met aussi à disposition une machine virtuelle sous forme d'appliance prête à l'emploi.



[titre]Machines virtuelles[/titre]
C'est un aspect nécessitant plutot de la ram, et peu de puissance CPU, mais puisqu'on se retrouve avec un ordinateur roupillant une bonne partie du temps tout en restant disponible, il peut être mis à contribution pour faire tourner d'autres systèmes, sans pour autant risquer quoi que ce soit.
Dans le principe, il faut savoir que les solutions de virtualisation VirtualBox et VMware fonctionnent sur le principe de conteneur étanche : la machine virtuelle ne peut sortir que via les portes qu'on lui laisse, et est stockée sur le disque sous forme d'un gros fichier (ou plusieurs séquentiels)
Quand vous en avez terminé avec, supprimer le répertoire contenant ce ou ces fichiers est suffisant, rien d'autre.

Le système principal est donc parfaitement à l'abri, et c'est là l'intérêt, puisqu'on peut faire tourner du windows ou linux en fond sans interférences
(Ne pas oublier que le CPU et la mémoire restent partagés, il ne faut donc pas saturer le système principal)

Vous pouvez donc avoir un mini serveur web, dns, proxy ou autre service, voir plusieurs serveurs : le nombre d'utilisateurs se limitera à vos proches, donc sauf si vous hébergez votre site internet à forte affluence, les besoins seront de l'ordre de 10 utilisateurs occasionnels ou moins.
Par contre, si vous avez plusieurs machines virtuelles, les stocker sur un SSD est à envisager. Les accès concurrentiels des disques de plusieurs VM peuvent vite devenir pénible, surtout si vous regardez une video à coté.

Autre élément pratique, il est possible de modifier le nombre de cpu et ram alloués à la machine virtuelle à l'envie, seul un simple reboot de cette derniere est nécessaire.

[soustitre]Solutions disponibles[/soustitre]
Au choix, Virtualbox ou VMware player, les 2 sont gratuits, et se valent en terme de performances.
Les solutions de VMware ont tendance à être plus stables avec des versions de systèmes non supportées ou exotiques, Virtualbox est moins restrictif pour l'accès direct au matériel.
Une accélération video partielle et accès aux périphériques usb sont utilisables en standard.


[soustitre]Références d'utilisation CPU/RAM/Disque[/soustitre]
Pour la majorité des usage, allouer 1 CPU est plus que suffisant.
Cependant, pour la période d'installation, initialisez à 2 CPU, puis ramener à 1 par la suite. Le confort est appréciable, que ce soit sur Linux ou Windows

Note pour windows XP et 2003 : si vous prévoyez d'avoir occasionnellement plus d'un CPU alloué, le système DOIT être installé avec 2 CPU ou plus actifs à ce moment. C'est une restriction du type de kernel installé, une réinstallation est quasi obligatiore pour corriger


Concernant la mémoire, même si les valeurs minimales ci dessous peuvent surprendre, il ne faut pas oublier que ce n'est pas le même usage que pour un PC classique, et il n'y a pas aussi de drivers lourd à charger, comme pour les cartes videos 3D.
L'objectif est donc de donner le minimum vital au système tout en ayant un usage satisfaisant.

systèmeusagemémoire RAMespace disquecommentaires
Windows desktop (xp) ~ 384 Mo à 512+ Mo 3 Go ~
Windows desktop (7,8,10) ~ 512 à 700 Mo mini 16 Go a ajuster en fonction des outils utilisés. Sur 8.1 et 2012 R2, ramener l'espace disque à 8 Go est possible, mais ardu. Win10 devrait le faire par défaut
Windows serveur active directory+dns+autres 600 Mo 16 Go moins de ram est faisable, mais le chargement du bureau+explorer devient alors assez lourd pour le système
Linux desktop ~ 512 Mo mini 3 Go a ajuster en fonction des outils utilisés
Linux server services peu gourmands 128 Mo à 256 Mo <1Go en mode virtual machine le besoin est à adapter en fonction des services actifs
Linux server LAMP Apache + Mysql + PHP 512 Mo 3 à 5 Go Mysql et apache doivent être reconfigurés pour limiter leur usage mémoire, qui tapent par défaut dans les 700 Mo




[titre]Filtrage de pub / Adblock centralisé[/titre]
Autre usage bien pratique, plutot que d'avoir sur chaque appareil, et chaque navigateur le module adblock, pourquoi ne pas le centraliser, ce qui est tout à fait possible

Il existe plusieurs possibilités, soit le serveur proxy, soit un serveur dns avec un filtre

[soustitre]Privoxy : proxy avec filtrage[/soustitre]
Site internet : http://www.privoxy.org/
systèmes supportés : Linux, OSX, Windows, et sources disponibles
C'est un proxy léger, customisé pour permettre le nettoyage d'une bonne partie des publicités.
Au besoin il est possible de l'enrichir
Une fois installé, il faut reconfigurer tous les navigateurs pour qu'ils l'utilisent (ou à défaut activer sur chacun l'option de détection automatique d'un proxy)


[soustitre]Acrylic DNS Proxy : serveur dns avec filtrage[/soustitre]
Site internet : http://mayakron.altervista.org/wikib...id=AcrylicHome
systèmes supportés : Windows uniquement
Bien que l'idée soit la même, l'approche ici est différente, puisqu'il s'agit de faire du blocage d'adresses internet, donc en amont, et non de la manipulation dans les pages web après avoir chargé ces fichiers.
L'avantage est qu'au niveau de l'utilisation, il suffit de modifier votre routeur/serveur dhcp pour indiquer l'adresse de Acrylic DNS proxy comme serveur DNS (ainsi que sur les appareils utilisant une configuration statique)


[soustitre]BIND/named : serveur dns[/soustitre]
Site internet : https://www.isc.org/downloads/bind/
systèmes supportés : Linux uniquement
Certains diront que c'est l'enclume pour applatir le moustique. Certes, mais tellement efficace.

Déjà, BIND est un, si ce n'est LE serveur DNS sur linux. Son intérêt est qu'il est possible de lui dire de rediriger toute adresse non voulue vers 127.0.0.1, ceci au travers d'un petit script, et d'une liste de site à bloquer.
Autre avantage est qu'il fait office de cache local, et donc limite les délais de communication, permettant d'utiliser plus facilement un service dns extérieur à votre FAI, tel que opendns ou autre


[titre]Outillage divers[/titre]

[soustitre]DUC (visualisation du stockage disque)[/soustitre]
Site internet : http://duc.zevv.nl/
systèmes supportés : Linux, Mac, et probablement les nas

C'est un dérivé de Filelight, KDirstats, windirstat, Sequoia et autre outil de représentation visuel de l'utilisation du disque.
Il permet permet d'analyser l'occupation disque des différents fichiers et répertoires, et de générer un rapport sous différente formes, interactif ou statique.

Le plus intéressant pour un usage serveur est d'avoir le résultat en tant qu'image jpeg. Quitte à en générer une différente pour chaque disque.
C'est très pratique pour surveiller si certains volumes n'ont pas tendance à trop grossir en taille, ou quand il est nécessaire de faire du nettoyage.


[titre]Trucs et astuces[/titre]

[soustitre]Corbeille réseau[/soustitre]
Le principal problème de ces outils d'indexation est un accès direct aux fichiers. Vu qu'ils ont parfois la main lourde, le résultat peut être assez catastrophique.
La solution la plus adéquate est d'activer une corbeille réseau, et faire passer les serveurs multimedia par les partages windows/samba

Sur linux ou tout nas donnant un contrôle sur samba, il faut rajouter le bloc suivant au partage principal :
vfs object = recycle # %U for user name, %P for share full path, %S for share name recycle:repository = /<chemin local>/<partage par samba>/.Recycle.Bin/%S recycle:keeptree = Yes recycle:directory_mode = 0777 recycle:touch = Yes recycle:versions = Yes recycle:touch_mtime = No recycle:maxsixe = 0 recycle:exclude = *.tmp, *.TMP, *.bak,*.o,*.obj, *.~lock, thumbs.db recycle:exclude_dir = .Recycle.Bin recycle:noversions = *.doc, *.xls, *.ini
Si vous avez plusieurs partages, mettez le bloc dans un fichier nommé vfs-recycle.conf, et appelez le via : include = /etc/samba/vfs-recycle.conf
le nom vfs-recycle est purement arbitraire

Tout fichier supprimé sera en fait déplacé dans le répertoire corbeille, qu'il faudra purger à la main.
Le passage dans la corbeille faisant un touch à la suppression, un script s'occupera de le faire automatiquement pour les fichiers de plus de 7 jours en utilisant "find <chemin> -atime +7"
nb : faire un "find" d'abord pour les fichiers uniquement, puis en omettant le filtre de temps pour les répertoires vides


Pour Windows, c'est plus difficile, se reporter à la mise en place du service Microsoft Volume Shadow Copy (SCCS), qui permet l'usage de l'onglet "Previous Version" (Version antérieure)
La récupération se fait ensuite via l'explorateur, onglet version précédente, en local ou distant.

Discussion sur cet article : 17 messages (Dernier message : 21/09/2016 - 20:41:03)