Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Se fabriquer un lecteur de salon léger et pratique

Dans cet article, on va décrire la mise en place d'une station vidéo pour salon. Quelques contraintes sont à respecter :

Matériel


J'ai récupéré un ordinateur chez un *cash du coin. C'est pas le moins cher, mais ça permet d'éviter de laisser un ordinateur aller en déchetterie.

J'y ajoute un mini clavier sans fil. C'est tip top ces trucs, et ça contient une batterie donc très facile à recharger par USB.

Installer OpenBSD


Ça, c'est fastoche, ça prend quelques minutes. On crée un utilisateur qu'on nommera pour l'exemple “watcher”.

On prévoit quand même quelques optimisations au niveau du système de fichier en activant les softdeps :

sed -i 's/rw,/rw,softdep,/g' /etc/fstab

Et on prépare l'installation de futurs paquets :

echo https://ftp.fr.openbsd.org/pub/OpenBSD > /etc/installurl

Enfin, on met à jour en lançant

syspatch

Vous voudrez peut-être réduire le temps d'attente au démarrage :

echo "set timeout 1" > /etc/boot.conf

Pour augmenter les performances graphiques, on peut aussi ajouter cette ligne dans /etc/sysctl.conf

machdep.allowaperture=1

Configurer l'autologin


On se sert de xenodm, le gestionnaire de connexion par défaut sous OpenBSD.
Afin d'automatiquement lancer la session de l'utilisateur configuré lors de l'installation, on suit les recommandations du wiki, à savoir éditer /etc/X11/xenodm/xenodm-config et ajouter :

DisplayManager._0.autoLogin:    watcher

On crée un fichier ~/.xsession pour l'utilisateur qui contiendra ces lignes :

. ~/.profile
 xsetroot -solid black &
 # son au max
 mixerctl outputs.master=255,255
 lutecium Videos/ &
 cwm

Nous verrons ensuite à quoi correspond ce “lutecium”.
Remarquez qu'on utilise un gestionnaire de fenêtres intégré à OpenBSD, pas besoin de l'installer.
Pensez à rendre ce fichier exécutable :

chmod +x ~/.xsession

Reste à activer xenodm :

rcctl enable xenodm && rcctl start xenodm

Chargement des langues et utf-8


Certaines applications en ont besoin, alors on précise dans le fichier ~/.profile de l'utilisateur ces lignes :

LC_CTYPE="fr_FR.UTF-8"
 LC_MESSAGES="fr_FR.UTF-8"
 LC_ALL='fr_FR.UTF-8'
 LANG='fr_FR.UTF-8'
 export LC_CTYPE LC_MESSAGES LC_ALL LANG
 export ENV=$HOME/.kshrc
 

Permettre l'extinction


On édite le fichier /etc/doas.conf pour permettre à l'utilisateur d'éteindre la machine en utilisant doas sans entrer de mot de passe :

cat /etc/doas.conf
 permit nopass :wheel  cmd /sbin/shutdown
 permit nopass :wheel  cmd /sbin/reboot

Installation de l'interface


La plupart du temps, c'est kodi qu'on installe. Sauf que je le trouve extrêmement lourd et plein de fonctionnalités qui ne me sont pas du tout utiles. Notez que si vous avez des alternatives à proposer, je suis preneur ;).
J'ai donc codé un petit truc, qui certes ne paie pas de mine mais fait ce que je veux : afficher mes fichiers et retenir lesquels ont déjà été vus. Ça s'appelle lutecium et ça ressemble à ça :

(ne faîtes pas attention aux exemples, c'était des tests…)

Notez que on pourrait très bien utiliser ranger ou encore noice dans un terminal, mais ça ne garde pas une trace des épisodes déjà vus.

Pour m'en servir, il me faut python3, la bibliothèque tkinter, et un lecteur de vidéos (mpv).

pkg_add -z python-tkinter-3* mpv
 ln -s /usr/local/bin/python3.6 /usr/local/bin/python3

Ensuite, j'installe lutecium dans /usr/local/bin :

ftp -o /usr/local/bin/lutecium http://dev.yeuxdelibad.net/tk-tools/Lu/lutecium
 chmod +x /usr/local/bin/lutecium

Et voilà, on peut choisir sa vidéo avec le clavier.

Récupérer les vidéos


Là, c'est chacun sa façon de faire.
Certains feront un montage NFS, d'autres une synchronisation… Pour ma part je fais un peu les deux :

Dans /etc/fstab :

192.168.1.2:/mnt/data/ /mnt/NFS nfs rw,nodev,nosuid,soft,noatime 0 0

Ensuite, ajout d'une tâche cron :

crontab -e
 @hourly /usr/local/bin/rsync -az --delete /mnt/NFS/ /home/watcher/Videos/
 

Lecture automatique si on insère une clé USB

Afin de lancer une lecture automatique des fichiers présents sur, par exemple, une clé USB insérée, j'utilise hotplugd.

pkg_add fuse hotplug-diskmount
 rcctl enable hotplugd
 

On complète ensuite le fichier /etc/hotplug/attach :

#!/bin/sh
 
 DEVCLASS=${1}
 DEVNAME=${2}
 LOGIN="watcher"
 MOUNTPOINT=/home/${LOGIN}/usb
 
 case "${DEVCLASS}" in
     2)
         mkdir -p -m 1777 "${MOUNTPOINT}"
         mount -o nodev,nosuid,noatime /dev/"${DEVNAME}"i "${MOUNTPOINT}"
         su "${LOGIN}" -c "DISPLAY=:0 mpv --alang=en,fr --slang=fr --save-position-on-quit  --fullscreen --keep-open=no \"${MOUNTPOINT}\"/*"
         ;;
 esac

