Ce code est libre : GPL v3
Description : dans cette notice...
# 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