Informatique

Installer windows 11 sur un dell XPS 13 9315

J’ai un laptop dell de ce modèle qui a été préinstallé avec plein de crapware. J’ai pas mal de souci avec et j’ai décidé de tout réinstaller. Cet article est là pour m’aider le jour où je voudrais le refaire.

BIOS / Driver disque dur

Par défaut le disque dur n’est pas visible par l’installateur de Windows, même dans sa version 11. Il est possible pendant l’installation d’utiliser les drivers trouvables sur le site du support de Dell si on les a mis sur la clé USB d’installation. Cela dit, si le système voit que le disque principal n’est pas le premier (0) alors il refusera de s’installer.

Une astuce est de passer dans le Bios pour changer la manière dont le disque est géré, pour passer de RST (une espère de Raid dont je ne comprends pas bien l’interêt) à AHCI/NVME.

Une fois relancé, l’installeur de Windows retrouve sans problème ses petits et accepte de s’installer.

Pour accéder au Bios => F12 pendant le démarrage pour accéder aux options de boot puis il y a un lien vers le bios lui-même. Il faut aller dans Stockage, puis cliquer sur AHCI/NVME.

Rebooter, F12 de nouveau, puis booter sur la clé USB d’installation.

Astuce : decrap

Windows installe des tas de crapwares par défaut, notamment des pubs, des liens vers des applis ou des jeux. Cette action est dépendante de l’endroit choisi lors de l’installation.

Pour réduire ces installations malvenues, il faut indiquer à l’installeur la région : « Anglais (International) ».

De là, il va continuer, puis mettre un message d’erreur.

Il faut cliquer sur Ignorer puis terminer l’installation normalement.

Astuce : Compte local

Windows 11 nous fait bien galérer et tente de nous obliger à se connecter avec un compte MS.

Pour éivter cela, il faut débrancher son câble éthernet, ou couper la connexion Wifi si elle est active, puis cliquer sur : « Je n’ai pas internet » et « Continuer avec un compte limité ».

Installer les drivers d’une clé Wifi TP-Link Archer T3U sous Debian 12

J’ai récupéré récemment un vieux HP ProDesk 400 G3, un mini PC format 1L anciennement utilisé comme machine de bureau. Après l’avoir un peu boosté avec de la RAM (passage à 16Go), j’ai fait quelques tests dessus, et s’il est difficilement utilisable en mode bureau (processeur faiblard, disque dur mécanique), il est beaucoup plus intéressant en mode serveur. Voulant le mettre dans un coin avec le moins de câble possible, j’ai voulu y coller ma clé Wifi Archer T3U, évidemment sans driver Linux. Ma procédure précédente ne fonctionnant pas, j’ai de nouveau cherché et trouvé une solution pour la faire fonctionner, le tout en ligne de commande, sous le très récent Débian 12.


Installation Debian 12

J’ai installé une Debian 12 toute fraiche en téléchargeant un ISO netinstall. Pas d’interface graphique, juste un serveur SSH et basta.

Comme précédemment, le driver sera compilé à partir d’un dépôt git. Donc j’installe tous mes outils, git, sudo (non installé par défaut dans debian), module-assistant, lshw (pour vérifier le matériel). La compilation m’ayant fait une erreur, j’ai dû aussi installer le paquet dkms.

Je vérifie avec un lsusb que la clé est bien reconnue par la machine.

Elle apparait bien, première étape ok.

Compilation du module

Ensuite récupération du code puis compilation et installation. Source de la méthode.

sudo m-a prepare
git clone https://github.com/RinCat/RTL88x2BU-Linux-Driver
cd RTL88x2BU-Linux-Driver
make
sudo make install
sudo modprobe 88x2bu

Pour vérifier que le matériel est maintenant correctement piloté, j’utilise la commande lshw

La commande ip link show donne aussi un bon résultat.

Je note le nom de l’interface (wlxd03745a8f9ca) pour la suite.

Configuration du réseau

Source de la méthode

J’ai choisi d’utiliser l’outil iwd qui me semble très simple à mettre en place.

J’installe le paquet iwd puis j’ouvre le fichier de configuration pour décommenter la ligne permettant à iwd de configurer automatiquement le réseau (EnableNetworkConfiguration).

Il faut maintenant lancer le service iwd et l’activer pour que le wifi survive à un redémarrage.

systemctl --now enable iwd

Accéder au wifi

J’utilise la commande iwctl en mode interactif et en utilisateur.

iwctl

La commande help permet de voir toutes les instructions possible.

Pour ma part :

station wlxd03745a8f9ca scan
station wlxd03745a8f9ca get-networks
station wlxd03745a8f9ca connect <réseau>

