Catégorie : Linux

Lenovo

L’audio ne fonctionnait à nouveau plus correctement , malgré shutdown , reboot , et plus d’une minute avec bouton power enfoncé .

sudo /usr/local/bin//speaker.sh
[sudo] Mot de passe de stefan :  
Configuring amp at address 0x38 on i2c-17
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Done configuring amp at 0x38
Configuring amp at address 0x3e on i2c-17
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Error: Write failed
Done configuring amp at 0x3e

~ 6s
❯ cat  /usr/local/bin//speaker.sh
#!/bin/bash

i2c_bus=17
amp_addresses=(0x38 0x3e)

for i2c_addr in "${amp_addresses[@]}"; do
 echo "Configuring amp at address $i2c_addr on i2c-$i2c_bus"

 i2cset -f -y $i2c_bus $i2c_addr 0x00 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x7f 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x01 0x01
 i2cset -f -y $i2c_bus $i2c_addr 0x0e 0xc4
 i2cset -f -y $i2c_bus $i2c_addr 0x0f 0x40
 i2cset -f -y $i2c_bus $i2c_addr 0x5c 0xd9
 i2cset -f -y $i2c_bus $i2c_addr 0x60 0x10
 i2cset -f -y $i2c_bus $i2c_addr 0x0a 0x2e
 i2cset -f -y $i2c_bus $i2c_addr 0x0d 0x01
 i2cset -f -y $i2c_bus $i2c_addr 0x16 0x40

 i2cset -f -y $i2c_bus $i2c_addr 0x00 0x01
 i2cset -f -y $i2c_bus $i2c_addr 0x17 0xc8

 i2cset -f -y $i2c_bus $i2c_addr 0x00 0x04
 i2cset -f -y $i2c_bus $i2c_addr 0x30 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x31 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x32 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x33 0x01

 i2cset -f -y $i2c_bus $i2c_addr 0x00 0x08
 i2cset -f -y $i2c_bus $i2c_addr 0x18 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x19 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x1a 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x1b 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x28 0x40
 i2cset -f -y $i2c_bus $i2c_addr 0x29 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x2a 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x2b 0x00

 i2cset -f -y $i2c_bus $i2c_addr 0x00 0x0a
 i2cset -f -y $i2c_bus $i2c_addr 0x48 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x49 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x4a 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x4b 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x58 0x40
 i2cset -f -y $i2c_bus $i2c_addr 0x59 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x5a 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x5b 0x00

 i2cset -f -y $i2c_bus $i2c_addr 0x00 0x00
 i2cset -f -y $i2c_bus $i2c_addr 0x02 0x00

 echo "Done configuring amp at $i2c_addr"
done
lspci -nn | grep -i audio
00:1f.3 Multimedia audio controller [0401]: Intel Corporation Meteor Lake-P HD Audio Controller [8086:7e28] (rev 20)

~
❯ lspci -nnk | grep -iA 3 0403


La déconnexion de la batterie a permis une réinitialisation profonde du contrôleur intégré (EC) et des circuits de gestion d’alimentation de l’ordinateur portable. Sur des modèles comme le Lenovo Yoga Pro 9i, les amplificateurs audio (tels que TAS2781 ou similaires, intégrés au codec ALC287) peuvent entrer dans un état « bloqué » ou de basse puissance en raison de bogues firmware, d’interactions avec le noyau, ou de problèmes de gestion d’alimentation sous Linux. Cet état empêche les écritures I2C réussies (entraînant les erreurs « Write failed » dans le script), même si les périphériques sont physiquement présents. La réinitialisation efface cet état, restaurant une communication normale sans nécessairement modifier l’énumération des périphériques dans les outils comme lspci ou i2cdetect (qui sonde les accusés de réception I2C).
Pourquoi la détection reste identique : i2cdetect repose sur les réponses des périphériques avec un accusé de réception (ACK) lors d’une sonde. Si les amplificateurs étaient dans un mode de défaillance partielle, ils pouvaient ne pas répondre, entraînant un scan vide. Cependant, après la réinitialisation, ils peuvent maintenant accepter les écritures de votre script, permettant une configuration appropriée et une sortie audio complète (incluant les basses). Ce comportement est connu dans les configurations audio Linux pour les appareils Lenovo, où la visibilité et la fonctionnalité peuvent se dissocier en raison des particularités de gestion d’alimentation.

