Corey, I have someone trying to build a 2.4.27 kernel with OpenIPMI driver + SMBus patches + lm_sensors patch (v2.10) for i2c_i801. It seems to work fine if they are all defined as modules, but they want compile these modules in to the kernel, and when they do that, i2c loads after ipmi. The drivers/char/Config.in has the $CONFIG_I2C dependency, so it looks like this ought to work. Details attached. I've always worked with kernels where lm_sensors/i2c was already integrated.
Is this something you have seen before? Any hints? Andy
So I updated the config changing all =m by =y in the IPMI and I2C sections. Here are 2 extracts from my config: # # I2C support # CONFIG_I2C=y CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_PHILIPSPAR is not set # CONFIG_I2C_ELV is not set # CONFIG_I2C_VELLEMAN is not set # CONFIG_I2C_PPORT is not set # CONFIG_SCx200_I2C is not set CONFIG_SCx200_ACB=y CONFIG_I2C_ALGOPCF=y # CONFIG_I2C_ELEKTOR is not set # CONFIG_I2C_PCFEPP is not set CONFIG_I2C_MAINBOARD=y # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI15X3 is not set # CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_HYDRA is not set # CONFIG_I2C_AMD756 is not set # CONFIG_I2C_AMD8111 is not set CONFIG_I2C_I801=y # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS645 is not set # CONFIG_I2C_SAVAGE4 is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set # CONFIG_I2C_VOODOO3 is not set # CONFIG_I2C_ISA is not set # CONFIG_I2C_CHARDEV is not set # CONFIG_I2C_PROC is not set CONFIG_IPMI_HANDLER=y # CONFIG_IPMI_PANIC_EVENT is not set # CONFIG_IPMI_PANIC_STRING is not set CONFIG_IPMI_DEVICE_INTERFACE=y # CONFIG_IPMI_SI is not set # CONFIG_IPMI_KCS is not set CONFIG_IPMI_SMB=y CONFIG_IPMI_WATCHDOG=y # CONFIG_IPMI_POWEROFF is not set Unfortunately, the lm_sensor patch somehow has changed the init order of i2c-core (it used to get started before ipmi). I have these messages in this order in the log: ... ipmi_smb_setup smb_dbg_probe=1 0x0.0x42:1 (this a printk of the outcome of ipmi_smb_setup that I added) ... Software Watchdog Timer: 0.05, timer margin: 60 sec ipmi message handler version 37 ipmi device interface version 37 IPMI SMB Interface driver version 37 IPMI watchdog driver version 37 RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize loop: loaded (max 8 devices) imq driver loaded. Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx hda: SILICONSYSTEMS INC 128MB, ATA DISK drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hda: attached ide-disk driver. hda: 254208 sectors (130 MB) w/0KiB Cache, CHS=993/8/32 Partition check: hda: hda1 hda2 hda3 hda4 i2c-core.o: i2c core module version 2.10.0 (20060214) i2c-i801 version 2.10.0 (20060214) ... And the device 42 is not detected anymore. The only thing that I can see is the fact that i2c-core and i2c-i801 are inited after the ipmi objects, which seems wrong... I dont know inside kernel how the init order is decided