Il va demander le mot de passe du réseau. Puis, vous pouvez sortir avec exit.

La commande : ip a, vous permet de voir si l’interface a bien récupéré une adresse ip en DHCP.

Pour un serveur, il est plus pratique d’utiliser des adresses ip statiques, mais je préfère les gérer de manière centralisée sur mon DHCP en définissant un bail statique.

Conclusion

La méthode me paraît beaucoup plus simple à mettre en place, surtout dans un contexte sans interface graphique et j’avoue avoir fait une bonne découverte avec iwd qui gère très facilement le réseau en cli.

Si vous n’arrivez pas à vous connecter après la procédure, ou si vous n’avez pas récupéré d’ip, essayez de relancer le service (sudo systemctl restart iwd) ou de redémarrer la machine (ce que j’ai dû faire).

Récupérer les membres d’une liste de distribution Microsoft 365

Dans mon nouveau boulot, en attendant un recrutement spécifique, je me retrouve à faire de l’administration système, notamment sur Microsoft 365. L’outil est extrêmement efficace en entreprise et permet un travail collaboratif très étendu. Cela dit, les outils d’admin sont une plaie absolue, ou rien n’est cohérent. Si pour les utilisateurs, le boulot est fait, en arrière-plan c’est un enfer. Par exemple, il n’y aucune option nulle part pour récupérer simplement les membres d’une liste de distribution. Sauf en powershell…


Installation des outils

  • On ouvre évidemment un terminal Powershell en mode administrateur.
    À chaque fois qu’il demande une validation, vous dites Oui [O] bien sûr, sinon ça marche pas.

Install-Module PowershellGet -Force
Install-Module -Name ExchangeOnlineManagement

  • On active l’exécution des scripts qui n’est pas possible par défaut.

Set-ExecutionPolicy RemoteSigned

  • On importe le module Exchange.

Import-Module ExchangeOnlineManagement

  • Enfin, on se connecte

Connect-ExchangeOnline

Là ça ouvre une page web où vous pouvez mettre votre login et mot de passe.
C’est possible uniquement si vous êtes admin hein.
Si ça marche, vous allez tomber sur ça :

Action

Maintenant c’est tout con :

Get-DistributionGroupMember -Identity « <le nom de la liste » | Select-Object -Property « DisplayName », »PrimarySmtpAddress » | Export-Csv c:\liste.csv

Le GetDistributionGroupMember fait ce qu’il dit, il récupère l’intégralité des membres, avec toutes leurs informations.

Le Select-Objet permet de réduire les champs à uniquement le nom et l’adresse. Faite un test sans cette commande, puis ouvrez le fichier généré pour voir la liste des champs. Y’en a plein.

Enfin, l’Export-Csv balance l’ensemble dans un fichier ouvrable par n’importe quel tableur.

Conclusion

Ce n’est pas très compliqué, mais ce n’est pas pratique. Il doit probablement y avoir des outils qui lancent ces commandes en arrière-plan, des trucs qui ne viennent pas de MS, mais je ne les connais pas. Si vous avez des connaissances dans ce sujet, je serai ravi de les connaitre.

Diffuser un flux vidéo avec OBS vers un serveur RTMP privé pour diffusion sur une TV connectée

Je regarde très peu la télévision, préférant de loin utiliser les services de streaming comme Netflix ou parfois Amazon Prime, ainsi que quelques vidéos de vacances. Lorsque je regarde une émission, j’utilise Molotov qui, dans sa version gratuite, ne permet pas de regarder TF1 ou M6. Ce qui n’est pas un mal de toute façon. Mais hier je voulais regarder une émission sur TF1. Je souhaitais la regarder sur mon grand écran alors je me suis servi de ce prétexte pour monter l’infrastructure que je m’apprête à décrire.


Setup initial

Mon installation initiale comprend les éléments suivants.
Il est possible de mutualiser certaines fonctions.

Hardware

  • Une TV connectée possédant l’application VLC (ou tout autre appli permettant de lire un flux réseau RTMP). J’utilise une Nvidia Shield (un boitier Android TV).
  • Un PC sous Windows pour récupérer le flux de TF1 via Captvty.
  • Un serveur Linux (mon miniPc Mele Quieter qui me sert à tout).

Software

Captvty

C’est un logiciel, uniquement sous Windows même si certains hacks permettent de le lancer sous d’autres systèmes, qui permet de lister l’intégralité des émissions accessibles en replay sur la plupart des chaînes françaises.

Il permet aussi, en faisant un clic droit sur le nom d’une chaîne, de la regarder en direct.

Captvty me servira ici de source de flux vidéo, mais on pourrait utiliser n’importe quoi.

OBS