Compilation du kernel :

Install Openweb-UI sous cachyOS

Key Features of Open Web UI:

  • Intuitive Chat Interface: Inspired by ChatGPT for ease of use.
  • Responsive Design: Works smoothly on both desktop and mobile devices.
  • Swift Performance: Fast and responsive user experience.
  • Easy Setup: Can be installed using Docker or Kubernetes tools like kubectl, kustomize, or helm.
  • Theme Customization: Offers a variety of themes for personalization.
  • Code Syntax Highlighting: Enhances code readability.
  • Markdown and LaTeX Support: Full support for rich text and mathematical expressions.
  • RAG Integration: Advanced document interaction with Retrieval Augmented Generation, including local and remote document access.
  • Web Browsing: Integrate web content directly into chats.
  • Prompt Presets: Easy access to preset conversation starters.
  • RLHF Annotation: Feedback tools for training models using thumbs up/down and textual feedback.
  • Conversation Tagging: Simplifies searching and organizing chat records.
  • Model Management: Download, delete, or update Ollama models directly from the UI.
  • Multiple Model Support: Switch between different models for varied interactions.
  • Multimodal Interactions: Supports image generation and other multimodal functionalities.
  • Modelfile Builder: Create and customize modelfiles easily.
  • Collaborative Chat: Group conversations with multiple models.
  • Local Chat Sharing: Generate and share chat links for collaboration.
  • Voice Input and Text-to-Speech: Interact with models using voice; customize TTS settings.
  • Advanced Parameters Control: Customize conversation settings with detailed parameters.
  • OpenAI API Integration: Supports integration with OpenAI and other compatible APIs.
  • Multi-User Management: Administer user roles and access through a comprehensive admin panel.
  • Security Enhancements: Features like model whitelisting, role-based access, and backend reverse proxy support.
  • Multilingual Support: Available in multiple languages with ongoing expansion efforts.
  • Continuous Updates: Regular enhancements and new features.
# installer python 3.11 si pas déjà fait
sudo pacman -Syu python311

# créer un venv avec python 3.11
python3.11 -m venv ~/open-webui-venv

# activer le venv pour fish
source ~/open-webui-venv/bin/activate.fish

# vérifier que pip et python sont du venv
which python
which pip

# installer open-webui dans le venv
pip install open-webui

#Démarer open web-ui , part défaut port 8080 
open-webui serve 

#si besoin de spécifier autre port 
open-webui serve --port 3000


Sécurisez votre serveur SSH

1. Désactiver l’accès SSH direct au compte root ainsi que l’authentication par mot de passe

⚠️ Avant de désactiver les mots de passe, vérifier la connexion via clé SSH

Dans /etc/ssh/sshd_config, modifier :

PermitRootLogin no
PasswordAuthentication no

script de surveillance et blocage automatique des IP malveillantes

Les tentatives de brute-force SSH sont omniprésentes dès qu’un serveur Linux est exposé à Internet.

  • Surveiller les échecs de connexion SSH
  • Bloquer automatiquement les IP abusives via iptables
  • Vous alerter par e-mail en cas de bannissement

ssh-monitor.sh

Placez ce code dans /usr/local/bin/ssh-monitor.sh et rendez-le exécutable (chmod +x).

#!/usr/bin/env bash

# -------------------------------------------------------------------
# /usr/local/bin/ssh-monitor.sh
# Surveillance des échecs SSH et blocage automatique des IP trop actives
# -------------------------------------------------------------------

# Configuration
LOGFILE="/var/log/auth.log"           # Fichier de log SSH
STATEFILE="/var/tmp/ssh-monitor.state"  # Pour mémoriser la position lue
THRESHOLD=5                            # Seuil d'échecs avant blocage
ADMIN_EMAIL="admin@votredomaine.tld"   # Destinataire des alertes
BAN_CHAIN="SSH-BAN"                    # Chaîne iptables dédiée

# Création et liaison de la chaîne iptables
iptables -L $BAN_CHAIN >/dev/null || iptables -N $BAN_CHAIN
iptables -C INPUT -j $BAN_CHAIN >/dev/null || iptables -I INPUT -j $BAN_CHAIN

# Initialisation du statefile si nécessaire
: > "$STATEFILE" 2>/dev/null || echo "0" > "$STATEFILE"

