lm_sensors mit linux-kernel-2.4

Der folgende Text soll zeigen, wie man mit möglichst wenig Aufwand das lm_sensors-Paket auf einem Linux-System mit kernel-2.4 installieren kann.
Die vorgestellte lm_sensors-Konfiguration bezieht sich auf ein ASUS-A7V des "ängstlichen" Autors.

Einige Angaben beziehen sich auf ein Debian-System, was Benutzer anderer Distributionen nicht weiter stören sollte, da es hoffentlich offentsichlich ist, was dort zu sein sollten.

Voraussetzungen

Vorbereitungen

Alle Arbeiten an den Sourcen werden unterhalb von /usr/src durchgeführt. Im ersten Schritt soll der neue Kernel ohne die i2c- und lm_sensors-Erweiterungen zum laufen gebracht werden.

  1. Kernel auspacken (wir erhalten ein linux-Unterverzeichnis):
    tar xvfj linux-2.4.6.tar.bz2
  2. i2c und lm_sensors auspacken (wir erhalten ein i2c_2.6.0- und ein lm_sensors_2.6.0-Unterverzeichnis):
    tar xvfz i2c-2.6.0.tar.gz
    tar xvfz lm_sensors-2.6.0.tar.gz
  3. Besitz der neuen Dateien übernehmen:
    for x in *; do chown -R root.src $x; done
  4. Kernel konfigurieren:
    cd linux && make xconfig || make menuconfig
    Wichtig ist es hier die Modul-Unterstützung zu aktivieren (CONFIG_MODULES=y) und am besten noch (CONFIG_KMOD=y).
  5. Kernel übersetzen (hier Debian-konform):
    make-kpkg clean
    fakeroot make-kpkg --revision blackwolf.20010605a kernel_image
  6. Kernel installieren und Testen (hier wieder Debian):
    su
    dpkg -i /usr/src/kernel_image-2.4.6_blackwolf.20010605a_i386.deb
    reboot

i2c Installieren

Ausgehend von der nun einwandfrei funktionierenden Basiskonfiguration, kann nun das i2c-Paket installiert werden.

  1. Patch gegen den aktuellen Kernel-Source erzeugen:
    cd /usr/src/i2c-2.6.0
    mkpatch/mkpatch.pl . /usr/src/linux | patch -p1 -E -d /usr/src/linux/
  2. Kernel rekonfigurieren:
    cd /usr/src/linux
    make xconfig || make menuconfig Wichtig ist hier in Sektion Character Devices/I2C Support
  3. Kernel erneut übersetzen:
    make-kpkg clean
    fakeroot make-kpkg --revision blackwolf.20010605b kernel_image
  4. Kernel installieren und Testen:
    su
    mv /lib/modules/2.4.6 /lib/modules/2.4.6.old
    dpkg -i /usr/src/kernel_image-2.4.6_blackwolf.20010605b_i386.deb
    reboot

lm_sensors Installieren und Konfigurieren

Ausgehend von der zugegebenen etwas mühsamen Vorarbeit, kann nun das lm_sensors Paket installiert und konfiguriert werden.

Im Gegensatz zur I2C-Installation (wo wir ein Kernel patch verwendeten), besteht das lm_sensors-Paket aus Kernel-Modulen (hardware-spezifisch) und einigen user-space Programmen. Die Kernel-Module installieren wir direkt in das Kernel-Modul-Verzeichnis (/lib/modules/2.4.6) und die user-space Programme (Bibliotheken ...) kommen nach /usr/local.

Als erstes muß das lm_sensors Makefile angepaßt werden:

Die Einzige Änderung die vorgenommen werden muß betrifft das I2C-Paket. Da wir unseren Kernel "ge-patched" haben, soll lm_sensors die I2C-Header aus der Kernel-source beziehen:

I2C_HEADERS=$(LINUX_HEADERS)

Kompilieren und installieren:

Da wohl die Meisten den Kernel-Module-loader verwenden wollen, sollte das folgende in /etc/modules.conf oder /etc/conf.modules eingetragen werden (Debianer tragen das in /etc/modutils/aliases ein):