C’est le logiciel de streaming le plus populaire actuellement. C’est une sorte de banc de montage qui permet de préparer des scènes à diffuser par exemple sur Twitch.tv ou Youtube. On peut récupérer des flux vidéos, des images fixes, des overlays, mixer l’ensemble, ajouter des filtres, bref, c’est très puissant.

Nginx-RTMP

Nginx est un serveur Linux ultra léger, très facile à installer et à configurer, qui peut servir des pages Web, faire reverse proxy et qui dispose dans notre cas d’un module RTMP trivial à configurer.

Je l’ai installé sur mon boitier, mais je suppose qu’on peut aussi faire une machine virtuelle légère (genre un truc sous Alpine), un docker ou même passer par le WSL de Windows. Je n’ai pas encore testé ces solutions.

Mise en place

Nginx-RTMP

Personnellement je suis sous Ubuntu, il faut adapter les commandes d’installation si vous possédez une autre distribution.

Installation

Ouvrir un terminal puis :

  • sudo apt update
  • sudo apt install libnginx-mod-rtmp

Configuration

Toujours dans le terminal

  • sudo nano /etc/nginx/nginx.conf

Ajouter le bloc suivant à la fin du fichier :

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

Quitter (CTRL+X) en sauvegardant (Y).

Relancer le serveur

  • sudo systemctl restart nginx

C’est vraiment la config minimale, il n’y a pas de sécurité, pas de transcodage, le flux est transmis tel quel.

! Attention ! Ayant déjà un serveur web sur ce boitier, il a fallu que je change les ports d’écoute de nginx pour autre chose que le 80 qui était déjà pris. Sinon le service refuse de se lancer.

Captvty

  • Télécharger et décompresser le logiciel quelque part, par exemple sur le bureau.
  • Lancer l’exécutable captvty.exe
  • Faire un clic droit sur la chaîne TV puis Visionner <chaine> en direct

Si tout se passe bien, une fenêtre s’ouvre et diffuse un flux vidéo.

OBS

Installation

  • Installer et décompresser OBS quelque part, par exemple le bureau
  • Lancer l’exécutable obs64.exe

Configuration

  • Dans les sources, ajouter Capture d’une fenêtre et Audio du bureau
  • Dans les paramètres de la capture de fenêtre, sélectionner la fenêtre qui diffuse la chaîne.
  • Enfin, dans les paramètres de Flux d’OBS,
    • choisir Personnalisé
    • Indiquer l’adresse du serveur RTMP
    • Choisir une clé (j’ai mis test)
  • Enfin, lancer le stream

Si OBs ne dit rien, c’est que le flux est diffusé.

Reception

Depuis un ordinateur branché sur le réseau, depuis un téléphone (s’il dispose de VLC), ou directement depuis la TV :

  • Lancer VLC
  • Ouvrir un flux réseau
  • Indiquer l’adresse du serveur RTMP sous la forme
    • rtmp://<adresse ip>/live/test

live, c’est le nom du service RTMP (indiqué dans le fichier de configuration Nginx).
test, c’est la clé de stream indiquée dans OBS.

Si tout s’est bien déroulé, vous devriez voir votre flux apparaître.

Conclusion

Il y a quelques étapes à réaliser, mais l’ensemble n’est pas si compliqué à mettre en place de mon point de vue. OBS étant capable de prendre à peu près n’importe quoi en entrée, rien n’empêche par exemple de diffuser une webcam, un ensemble de caméra de sécurité, des panneaux d’affichage ou un diaporama de photos ou de la publicité par exemple. OBS permet de gérer des scènes, mais aussi des transitions pour passer joliment d’une scène à l’autre. Chaque scène étant indépendante, il est possible de produire du contenu différent pour chacune.

Tout l’intérêt de ce mini-projet a été pour moi de comprendre comment mettre en place le serveur RTMP privé, et si on s’en tient à la base, cela a été très simple. Bien sûr, pour une utilisation en entreprise, ou dans le public, il faudra ajouter des couches de sécurité, mais cela dépasse le cadre de cet article.

Installer les drivers d’une clé Wifi TP-Link Archer T3U sous PopOs! (et Ubuntu)

Pour améliorer les débits Wifi du laptop qui me sert d’ordinateur principal depuis quelques jours, j’ai acheté une clé Wifi 5 TP-Link Archer T3U (17€). J’aurais préféré une clé Wifi 6 (vu que je dispose d’un point d’accès Wifi 6 qui fonctionne hyper bien) mais ça n’existe pas encore à des prix raisonnables.
Comme un imbécile, je n’ai pas vérifié la compatibilité avec Linux, étant persuadé qu’il n’y aurait aucun problème. Raté, pas de driver officiels dispo.
Mais il y a un moyen quand même.


