Si la 2G à été stoppé chez vous, et que comme moi vous vous retrouvez du jour au lendemain avec une box domotique qui ne peux plus envoyer de SMS alors un dongle 4G prend tout son sens pour votre installation domotique. Dans ce tutoriel, nous allons voir comment utiliser la clé Huawei E3372 (modèle E3372h-607) en mode HiLinksans flasher le firmware, tout en ayant accès aux ports série (/dev/ttyUSB*) indispensables pour le plugin SMS de Jeedom.
P.S Si vous souhaitez commander ce dongle, je ne saurais que trop vous conseiller d’aller le commander via mon second site :
L’astuce réside dans l’activation automatique du mode debug au démarrage grâce à un service systemd. Ainsi, on profite des ports /dev/ttyUSB* pour communiquer en commandes AT (modem).
1. 🌐 Vérifier le dongle en mode HiLink
Branchez le dongle Huawei E3372 sur votre machine (un Raspberry, un mini-PC, etc.).
Vérifiez qu’il est détecté en USB :
lsusb
Exemple de résultat (ID 12d1:1566 indiquant le mode HiLink) :
Bus 001 Device 009: ID 12d1:1566 Huawei Technologies Co., Ltd. HUAWEI_MOBILE
Regardez vos interfaces réseau :
ip addr
Vous devriez voir une nouvelle interface (ex. 192.168.8.100), prouvant que la clé est en mode HiLink.
5: enx0c5b8f279a64: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 0c:5b:8f:27:9a:64 brd ff:ff:ff:ff:ff:ff
inet 192.168.8.100/24 brd 192.168.8.255 scope global dynamic noprefixroute enx0c5b8f279a64
valid_lft 86110sec preferred_lft 75310sec
inet6 fe80::111b:c083:fe52:12e7/64 scope link
valid_lft forever preferred_lft forever
Vérifiez l’absence de ports série :
ls -l /dev/ttyUSB*
En mode HiLink, rien n’apparaîtra pour la clé Huawei (vous ne verrez pas /dev/ttyUSB0 lié à ce dongle).
2. ⚙️ Créer un service systemd pour le mode debug
2.1. Pourquoi un service ?
La clé E3372 dispose d’une API HTTP permettant de basculer la clé en mode debug (ce qui fait apparaître les ports /dev/ttyUSB*). Cependant, ce mode n’est pas persistant : à chaque redémarrage du serveur, il faut réactiver le mode debug. D’où l’idée de créer un service systemd automatisant cette activation.
2.2. Éditer le fichier de service
Créez un fichier /etc/systemd/system/huawei-debug-mode.service :
[Unit]
Description=Switch Huawei E3372 HiLink to debug mode
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
# On attend 10s pour laisser au modem le temps de monter l'interface 192.168.8.1
ExecStartPre=/bin/sleep 10
# Appel "curl" sur une seule ligne.
# On utilise des quotes simples pour le -d et on laisse
# les double-quotes à l'intérieur pour l'XML.
ExecStart=/usr/bin/curl -s -X POST \
-d '<?xml version="1.0" encoding="UTF-8"?><api version="1.0"><header><function>switchMode</function></header><body><request><switchType>1</switchType></request></body></api>' \
http://192.168.8.1/CGI
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Points importants :
ExecStartPre : on attend 10 secondes pour que l’interface réseau du dongle (192.168.8.1) soit disponible.
switchType=1 : c’est le paramètre de l’API Huawei qui active le mode debug.
Vous pouvez aussi redémarrer votre machine pour confirmer que le service se lance bien tout seul au boot.
3. 🔎 Vérifier l’apparition des interfaces /dev/ttyUSB*
Après l’activation (ou après reboot), refaites un :
ls -l /dev/ttyUSB*
Vous devriez voir plusieurs ports, par exemple :
crwxrwxrwx 1 root dialout 188, 1 21 mars 13:21 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 2 21 mars 13:16 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 3 21 mars 13:16 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 4 21 mars 13:16 /dev/ttyUSB3
crw-rw---- 1 root dialout 188, 5 21 mars 13:16 /dev/ttyUSB4
crw-rw---- 1 root dialout 188, 5 21 mars 13:16 /dev/ttyUSB5
La première interface (/dev/ttyUSB0 dans la plupart des cas) est celle qui accepte les commandes AT pour l’envoi/réception de SMS.
4. 📱 Intégration avec Jeedom (plugin SMS)
Installer le plugin SMS dans Jeedom (Market).
Dans la configuration du plugin, section Modem, sélectionnez :
Port modem : /dev/ttyUSB0 (ou celui détecté chez vous).
Baudrate : 115200 (valeur habituelle, ou laissez par défaut).
Sauvegardez et relancez le démon du plugin SMS.
Vous pouvez envoyer et recevoir des SMS depuis Jeedom. Faites un reboot de votre serveur pour vérifier que tout se passe bien : grâce à notre service systemd, le mode debug est réactivé et le plugin SMS reste opérationnel dès le démarrage.
5. 🎉 Conclusion
En suivant ces étapes, vous gardez votre Huawei E3372 en mode HiLink sans le flasher, tout en profitant des ports série pour Jeedom et le plugin SMS.
Récapitulatif :
Brancher le dongle, vérifier qu’il est détecté en mode HiLink (lsusb + ip addr).
Créer un service systemd pour activer le mode debug au démarrage (fichier huawei-debug-mode.service).
Vérifier l’apparition des /dev/ttyUSB*, dont /dev/ttyUSB0 pour les commandes AT.
Configurer le plugin SMS dans Jeedom pour utiliser ce port.
Tester un reboot : le dongle reprend le mode debug automatiquement.
Vous bénéficiez alors d’une connexion 4G fiable (notamment pour la bande des 700 MHz chez Free mais attention au choix du dongle pour les fréquences gérés) et d’un modem SMS fonctionnel pour votre domotique. Enjoy ! ✨🚀
Dans ce tutoriel, nous allons configurer une carte graphique NVIDIA sur Proxmox, la rendre disponible dans un conteneur LXC, puis l’exploiter dans Docker au sein de ce même conteneur. L’exemple final porte sur l’installation de l’application Ollama pour l’IA qui utilisera l’accélération matériel de la carte graphique, mais la procédure s’applique à d’autres usages (Serveur multimedia Plex, encodage/décodage …).
Matériel et environnements testés
Serveurs HP : ML110 G9 et Z840
Cartes graphiques : Nvidia Quadro P6000 et Nvidia RTX 2080
Mais le plus important c’est :
-D’avoir du CPU Intel -Une carte Nvidia assez récente en fonction des besoins pour pouvoir suivre ce tuto -Le mode secure boot désactivé pour pouvoir charger le driver Nvidia (Et donc activer le mode legacy boot), par exemple pour HP : https://support.hp.com/us-en/document/ish_6930187-6931079-16 -Que la carte graphique soit reconnu en faisant un lspci (dans mon cas une GeForce RTX 2080) :
root@ml110:~# lspci |grep NVIDIA
03:00.0 VGA compatible controller: NVIDIA Corporation TU104 [GeForce RTX 2080] (rev a1)
03:00.1 Audio device: NVIDIA Corporation TU104 HD Audio Controller (rev a1)
03:00.2 USB controller: NVIDIA Corporation TU104 USB 3.1 Host Controller (rev a1)
03:00.3 Serial bus controller: NVIDIA Corporation TU104 USB Type-C UCSI Controller (rev a1)
root@ml110:~#
Pour une config AMD, un autre tuto arrivera.
1. 🚀 Configuration de Proxmox
1.1. Modifier le fichier sources.list
nano /etc/apt/sources.list
Assurez-vous d’avoir les dépôts suivants (pour Proxmox 8 sur base Debian Bookworm) :
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
Note : Commentez (désactivez) le repository ceph et le repository pve-enterprise s’ils sont présents.
Dans cet exemple nous allons créer un LXC avec le template Debian précédement télécharger et les paramètres :
-Nom de machine : debian12-nvidia
-Nombre de core CPU : 4
-Taille RAM : 4096
-Taille SWAP :0
-Emplacement du stockage : local-lvm
-Carte réseau – Quel switch virtuel – Paramètres IP : vmbr0 en DHCP
-Activation de l’option Nesting pour Docker : nesting=1
-LXC en mode privilégié : –unprivileged=0
-Mot de passe root du LXC : TonMotDePasseIci
2.2. Éditer la configuration du LXC
Après création, éditez la conf (ex. ID 100) :
nano /etc/pve/lxc/100.conf
Ajoutez à la fin : les instructions suivantes (en adaptant les numéros majeures grace à la commande ls -lah /dev/nvidia* vue au point : 1.12. Vérifier la présence des périphériques NVIDIA) :
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
Puis :
apt update
apt upgrade
apt install gpg curl wget
3. 🎉 Installer NVIDIA Container Toolkit
Parfois, le paquet nvidia-container-toolkit n’est pas dans les dépôts. Pour l’installer directement depuis NVIDIA :
Tant qu’il affiche bien le nom de la carte, c’est que la configuration fonctionne !
🎉 Conclusion
Vous disposez désormais d’un système Proxmox avec une carte NVIDIA pass-through dans un conteneur LXC (privilégié, Nesting activé) et exploitable dans Docker. Cette configuration permet notamment d’exécuter des tâches d’IA comme Ollama, ou tout autre outil GPU, dans vos conteneurs.
Vous pouvez bien évidement utiliser la carte graphique simultanément sur plusieurs LXC et plusieurs Dockers
Points essentiels :
Vérifiez toujours que le pilote NVIDIA de l’hôte Proxmox est correctement installé et que nvidia-smi fonctionne.
Le conteneur LXC doit être privilégié et autoriser l’accès aux périphériques nvidia* et nvidia-caps.
Le runtimenvidia-container-runtime est indispensable pour Docker.
Adaptez les versions de driver et de paquets à vos besoins matériels et logiciels.
8. 🔎 Debugging
8.1. Dans le cas ou ça à marché mais ça ne marche plus :
Dans le cas ou ça à marché mais ça ne marche plus et que vous voyez dans les logs ollama :
time=2025-03-06T18:37:14.645Z level=INFO source=gpu.go:217 msg="looking for compatible GPUs"
time=2025-03-06T16:37:14.671Z level=WARN source=gpu.go:605 msg="unknown error initializing cuda driver library /usr/lib/x86_64-linux-gnu/libcuda.so.550.144.03: cuda driver library init failure: 999. see https://github.com/ollama/ollama/blob/main/docs/troubleshooting.md for more information"
time=2025-03-06T18:37:14.689Z level=INFO source=gpu.go:377 msg="no compatible GPUs were discovered"
time=2025-03-06T16:37:14.689Z level=INFO source=types.go:130 msg="inference compute" id=0 library=cpu variant="" compute="" driver=0.0 name="" total="125.7 GiB" available="123.0 GiB"
Vérifiez à nouveau sur proxmox les numéro majeure des interfaces :
Si vous voyez à nouveau votre GPU, ça devrait fonctionner sans problèmes !
8.2. Dans le cas le driver NVIDIA-Linux-x86_64-550.144.03.run ne veut pas s’installer :
Si vous bloquez dès l’installation de l’exécutable Nvidia, il est fort probable que vous ayez des drivers nvidia deja installé avec le gestionnaire de dépot debian (apt);
Lancez donc ces commandes pour supprimer tous les drivers Nvidia installés :
Un Week-end du Nouvel An sous le Signe de l’Innovation
Alors que le monde célébrait l’arrivée de la nouvelle année, je me suis lancé dans un projet passionnant, motivé par l’envie de repousser les limites de l’impression 3D, je me suis payé une imprimante résine. Armé de ma toute nouvelle imprimante #Elegoo Saturn 3 Ultra, un cadeau de Noël à moi-même, j’étais prêt à explorer les possibilités offertes par cette technologie fascinante.
Le Dilemme des Slicers
Au cœur de l’impression 3D se trouve le slicer, un logiciel indispensable pour préparer les modèles pour l’impression. J’ai commencé par faire l’expérience des slicers fournit comme Chitubox et Voxeldance Tango. Cependant, je me suis heurté à des limitations avec la version gratuite de Chitubox, et des problèmes de licence avec Voxeldance Tango.
Dans ma quête de solutions, je me suis tourné vers Lychee Slicer, dont j’avais beaucoup entendu parler. Malgré son prix, j’ai été conquis par ses fonctionnalités (entre autre la détection d’effet ventouse) et j’ai fini par acquérir une licence. Lychee Slicer était un plaisir à utiliser, mais il manquait une fonctionnalité cruciale pour moi : la possibilité d’envoyer directement des fichiers à mon imprimante en WiFi.
De la Frustration à la Création
La procédure pour envoyer mes fichiers était fastidieuse : préparer le modèle dans Lychee Slicer, puis le réimporter dans Chitubox uniquement pour l’envoi en WiFi, une opération qui prenait un temps considérable. Cette routine frustrante m’a rapidement poussé à chercher une solution plus pratique.
C’est alors que je suis tombé sur le projet Cassini, qui offrait la possibilité d’envoyer des fichiers à l’imprimante en ligne de commande. Si Cassini apportait une réponse à mon problème, l’absence d’une interface utilisateur graphique me laissait sur ma faim. Habitué à la convivialité d’OctoPrint pour mon imprimante à filament, je désirais quelque chose de similaire pour mon imprimante à résine.
La Naissance de Resin Print Portal
C’est ainsi qu’est né Resin Print Portal (RPP). Inspiré par Cassini, j’ai développé une interface web pour gérer mon imprimante résine, un outil qui allie la simplicité d’utilisation à l’efficacité, en voici un aperçu :
RPP est conçu pour rendre l’impression 3D à base de résine aussi pratique et agréable que possible, en permettant l’envoi de fichiers, le lancement et le suivi des impressions, le tout via une interface web conviviale.
L’Esprit d’Initiative d’un Non-Développeur
Il est important de mentionner que je ne suis pas un développeur de formation. Mon parcours dans la création de RPP est simplement celui d’un geek, motivé par le désir de surmonter un défi pratique plutôt que par une expertise en programmation. Ce projet est le fruit d’un apprentissage autodidacte, de l’exploration, la détermination et aussi un bon coup de main de ChatGPT. J’ai rassemblé des connaissances ici et là, apprenant sur le tas pour transformer mon idée en réalité.
C’est peut-être cette perspective de non-développeur qui rend RPP si intuitif et centré sur l’utilisateur. Mon objectif n’était pas de créer un outil complexe avec des fonctionnalités avancées, mais plutôt quelque chose de simple, efficace et, surtout, totalement fonctionnel. Dans le monde de la technologie, où l’on peut facilement se perdre dans les détails techniques, rappelons-nous que l’utilité et la fonctionnalité sont souvent ce qui compte le plus.
Resin Print Portal est la preuve qu’avec un peu de persévérance et beaucoup d’enthousiasme, les barrières de la complexité peuvent être franchies, même par ceux qui ne sont pas des professionnels du domaine.
Vers un Avenir Plus Lumineux en 3D
Alors que les feux d’artifice du Nouvel An illuminaient le ciel, Resin Print Portal est devenu mon feu de joie personnel. Ce projet est un exemple parfait de la manière dont une frustration peut se transformer en une opportunité de créer quelque chose de nouveau et d’utile, pas seulement pour moi, mais pour toute la communauté des passionnés d’impression 3D.
Si vous souhaitez en savoir plus sur ce projet ou y contribuer, je vous invite à visiter le projet sur GitHub.
Nous allons parler double alimentation ! Pourquoi ? Car ces petites bêtes sont si fiable que je les utilises pour des usages spécifiques au niveau professionnel comme par exemple des boucle de secours vidéo pour chaines TV, connexion à distance au port console de certains équipements spécifiques, communication par gpio avec d’autres équipements (par exemple une grille vidéo qui remonte une absence vidéo sur le gpio et le raspberry allume un gyrophare)… Et quand dans sa baie on a tous nos équipements qui sont double alimentés, le raspberry ne peut faire exception. Après quelques recherches sur le net, un collègue (Merci Gilles) me dégotte cette solution :
https://www.tindie.com/products/8086net/dual-supply-for-raspberry-pi/
Ce qui nous donne une fois monté : Cette carte dispose de diode à l’entrée de l’alimentation ce qui permet de protéger vos alimentation (Important car les raspberry eux ne sont pas protégés), de plus aucun port du GPIO n’est utilisé ! Il y a également une diode qui s’allume en présence de tension sur l’entrée :
Ici la diode à gauche est allumé car présence de tension en entrée.
Mais si vous connectez deux alimentations, sur quel alimentation le raspberry va s’alimenter ? Ce sera celle qui à la tension la plus élevée qui sera choisis comme alimentation principal, mais une fois que le raspberry va s’allumer, il va tirer du courant et donc la tension va surement chuter, à un instant t les deux tensions seront égales, alors la carte tirera sur les deux alimentations simultanément. Si l’une des deux alimentation se coupe, la tension va tomber en entrée, la seconde alimentation sera donc celle avec le plus fort voltage, elle sera donc la seule utilisé ! Simple et efficace ! La carte est donné pour 3 ampères mais recommandé de travailler sur 2 ce qui est amplement suffisant pour la plupart des usages. Maintenant coté intégration, vous pouvez oublier les boitiers officiels, je suis donc allé sur mon site de STL préféré et j’ai pris ce boitier comme modèle : https://www.thingiverse.com/thing:2875319
Voici ce que ça donne une fois modifié : Je ne suis pas très bon coté design mais ça a le mérite d’etre fonctionnel !
Vous pouvez récupérer les STL à imprimer sur Thingiverse :