# Lecture incrémentale du log
LAST_POS=$(cat "$STATEFILE")
CUR_POS=$(stat --format=%s "$LOGFILE")
[[ $CUR_POS -lt $LAST_POS ]] && LAST_POS=0

tail --bytes=+$((LAST_POS + 1)) "$LOGFILE" \
  | grep "Failed password for" \
  > /tmp/ssh-fails.$$

echo "$CUR_POS" > "$STATEFILE"

# Comptage et blocage
awk '{ for(i=1;i<=NF;i++) if ($i ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/) print $i }' /tmp/ssh-fails.$$ \
  | sort | uniq -c | while read count ip; do
    if (( count >= THRESHOLD )); then
      if ! iptables -C $BAN_CHAIN -s "$ip" -j DROP >/dev/null; then
        iptables -A $BAN_CHAIN -s "$ip" -j DROP
        echo -e "Subject: [ALERTE SSH] IP bannie : $ip\n\n$(date)\nL'IP $ip a généré $count échecs SSH et a été bloquée." \
          | sendmail "$ADMIN_EMAIL"
      fi
    fi
done

# Nettoyage
rm -f /tmp/ssh-fails.$$

Comment fonctionne le script ?

1. Configuration

LOGFILE : fichier de logs SSH (/var/log/auth.log sur Debian/Ubuntu).
THRESHOLD : nombre d’échecs avant blocage automatique.
ADMIN_EMAIL : destinataire des e-mails d’alerte.
BAN_CHAIN : chaîne personnalisée iptables.

2. Chaîne iptables dédiée

Le script crée une chaîne SSH-BAN puis l’insère en tête de la chaîne INPUT : ainsi tous les paquets entrants sont filtrés par SSH-BAN avant le reste de la configuration.

3. Lecture incrémentale

Pour éviter de reparcourir tout le fichier de log à chaque passage, on mémorise la dernière position lue dans STATEFILE. Si le log est tourné (rotation), on repart de zéro.

4. Extraction et comptage

Le script filtre les lignes contenant « Failed password for », extrait les adresses IPv4, puis trie et compte les occurrences.
Les IP dépassant le seuil défini sont alors ciblées.

5. Blocage et notification

Pour chaque IP abusive, on ajoute une règle DROP dans la chaîne SSH-BAN (si elle n’y figure pas déjà), puis on envoie un mail d’alerte via sendmail.

6. Nettoyage

Le fichier temporaire de collecte des échecs est supprimé à la fin de l’exécution (/tmp/ssh-fails.$PID).

Mise en place

  1. Enregistrez le script : sudo nano /usr/local/bin/ssh-monitor.sh sudo chmod +x /usr/local/bin/ssh-monitor.sh
  2. Installez un MTA (ex. sendmail, postfix, msmtp) pour les alertes e-mail.
  3. Créez une tâche cron pour exécuter le script chaque minute : sudo crontab -e Ajoutez la ligne : * * * * * /usr/local/bin/ssh-monitor.sh
  4. Vérifiez périodiquement votre chaîne de blocage : sudo iptables -L SSH-BAN -n --line-numbers

Conclusion

Ce script Bash offre une protection simple et efficace contre les attaques de brute-force SSH

CachyOS

CachyOS

Présentation de CachyOS

  1. Post-installation et maintenance
  2. Installer des applications
  3. Gaming
  4. Utilisation de sched-ext pour les Schedulers sur Linux

Présentation de CachyOS

CachyOS est une distribution Linux cutting edge (avant-gardiste) basée sur Arch Linux, conçue pour offrir des performances maximales et tester les nouveautés de Linux en avant-première.

Warning

Même si CachyOS gère l’installation et la configuration du système, cela reste une base Arch Linux « cutting edge », c’est-à-dire avant-gardiste. En plus de la base Arch Linux, CachyOS inclut des paquets expérimentaux et bêta pour découvrir des fonctionnalités avant tout le monde. Je la recommande donc plutôt à des utilisateurs familiers de Linux, du terminal, et capables de se débrouiller un minimum seuls. Il est également conseillé de ne pas être réfractaire à l’anglais pour lire leur wiki et de rejoindre leur Discord. C’est une distribution communautaire par excellence, et pour en profiter pleinement, il faut lire, comprendre, et participer aux discussions de la communauté. Peter et Vlad, les développeurs principaux, sont très présents, compétents et sympathiques.