Il existe deux dépôts GitHub mettant à dispo ce driver, qu’il va falloir compiler. Le premier m’a fait une erreur à la compilation en allant cherche un fichier ipx.h obsolète. Je me suis donc tourné vers le second, qui dispose même d’un script facilitant l’ensemble : https://github.com/cilynx/rtl88x2bu

Ouvrez donc un terminal dans lequel vous inscrirez les commandes suivantes :

git clone https://github.com/cilynx/rtl88x2bu.git
cd rtl88x2bu
./deploy.sh

Cela va prendre quelques minutes à l’issue desquelles vous devrez probablement redémarrer.

Si cela ne fonctionne pas, il faudra probablement installer le paquet linux-headers. Généralement, je fais ceci dans un terminal :

sudo apt install module-assistant
sudo m-a prepare

Le module-assistant installera tout le nécessaire pour compiler les modules (modules ~⇒ drivers Windows)

Voici ce que j’ai maintenant dans les paramètres :

Le Intel Centrino est l’adaptateur Wifi intégré au laptop X230. Le TP-Link est la clé que j’ai acheté.
En me connectant sur mon point d’accès Wifi et en lançant un speedtest, je me retrouve avec une moyenne de 280Mbits/s en download et upload vers Internet, ce qui est TRÈS largement supérieur à ce que j’avais avant, avec pour l’instant une excellente stabilité.

Linux c’est vraiment génial, sauf quand c’est pas génial. C’est pour ce genre de connerie qu’il n’y pas plus de gens qui passent dessus, et je les comprends.
Ça me rend furax qu’une société qui produit ce genre de clé ne prenne pas un peu de temps pour proposer un driver qui fonctionne direct au branchement.

Bref, maintenant ça marche et pour un prix dérisoire j’ai largement augmenté la connectivité de mon ordi.

Mon setup Cloud Gaming headless

Mon ordinateur principal est une tour imposante, disposant d’une grosse carte graphique datant d’avant les pénuries et encore ultra puissante aujourd’hui. Elle me prend beaucoup de place dans la chambre où je l’ai placée, et j’avais tendance à me cogner dessus régulièrement. Bien que je sois un gamer invétéré depuis maintenant plus de trente ans, je me suis aperçu que je jouais à des jeux gourmands de moins en moins souvent et que mon utilisation principale était à 90% bureautique (écriture, travail, consommation de contenus simples, petits jeux).
J’ai donc décidé de déplacer ma tour ailleurs, planquée, et de me servir au quotidien de mon ordinateur portable, un Lenovo X230 sous PopOs avec 8 Go de RAM et un proc I5 d’il y a oulààà au moins tout ça d’année et lorsque me prends l’envie de jouer, j’utilise un service de Cloud Gaming personnel.


Contraintes

Mes contraintes sont les suivantes :

  • Accès au bureau et pas uniquement aux jeux
  • Rapidité de mise en œuvre
  • Client disponible sous Linux
  • Accessible en LAN et depuis Internet

De plus, le serveur n’aura pas d’écran. Dans certains cas, cela aura posé problème (résolution, couleur, performance) jusqu’au moment où j’ai branché un dongle HDMI que j’avais acquis lors d’expériences précédentes de prise de contrôle à distance (avec l’outil Deskreen). Le dongle vaut moins de 10 € sur mamazon pour la version autorisant le 4K 60Hz.

Enfin, le serveur devra être accessible via Internet, mais je ne teste pas les solutions de Cloud Gaming sur internet. Geofrce Now, Stadia et autres ne sont pas de la partie.
Lors de mes recherches, je suis tombé sur les reddits suivants qui m’ont aiguillé et donné pas mal d’information.

ParsecGaming
CloudGaming

Il doit sans doute y en avoir d’autres.

Les services

Parsec

Le serveur ne peut être que Windows ou Mac.

Le client est dispo facilement pour tout système

  • Passe par un serveur centralisé sur internet pour vérifier les connexions interne/externe.
  • Dans la version gratuite, les couleurs semblent un poil moins brillantes, moins jolies que d’origine.
  • Il y a une version payante (10$/m) pour améliorer les couleurs et deux-trois autres trucs
  • Quelques micro-saccades
  • Fonctionne avec n’importe quelle CG
  • Possibilité de mettre l’écran distant en fenêtré
  • Création d’un compte obligatoire

Parsec est un excellent service qui fonctionne très rapidement et très efficacement. La qualité est très bonne pour peu que la connexion soit de bonne qualité, à part les couleurs un poil délavée dans l’option gratuite.

