Archives de catégorie : Logiciels libres

Mise à jour de mon site FUNIX

J’ai mis à jour mon site funix, les dernières modifications portent sur les pages suivantes:

pages divers
– page ma config, j’ai rajouté une copie de mon écran Mageia5  avec KF5 (plasma 5)

pages multimedia
– page outils de base pour la vidéo, passage à xvid 1.3.4, x264  20160205-2245, x265 1.9, opencv 3.0.0 et ffmpeg 2.8.6
– page transcodage vidéo/copie DVD, passage à HandBrake 0.10.3, la compilation m’a donné du fil à retordre, je vous laisse découvrir précisément
– page conteneur vidéo, passage à libmatroska 1.4.4, mkvtoolnix 8.8.0, idem pour ce dernier j’ai du faire appel à son auteur pour comprendre pourquoi il ne voulait pas construire le GUI
– page lecteur vidéo, passage à libdvdcss 1.4.0, libdvbpsi 1.3.0 et MPlayer 1.2.1, avec ce dernier je n’arrive toujours pas à compiler avec les options CDDB et live555, les erreurs sont vraiment rédhibitoires et vraiment trop lourdingues à corriger
– page montage vidéo, passage à mlt 0.9.8, kdenlive 15.12.1, LiVES 2.6.0, cinelerra 4.6.1, synfigstudio 1.0.2 et blender 2.76b, pour kdenlive j’ai laissé la possibilité de l’installation sous Qt4 ou avec KF5 (plasma 5)
– page outils multimedia pour mediacenter, passage à audacious 3.7.1 et kodi 15.2, présentation de l’installation d’une base de données centralisée de kodi en utilisant MySQL, cela permet ainsi à plusieurs utilisateurs sur plusieurs machines différentes du réseau d’avoir accès à la même base. Présentation également du gestionnaire de média WiMM pour pouvoir faire du rangement dans sa base de données multimedia à partir d’un navigateur.

pages ludiques et jeux
– page sur le jeu heroïc fantasy worldforge passage au client ember 0.7.2 et serveur cyphesis 0.6.3, cela fait à peine 8 ans que je ne l’avais pas mise à jour !
– page simulateur de vol FlightGear, passage à SimGear et FlighGear 3.4.0

Dans la page de téléchargement
Mise à jour des documents suivants pour prise en compte des modifications ci-dessus
– vidéo sous linux

Et pour illustrer le tout, voilà un Morane Saulnier MS406 en vol au dessus de Brest avec FlightGear 3.4.0

Lancer une fenêtre interactive avec systemd

j’ai un portable ThinkPad X220 avec mageia 5 qui utilise les services d’authentification utilisateur par LDAP et d’automontage NFS de mon serveur perso Dell PowerEdge T310, Il se trouve que quand je suis en déplacement avec mon portable, les services NFS et LDAP restent actifs et génèrent des timeouts qui sont super pénibles. Je me suis donc creusé la tête pour pouvoir choisir au boot entre un mode maison et un mode mobile avant que l’interface graphique de login se lance.

En tout seigneur tout honneur, je me suis inspiré de ce site https://mespotesgeek.fr/fr/execution-dun-script-interactif-au-boot-avec-systemd/ qui a été lui même inspiré par https://alan-mushi.github.io/2014/10/26/execute-an-interactive-script-at-boot-with-systemd.html

j’ai donc créé le service /etc/systemd/system/choix.service contenant

[Unit]
Description=Service pour passer en mode maison ou mobile
After=getty@tty2.service

[Service]
Type=oneshot
ExecStart=/usr/bin/choix-mode.sh
StandardInput=tty
TTYPath=/dev/tty2
TTYReset=yes
TTYVHangup=yes

[Install]
WantedBy=multi-user.target

pour le détail des paramètres, je vous renvoie aux sites cités plus haut. Revenons à notre script /usr/bin/choix-mode.sh il va contenir

#!/bin/bash

sleep 5

chvt 2

mode=$(whiptail –title « Mode connexion » –radiolist \
« Quel est ton mode de connexion » 15 60 4 \
« Connecte » « Je suis à la maison » ON \
« Mobile » « Je suis en mode mobile » OFF 3>&1 1>&2 2>&3)

exitstatus=$?
if [ $exitstatus -ne 0 ]; then
mode= »Connecte »
fi

if [ $mode == ‘Mobile’ ]; then
systemctl stop nslcd
systemctl stop autofs
fi

chvt 1

