Um aber mit der SW weiterzukommen, habe aus einem Beispiel-Code aus dem Netz ein Stück zusammengeschnitten, mit dem ich auf meinem Desktop-PC vermutlich das EEPROM meines Monitors auslesen kann. Wegen der Übersichtlichkeit sind die Adressen hardcoded und ein wirkliches Schreiben habe ich nicht probiert, um den Rechner nicht zu gefärden.

Code:
#include <linux/i2c-dev.h>
#include <stdio.h>
#include <fcntl.h>

#define NUMBYTES 20

int main() {

	int file;
	char filename[] = "/dev/i2c-0";
	char buffer[20];
	int i;
  
	file = open(filename, O_RDWR);
	if (file < 0) {
		perror("i2c-test open: ");
	    return -1;
	}
/* You can do plain I2C transactions by using read(2) and write(2) calls.
 * You do not need to pass the address byte; instead, set it through
 * ioctl I2C_SLAVE before you try to access the device.
 */
	if (ioctl(file, I2C_SLAVE, 0x50) < 0) {
		perror("i2c-test set slave address: ");
		return -1;
	}
	buffer[0] = 0;	// set read pointer in I2C slave
	if(write(file, buffer, 1) != 1) {
		perror("i2c-test write: ");
		return -1;
	}
        if (read(file, buffer, NUMBYTES) != NUMBYTES) {
		perror("i2c-test read: ");
		return -1;
	} else {
		for(i = 0; i < NUMBYTES; i++) {
			printf("%02x ", (unsigned char)buffer[i]);
		}
		printf("\nok\n");
	}
	return 0;
}
Vielleicht hilfts

MfG Klebwax