On oublie pas le chmod +x /etc/hotplug/attach. ;)

Vous pouvez faire de même avec un script “detach" :

 cat /etc/hotplug/detach
 #!/bin/sh
 
 DEVCLASS=$1
 DEVNAME=$2
 
 case $DEVCLASS in
     2)
         /sbin/umount "/mnt/${DEVNAME}"
         exit 0
         ;;
 esac
 exit 0
 

Bien qu'on puisse faire nettement moins spécifique comme configuration, avec celle-ci ça fonctionne bien et je sais exactement où sont montées les clés USB. À chaque fois qu'une d'entre elle est branchée, hop ça lit tout ce qui est dessus.

§

Mot de la fin

Ça sera tout pour cette petite présentation. Le clavier est petit, mais me permet de modifier le volume du son, faire pause, accélérer… Tout ce qu'il me faut en fait ;)
Vos idées et suggestions sont les bienvenues, je suis certain qu'on peut améliorer tout ça ;)

edit : j'ai ajouté l'heure à lutecium

le 02/03/2018 à 15:20:46, genpashiro a dit :

Et on pourrait imaginer mettre en place cette procédure sur un mini pc genre raspberry si on préfère regarder sur un grand écran TV ?

J'ai un WDTV mais il comment à être bien dépassé pour lire certains fichiers vidéos….

<aparté> as tu une astuce pour télécharger les vidéos d'Arte ? j'utilisais Artefetcher mais les listes sont vides…</aparté>

le 02/03/2018 à 16:13:50, Nicolas a dit :

@genpashiro :

J'utilise un Raspberry Pi + Kodi, dont il existe des .img prêt à l'emploi.

le 02/03/2018 à 17:07:59, hyakosm a dit :

@genpashiro : Youtube-dl est un très bon outil pour récupérer les vidéos de arte.tv !

le 02/03/2018 à 17:26:45, ds1volt a dit :

