Page 1 sur 6

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

Publié : ven. 10 oct. 2014, 06:21
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. :)

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

Publié : ven. 10 oct. 2014, 08:15
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 ^_^)

@+

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

Publié : ven. 10 oct. 2014, 08:27
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.

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

Publié : ven. 10 oct. 2014, 09:43
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.

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

Publié : ven. 10 oct. 2014, 10:03
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".

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

Publié : ven. 10 oct. 2014, 10:14
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 :-(

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

Publié : ven. 10 oct. 2014, 16:42
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.

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

Publié : sam. 11 oct. 2014, 15:02
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

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

Publié : sam. 11 oct. 2014, 19:21
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).

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

Publié : dim. 12 oct. 2014, 15:10
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.

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

Publié : mer. 19 nov. 2014, 20:21
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.

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

Publié : mer. 19 nov. 2014, 22:06
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!

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

Publié : jeu. 20 nov. 2014, 18:37
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... :|

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

Publié : lun. 24 nov. 2014, 13:42
par ed0c
Le bug avec ncurses a été corrigé depuis la dernière mise à jour.
Cela marche nickel !!

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

Publié : sam. 08 août 2015, 22:11
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.

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

Publié : dim. 09 août 2015, 11:30
par waitnsea
Bonjour Xorg,
Il se met à jour sans problème et fonctionne parfaitement.
Merci

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

Publié : ven. 14 août 2015, 05:25
par BlondVador
Testé au réveil, ça tourne nickel. Tout est reconnu sur ma config', bravo et merci :).

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

Publié : mer. 19 août 2015, 18:35
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 ?

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

Publié : lun. 21 sept. 2015, 19:34
par BlondVador
Salut Xorg,

Juste une petite idée, serait-il possible d'intégrer la T° des CPU (et éventuellement des GPU) ?

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

Publié : lun. 21 sept. 2015, 21:24
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. :|