par défaut Mageia boote sur la console tty1, on bascule à un moment sur la console tty2 (chvt 2) la fenêtre s’affiche, on fait notre choix et rebascule sur la console de boot tty1 (chvt 1). La commande sleep au tout début du script est nécessaire sinon on n’a pas la main sur la fenêtre. De même si 3>&1 1>&2 2>&3 n’apparait pas à la fin de la commande whiptail, rien ne s’affiche. On donne des droits d’exécutable à notre script en tapant:

chmod 755 choix-mode.sh

Il faudra veiller à avoir le package newt installé pour bénéficier la commande gérant les fenêtres de dialogue whiptail. On active maintenant le service en tapant  systemctl enable choix.service. On reboote et voilà le résultat

 

 

La photo est un peu pourrave, mais on voit que ça marche ! Par contre problème sous Mageia les messages de systemd s’affichent par dessus la fenêtre, c’est plutôt pénible. J’ai bien essayé de jouer avec l’affichage sur les différentes consoles mais c’est à croire que les messages s’affichent indifféremment sur toutes les consoles. Je n’ai rien trouvé de mieux que de passer le boot en mode silencieux. Pour cela on édite le fichier /boot/grub/menu.lst et on rajoute les commandes suivantes (en gras)

kernel (hd0,4)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=56f67d09-fddc-49f2-83c3-8c3c20378f90  splash quiet loglevel=0 noiswmd resume=UUID=b59a03aa-47
44-4ace-ad91-10f8109817b8 vga=788 systemd.show_status=0

ce n’est pas fini, on crée le fichier /etc/sysctl.d/20-quiet-printk.conf qui contient

kernel.printk = 3 3 3 3

on reboote et plus de messages indésirables, that’s all folks !!

J’en ai profité pour mettre à jour ma page sur mon site funix sur le démarrage de linux, 16 ans que je ne l’avais pas mise à jour ! C’est devenu une page sur la gestion des services et du démarrage avec systemd.

Migration vers KDE Frameworks 5 avec mageia 5

Pour résoudre mon problème d’installation de kdenlive 15.12.0, j’ai du me résoudre à migrer mon environnement KDE de QT4/KDE4 vers KDE Frameworks 5 avec plasma 5. C’est une petite révolution car ça change considérablement mon environnement graphique et ça m’a bien perturbé d’autant que j’avais mes petites habitudes héritées des premières versions de KDE d’il y a une quinzaine d’années. Comme je suis habitué aux principes des icônes sur le bureau, je les ai recréé avec des widgets, j’ai rajouté également des widgets pour connaître la température des composants internes et l’utilisation des ressources CPU et RAM.

plasma5Tout n’est pas parfait, il y a un mélange d’anglais/français, le centre de contrôle de Mageia (CCM) ne se lance plus, j’ai perdu KDM pour le login, KDE ne gère plus le son (mais j’ai bien le son avec les applications), bref y a encore un peu de travail pour que ça soit parfait.

A part ça kdenlive 15.12.0 marche sans problème vu qu’il est codé pour s’intégrer parfaitement avec KF5.

j’ai également mis à jour les logiciels de montage vidéo cinelerra vers la version 4.6.1, et LiVES vers la version 2.4.6, et logiciel de création d’animation 2D Synfig Studio vers la bersion 1.0.2. J’en ai profité pour mettre à jour la page sur le montage vidéo sur mon page FUNIX.

Modifier les catégories et genre de film sous kodi

C’est un peu pénible avec mon logiciel de gestion multimedia kodi, les films sont catégorisés parfois un peu n’importe comment, du style le dessin animé « la belle et la bête » va se retrouver dans thriller. Il n’y a pas de moyen simple pour modifier les entrées de la base de données multimedia. Du coup j’ai activé l’option webserver de kodi et j’ai installé l’extension WiMM anciennement appelé XWMM. Elle permet à partir d’un PC du réseau local de se connecter à la base de données kodi et de pouvoir modifier l’ensemble des paramètres de chaque entrée comme on peut le voir sur cette copie d’écran.

c’est assez laborieux à faire mais c’est la garantie de pouvoir retrouver proprement les films aux bons endroits.

C’est expliqué plus en détail dans la page sur les outils multimédia de mon site Funix que je viens de modifier avec accessoirement la mise à jour du lecteur audio Audacious vers la version 3.7.

Installation mobile karaoke sous linux

En prévision d’une soirée karaoke, jour de l’an oblige, je me suis bricolé une installation mobile de karaoke à partir de différents éléments comme on peut le voir sur cette photo.