@genpashiro Sous linux, il y a qarte qui marche bien (récupérable en bas de la page suivante: https://oqapy.eu/download?lang=fr)

le 02/03/2018 à 18:10:54, Moubai a dit :

de mon coté c'était plex sur un raspi 1 B+ puis un Raspi 2
le gros problème du Raspi c'est sa carte etherne 100Mbps
c'est tout pourri pour visionner des films en full HD avec un bitrate supérieur a 15MB

depuis je suis passé sur la nvidia Shield TV

Je pense que prendre un raspi ou un orange pi pour faire une station video reviendra sans doute moins cher qu'un PC à pas cher.
Sachant que le raspi 3 s'achète environ 35€ hors accessoire (compter 50-60€ avec le boitier + radiateurs + chargeur)

le 02/03/2018 à 18:15:17, genpashiro a dit :

@Moubai : Oui mais à priori comme tu le précises, pas terrible pour de la HD….

le 02/03/2018 à 21:08:05, thuban a dit :

@genpashiro : Bien sûr qu'on peut faire ça sur un RPi ou autre.
Par contre, j'aime pas les cartes de ce genre, j'en ai 2 qui ont fini par "casser” : corruption de la carte SD…

@Moubai : +& pour le souci avec ethernet et les gros fichiers videos.
C'est sans doute inutile, mais c'est pour ça que je fais un rsync sur le disque du PC plutôt que de lire au travers de NFS…

le 02/03/2018 à 21:55:34, garfi a dit :

Sinon solution presque clé en main, un boitier android tv. Trouvable pour 30€ il faut parfois mettre la main à la patte pour installer un firmware androidtv. Avec une télécommande à commande vocale, c'est quand même un peu le pied.
Mais c'est sans le côté DIY que tu propose.

le 02/03/2018 à 21:56:39, thuban a dit :

@garfi : eug, mais android quoi… J'ai pas envie d'installer google dans mon salon ^^

Sinon, j'ai ajouté l'heure à lutecium, pratique pour ne pas rater l'heure du coucher :P

le 02/03/2018 à 22:03:01, genpashiro a dit :

@thuban: tu n'as donc pas de smartphone 8. Machin sous Android nougatine miam miam :) :)

le 02/03/2018 à 22:19:23, thuban a dit :

@genpashiro : non, et ça fonctionne très bien, ne consomme quasiment pas (la batterie est à charger toutes les semaines voire plus)

le 02/03/2018 à 22:47:27, MrBidon a dit :

Héhé je vais tester ton petit script python de suite… j'ai aussi ce genre d'install chez moi mais plus luxieux :
- clavier microsoft sans fils (acheté pas cher dans les bacs de solde de super marché)
- raspberry pi 2
- partage nfs avec mon nas

J'utilise la ligne de commande car j'ai perdu la souris sans fil… mais ton outils devrait aider les personnes moins utilisateur de de ligne de commande.

le 02/03/2018 à 22:50:22, MrBidon a dit :

@MrBidon : Rah mince c'est tcltk, dans mes rèves il me faudrait quelquechose en ncurse :-)

(oui, je vais le faire moi même)

le 02/03/2018 à 22:58:05, genpashiro a dit :

@thuban : quel est ce téléphone ??

le 03/03/2018 à 09:08:30, thuban a dit :

@MrBidon : Regarde noice : http://git.2f30.org/noice/files.html
@genpashiro : Un vieux nokia sans 3G :P

le 03/03/2018 à 11:09:50, Breizh a dit :

Personnellement, j'utilise ranger. Ça implique de marquer manuellement les vidéos lues, mais ça fait le taf. Je suppose également qu'on peut automatiser le marquage.

Je marque ainsi en C les vidéos / saisons que je n'ai pas finies, et avec un R celles que que j'ai finies :p

le 04/03/2018 à 13:17:39, Deadpool a dit :

Kodi est lourd? Il tourne depuis des années sur un eeepc a processeur ION (vraiment pas performant donc) sans aucun problème. Les menus sont fluides, les vidéos et les musiques sont lues de façon impeccable quelque soit le format. Idem sur les raspberry depuis les versions 2.
Kodi peut avoir des défauts, mais le qualifier de lourd est injuste car ce n'est clairement pas le cas.

le 04/03/2018 à 13:45:32, Breizh a dit :

@Deadpool : je pense qu'il entends lourd au niveau de l'interface, dans le sens où ça fait le café.

le 04/03/2018 à 17:22:48, thuban a dit :

@Breizh : tout à fait ça :)
kodi veut même m'afficher la météo ^^

le 05/03/2018 à 09:42:45, Ned a dit :

Hello,

minidlna est léger et sympa (mais ne propose pas d'historisation/coloration de ce qui a été déjà vu)

le 05/03/2018 à 11:35:23, Deadpool a dit :

Salut tout le monde.
@Thuban,Breizh: le problème dans ce cas est que c'est très mal expliqué et expédié en une phrase. Combien comprendront comme moi en lisant rapidement que Kodi est lourd dans le sens “ne peux fonctionner que sur du matériel super performant” ou encore “rame à mort”?
De mon point de vu (et j'insiste sur le fait que ces le miens, je n'oblige personne à le partager), il est important de prendre le temps d'expliquer correctement les choses. De quoi parle t'on sur ce blog? Je n'ai pas tout lu, mais j'ai bien l'impression qu'il est destiné à un public de libristes, qu'ils soient en herbe ou confirmés. Dés lors, qualifier n'importe quel logiciel libre de lourd, instable, ou n'importe quel qualificatif négatif sans étayer un minimum son propos est dangereux à mon sens. En effet, nous avons là un logiciel libre magnifique. Un media Center complet et totalement gratuit développé par des bénévoles volontaires, qui soufre déjà d'article faisant l'amalgame entre le logiciel permettant de lire du contenu, et le piratage de contenus. Lorsque certaines personnes te liront, elles se diront peut-être: “Ah, bah si il juge ça lourd, ça ne vaut peut être pas le coups que je m'y intéresse”. Il aurai peut être mieux valu dans ce cas écrire: “Sauf que je le trouve plein de fonctionnalités qui ne me sont pas du tout utiles”

le 06/03/2018 à 16:39:05, steph a dit :

@hyakosm : et captvty marche très bien avec wine.