Ah oui, un tout petit truc aussi, en headless (et donc mouseless), Parsec ne peut pas afficher le curseur de la souris distante. Il y a une petite astuce qui passe par l’installation d’un driver de tablette graphique (toutes les instructions sont sur leur site). Ça fait un peu verrue, mais ça fonctionne.

Moonlight

Moonlight est un client GeForce Experience libre installable sur tout système (dont Linux). Il permet d’accéder en streaming à un serveur disposant d’une CG NVidia et de l’application GeForce Experience.

  • Pas d’agent à installer sur le serveur, à part GeForce Experience qu’il faut activer
  • Par défaut ne streame que les jeux, mais il est possible dans l’application Experience d’ajouter un ‘jeu’ et de spécifier explorer.exe ou mstsc.exe pour streamer le bureau lui-même depuis lequel on peut lancer ensuite n’importe quoi, vidéo, audio ou jeu.
  • Interface du client un peu bof, traductions pas terminées, mais fonctionnement impeccable et sans micro-saccades.
  • Couleur et résolution respectées
  • Possibilité de mettre l’écran distant en fenêtré, mais c’est moins pratique qu’avec Parsec
  • Pas de création de compte
  • On peut réveiller l’ordi distant depuis l’interface !

Moonlight est aussi une excellente solution, gratuite et libre de surcroit (pour la partie cliente). L’astuce permettant de streamer le bureau est triviale à mettre en place. Les deux points un peu embêtants sont la tronche de l’interface franchement perfectible (on sent le truc d’informaticien) et le mode fenêtré moins pratique.

Rainway

Rainway est un concurrent de Parsec avec un fonctionnement similaire. Je ne sais pas si c’est moi, le temps qu’il fait, ou des problèmes temporaires, mais j’ai trouvé Rainway plus lourd et moins pratique que Parsec ou Moonlight, avec des perfs globale moins bonnes et donc un ensemble moins agréable à utiliser. En point positif, pas de client à installer, un navigateur suffit.

  • Installation d’un agent appelé Dashboard sur le serveur
  • Le Client est un simple navigateur (basé sur chrome)
  • Création de compte obligatoire (comme Parsec)
  • Perf trop faibles

Steam propose sa propre solution appelée Steamlink, dispo sur un peu tous les systèmes. Le client Linux est un flatpak qu’il faut lancer à la main, et on ne peut normalement jouer qu’aux jeux steam (même si on peut ajouter des jeux non-steam, je ne sais pas si tout est possible, notamment les jeux Epic ou Origin.)

  • Client Remote Play en flatpak
  • Ne permets pas de streamer le bureau
  • Ne permets de jouer qu’aux jeux steam
  • Un peu pénible à mettre en œuvre (un clic dans l’option sur le steam du serveur, lancement d’un flatpak Remote Link sur le client, appairement)

Mon setup et conclusion

Mon laptop X230 est connecté en CPL sur ma box pour de meilleures performances. Il est sous PopOs!, une distribution Linux proche d’Ubuntu.

Le serveur de jeu est connecté sur la box en direct via un câble Ethernet, ce qui semble être obligatoire quelle que soit la solution choisie.

Le serveur ne dispose pas d’écran, mais d’un dongle HDMI 4K/60 Hz simulant un écran physique.

Le serveur est éteint la plupart du temps, et je l’allume au besoin grâce au Wakeonlan activé dans les drivers de la carte réseau filaire. Sur le client, j’ai un simple fichier de commande contenant les instructions suivantes :

#! /bin/bash

wakeonlan 30:9C:23:B1:2B:67
ping 192.168.1.105/

J’ai choisi d’utiliser principalement Parsec pour sa rapidité et ses performances, ainsi que Moonlight en backup lorsque Parsec n’est plus accessible ce qui arrive de temps en temps, ce dernier ayant besoin d’une connexion vers internet même lorsque les deux machines sont en local.

Je suis très content de la solution globale. Les jeux sont jouables parfaitement, comme voir des vidéos ou travailler à distance sur la machine avec une latence extrêmement faible et parfois imperfectible. Je ne pense toutefois pas qu’on puisse jouer à des jeux compétitifs (Overwatch).

À part, parfois, une connexion parfois peu stable vers Parsec, peu de souci à déplorer. Le ventilo du portable fait un poil plus de bruit que l’autre machine ok.
Sinon, je gagne de la place et je dépense moins d’électricité à utiliser mon X230 toute la journée plutôt que la grosse bécane, bref bilan positif !

Activer l’accélération matérielle pour Jellyfin sur un Mele Quieter 2

Il y a quelques mois, j’ai acheté un mini PC Mele Quieter 2.