Pour contrebalancer ce warning, je tiens à dire que CachyOS est la meilleure distribution de sa catégorie, vu qu’elle est la seule. Il n’y a pas longtemps, j’ai demandé à Peter ce qu’il pensait d’un patch d’Intel pour les performances inclus dans le noyau 6.12 prévu dans plusieurs mois au moment de la question. Il m’a répondu qu’il avait déjà intégré le patch depuis des semaines sur le noyau de CachyOS. Entre les patches en avance, la compilation des paquets optimisée, etc., aucune distribution ne propose autant d’optimisations que CachyOS et n’est aussi avant-gardiste.

Je vous conseille grandement cette vidéo tournée avec Antiz, DevOps et mainteneur de l’équipe officielle d’Arch Linux. Bien qu’étant une base Arch, CachyOS abandonne le côté DIY (Do It Yourself) en prenant en charge la configuration initiale du système et son évolution à votre place, néanmoins savoir se servir correctement de pacman et comprendre un minimum le fonctionnement de Arch reste nécessaire.

Principaux avantages de CachyOS :

  • Performance : Basée sur Arch Linux, CachyOS utilise le noyau linux-cachyos optimisé avec le scheduler CPU BORE (Burst-Oriented Response Enhancer) pour de bonnes performances et une latence basse. La distribution la plus performante selon les tests de Phoronix
  • Paquets optimisés : Les paquets sont compilés avec les jeux d’instructions x86-64-v3, x86-64-v4 et Zen4, ainsi qu’avec LTO pour améliorer les performances. Les paquets principaux bénéficient également d’optimisations PGO ou BOLT.
  • Plein d’autres optimisations : Profile-sync-daemon, systemd-oomd, bpftune, Ananicy-cpp-rules
  • Choix de l’environnement de bureau : Vous pouvez choisir parmi une variété d’environnements de bureau populaires tels que KDE, GNOME, XFCE, i3WM, Wayfire, LXQT, OpenBox, Cinnamon, UKUI, LXDE, Mate, Budgie, Qtile, Hyprland, et Sway lors du processus d’installation. KDE Plasma reste ma recommandation et le flagship de CachyOS.
  • Installation personnalisable : CachyOS propose deux options d’installation : une version avec interface graphique basée sur Calamares, et une option en ligne de commande pour ceux qui préfèrent une installation sans interface graphique.
  • Navigateur par défaut : Cachy-Browser, basé sur Firefox, inclut des fonctionnalités de sécurité supplémentaires et des performances optimisées, intégrant des patchs du navigateur LibreWolf.
  • CachyOS Hello : Application de gestion des réglages, correctifs, installation de paquets et informations sur CachyOS.

Post-installation et maintenance

  • Faire un tour sur leur wiki : Wiki CachyOS Particulièrement les pages Gaming et General system Tweaks Certains tweaks de ce wiki sont très importants comme la partie Disabling Split Lock Mitigate de general_system_tweaks, indispensable pour jouer dans de bonnes conditions avec un CPU Intel à partir de la génération 12 et plus. Je traite le problème ici en français.
  • Comme vous pouvez le voir, CachyOS Hello fournit tout ce qu’il faut pour mettre à jour et maintenir son système.
cachyoshello1
cachyoshello2

Installer des applications

L’installation d’applications sur CachyOS peut se faire de plusieurs manières, mais il est recommandé d’utiliser les méthodes qui respectent les bonnes pratiques d’Arch Linux pour éviter des problèmes potentiels. Voici les méthodes recommandées :

Utilisation de CachyOS Package Installer

CachyOS fournit une interface graphique dédiée pour faciliter l’installation des applications les plus courantes. CachyOS Package Installer est accessible via CachyOS Hello et permet d’installer rapidement et simplement les logiciels dont vous avez besoin sans avoir à utiliser la ligne de commande.

cachyospkg

Utilisation de Pacman

Pour les utilisateurs plus expérimentés ou ceux qui préfèrent la ligne de commande, Pacman est le gestionnaire de paquets par défaut d’Arch Linux et donc de CachyOS. Vous pouvez installer des applications en utilisant la commande suivante :

sudo pacman -S nom_du_paquet

