- Le pingouin qu’il vous faut.
- Quelques informations matérielles
- Gestion vitesse et température du processeur.
- Longhaul, cpufreq gestion de la vitesse du processeur.
- Cpufreqd - A speedstep applet clone : Le démon
- Le monitoring: température et ventillos (noyau 2.6)
- Fichier de configuration utilisé Linux 2.6.11
- Fichier de configuration utilisé Linux 2.6.11-rc5
- Accés informations diverses: /proc et /sys
- Le monitoring: température et ventillos (ancienne version)
- Historique
Portable Powernet Via C3 Nehemiah 1Ghz.
__Description__:
- Constructeur vraisemblable: Elite
- Model: G320
Le pingouin qu’il vous faut.
Premier test: GNU/Linux Debian/Knoppix
Parmis les nombreuses qualités dont dispose Knoppix, celle de permettre de tester un portable avant même de l’avoir payé est formidable. A defaut d’avoir un “Designed for Tux” d’accolé sur la bête, Knoppix vous aidera à vérifier si l’assemblage est homogène.
Les messages d’initialisations sont clairs Via partout: vidéo, chipset pci, usb, son… Seul le “modem” s’avère être un Smart Link ;)
Quelques informations matérielles
Sortie de la commande lspci :
0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8623 [Apollo CLE266]
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
0000:00:10.0 USB Controller: VIA Technologies, Inc.VT82xxxxx UHCI USB 1.1 Controller (rev 80)
0000:00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 80)
0000:00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82)
0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge
0000:00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
0000:00:11.6 Communication controller: VIA Technologies, Inc. Intel 537 [AC97 Modem] (rev 80)
0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)
0000:01:00.0 VGA compatible controller: VIA Technologies, Inc. VT8623 [Apollo CLE266] integrated CastleRock graphics (rev 03)
Sortie de la commande cat /proc/cpuinfo
processor : 0
vendor_id : CentaurHauls
cpu family : 6
model : 9
model name : VIA Nehemiah
stepping : 8
cpu MHz : 1000.394
cache size : 64 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr cx8 mtrr pge cmov pat mmx fxsr sse xstore
bogomips : 1992.29
Gestion vitesse et température du processeur.
Longhaul, cpufreq gestion de la vitesse du processeur.
Le via Nehemiah (ici version 1Ghz) est conçu à l’origine pour économiser l’énergie en permettant la réduction de sa vitesse de fonctionnement.
Le module en question (noyau 2.6 de préférence) est nommé longhaul.
Section Power Management Option de la configuration du noyau
CPU Frequency Scaling
Via Cyrix III Longhaul
Il se décline en plusieurs “versions” (paramètres plutôt):
Performance ou userspace
Le premier laisse la fréquence maximale, le second permet de l’ajuster.
- Charger le module longhaul (ou le module CPU Frequency Scaling correspondant à votre architecture)
Pour avoir la liste des frequences disponibles:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
532000 598000 731000 798000 931000 665000 864000 997000
Passer à la fréquence minimale (532Mhz)
echo 532000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Cpufreqd - A speedstep applet clone : Le démon
Grâce au module longhaul, votre petit pingouin est capable de faire faire la sieste au C3 Nehemiah lorsque celui-ci est peu sollicité.
options disponibles dans le répertoire: /sys/devices/system/cpu/cpu0/cpufreq
- cpuinfo_cur_freq
- cpuinfo_max_freq
- cpuinfo_min_freq
- scaling_governor
- scaling_driver
- scaling_available_governors
- scaling_available_frequencies
- scaling_cur_freq
- scaling_max_freq
- scaling_min_freq
- scaling_setspeed (si le governor est userspace)
Le démon cpufreqd se charge du reste, son fichier de configuration est /etc/cpufreqd.conf .
Ce dernier requiert une section [General], une ou plusieurs sections [Profile] et [Rule].
Exemple de configuration de cpufreqd
Avec le governor userspace du C3 la gestion de la fréquence maxi et mini (scaling_max_freq et scaling_min_freq) ne semble pas fluctuante (NdE à vérifier).
Ainsi pour ajuster la fréquence désirée, les paramètres minfreq et maxfreq sont identiques dans les profiles.
Le paramètre policy ne semble pas utilise mais nécessaire à cpufred avec le governor userspace.
# Frequence disponibles # 532000 598000 665000 731000 798000 864000 931000 997000 [Profile] name=a_donf minfreq=997000 maxfreq=997000 policy=ondemand [Profile] name=moyen minfreq=731000 maxfreq=731000 policy=ondemand [Profile] name=dodo minfreq=532000 maxfreq=532000 policy=powersave [Rule] name=0_40_dodo cpu_interval=0-40 ac=on # (on/off) profile=dodo [Rule] name=40_60_moyen cpu_interval=40-60 ac=on # (on/off) profile=moyen [Rule] name=60_100_a_donf cpu_interval=60-100 ac=on # (on/off) profile=a_donf
Le monitoring: température et ventillos (noyau 2.6)
Désormais la gestion des puces i2c et des capteurs (senseurs ou sensors) est intégré au noyau 2.6
Concernant le g320 en question, celui-ci se différencie des cartes mères de type Epia et intègre une puce de type it87:
Les modules nécessaires à la lecture des capteurs de température, de rotation et de gestion des ventilateurs sont: i2c_core, i2c_isa, it87, i2c_sensor
Le noyau utilisé dans l’exemple est un noyau 2.6.11-rc5, les tests avec le 2.6.9 n’étant pas concluant dans la gestion de la vitesse du ventillo.
L’accés au contrôle des ventillos se fait via le système de fichier sys:
sur le portable le ventillo (unique) semble connecté sur le pwm2
La valeur par défaut est 255:
cat /sys/bus/i2c/devices/0-0290/driver/0-0290/pwm2
retourne 255 ce qui correspond à la vitesse maximale.
Pour réduire cette dernière, il suffit donc de changer cette valeur, 0 pour éteindre ou une valeur plus importante, exemple:
echo 50 > /sys/bus/i2c/devices/0-0290/driver/0-0290/pwm2
Hourra ! vos oreilles respirent enfin !!!
Script de gestion de la vitesse de rotation en fonction de la température.
Premier script Perl, il ne redonne pas encore la main pour fonctionner en démon mais bon CA MARCHE ! :p
Nécessite que les modules i2c_core, i2c_isa, it87, i2c_sensor soient chargés.
[Install/MoniteurTempVentill]
Pas mieux que d’ajouter it87 et i2c_isa dans /etc/modules
#!/usr/bin/perl -w # Fichier de gestion de la vitesse de ventillo $vitesse_ventil= "/sys/bus/i2c/devices/0-0290/driver/0-0290/pwm2"; while (1) { # Lecture de la température stockée dans $temp $temp = `cat /sys/bus/i2c/devices/0-0290/temp2_input`; if($temp < 43000) { exec (`echo 0 > $vitesse_ventil`); } if($temp > 45000 and $temp < 47000) { exec (`echo 10 > $vitesse_ventil`); } if($temp > 47000 and $temp < 55000) { exec (`echo 15 > $vitesse_ventil`); } if($temp > 55000 and $temp < 60000) { exec (`echo 25 > $vitesse_ventil`); } if($temp > 60000 and $temp < 61000) { exec (`echo 50 > $vitesse_ventil`); sleep 1; } if($temp > 61000 and $temp < 65000) { exec (`echo 150 > $vitesse_ventil`); } if($temp > 65000) { exec (`echo 200 > $vitesse_ventil`); sleep 5; # Ca commence à chauffer if($temp > 75000) { # la commande print permet de ressortir un message # permettant le debogage print "superieur:".$temp."\n"; # On passe les ventillos à fond exec (`echo 250 > $vitesse_ventil`); # On devrait pouvoir faire chuter la fréquence exec (`echo 532000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed & echo 532000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq & echo 532000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq`); # On informe le journal systeme que nous avons depassé 75°C exec (`echo "ATTENTION Temperature depasse 75°: $temp" >> /var/log/syslog`); } } # pause entre chaque lecture sleep 1; }
Le script est nommé tempmoniteur, placé dans /usr/sbin (seul root peut executer le script), rendu executable (chmod +s /usr/sbin/tempmoniteur).
Il peut être lancé en démon (service) en créant un script dans le répertoire /etc/init.d d’aprés l’exemple /etc/init.d/skeleton.
Voici un brouillon de celui que j’utilise (nommé : ventiltemp)
#! /bin/sh # Author: Votre nom ici set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/tempmoniteur NAME=ventiltemp DESC="gestion vitesse rotation selon temperature" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 case "$1" in start) echo -n "Starting $DESC: $NAME" start-stop-daemon --start --quiet --pidfile $PIDFILE \ --exec $DAEMON > /dev/null & echo "." ;; stop) echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --quiet --pidfile $PIDFILE \ --exec $DAEMON echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop}" >&2 exit 1 ;; esac exit 0
Fichier de configuration utilisé Linux 2.6.11
Fichier de configuration utilisé Linux 2.6.11-rc5
Fichier de configuration du noyau 2.6.11-rc5
Accés informations diverses: /proc et /sys
ACPI
Informations batterie sur un portable
cat /proc/acpi/battery/BAT0/info
Savoir si nous sommes raccordés au secteur
cat /proc/acpi/ac_adapter/ADP0/state
Changer la fréquence
Nb: voir le fichier /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies pour connaître les valeurs possibles
echo 798000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
Le monitoring: température et ventillos (ancienne version)
Je ne me souviens plus exactement quel version du noyau j’avais utilisé pour ce descriptif… :(
i2c et lm_sensors version 2.8.8
sensors -v
sensors version 2.8.7 with libsensors version 2.8.7
modules chargés:
modprobe i2c-isa
modprobe it87
A partir d’ici on peut tester: sensors Ici cela donne (pour l’instant):
it87-isa-0290
Adapter: ISA adapter
VCore 1: +0.00 V (min = +4.08 V, max = +4.08 V) ALARM
VCore 2: +0.00 V (min = +4.08 V, max = +4.08 V) ALARM
+3.3V: +0.00 V (min = +8.16 V, max = +8.16 V) ALARM
+5V: +0.00 V (min = +6.85 V, max = +6.85 V) ALARM
+12V: +0.00 V (min = +16.32 V, max = +16.32 V) ALARM
−12V: −27.36 V (min = +3.93 V, max = +3.93 V) ALARM
−5V: −13.64 V (min = +4.03 V, max = +4.03 V) ALARM
Stdby: +0.00 V (min = +6.85 V, max = +6.85 V) ALARM
VBat: +0.00 V
fan1: 0 RPM (min = 0 RPM, div = 2)
fan2: 0 RPM (min = 0 RPM, div = 2)
fan3: 0 RPM (min = 0 RPM, div = 2)
M/B Temp: +36°C (low = −1°C, high = −1°C) sensor = thermistor
CPU Temp: +37°C (low = +127°C, high = +85°C) sensor = diode
Temp3: +0°C (low = −1°C, high = −1°C) sensor = disabled
éteindre le ventillo: /!\ca chauffe vite/!\
echo 0 > /proc/sys/dev/sensors/it87-isa-0290/fan_ctl
et le rallumer:
echo 114 > /proc/sys/dev/sensors/it87-isa-0290/fan_ctl
Alertes vocales avec Gkrellm et festival
Après avoir sélectionner vos senseurs dans Gkrellm vous pouvez configurez des alertes. En utilisant festival, l’alerte peut meme être une voix vous annonçant la température: ex:
sh -c “echo warning C P U is at $s degrees | artsdsp festival —tts”
Nb: pilotes Oss et serveur Arts d’où le artsdsp
Historique
- Achat et découverte avec Knoppix en live-cd
- Utilisation de Qtparted pour réduire la partition contenant l’option indésirable et obligatoire à sa plus petite taille possible.
- Création d’une partition et installation de Knoppix (tests en mode knoppix)
- Suppression de la partition indésirable et installation de Knoppix en mode debian.
- Premiers essais basés sur les Howto(s) des cartes Epia: pas les même i2c, les capteurs sont gérés par it87. Découverte de la possibilité d’eteindre le ventilateur.
- Changement de noyau pour utiliser le changement de fréquence du C3, module longhaul (gestion du ventillateur non disponible).
- Divers essais de noyau (découverte documentation suspend to disk)
- Sauvegarde des fichiers de configuration des deux installations, repartitionement en :
- hda1: 500 Mo swap
- hda2: 1,4G / (racine)
- hda3: 4,4G /usr
- hda4: 13G /home
- Total: ~20Go
Page mise à jour le 10 novembre 2006 à 09h17.