C’est une machine extrêmement compacte, mue par un processeur J4125 de chez Intel, de faible puissance, mais à la consommation très faible aussi, et surtout sans ventilateur donc totalement silencieuse. J’y ai installé plusieurs services, dont un serveur Jellyfin permettant le partage de vidéos de famille dans mon réseau interne, mais aussi externe pour que mes enfants et moi-même puissions y accéder de n’importe où.

J’y ai adjoint un disque dur externe de grande capacité branché en USB3, et un ssd Nvme interne de 1 To pour avoir un peu de place, servir de cache et de stockage pour les autres services.

J’ai découvert cet appareil grâce au site Minimachine et notamment cet article dont je remercie chaudement l’auteur.

Je ferai sans doute d’autres articles sur le sujet, mais aujourd’hui je vais me concentrer sur un point en particulier, l’accélération matérielle du décodage/encodage de vidéos.


Jellyfin est tout rouge

La machine est normalement livrée avec Windows 10, mais j’ai préféré installer une Ubuntu récente. L’installation s’est déroulée sans aucun problème, tout le matériel est reconnu et l’appareil est étonnamment efficace pour toutes les tâches que je lui demande d’effectuer.
Parmi celles-ci, la plus gourmande est sans conteste Jellyfin, et notamment sa fonction de transcodage.

Jellyfin est un serveur de média open-source, équivalent du très connu Kodi, qui permet de se construire une bibliothèque de contenu, de l’organiser en différentes médiathèques et de servir ses fichiers à, à peu près n’importe quoi, du simple navigateur internet, à la smart TV, Nvidia Shield, ou téléphone.

Lorsque le client est capable de décoder le flux, ce dernier est transmis directement. Dans le cas contraire, Jellyfin se charge de transcoder le média à la volée.
Jusqu’à peu, tout allait bien, mais récemment j’ai récupéré une vidéo de vacances encodée en 4K avec le format H265. Ce fichier comportait aussi de nombreux sous-titres, ainsi que des pistes audio 7.1.
Impossible de le lire sans saccades, coupures et gels de plusieurs dizaines de secondes.

Un btop me montre que le transcodage monte tous les cœurs du CPU à pas loin de 100% en permanence.

Je comprends alors que l’accélération matérielle n’est pas activée.

Accélération matérielle

Voici donc le résultat de mes recherches.

Le processeur vient avec une partie graphique de chez intel, le UHD 600 :

orlanth@zeus:~$ sudo lshw -c video
*-display
description: VGA compatible controller
product: GeminiLake [UHD Graphics 600]
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 06
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list
configuration: driver=i915 latency=0
resources: irq:133 memory:a0000000-a0ffffff memory:90000000-9fffffff ioport:f000(size=64) memory:c0000-dffff

Le driver par défaut est le intel-media-va-driver.

J’ai vu sur certains sites, que la version non-free est sans doute plus avancée. Je ne suis pas sûr que cette étape soit obligatoire, mais au cas où, j’installe cette version puis je reboote.

orlanth@zeus:~$ sudo apt search intel-media-va-driver-non-free

Ayant installé Jellyfin via docker (et surtout docker-compose), il faut impérativement passer la carte graphique du système « réel » au système du docker.
Pour cela il faut ajouter quelques lignes au fichier docker compose.

orlanth@zeus:/var/www/jellyfin$ cat docker-compose.yml
version: '3'
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin

    network_mode: "host"

    volumes:
    - /home/orlanth/.jellyfin:/config
    - /media/:/media
    environment:
    - PUID=1000
    - PGID=1000
    restart: always
    devices:
    - /dev/dri/renderD128:/dev/dri/renderD128
    - /dev/dri/card0:/dev/dri/card0

Il s’agit des 3 dernières lignes, devices et les deux devs.
Il faut les ajouter telles quelles.
Ensuite docker-compose down pour arrêter les services et docker-compose up -d pour les relancer.
On est bon côté système, maintenant il faut l’activer côté applicatif.

Encore quelques clics

Dans le tableau de bord de Jellyfin, il faut aller dans Lecture.

Puis Transcodage.

Dans la liste « Accélération matérielle », choisir Video Acceleration API (VAAPI).

Cocher HEVC puis descendre jusqu’au Profil d’encodage.

J’ai choisi superfast en me disant que je pouvais me contenter d’une qualité moindre, mais je ne sais pas si cela a un gros impact par rapport à fast utilisé par défaut.

Enfin ne pas oublier de sauvegarder les modifications en cliquant sur le bouton en bas de la page.

Attention à ne PAS cocher Adapter la vitesse du transcodage.

Je relance la vidéo et mon btop me montre que cette fois les cœurs du CPU ne montent plus qu’à 25% en moyenne.

L’accélération est donc bien activée !