karaoke-mobileNiveau PC c’est mon portable sous linux (Mageia 5) sur lequel tournent TiMidity++ et pyKaraoke tel que c’est expliqué sur cette page. J’ai connecté à un port USB une mini table de mixage Behringer Xenyx 302 USB qui me sert habituellement pour faire de la musique assistée sur ordinateur (MAO). Sur cette mini table j’ai branché en entrée la sortie audio du portable PC ainsi qu’un micro, en sortie je l’ai branchée à l’amplificateur de ma guitare électrique. Et le tour est joué pour emmener le tout à n’importe quel endroit où on peut trouver une prise électrique, il reste à prévoir le câble HDMI pour brancher le PC à un écran TV pour un affichage plein écran.

Tutoriel split screen et kdenlive 15.12

J’ai installé à partir des sources kdenlive 15.12 assez laborieusement, cette nouvelle version est basée sur KDE Frameworks 5 qui est la dernière évolution de KDE et de ses bibliothèques basées entre autre sur Qt5. Du coup j’ai du installer tous les packages suivants

urpmi extra-cmake-modules qt5-devel lib64qtscript-devel lib64qt5svg-devel  lib64karchive-devel lib64kf5bookmarks-devel lib64kio-devel  lib64kf5plotting-devel lib64kf5notifyconfig-devel lib64kf5newstuff-devel lib64kf5notifications-devel  lib64kdoctools-devel lib64qt5qml-devel lib64qt5quick-devel lib64kf5parts-devel kded

j’ai compilé la dernière version de mlt 0.9.8 avec Qt5 avec les options de configuration suivantes

./configure  –swig-languages=python –enable-gpl  –enable-gpl3   –qt-includedir=/usr/lib64/qt5/include  –qt-libdir=/usr/lib64

j’ai compilé dans la foulée kdenlive 15.12.0. Il se lance correctement par contre je suis incapable d’ajuster l’écran principal, de rétrécir par exemple la zone des pistes ou la zone du moniteur de projet, par ailleurs j’ai l’erreur suivante

QXcbConnection: XCB error: 8 (BadMatch), sequence: 16667, resource id: 90177840, major code: 130 (Unknown), minor code: 3
QXcbConnection: XCB error: 8 (BadMatch), sequence: 16680, resource id: 90177840, major code: 130 (Unknown), minor code: 3
QXcbConnection: XCB error: 8 (BadMatch), sequence: 16743, resource id: 90177840, major code: 130 (Unknown), minor code: 3

pas impossible que tout soit lié à KF5 et une quelconque incompatibilité, au final kdenlive 15.12.0 est instable et inutilisable. Je suis donc revenu à la version 0.9.10 qui marche très bien pour preuve ce nouveau tutoriel vidéo pour expliquer comment faire de l’écran divisé, multi écran, en anglais split screen. C’est à dire comment afficher plusieurs vidéos en même temps dans la même séquence vidéo.

Opération à cœur ouvert d’un IBM ThinkPad x60s

Je dispose encore d’un vieux IBM ThinkPad x60s qui tourne sous mageia 4, c’est ma petite dernière qui l’utilise. Dernièrement pas moyen de le lancer, le ventilateur fait un bruit d’enfer et j’ai l’erreur « Fan error », l’ordinateur se  stoppe ensuite systématiquement. Comme je dispose d’un autre x60s dont la carte mère avait cramé et que j’avais conservé de côté, j’ai échangé la pièce incriminée d’un portable à l’autre.

thinkpad-x60sAu premier plan on voit la pièce en question, pas simple car elle est solidaire du processeur, il faut réappliquer la pâte thermique qui va bien. L’opération n’est pas simple et très délicate, à vrai dire j’ai passé deux bonnes heures. Maintenant j’espère que ça va durer dans le temps.

Windsurf dans la tempête

Le titre est accrocheur, mais soyons honnête, ce n’était pas la tempête mais seulement un coup de vent si on se réfère à l’échelle de Beaufort. On va dire juste un 7 à 8 beaufort de nord-ouest, c’est à dire un bon 30 nœuds établis avec des claques à plus de 40 noeuds tout de même. Pas de quoi m’effrayer pour me lever tôt et profiter de la marée montante malgré les 6° sous abri. Mise à l’eau à 9h à Lampaul Ploudalmézeau, sur le spot des 3 moutons, appelé à tort Tréompan qui est la plage plus à l’ouest. Avant cela il a fallu affronter les éléments pour littéralement trainé son matériel sur la plage avec des volées de sable qui fouettent et meurtrissent le visage et un vent à décorner les bœufs.  Pour une fois je n’étais pas le premier à l’eau, j’ai été devancé par un gars en 4.5 qui a souffert bien davantage que moi, puisque j’avais mis ma voile Naish Session de 3.4 bien plus adaptée même si je restais très surtoilé ce qui obligeait souvent à freiner inconsciemment pour ne pas se satelliser à la moindre vague. Fort heureusement, les vagues étaient de taille modeste avec dans les belles séries une taille de 1,5m, malheureusement avec le vent de nord-ouest et le vent de folie pas facile d’avoir une voile neutre pour pouvoir surfer. Néanmoins pendant 1h30, j’ai pris du plaisir et je n’ai trop merdouillé mes manœuvres compte tenu des conditions hardcore. Le matin à la fraîche, j’ai pu profiter des magnifiques couleurs et lumières générées par le soleil levant, une bonne occasion de vivre l’instant présent intensément.

