warning: doing this from memory since someone just walked off with my test system, but i'll try to get all the details in: in order to read a 4-byte manufacturer string from the EEPROM, i used "eeprog", which worked delightfully (displaying for Lenovo): # eeprog /dev/i2c-0 0x50 -16 -f -r 0x0060:4 LNVO so reading from the EEPROM using "eeprog" seems to work just fine. but when i tried to write a string there: # echo -n "rday" | eeprog /dev/i2c-0 0x50 -16 -f -w 0x0060 i got a "i2c_write_3b" error (that's all i can remember of it), and when i checked memory, only the first character ("r") had been written at address 0x0060, the rest of the characters were unchanged. as a test, i used "eeprog" to write the remaining characters one at a time (at addresses 0x0061, 0x0062 and 0x0063), and that appeared to work just fine. am i doing something obviously silly? from the man page, it seems i should be able to pass a string for writing. rday