thanks for the submission. hopefully you can figure out a way to generate the sysfs entries dynamically. The static generation is unfortunate. Perhaps Greg could help us here. Also I got mail from one person who had 70 sensors on his BMC. I'm not running 2.6 on my BMC machine but I may try to backport the write code and test it on 2.4. We've recently changed the sysfs naming convention (from temp_min1 to temp1_min, for example), so we'll need the naming reworked. mds Yani Ioannou wrote: > Hi, attached is my e-mail to the author of the bmcsensors and i2c-ipmi > driver (*Mark D. Studebaker*), I realized I probably should have CCed > the original message to the lm-sensors development team as a whole. > > Thanks :-), > Yani > > ------------------------------------------------------------------------ > > Subject: > PATCH: bmcsensors and i2c-ipmi port to 2.6 > From: > Yani Ioannou <yanii at utsc.utoronto.ca> > Date: > Mon, 15 Mar 2004 11:36:32 -0500 > To: > "M. Studebaker" <mdsxyz123 at yahoo.com> > > > Hi, > > As the kernel newbie faq puts it I've been "pissing in your pool" :-P so > I thought it best to contact you. I love the 2.6 kernel but I also loved > being able to read the sensors off my HP workstation x4000's IPMI BMC, > so I took to porting the driver to 2.6/sysfs. I seem to have been fairly > successful, although this could definitely do with some more testing on > different hardware. > > First of all I'd like to thank you immensely for writing the driver :-) > I was very pleased beyond words when I could finally use the IPMI BMC on > my motherboard to see my sensors readings, although ironically with my > motherboard I can't read 13 voltage, fan and temperatures sensors but > not the CPU temperatures! I think being one of the first IPMI 1.0 > implementations they messed up the smbus, the adm1021 driver doesn't > seem to be able to read the Xeon's temps either. > > Attached you will find a patch for kernel 2.6.4-rc2. My main problems > porting the driver were in the ability of a BMC to have any number of > sensors (or up to 50 as set in your driver). The sysfs show and store > callbacks (more specifically the device.h implementation of it) do not > appear to provide the ability to pass any information other than the > device struct (and the buffer to write into), and thus making a single > callback that can work for all sensors turns out to be impossible as far > as I can see. Unfortunately (just as with the other ported sensor > drivers) I had to create static functions for each sensor id, (i.e. > 50!). In the other sensor drivers this is usually only a maximum of 8, > so it is not as pronounced. It would make sense to me for the show and > store callbacks of device.h to include information on the file that the > specific call pertains to (just as the base sysfs implementation does). > > Note also that I implemented code to allow the setting of the thresholds > for the sensors, but on writing it I found that my BMC doesn't support > this, hence they have had no testing whatsoever, and obviously need to > be tested on the appropriate hardware. Further improvements that I > didn't get around to are creating the sysfs entries for hysteresis > thresholds, and of course the driver still only works for one BMC. > > I'd be very grateful if you could test out the patch, and if possible > test the driver more throughly on other IPMI implementations. > > Thanks, > Yani