Yeah !

À suivre

Si j’ai gagné en CPU et en chaleur, ainsi qu’en fluidité puisque j’arrive à lire un peu mieux le fichier, j’ai toujours des freezes mais beaucoup moins nombreux et beaucoup plus court.

Du coup, je peux faire deux choses.

En changeant la qualité pour quelque chose d’inférieur au 4K je réduis grandement la charge, notamment sur le réseau.

Et sinon, je fais comme sur Youtube à la grande époque des embrouilles avec Free, je lance le film, je mets la pause et j’attends une trentaine de secondes que le chargement se fasse, ensuite je suis à peu près tranquille.

En résumé, je suis toujours très content, mais je ferai plus attention au format des films de vacances que je peux trouver.

Création automatique de répertoires pour rangement de ma théatrothèque

Depuis que j’ai commencé le théâtre, je me suis constitué un stock de pièces de théâtre, de textes anciens ou contemporains, de cours, et d’autres informations pouvant m’aider dans mon apprentissage du métier d’acteur. Jusqu’à maintenant, j’étais le seul à m’en servir, mais depuis peu je suis dans un cours amateur près de chez moi et j’ai partagé cette théatrothèque avec mes chers collègues, qui en ont profité pour l’enrichir à leur tour. Du coup, pour mieux m’y retrouver, j’ai fait du ménage.


Premièrement à coup de Bulk Rename, j’ai renommé tous les fichiers en mettant l’auteur en premier puis un séparateur  » – « , en enfin le nom de la pièce ou du livre.

Pour que les noms soient normalisés, j’ai aussi utilisé l’option « Title » de Bulk Rename pour mettre tous les noms de fichiers en minuscules avec la première lettre de chaque mot en majuscules.

Enfin et surtout j’ai décidé de créer un répertoire par auteur. C’est là que j’ai utilisé deux lignes de commandes magiques que voici (lancées sous Windows via cmder, une console qui comporte quelques commandes Linux)

D’abord je crée une liste de tous les fichiers

  • Ls : liste les fichiers
  • awk : récupère uniquement le nom de l’auteur. Le FS contient le séparateur. Le print $1 imprime le premier champ, donc tout ce qui se trouve avant le séparateur.
  • sort et uniq : permet de trier la liste et de ne conserver qu’un seul nom
  • dir.txt : le fichier dans lequel sera écrit la liste

Ensuite j’ouvre dir.txt pour vérifier que tout est ok et éventuellement nettoyer les scories à la main.

Enfin, une petite commande perl en une ligne que me crée tout ça automatiquement.

Je ne connais pas bien Perl, et je me suis contenté de récupérer cette ligne sur le net, juste en changeant évidemment le nom de fichier.

Et hop, toute une liste de répertoire créée quasi instantanément.

Bon, j’ai finis de déplacer les fichiers manuellement, surtout par flemme de le faire en ligne de commande, mais aussi pour vérifier que tout était ok à chaque fois.

Et hop, une chouette théâtrothèque, bien rangée, et bien partagée via mon Nextcloud, le tout en moins d’une heure, recherches comprises.

Problème de partage de fichier entre Windows 10 et Linux (GVFS et SMB1)

Depuis des années j’utilise mon ordi principal pour partager des fichiers vers mes autres machines, machines virtuelles pour les tests, NVidia Shield pour les vidéos, ou mon laptop sous Linux pour récupérer des fichiers de travail. A un moment, ça a arrêté de fonctionner. J’ai enfin compris pourquoi et c’est le sujet de cet article.


Avec ma Shield, j’utilisais Kodi pour accéder à mes fichiers, sans problème puis d’un coup cela s’est arrêté. J’ai pensé qu’il s’agissait d’un problème avec une nouvelle version de Kodi, donc en attendant j’utilisais VLC en direct qui lui fonctionnait sans problème.

Parallèlement, je joue beaucoup avec des distributions Linux, mais à chaque fois que je voulais m’en servir pour de vrai (par exemple sur mon laptop, sur lequel je ne joue pas), j’avais des soucis. Ce qui me heurte beaucoup en temps que libriste convaincu et qui constitue une vraie barrière pour moi à la démocratisation de Linux sur les machines de Bureau. Soit il s’agit d’un problème de son, ou de drivers vidéos ou surtout d’accès au réseau. Bref, jamais tranquille.

Pourtant, sur les réseaux je suis des libristes et de plus en plus d’entre disent s’ennuyer maintenant parce que tout fonctionne chez eux out-of-the-box. Et pas chez moi, pourquoiii ?

Bref, je profitais récemment d’un nouveau test, cette fois de la distribution FerenOS qui fait sensément tout plus mieux que les autres et le café avec.

