[CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Autres projets et contributions
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

[CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Xorg »

Bonjour les Archers,

J'ai toujours trouvé le logiciel CPU-Z intéressant, mais je n'ai jamais trouvé une alternative aussi complète que lui sous GNU/Linux. C'est ainsi que m'est venue l'idée de développer CPU-X : en m’inspirant de ce premier, j'en ai fait une version Unix-like. CPU-X n'est pas aussi complet que CPU-Z à quelques champs près, mais il reste convenable à mes attentes. :chinois:

Pour la partie technique, il est écrit en C et utilise la bibliothèque GTK3+. J'ai recours à Libcpuid (licence BSD-2) ainsi qu'à Dmidecode (licence GPLv2), mais le logiciel en lui-même est sous GPLv3. Les Makefiles commençant à devenir un peu complexe à écrire à la main pour ce projet, j'ai recours à CMake pour le compiler.

L'interface reste certainement à revoir, dotant plus que le GTK3+ n'est pas aussi cross-platform que le GTK2+. Je ne peux pas dire si le code est compatible POSIX du fait que ni OS X ni *BSD ont une version facilement installable de GTK3+, mais ça reste bien évidemment compatible GNU/Linux (cela étant, je ne sais pas si ça passe bien avec une vieille version de GTK3). Donc peut-être que le Qt serait plus intéressant, mais rien est fait. :)

Bref, une galerie est disponible ici, pour jeter un œil : https://github.com/X0rg/CPU-X/wiki/Screenshots
Pour les intéressés, la page du projet est là : https://github.com/X0rg/CPU-X#cpu-x
Une version "portable" existe aussi, les binaires se trouvent ici.

Merci pour ceux qui m'ont lus. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Moviuro »

Plop,

Ça a l'air cool, effectivement :) Par contre, personnellement, je n'utilise pas de GUI pour ce qui est matériel et/ou administration. Le top du top, ça serait la même chose, en console :) (ncurses ? que sais-je...) (et aussi, j'ai pas GTK3 sur mes machines ^_^)

@+
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par oktoberfest »

Que voilà une bonne initiative ! Je viens de l'installer illico sur mon petit serveur maison j'ai déjà une remarque : Pourquoi avoir mis des espaces dans le nom des exécutables ?

Sinon de mon côté CPU-X ne remonte aucune information côté carte mère et il manque quelques informations pour le CPU... Mais je viens de me rendre compte que ça marche mieux si on lance l'appli en root.
J'ai un petit doute sur certaines informations remontées (notamment un multiplicateur x80 pour mon CPU !!) mais sinon je dis :bravo: .
Je teste ça ce week-end sur mes différents PCs et je remonte les anomalies.
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par benjarobin »

Félicitation, très ressemblant. Promis dès que j'ai quelques minutes tu risques d'avoir quelques pull request :-)
J'ai "quelques" idées d'amélioration, mais comme les bases ont été posées cela aide beaucoup.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
karhu
Maître du Kyudo
Messages : 1194
Inscription : lun. 27 sept. 2010, 14:32
Localisation : Ile de France

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par karhu »

Au vue des photos d'écran j'étais très intéressé et en plus il y avait même un binaire de disponible.
Je resterai donc toujours le vilain petit canard car, au lancement en console en temps (root) un flash puis :

Code : Tout sélectionner

xsu cpu-x
Mot de passe : 
CPU-X (error in file /home/yohan/D?veloppement/CPU-X/src/cpu-x.c at line 168) : failed to open file '/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_mXX_freq'.
Erreur de segmentation (core dump)
xsu () { su -c "$*" } (emprunté à @Calimero)
Deuxième essai :

Code : Tout sélectionner

gksu cpu-x &
[1] 18529
iohan > Gkr-Message: secret service operation failed: The name org.freedesktop.secrets was not provided by any .service files
Gkr-Message: secret service operation failed: The name org.freedesktop.secrets was not provided by any .service files
Gkr-Message: secret service operation failed: The name org.freedesktop.secrets was not provided by any .service files
CPU-X (error in file /home/yohan/D?veloppement/CPU-X/src/cpu-x.c at line 168) : failed to open file '/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_mXX_freq'.
Une remarque /home/yohan n'existe pas, il faudrait lire /home/iohan (troisième ligne du deuxième exemple) ! Ce programme analyse t il les prénoms aussi ? :)
Dois je plutôt me le compiler moi-même et avoir honte de ma fainéantise ?