Remplacez nom_du_paquet par le nom du paquet que vous souhaitez installer. Vous pouvez rechercher des paquets disponibles avec :

pacman -Ss mot_clé

Voir vidéo : Antiz, mainteneur officiel de Arch Linux nous explique les bonnes pratiques à avoir sur Arch

Éviter les interfaces graphiques tierces

Il est fortement déconseillé d’utiliser des interfaces graphiques tierces comme GNOME Software (aussi connu sous le nom de Logiciels) ou KDE Discover pour installer des applications sur CachyOS. Ces outils utilisant packagekit ne sont pas conçus pour gérer les distributions rolling release comme Arch Linux et peuvent causer des problèmes de dépendances ou des conflits de paquets.

Pour plus de détails, vous pouvez consulter les avertissements sur la page Pacman/Tips and tricks du wiki Arch Linux et les discussions sur GitHub.

En résumé, pour une expérience optimale et stable sur CachyOS, privilégiez l’utilisation de CachyOS Package Installer ou de Pacman pour l’installation de vos applications.

Tweaks de CachyOS Hello (personnellement, je ne conseille que Ananicy-cpp-rules) :

  • Profile-sync-daemon est conçu pour gérer les profils de navigateur dans tmpfs et les synchroniser périodiquement sur le disque physique (HDD/SSD). Cela est réalisé grâce à l’utilisation de rsync pour maintenir la synchronisation entre une copie tmpfs et une sauvegarde sur support des profils de navigateur. De plus, psd dispose de plusieurs fonctionnalités de récupération après crash.
  • systemd-oomd est un service qui surveille la mémoire de l’ordinateur pour éviter les pannes dues au manque de mémoire. Il prend des mesures correctives en terminant certains programmes avant que le système ne soit à court de mémoire.
  • bpftune est un outil qui optimise les performances du système en ajustant dynamiquement les paramètres du noyau Linux. Il utilise des programmes eBPF pour surveiller et ajuster les ressources en fonction des besoins.
  • Ananicy-cpp-rules CachyOS est une collection de règles pour Ananicy-cpp. Ananicy-cpp est un démon qui ajuste automatiquement les niveaux de priorité (nice) des processus, tandis qu’Ananicy-cpp-rules est une liste de règles utilisées pour attribuer des valeurs de priorité spécifiques à certains processus. En français : quand vous lancez une application qui a besoin de puissance, Ananicy-cpp la met en priorité CPU élevée.

Outils de CachyOS Hello :

  • CachyOS Package Installer : Interface graphique facilitant l’installation des applications les plus courantes.
  • cachyos-rate-mirrors : Classement automatique des miroirs Arch et CachyOS pour des téléchargements optimaux.
  • cachyos-gaming-meta : Le paquet cachyos-gaming-meta installe toutes les bibliothèques, paquets, plugins et plateformes essentielles, telles que Steam et Lutris, ainsi que divers outils nécessaires pour assurer le bon fonctionnement de la plupart des jeux.
  • Autres options : Pour dépaner / maintenir le hello propose d’autres options, comme netoyer le cache ou encore débloquer pacman si il se verrouille…

Gaming

Page du Wiki pour le gaming de CachyOS.

  • Installez le méta-paquet cachyos-gaming-meta si vous n’utilisez que Steam : sudo pacman -S cachyos-gaming-meta et utilisez le paquet cachyos-gaming-applications sudo pacman -S cachyos-gaming-meta-applications si vous voulez également Lutris, Heroic Game Launcher etc.
  • Pour booster vos performances au maximum, vous pouvez ajouter l’option de lancement game-performance %command% à vos jeux Steam. Cette option de lancement est spécifique à CachyOS et remplace le gamemode, donc ne surtout pas utiliser gamemode avec cette option.
steamoptions

Proton-CachyOS est basé sur proton-experimental et applique un ensemble de correctifs supplémentaires :

  • Correctifs Wine-Staging
  • Wine FullScreen FSR
  • Certains patchs sont passés quelques semaines en avance, comme par exemple à l’époque le support de Reflex ou du DLSS 3.
  • Wineserver est compilé avec LTO
  • Support du umu-launcher

De plus, Proton-CachyOS est compilé avec les bibliothèques système natives et les instructions CPU du compilateur, ce qui peut encore améliorer les performances.

