Voici la suite.
Si l’on interroge le log du noyau par un dmesg, voici ce que l’on peut lire :
$ dmesg | grep -i ACPI
[13211.401036] ACPI: I/O resource 0000:00:1f.3 [0xe800-0xe81f] conflicts with ACPI region SMB0 [0xe800-0xe80f]
[13211.401049] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
Cela signifie que certains ports sont réservés par le Bios ACPI et empêche le pilote i2c-i801 de les utiliser. Merci à J.Delvare pour m’avoir pointé du doigt ce problème et pour les explications qui ont suivis. La lecture des tables DSDT montre qu’en fait cette réservation est faite pour contrôler un capteur de température par le Bios ACPI via le SMBus.
La solution proposée ci-dessous a été testée avec succès sur deux machines Asus : le L3C et l’eeepc 1001PX.
J’attire votre attention sur le fait qu’il ne s’agit pas d’une solution définitive, que la méthode employée est utilisée ponctuellement pour UNE session durant laquelle vous allez pouvoir accéder aux infos. En effet la réservation des ports du SMbus par le Bios ACPI est probablement liée à l’utilisation d’une sonde de température (vérifié sur mon L3) ou au contrôle d’un ventilateur et il serait donc potentiellement dangereux pour la stabilité de votre système de rendre cette modification permanente en modifiant votre fichier grub.cfg par ex.
C’est pourquoi nous allons nous contenter de passer l’option ‘acpi_enforce_resources=lax’ au noyau lors du démarrage Il suffira d’appuyer sur une touche après le logo Asus puis de taper ‘e’ (comme edit) pour ajouter l’option au noyau puis Ctrl+X pour lancer le démarrage. En procédant de cette façon, le système “oubliera” cette option au démarrage suivant et c’est préférable. De toute façon on ne change pas ses barrettes RAM tous les quatre matins, et les infos SPD peuvent être aisément copiées dans un fichier texte au besoin.
Résultat des opérations :
[code]# sensors-detect
sensors-detect revision 5818 (2010-01-18 17:22:07 +0100)
Board: ASUSTeK Computer INC. P4_L3C
This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you’re doing.
Some south bridges, CPUs or memory controllers contain embedded sensors.
…/…
Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no): y
Using driver `i2c-i801’ for device 0000:00:1f.3: Intel 82801CA/CAM ICH3
Module i2c-dev loaded successfully.
Next adapter: SMBus I801 adapter at e800 (i2c-0)
Do you want to scan it? (YES/no/selectively): y
Client found at address 0x4c
Handled by driver lm90' (already loaded), chip type
max6657’
Client found at address 0x50
Probing for Analog Devices ADM1033'... No Probing for
Analog Devices ADM1034’… No
Probing for SPD EEPROM'... Yes (confidence 8, not a hardware monitoring chip) Probing for
EDID EEPROM’… No
Client found at address 0x51
Probing for Analog Devices ADM1033'... No Probing for
Analog Devices ADM1034’… No
Probing for `SPD EEPROM’… Yes
(confidence 8, not a hardware monitoring chip)
Next adapter: (i2c-1)
Do you want to scan it? (YES/no/selectively): n
Now follows a summary of the probes I have just done.
Just press ENTER to continue:
Driver `lm90’:
- Bus
SMBus I801 adapter at e800' Busdriver
i2c_i801’, I2C address 0x4c
Chip `max6657’ (confidence: 6)
To load everything that is needed, add this to /etc/modules:
#----cut here----
Chip drivers
lm90
#----cut here----
If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones!
Do you want to add these lines automatically to /etc/modules? (yes/NO)y
Successful!
Monitoring programs won’t work until the needed modules are
loaded. You may want to run ‘/etc/init.d/module-init-tools start’
to load them.
Unloading i2c-dev… OK[/code]
Il y a du nouveau. Le SMBus est maintenant accessible ! ( Next adapter: SMBus I801 adapter at e800 (i2c-0) )
#Chargement des modules#
# modprobe -a i2c-dev eeprom
#détection des canaux i2c et SMBus#
[code]# i2cdetect -l
i2c-0 smbus SMBus I801 adapter at e800 SMBus adapter
i2c-1 i2c I2C adapter[/code]
Cool. Le SMBus est correctement détecté ! 
[code]
i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: 30 31 – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- UU – -- –
50: 50 51 – -- – -- – -- – -- – -- – -- – --
60: – -- – -- – -- – -- – 69 – -- – -- – --
70: – -- – -- – -- – --[/code]
#Accès aux infos SPD#
[code]
decode-dimms
decode-dimms version 5733 (2009-06-09 13:13:41 +0200)
Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others
Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050
Guessing DIMM is in bank 1
—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x18)
of bytes written to SDRAM EEPROM 128
Total number of bytes in EEPROM 256
Fundamental Memory type DDR SDRAM
SPD Revision 1.0
—=== Memory Characteristics ===—
Maximum module speed 266MHz (PC2100)
Size 512 MB
Voltage Interface Level SSTL 2.5V
tCL-tRCD-tRP-tRAS 2.5-3-3-6
Supported CAS Latencies 2.5T, 2T
Supported CS Latencies 0
Supported WE Latencies 1
Minimum Cycle Time 7.5 ns at CAS 2.5
10 ns at CAS 2
Maximum Access Time 0.75 ns at CAS 2.5
0.75 ns at CAS 2
Module Height 1.125" to 1.25"
—=== Manufacturing Information ===—
Manufacturer Micron Technology
Manufacturing Location Code 0x01
Part Number 16VDDF6464HG-265G2
Revision Code 0x0200
Manufacturing Date 2004-W34
Assembly Serial Number 0x9901AB16
Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0051
Guessing DIMM is in bank 2
—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x18)
of bytes written to SDRAM EEPROM 128
Total number of bytes in EEPROM 256
Fundamental Memory type DDR SDRAM
SPD Revision 1.0
—=== Memory Characteristics ===—
Maximum module speed 266MHz (PC2100)
Size 512 MB
Voltage Interface Level SSTL 2.5V
tCL-tRCD-tRP-tRAS 2.5-3-3-6
Supported CAS Latencies 2.5T, 2T
Supported CS Latencies 0
Supported WE Latencies 1
Minimum Cycle Time 7.5 ns at CAS 2.5
10 ns at CAS 2
Maximum Access Time 0.75 ns at CAS 2.5
0.75 ns at CAS 2
Module Height 1.125" to 1.25"
—=== Manufacturing Information ===—
Manufacturer Micron Technology
Manufacturing Location Code 0x01
Part Number 16VDDF6464HG-265G2
Revision Code 0x0200
Manufacturing Date 2004-W34
Assembly Serial Number 0x98017FC4
Number of SDRAM DIMMs detected and decoded: 2[/code]
Notez qu’il peut être intéressant d’afficher les caracteristiques des barrettes côte à côte. Il suffit pour cela d’utiliser l’option --side-by-side
# decode-dimms --side-by-side
Enjoy ! 