EDITION c'est le binaire 1.1.0 qui donne ce résultat, avec la version 1.0.0 c'est tout bon, juste un problème, certainement interne, toujours avec "secret service operation failed".
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par benjarobin »

Bon après une analyse plus approfondie, je suis désolé, ne te vexe pas, mais il faudrait intégralement revoir le code...
Je ne vais pas lister ici les problèmes ce serait trop long :-(
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Xorg »

He bien, je ne m'attendais pas à autant de réponses. Merci vraiment à vous. :)
Moviuro a écrit :Ça a l'air cool, effectivement :) Par contre, personnellement, je n'utilise pas de GUI pour ce qui est matériel et/ou administration. Le top du top, ça serait la même chose, en console :) (ncurses ? que sais-je...) (et aussi, j'ai pas GTK3 sur mes machines ^_^)
Effectivement oui, j'avais envisagé d'afficher "simplement" le logiciel en console. Donc je vais y réfléchir.
oktoberfest a écrit :Sinon de mon côté CPU-X ne remonte aucune information côté carte mère et il manque quelques informations pour le CPU... Mais je viens de me rendre compte que ça marche mieux si on lance l'appli en root.
En effet, Dmidecode nécéssite les droits roots pour fonctionner. C'est un bémol, je l'avoue.
oktoberfest a écrit :J'ai un petit doute sur certaines informations remontées (notamment un multiplicateur x80 pour mon CPU !!) mais sinon je dis :bravo:
Certes oui, le calcul du multiplicateur n'est correct qu'avec les bus récents de 100MHz (désolé, j'avais pris mon PC en référence). Une petite division et le problème sera vite réglé, je vais y travailler. :)

@karhu : Erf non ce n'est pas normal, ça lit rien dans le /home. :shock:
Je vais regarder ça de plus près...
benjarobin a écrit :Bon après une analyse plus approfondie, je suis désolé, ne te vexe pas, mais il faudrait intégralement revoir le code...
Je ne vais pas lister ici les problèmes ce serait trop long :-(
Je ne l'ai pas précisé, mais en effet, c'est mon premier vrai programme en GUI, et je ne suis pas ce qu'on peut qualifier d'un expert en C. Donc je ne me vexe pas du tout, j'imagine que le code est loin d'être parfait, comme un "pro" l'aurait fait. :mrgreen:
Mais bon, il faut bien un début ; c'est vrai que pour certaines choses, je ne savais pas trop comment je devais m'y prendre, et le choix que j'ai fait n'est sans doute pas toujours le mieux (d'autant plus que j'ai eu un peu de mal à comprendre certaines choses dans GTK/Glib).


En tout cas je suis content d'avoir autant de retours, ça permet de cerner rapidement les "gros" bugs, ceux non visibles sur ma machine. :wink:

EDIT (18h30) : @oktoberfest : Le calcul des multiplicateurs minimum et maximum a été corrigé (affiche 0 si le calcul n'est pas possible, par exemple quand le fichier n'existe pas).
@karhu : C'est la même fonction qui empêchait le programme de s'ouvrir si ces fichiers ne pouvaient pas être ouverts (erreur de segmentation), c'est aussi corrigé.
Les espaces dans les noms des binaires portables ont été remplacés par des underscores (merci pour le remarque, c'est vrai que j'avais hésité lorsque j'ai nommé ces fichiers).
Les corrections des bugs n'ont pas encore été intégrées dans une nouvelle version (donc pas encore de binaires disponibles) : pour ceux qui veulent tester, il faut compiler depuis le Git, ou bien attendre que je publie une nouvelle version. :)
À votre service.
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
karhu
Maître du Kyudo
Messages : 1194
Inscription : lun. 27 sept. 2010, 14:32
Localisation : Ile de France

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par karhu »

Xorg a écrit : @karhu : C'est la même fonction qui empêchait le programme de s'ouvrir si ces fichiers ne pouvaient pas être ouverts (erreur de segmentation), c'est aussi corrigé.
Bien, mais peux tu expliquer le changement d'initiale à mon prénom y au lieu de i ? :D
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Xorg »

Me revoilà. La proposition de Moviuro me semblant plaisante, j'ai jeté un œil à NCurses. Vu que ça avait l'air d'être simple à prendre en main, je me suis dit "pourquoi pas".
Donc NCurses est dorénavant supporté sur le Git, et du coup il y a la possibilité de désactiver le support du GTK en passant l'option -DWITH_GTK=0 à CMake. On peut laisser les deux activés, mais pour utiliser NCurses il faudra mettre l'argument --no-gui pour CPU-X.

Je mettrai tout ça au propre un peu plus tard (nouvelle version imminente, je mettrai les binaires avec bien entendu). :)

Voici un aperçu pris depuis mon terminal :
Image
Les onglets se disponibles (flèches directionnelles).
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Xorg »

Je poste de nouveau pour signaler que les binaires de la version 1.2.0 sont enfin disponibles, ici.
J'ai mis une archive compilée sans GTK, mais l'autre supporte bien GTK et NCurses.

Voilà, bon week-end.
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Xorg »

Bonsoir.

Je passe pour vous informer qu'une nouvelle version majeure (la 2.0.0) a vu le jour.
Pour la faire courte, réécriture de la GUI en GTK (cependant il y a des GtkWarnings du fait que ma version de Glade n'est pas conforme avec GTK 3.14, c'est un détail), ajout de nouveaux champs (à savoir, un nouvel onglet qui donne des informations matérielles sur la RAM, et un autre qui donne des informations relatives au système), et d'autres choses.

J'ai pas mal repensé à la réaction de Benjarobin, du coup j'ai essayé de faire un effort sur la lisibilité du code (enfin, j'espère que plus compréhensible maintenant... :oops: ), à savoir que j'utilise dorénavant un seul tableau pour stocker les données, contrairement à trois auparavant. :mrgreen:

Les binaires restent toujours disponible, et le paquet cpu-x est présent sur AUR s'il y a des intéressés. :)

Bonne soirée.
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
ed0c
Chu Ko Nu
Messages : 329
Inscription : mer. 24 mars 2010, 10:02

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par ed0c »

Salut!
Je viens de tester, et c'est très fonctionnel, pour ce qui est de la version GTK !
Pour la version ncurse, j'ai le droit à de gros artefact visuels sur le terminal lorsque j'utilise la molette de ma souris... Je ne sais pas pourquoi, mais je voulais tout de même te soulever le problème.
Beau projet en tout cas!
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Xorg »

Merci pour le retour. :)

En effet oui pour l'interface NCurses, le même problème apparaît quand on reste appuyé sur la touche directionnelle de gauche. J'avais remarqué le problème, mais je n'avais pas cherché de solution à ça.
En fait, il s'avère que NCurses essaye de traiter toutes les entrées, et peu importe ce qui était fait, je rafraîchissais quand même certaines données (en gros, autant de rafraîchissement que d'entrées par seconde). Du coup il suffisait juste de rafraîchir uniquement quand c'est nécessaire, c'est d'ailleurs corrigé sur le Git.
L'erreur de segmentation quand on reste appuyé sur la touche de droite (l'onglet À Propos) est aussi corrigée.

Il y avait quelqu'un sur AUR qui avait un stack smashing detected, mais il ne m'a jamais donné de nouvelles. Je sais qu'il reste des bugs non-fixés... :|
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
ed0c
Chu Ko Nu
Messages : 329
Inscription : mer. 24 mars 2010, 10:02

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par ed0c »

Le bug avec ncurses a été corrigé depuis la dernière mise à jour.
Cela marche nickel !!
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Xorg »

Bonsoir.

Cela fait déjà quelques temps que le projet connaît des hauts et des bas, il a pu se passer un long moment sans que je développe davantage ce soft. Mais c'est du passé, je m'y suis remis ces derniers jours, et voilà que la version 2.1.0 est là (la version 2.0.3 a été téléchargée plus de 800 fois d'après les statistiques !).
Ce que verra l'utilisateur final, c'est l'ajout d'informations sur le chipset présent sur la carte-mère (du northbridge uniquement si le matériel date un peu), ainsi que d'un onglet consacré entièrement aux cartes-graphique installées sur la machine. Pour la partie GTK, on peut changer la couleur du pied de page, chose inutile mais après tout il y a bien des thèmes dans CPU-Z. :)

Pour le reste, j'ai un peu amélioré le support pour les autres OS et la version portable du logiciel, je distribue un binaire 32 bits pour FreeBSD maintenant.
Je voulais faire de même pour la version OS X, mais pour une raison qui m'échappe je n'arrive pas à linker avec les bibliothèques statiques (ça me dit qu'elles n'existent pas alors que si).
Un petit truc sympa apparu dans la v2.0.2 est la possibilité d'utiliser dmidecode via CPU-X (cpu-x -D), Dmidecode étant installé sur peu de système, ça en fait une sorte de version portable.

Ça se passe ici pour la nouvelle version, ou encore via le paquet cpu-x.
S'il y a des questions, des trucs à rapporter ou bien des idées d'amélioration, je suis tout ouïs. :chinois:

Bonne soirée.
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
waitnsea
Maître du Kyudo
Messages : 2114
Inscription : jeu. 15 mars 2012, 05:08

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par waitnsea »

Bonjour Xorg,
Il se met à jour sans problème et fonctionne parfaitement.
Merci
BlondVador
Chu Ko Nu
Messages : 302
Inscription : ven. 29 janv. 2010, 21:41

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par BlondVador »

Testé au réveil, ça tourne nickel. Tout est reconnu sur ma config', bravo et merci :).
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Xorg »

La reconnaissance du matériel n'est pas directement faite par CPU-X, ce sont des bibliothèques (libcpuid, dmidecode) qui s'en chargent. :)

Je ne m'étais jamais fait la remarque que les traductions n'étaient pas incluses dans la version portable du logiciel, et c'est sans doute dommage. J'ai peut-être trouvé une astuce pour y parvenir, qui consiste à convertir le .mo en .h avec xxd -i fichier.mo fichier.h, puis à l'exécution j'ai juste à réécrire ce fichier avec fwrite() dans un répertoire temporaire, il faut que je désigne ce répertoire à bindtextdomain() et le tour est joué.

J'aimerai savoir s'il y a une autre méthode (et plus propre que des fichiers temporaires) pour inclure les traductions dans l'exécutable ?
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
BlondVador
Chu Ko Nu
Messages : 302
Inscription : ven. 29 janv. 2010, 21:41

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par BlondVador »

Salut Xorg,

Juste une petite idée, serait-il possible d'intégrer la T° des CPU (et éventuellement des GPU) ?
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [CPU-X] Une outil similaire à CPU-Z, pour GNU/Linux

Message par Xorg »

C'est marrant que tu poses la question, ça fait déjà quelques temps que je me demande comment je pourrais afficher le Vcore. Je voyais bien lm_sensors, mais vraiment, à cause de plusieurs raisons, cette solution n'est pas envisageable (lire la tension et la température, c'est du même ordre).

Maintenant que tu le dis, je sais qu'il y a le support de la température dans libcpuid, mais après un test non concluant, j'ai vu ceci (hen, c'est pas codé :non: ).
Par contre, i7z sait lire les températures et tensions, et vu que son code source est sous GPL2, il y a moyen d'intégrer le code manquant dans libcpuid. Ça me paraît intéressant de le faire, je pense m'en occuper.
Le seul bémol, c'est qu'i7z est pour les CPUs Intel seulement, donc il faudra chercher les spécifications d'AMD pour que ça fonctionne sur CPU AMD.

Par contre, pour la partie GPU, j'en ai strictement aucune idée. Le fait qu'il existe des pilotes libres et proprios compliquent la tâche, chaque pilote ayant son implémentation. :|
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Répondre