Notez que proton-cachyos n’est pas un proton ultime, magique, mais il est à l’image de la distribution « cutting-edge » certains jeux tourneront mieux avec proton-ge ou proton-experimental. Exemple quand j’écris ces lignes, ils ont poussé un patch en avance pour le DLSS 3 qui casse le lancement de certains jeux ou peut entrainer de grandes pertes de performances dans d’autres.

steamnative

Steam Native, qui utilise les librairies système, contrairement à Steam Runtime qui utilise les librairies choisies par Valve, est potentiellement plus performant par moment mais aussi potentiellement moins stable.

Pour Heroic Game Launcher

C’est ma recommandation pour les jeux hors Steam vous pouvez regarder ici : Guide Heroic

Utilisation de sched-ext pour les Schedulers sur Linux

Warning

Complètement inutile pour 99% des utilisateurs, le kernel / scheduler par défaut de Cachy OS est le meilleur dans la plupart des situations. C’est pour un usage niche ou des cas particuliers, exemple, vous passez votre temps à compiler des logiciels et vous remarquez que un des schedulers proposés dans sched-ext vous fait gagner quelques minutes. Ou vous ne jouez que à un seul jeu 90% du temps et vous remarquez que un des scheduler fonctionne mieux que BORE le scheduleur par défaut de CachyOS.

Un scheduler (ou ordonnanceur en français) est une composante essentielle du système d’exploitation qui décide de l’ordre dans lequel les programmes et les processus utilisent le processeur (CPU). En d’autres termes, il organise et gère l’exécution des tâches pour que votre ordinateur fonctionne de manière fluide et efficace, en distribuant les ressources du CPU entre les différentes applications et services qui en ont besoin.

Le projet sched-ext est une fonctionnalité du noyau Linux qui permet de changer à chaud de scheduler. Cela signifie que les utilisateurs peuvent changer de scheduler depuis l’espace utilisateur sans avoir besoin de recompiler le noyau pour un scheduler différent ni de redémarrer le système.

Sur Linux, il existe différents types de schedulers, chacun avec ses propres méthodes pour gérer les tâches. Certains sont optimisés pour la réactivité, d’autres pour les performances maximales, et certains pour une meilleure autonomie de la batterie, etc. En choisissant le bon scheduler, vous pouvez améliorer les performances globales de votre système en fonction de vos besoins spécifiques, comme le gaming ou le montage vidéo.

Le scheduler par défaut de CachyOS est déjà très bon, donc il ne faut pas s’étonner d’obtenir de moins bons résultats en testant les autres. De plus, certains sont orientés vers la latence, ce qui fait que les benchs en performance pure peuvent être moins bons. Un scheduler qui priorise la latence alloue plus fréquemment du temps CPU aux tâches pour réduire le temps d’attente perçu, ce qui nécessite plus de changements de contexte (context switches). Ces changements impliquent des sauvegardes et restaurations fréquentes de l’état des tâches, augmentant ainsi l’overhead. Cet overhead peut réduire l’efficacité globale du CPU, sacrifiant la performance brute au profit de la réactivité, surtout dans des scénarios où la priorité est donnée à l’exécution rapide de tâches lourdes plutôt qu’à la réactivité. Donc un mauvais résultat en FPS moyen ne signifie pas que le scheduler ne fait pas ce qu’on attend de lui.

Warning

ATTENTION ! À part le scheduler par défaut BORE les autres ne sont pas compatible avec Ananicy-cpp-rules CachyOS donc pensez bien à décocher la case dans CachyOS Hello.

Démarrage et utilisation des Schedulers scx

Pour utiliser les schedulers avec sched-ext sur CachyOS, utilisez leur outil graphique CachyOS Kernel Manager :

schedext1
schedext

