Hmm. Well! I have no reasonable explanation for this: But it seems these commands worked now: [root:/sys/devices/pci0000:00/0000:00:1f.4/i2c-2] # echo ee1004 0x50 > /sys/bus/i2c/devices/i2c-2/new_device [root:/sys/devices/pci0000:00/0000:00:1f.4/i2c-2] # echo ee1004 0x52 > /sys/bus/i2c/devices/i2c-2/new_device [root:/sys/devices/pci0000:00/0000:00:1f.4/i2c-2] # # dmesg -w [ 6856.828823] ee1004 2-0050: Currently selected page: 1 [ 6856.828825] ee1004 2-0050: 512 byte EE1004-compliant SPD EEPROM, read-only [ 6856.828835] i2c i2c-2: new_device: Instantiated device ee1004 at 0x50 [ 6870.013347] ee1004 2-0052: Currently selected page: 1 [ 6870.013349] ee1004 2-0052: 512 byte EE1004-compliant SPD EEPROM, read-only [ 6870.013364] i2c i2c-2: new_device: Instantiated device ee1004 at 0x52 However still getting the same next error message: [id:/sys/bus/i2c/devices/i2c-2] $ sudo decode-dimms No EEPROM found, try loading the eeprom or at24 module Perhaps my perl script 'decode-dimms' is not the newest / fully up to date? My official ubuntu version is: [id:/sys/bus/i2c/devices/i2c-2] $ apt search i2c-tools Sorting... Done Full Text Search... Done i2c-tools/cosmic,now 4.0-2build1 amd64 [installed] heterogeneous set of I2C tools for Linux Tried finding and downloading a newer version of the script, git it from here: https://kernel.googlesource.com/pub/scm/utils/i2c-tools/i2c-tools/+/refs/heads/master/eeprom/decode-dimms Unfortunately there is a different error message now: [root:~] # ./decode-dimms.new Cannot read /sys/bus/i2c/drivers/ee1004/2-0050/eeprom at ./decode-dimms.new line 2028. Not sure what I am supposed to do next Kind Regards On Thu, Apr 11, 2019 at 7:16 PM Jean Delvare <jdelvare@xxxxxxx> wrote: > > On Thu, 11 Apr 2019 17:47:37 +0100, Dreamcat4 wrote: > > Thank you, > > I have just upgraded my kernel to 5.0.7 (ubuntu source). I believe > > that i may have followed your instruction (best i can!). However > > unfortunately there was some kind of a problem. Not sure why. > > > > # modprobe ee1004 > > > > However it is not seem to work as expected. Because there is no new > > i2c device appearing, only the other 2 entries for my nvidia gpu. > > > > [root:/sys/bus/i2c/devices] # ls > > i2c-0 i2c-1 > > > > So then there is no new folder created at the location: > > > > /sys/bus/i2c/devices/i2c-2 > > > > and therefore cannot write strings like 0x50 to 'new_device' > > > > What i can still do is: > > > > # sudo modprobe i2c-i801 > > > > to create the missing i2c-2 device there. But you told me that was > > wrong, not to load that module. > > Loading i2c-i801 is good and needed. Actually it loads automatically on > all distributions except Debian and derivatives. That's why I did not > mention it in my instructions. But you must do it first. > > > And anyhow the next command does not work: > > > > [root:/sys/bus/i2c/devices/i2c-2] 1 # echo ee1004 0x50 > > > /sys/bus/i2c/devices/i2c-2/new_device > > bash: echo: write error: Invalid argument > > Please check the last lines of the kernel log buffer ("dmesg | tail") > for the actual error code. > > One possibility is that you already have an I2C device bound to the > address (0x50). If so, the address should show up as busy (UU) in the > output of i2cdetect: > > # modprobe i2c-dev > # i2cdetect 2 > > You may find the culprit in: /sys/bus/i2c/devices/2-0050 > > Check the "driver" link there and try unloading that module, then run > the echo command again. > > However I must say I'm surprised, because I don't know of any other > driver than "eeprom" that would automatically bind to address 0x50 on > the SMBus, but that module should not be loaded by default. > > > root:/sys/bus/i2c/devices/i2c-2] # cat new_device > > cat: new_device: Permission denied > > That's OK, this pseudo-file is write-only. > > -- > Jean Delvare > SUSE L3 Support