Raccourci vers le contenu principal de la page

Test_processeur

Ce code est libre : GPL v3

Description : dans cette notice...

 

#!/bin/bash
# par Bruno, version 2018-06-19

#----------------------------------------------------------------------------------------
# reconnaissance par le système d'exploitation
#----------------------------------------------------------------------------------------

# longueur de bit gérée par le système actuel
if [ "$( which getconf )" != "" ]
then
    SYS_BIT="$( getconf LONG_BIT )-bit"
else
    SYS_BIT="inconnu"
fi

# reconnaissance du proc par le système actuel
SYS_PROC=$( uname -m )
if [ "$( echo ${SYS_PROC} | grep '64' )" != "" ] || [ "${SYS_PROC}" == "sparc" ]
then
    # x89_64 || amd64 || ia64 || sparc64 || EM64T || ppc64 || sparc
    SYS_PROC_BIT="64-bit"
else
    # x86 || i386 || i486 || i586 || i686 || k7 || powerpc || hppa
    SYS_PROC_BIT="32-bit"
fi

# affichage
echo ""
echo "Reconnaissance par le système actuel:"
echo "▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔"
echo " - système d'exploitation : ${SYS_BIT}"
echo " - processeur reconnu     : $SYS_PROC (${SYS_PROC_BIT})"
echo ""

#----------------------------------------------------------------------------------------
# caractéristiques matérielles
#----------------------------------------------------------------------------------------

# détection du flag 'pae' (associé à un processeur compatible PAE)
HARD_PROC_PAE=$( grep 'flags' /proc/cpuinfo |  head -1 | sed '1! d;s/^.* pae .*$/PAE/;s/^.* pae$/PAE/' )
[ "$HARD_PROC_PAE" != "PAE" ] && HARD_PROC_PAE="non-PAE"

# détection du flag 'lm' (associé à un processeur 64-bit)
HARD_PROC_BIT=$( grep 'flags' /proc/cpuinfo |  head -1 | sed '1! d;s/^.* lm .*$/64/;s/^.* lm$/64/' )
[ "$HARD_PROC_BIT" != "64" ] && HARD_PROC_BIT="32"

# détection du nombre de coeurs
HARD_PROC_NBR=$( grep 'model name' /proc/cpuinfo | wc -l )

# détails du processeur
HARD_PROC_TYPE=$( grep 'model name' /proc/cpuinfo| sort -u | head -1 | cut -c14- )

# détails de la mémoire (capacité en kB ou ko à transformer en Mo ou Go)
HARD_MEM=$( grep 'MemTotal' /proc/meminfo |  head -1 | cut -c14- | sed 's/[^0-9]*//g' )
(( HARD_MEM=$HARD_MEM/1024 ))
if [ $HARD_MEM -lt 1024 ]
then
    HARD_MEM=$( echo "$HARD_MEM Mo" )
else
    (( DECI=$HARD_MEM*10/1024 ))
    (( HARD_MEM=$HARD_MEM/1024 ))
    (( DECI=$DECI-HARD_MEM*10 ))
    HARD_MEM=$( echo "$HARD_MEM.$DECI Go" )
fi

# détails sur la vitesse du processeur (en MHz), à condition d'être en root
if [ "$( whoami )" == "root" ]
then
    for TEXTE in 'Max Speed' 'Current Speed'
    do
        HARD_SPEED_MAX="$HARD_SPEED"
        if [ "$( which dmidecode )" == "" ]
        then
            HARD_SPEED="inconnue (commande dmidecode introuvable)"
        else
            HARD_SPEED=$( dmidecode -t processor | grep "$TEXTE" | head -1 | sed 's/[^0-9]*//g' )
            if [ "$HARD_SPEED" == "" ]
            then
                HARD_SPEED="inconnue"
            else
                if [ $HARD_SPEED -lt 1000 ]
                then
                    HARD_SPEED="$HARD_SPEED MHz"
                else
                    (( DECI=$HARD_SPEED/100 ))
                    (( HARD_SPEED=$HARD_SPEED/1000 ))
                    (( DECI=$DECI-HARD_SPEED*10 ))
                    HARD_SPEED="$HARD_SPEED.$DECI GHz"
                fi
            fi
        fi
    done
    REM=""
else
    HARD_SPEED="inconnue*"
    HARD_SPEED_MAX="inconnue*"
    REM="                                      * réessayer en lançant la commande : sudo $0"
fi

# détails sur la température du processeur (ne doit pas dépasser 60 à 70°C)
if [ -f /sys/class/thermal/thermal_zone0/temp ]
then
    HARD_TEMPERATURE=$( cat /sys/class/thermal/thermal_zone0/temp )
    (( HARD_TEMPERATURE=$HARD_TEMPERATURE/1000 ))
    HARD_TEMPERATURE="${HARD_TEMPERATURE}°C"
else
    HARD_TEMPERATURE="inconnue"
fi

# affichage
echo ""
echo "Caractéristiques du matériel:"
echo "▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔"
echo " - architecture processeurs : ${HARD_PROC_BIT}-bit"
echo " - compatibilité adressage  : $HARD_PROC_PAE"
echo " - nombre de coeurs         : $HARD_PROC_NBR"
echo " - type de processeur       : $HARD_PROC_TYPE"
echo " - vitesse processeur       : $HARD_SPEED"
echo " - vitesse processeur maxi  : $HARD_SPEED_MAX"
echo " - température processeur   : $HARD_TEMPERATURE (ne doit pas dépasser 60 à 70°C)"
echo " - mémoire RAM              : $HARD_MEM"
echo ""
echo "$REM"

# attente
echo ""
echo -n "Appuyer sur <Entrée>..."
read TOUCHE