FAQ

  1. Pourquoi le scheduler X fonctionne-t-il moins bien que les autres ? De nombreuses variables entrent en jeu lors de la comparaison des schedulers, par exemple : Comment mesurent-ils la charge d’une tâche ? Également votre architecture CPU.
  2. Pourquoi tout le monde dit-il que le scheduler X est le meilleur pour un cas X, mais il ne fonctionne pas aussi bien pour moi ? Comme mentionné précédemment, cela dépend du CPU utilisé et de sa conception, qu’il s’agisse de la disposition des cœurs ou d’autres facteurs similaires.
  3. Lequel dois-je choisir ? Cela dépend de vos besoins. Pour des charges de travail mixtes (jeux, programmation, montage vidéo, navigation, etc.), scx_rusty, scx_bpfland, scx_rustland, scx_lavd peuvent convenir.
    • Stabilité des FPS : scx_bpfland, scx_lavd, en fonction du jeu.
    • Performance maximale : scx_rusty, scx_lavd.
    • Réactivité quel que soit la charge de travail : scx_rusty, scx_bpfland.
    • Autonomie de la batterie : scx_lavd ou scx_rustland.

Chaque scheduler peut être ajusté avec des options spécifiques, dans un terminal avec la commande scx_nomduscheduler --help on peut voir les différentes options et les ajouter dans l’outil sur la ligne « Set sched-ext scheduler flags ».

schedexthelp

Pour plus d’informations, vous pouvez consulter les dépôts GitHub suivants :

source

PI-Hole

Qu’est-ce que Pi-hole ?

Pi-hole est un serveur DNS récursif local qui intercepte les requêtes DNS vers des domaines tiers utilisés pour la publicité, le tracking ou les malwares. Il agit comme un sinkhole DNS : si un domaine correspond à une entrée dans une blocklist, il est redirigé vers une IP nulle (0.0.0.0) ou une page locale vide.


Network-wide ad blocking via your own Linux hardware

Cas d’usage

  • Réduction drastique de la publicité sur les navigateurs, apps, télévisions connectées, objets IoT.
  • Surcouche de protection contre les domaines malveillants.
  • Surveillance DNS fine (identification des appareils “bavards”).
  • Complément de sécurité en entreprise ou dans les foyers.

🔧 Déploiement de Pi-hole

1. Matériel requis

  • Un Raspberry Pi (modèle 3/4 ou Pi Zero 2 W suffisent).
  • Ou une VM sous Debian/Ubuntu.
  • Connexion réseau stable.
  • Un routeur configurable manuellement.

2. Installation

Sur Debian/Ubuntu (ou Raspberry Pi OS), utilisez le script d’installation officiel :

curl -sSL https://install.pi-hole.net | bash

L’assistant vous guidera pour :

  • Choisir l’interface réseau
  • Définir le DNS en amont
  • Attribuer une IP statique
  • Configurer le mot de passe d’administration

3. Configuration réseau

Option 1 : Routeur – Redirigez tous les clients LAN vers le Pi-hole comme DNS primaire.

Option 2 : Appareils manuels – Définissez l’adresse DNS de Pi-hole sur chaque client manuellement.

⚙️ Optimisation et sécurité

Blocklists personnalisées

Ajoutez des listes supplémentaires via l’interface :

Interface : Group Management → Adlists → Add a new list

Utiliser Unbound comme résolveur DNS local

sudo apt install unbound

Fichier : /etc/unbound/unbound.conf.d/pi-hole.conf

server:
    interface: 127.0.0.1
    port: 5335
    do-ip4: yes
    prefetch: yes
    hide-identity: yes
    use-caps-for-id: yes

Pi-hole → Settings → DNS → Upstream → 127.0.0.1#5335

Sécuriser l’interface

pihole -a -p

Optionnel : Reverse proxy + HTTPS (Nginx, Traefik, Caddy…)

📊 Statistiques et logs

  • http://IP_DE_PIHOLE/admin → interface Web
  • pihole -t → live DNS log en CLI

❗ Limites

  • Pubs in-app comme YouTube ne passent pas par DNS → non bloquées
  • Blocklists trop agressives = faux positifs
  • Certains clients utilisent DoH natif (contournement DNS)

Astuce : forcer le trafic DNS sortant

Créez une règle NAT sur votre routeur pour rediriger tout DNS sortant (port 53) vers l’IP de Pi-hole.

🔗 Liens utiles

🧩 Conclusion

Pi-hole est un outil extrêmement efficace pour reprendre le contrôle sur votre réseau local. Il bloque la publicité, réduit le tracking, tout en offrant une vue d’ensemble sur l’activité DNS. Une fois intégré à un VPN ou couplé à Grafana, il devient une brique essentielle d’une infrastructure auto-hébergée moderne.

Thème : Superposition par Kaira. CopyLerft 2025