Pour la circonstance j’ai ressorti ma GoPro HD4 en la laissant en mode classique HD et 50 images par seconde avec une position sur le casque et sur l’avant du wishbone côté tribord et bâbord amure. Voilà le résultat.

Sous kdenlive je me suis amusé à gérer les vues multiples. Ca m’a pris pas mal de temps à comprendre comment utiliser cet effet car c’est assez peu documenté. A l’occasion je ferai un tutoriel pour expliquer comment faire.

Configuration firewall shorewall avec une interface et un réseau local

J’ai mis pas mal de temps à configurer mon firewall basé sur netfilter (iptables) sur mon serveur linux en utilisant Shoreline Firewall plus connu sous le terme shorewall. En effet la plupart des configurations type qu’on peut trouver sur internet sont basées sur des machines standalone ou avec plusieurs cartes réseau avec dmz et fonction routeur. Or même si j’aurais bien voulu mettre en place ce type de topologie, l’emplacement physique de ma box et de mes machines me l’interdit. De fait la topologie de mon réseau local ressemble à ça:

personal-networkAutour de ma box j’ai monté un réseau local via le courant électrique et 4 prises CPL situées dans plusieurs pièces différentes. On retrouve le serveur pour tous les autres clients qu’ils soient branchés en RJ45/CPL ou en wifi. Pour rappel sur mon serveur poweredge T310 on trouve les services suivants:

  • serveur de fichier basé sur NFS
  • serveur d’authentification basé sur OpenLDAP
  • serveur de mail en réception (dovecot/POP3s) et émission (sendmail) le tout avec tout l’arsenal antispam/antivirus (SpamAssassin et ClamAV)
  • serveur local Apache+Mysql
  • serveur multimedia pour kodi/xbmc
  • serveur de connexion sécurisée avec OpenSSH

Bien que le serveur dispose de deux interfaces réseau, je me sers que d’une seule interface, ça serait trop lourd de doubler le réseau pour qu’il fasse office de firewall pour les autres PC clients. Du coup je ne protège que le serveur et non pas les postes clients qui bénéficient de leur protection propre et de celle apportée par la box. L’idée est donc que seules les machines de mon réseau local puisse accéder aux services de mon serveur et on rejette tout le reste.

Niveau configuration de shorewall, cela donne cela, tous les fichiers se trouvent sous /etc/shorewall, voilà en ce qui concerne le fichier zones

# Shorewall version 4 – Zones File
#
# For information about this file, type « man shorewall-zones »
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-zones.html
#
###############################################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
lan ipv4

la zone fw correspond au serveur qui fait office de firewall, la zone lan correspond indifféremment à internet et au réseau local. Voilà maintenant le fichier interfaces

# Shorewall version 4 – Interfaces File
#
# For information about entries in this file, type « man shorewall-interfaces »
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-interfaces.html
#
###############################################################################
###############################################################################
#ZONE INTERFACE OPTIONS
lan eno2 –

ma carte réseau utilisée est définie par eno2, ma carte eno1 est non utilisée, la commande ifconfig -a permet de connaître le nom de ses interfaces réseau. le fichier hosts est quant à lui vide (ou presque)

# Shorewall version 4 – Hosts file
#
# For information about entries in this file, type « man shorewall-hosts »
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-hosts.html
#
###############################################################################
#ZONE HOST(S) OPTIONS

le fichier policy définit les règles par défaut

# Shorewall version 4 – Policy File
#
# For information about entries in this file, type « man shorewall-policy »
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-policy.html
#
###############################################################################
#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:
fw lan ACCEPT
lan all DROP info
all all REJECT info

en gros toutes les trames du serveur vers internet sont acceptées et toutes les autres sont rejetées, il faut donc définir quelques exceptions avec le fichier rules que voici