Encore une fois le parcours du réseau était impossible, message d’erreur et tout et tout. Sauf que cette fois, j’ai fait une réussite critique en Google-Fu et que j’ai trouvé la solution. Et si le problème vient bien de Linux, la solution se trouve côté Windows.

En effet, suite à un bug dans le backend GVFS, les versions supérieures à smb1 (le protocole utilisé pour la découverte du réseau et le partage de fichier) ne sont pas prises en charge par Linux.

Or, les versions récentes de Windows 10, pour des raisons de sécurité, désactivent smb1, vieux de 30 ans, ce qui est normalement une excellent idée, mais qui dans notre cas précis casse, sans prévenir, l’autre côté.

La solution tient en une ligne.

Ouvrez un terminal Powershell en mode Admin et tapez la commande ci-dessus. L’ordi va redémarrer (violemment et sans vous demander votre avis, GG MS), puis smb1 sera activé.

De retour dans ma VM de test FerenOs, le gestionnaire de fichier Nemo voit instantanément la machine de partage, les partages eux-mêmes et après une demande légitime d’authentification me donne enfin accès aux fichiers convoités, et un double-clic lance une vidéo avec VLC très rapidement et sans buffering.

Je suis un peu embêté pour la conclusion.

En effet, Windows a colmaté un trou de sécurité important, et un bug dans Linux fait qu’on ne peut plus s’y connecter, du coup MS 1 – Linux 0

La correction serait problématique dans un environnement moins personnel que le mien et ne fonctionnera pas dans un environnement où je n’ai pas la maîtrise du serveur.

Il existe des solutions de contournement (notamment monter le partage distant en ligne de commande, ou en passant par le fichier /etc/fstab) mais ce n’est absolument pas user-friendly et contredit, à mon sens, la facilité supposée d’utilisation du bureau Linux.

Si quelqu’un a trouvé une solution plus élégante que la mienne, n’hésitez pas à m’en faire part, en attendant je vais pouvoir remater mes films de vacances, tranquillement, dans mon canap’ jusqu’à la prochaine fois.


Ressources
Un point global sur le sujet
https://forums.linuxmint.com/viewtopic.php?t=322404

Stop using SMB1
https://techcommunity.microsoft.com/t5/storage-at-microsoft/stop-using-smb1/ba-p/425858

Chercher/remplacer par style et wildcards dans Word

Nous avons écrits YxY à plusieurs mains et à cause d’un manque de concertation nous avons chacun utilisé nos propres marques pour spécifier les titres et sous-titres. Mon maquettiste me demande aujourd’hui d’unifier les documents, de supprimer les titres et de les encadrer avec un tag.


Word possède des fonctions de recherches assez puissante et notamment un moteur apparenté Regex pour faire des combinaisons complexes. Mais la doc étant un peu mal foutue, voici comment je m’y suis pris.

Mes titres étaient simplement des styles Word tout bêtes, Titre 1, Titre 2 etc.

L’idée est de remplacer un Titre 1 par son texte seul encadré de tag <A>xxx</A>, un Titre 2 par <B>xxx</B> et un Titre 3 par <C>xxx</C>.

Lancez la recherche Word (ctrl+H).

Cliquez dans la boite Rechercher, puis sélectionnez le menu Format, Style.

Allez chercher votre Titre 1 mais attention, il peut y avoir plusieurs style avec le même nom.

Cochez la case Utiliser les caractères génériques.

Pour récupérer toute la ligne, tapez le code suivant : <(*)^13

  • Le < indique un début de mot.
  • * demande de rechercher entre 0 et n lettres. Normalement il s’arrête au premier espace trouvé, ce qui est gênant si on veut en entier un titre qui comporte plusieurs mots.
  • ^13 est un code qui représente un saut de paragraphe. J’ai cherché sur internet, je ne l’ai pas trouvé dans l’aide.
  • Enfin, les parenthèses () indiquent que toutes les lettres trouvées forment un groupe qui sera réutilisé dans le remplacement.

Dans la case Remplacer, indiquez <A>\1</A>^13

  • <A> et </A> sont les tags dont mon maquettiste a besoin.
  • \1 est un code qui représente le contenu trouvé précédemment par (*).
  • ^13 est un saut de paragraphe.
  • Vous pouvez en profiter pour faire sauter le style en cliquant dans Format, Style et en choisissant le style Normal.

Cliquez sur Remplacer tout et laissez la magie opérer. Refaites la même chose pour chacun des niveaux de titres et hop un document tout propre.

Ne vous laissez pas décourager par le côté technique, c’est vraiment très simple à mettre en place, adaptable, et ça fait peut faire gagner un temps fou.