alias char-major-89 i2c-dev

Besitzer eines A7V können nun die folgenden Module laden:

modprobe w83781d
modprobe i2c-viapro

Debianer, die während des Boot-Vorgangs schon die Module für das A7V laden möchten können das folgende in ihre /etc/modules eintragen:

    # I2C adapter drivers
    i2c-viapro
    #i2c-isa
    # I2C chip drivers
    w83781d
    #via686a # anderes Modul fuer A7V ueber ISA-BUS (siehe 3 Zeilen hoeher)!
	

Abschliessend sollte das lm_sensors-Paket noch mit Hilfe der Konfigurationsdatei /usr/local/etc/sensors.conf angepaß werden. Hier der relevante Auszug für das A7V. (Die Konfiguration ist noch nicht optimal, stellt aber eine erste Annäherung dar):

    chip "as99127f-*"

    label in0 "VCore 1"
    label in1 "VCore 2"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"
    label in5 "-12V"
    label in6 "-5V"

    ignore in1   # mysterious
    ignore fan1  # don't have a sensored power-supply
    ignore fan3  # don't have a sensored chasis

    compute fan2 (1.72)*@, @/(1.72)
    set fan2_min 4500

    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
    compute in5 -(240/60.4)*@ ,  -@/(240/60.4)
    compute in6 -(90.9/60.4)*@ ,  -@/(90.9/60.4)

    compute temp2 (@*30/43)+25, (@-25)*43/30

    set in0_min vid*0.95
    set in0_max vid*1.05
    set in1_min vid*0.95
    set in1_max vid*1.05
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12 * 0.90
    set in4_max 12 * 1.10
    set in5_min -12 * 0.90
    set in5_max -12 * 1.10
    set in6_min -5 * 0.95
    set in6_max -5 * 1.05
	

Die über die Konfigurationsdatei vorgenommen Anpassungen können dem lm_sensors-Paket über das Kommando:

sensors -c /usr/local/etc/sensors.conf -s

bekannt gemacht werden.

Sofern alles bishier korrekt funktioniert hat und dieses Dokument keine Fehler aufweißt, sollte mitte dem Kommando:

sensors

eine ähnliche Ausgabe angezeigt werden:

    as99127f-i2c-0-2d
    Adapter: SMBus vt82c596 adapter at e800
    Algorithm: Non-I2C SMBus adapter
    VCore 1:   +1.74 V  (min =  +1.66 V, max =  +1.82 V)              
    +3.3V:     +3.45 V  (min =  +3.13 V, max =  +3.45 V)       ALARM  
    +5V:       +4.91 V  (min =  +4.72 V, max =  +5.24 V)              
    +12V:     +11.97 V  (min = +10.79 V, max = +13.19 V)              
    -12V:     -11.92 V  (min = -10.73 V, max = -13.19 V)              
    -5V:       -5.03 V  (min =  -4.74 V, max =  -5.24 V)              
    fan2:     5198 RPM  (min = 4500 RPM, div = 2)              ALARM  
    temp1:    +37.0C   (limit = +60C, hysteresis = +50C)        
    temp2:    +44.0C   (limit = +67C, hysteresis = +60C)        
    temp3:    +112.0C   (limit = +60C, hysteresis = +50C)        
    vid:      +1.75 V
    alarms:   Chassis intrusion detection                             
    beep_enable:
         Sound alarm enabled
	

Wie man an der Ausgabe erkennen kann, ist die Konfiguration noch nicht perfekt, da die Spannung 3.3V noch etwas übertrieben erscheint und der CPU-Lüfter bei 5198 RPM keineswegs einen ALARM auslösen sollte.

Andere Hardware

Nutzern andere Hardware sei das Programm sensors-detect, sowie die hervorragende Dokumentation des lm_sensors-Paket im doc Unterverzeichnis an Herz gelegt.

Valid HTML 4.01!


bwolf
Last modified: Thu Oct 4 21:58:01 CEST 2001