# Shorewall version 4 – Rules File
#
# For information on the settings in this file, type « man shorewall-rules »
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-rules.html
#
######################################################################################################################################################################################################
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK CONNLIMIT TIME HEADERS SWITCH HELPER
# PORT(S) PORT(S) DEST LIMIT GROUP
ACCEPT fw lan icmp
ACCEPT lan:192.168.1.0/24 fw tcp 22,25,80,111,389,995,2049,3306,10000
ACCEPT lan:192.168.1.0/24 fw udp 111,2049
ACCEPT lan:192.168.1.0/24 fw icmp
DNS(ACCEPT) fw lan

On autorise les machines du réseau local qui ont pour adresse 192.168.1.X à accéder au serveur sur le port 22 (OpenSSH), 25 (SMTP), 80 (Apache/httpd), 111 (portmapper), 389 (OpenLDAP), 995 (POP3s), 2049 (NFS), 3306 (MySQL) et 10000 (Webmin). On autorise également les requêtes DNS du serveur vers internet et on autorise également les ping.

Maintenant le serveur peut être encore atteint via les postes clients et ceux-ci doivent également être protégés. J’ai limité au strict minimum le trafic de et vers internet toujours avec shorewall. Exemple avec un client connecté via une interface RJ45 qui peut être pingué, fichier zones

# Shorewall version 4 – Zones File
#
# For information about this file, type « man shorewall-zones »
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-zones.html
#
###############################################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
net ipv4
fw firewall

fichier interface

# Shorewall version 4 – Interfaces File
#
# For information about entries in this file, type « man shorewall-interfaces »
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-interfaces.html
#
###############################################################################
###############################################################################
#ZONE INTERFACE OPTIONS
net eno1 detect

fichier host vide, fichier policy

# Shorewall version 4 – Policy File
#
# For information about entries in this file, type « man shorewall-policy »
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-policy.html
#
###############################################################################
#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:
fw net ACCEPT
net all DROP info
all all REJECT info

et fichier rules

# Shorewall version 4 – Rules File
#
# For information on the settings in this file, type « man shorewall-rules »
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-rules.html
#
######################################################################################################################################################################################################
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK CONNLIMIT TIME HEADERS SWITCH HELPER
# PORT(S) PORT(S) DEST LIMIT GROUP
ACCEPT net fw icmp 8 –

Copie de DVD et région

Je copie petit à petit tous mes DVD dans un but de sauvegarde car j’ai moyennement confiance dans la pérennité des DVD, j’utilise HandBrake comme décrit sur cette page de mon site FUNIX. J’ai quelques soucis pour certains DVD notamment les plus récents, le système linux les voit bien mais il est incapable de les décoder alors que libdvdcss est bien installé. Ca se traduit par des erreurs diverses, du style, avec lsdvd:

libdvdread: Can’t seek to block 3835444
libdvdread: Can’t seek to block 3835444
libdvdread: Can’t seek to block 3884532
libdvdread: Can’t seek to block 3884532

ou bien encore avec HandBrake:

hb_demux_ps: not a PS packet (00000000)

(…)

libhb: scan thread found 0 valid title(s)

et avec VLC:

libdvdread: Error cracking CSS key for /VIDEO_TS/VTS_06_0.VOB

En fait c’est une histoire de code de région du DVD et du lecteur DVD. C’est à dire que certains DVD avec le code Europe ne marcheront que si le lecteur DVD est configuré pour la région Europe. Donc l’idée est de voir quelle est la région par défaut du lecteur et éventuellement pouvoir la changer. Il existe un petit soft qui s’appelle regionset qu’on peut trouver . Pour le compiler c’est tout simple, il suffit de taper make puis de copier l’exe quelque part sous /usr/local/bin. Quand on tape regionset en tant que root, cela donne cela:

Current drive parameters for /dev/dvd:
RPC Type: Phase II (Hardware)
RPC Status: no region code set (bitmask=0xFF)
Vendor may reset the RPC 4 times
User is allowed change the region setting 5 times

Par défaut mon lecteur DVD n’était pas configuré ce qui explique que ça passait pour certains DVD (les plus anciens généralement) mais pas pour les plus récents. A noter les dernières phrases, on ne pourra changer la configuration du lecteur que 5 fois ! Ensuite c’est terminé ! Donc ça sera vite impossible de copier des DVD venant de différentes régions. Dans la suite de la  commande on a

Would you like to change the region setting for this drive? [y/n]: y
Enter the new region number for your drive [1..8]: 2
New RPC bitmask is 0xFD, ok? [y/n]: y
Region code set successfully.

On met donc 2 pour le code Europe et pour le bitmask, et là magique ça marche !