I was attempting to build and install i2c modules for use with lm_sensors, but upon attempting to modprobe i2c_core (or anything that depends on it, like i2c_dev) the insert failed with the following output in dmesg: i2c_core: Unknown symbol __i2c_board_list i2c_core: Unknown symbol __i2c_first_dynamic_bus_num i2c_core: Unknown symbol __i2c_board_lock I found a description of this problem and a solution in an OpenWrt ticket [1]; that thread suggested the following solution: 'Changing line 38 of i2c-core.c from: #include "i2c-core.h" to #include "i2c-boardinfo.c" will produce a working i2c-core.ko module. Not sure if there's a better way to do this?' This solution worked (after recompiling the module, it inserted properly) but during compilation I received warnings stating that these three symbols were being exported twice, and were originally exported from vmlinux. This seems to indicate that the problem is somewhere in the kernel, as suggested in the OpenWrt thread. Reproducible: Always Steps to Reproduce: 1. Enable i2c_core as a module using make menuconfig 2. Compile and install i2c_core, then attempt to modprobe it: it will fail to insert 3. Change line 38 of i2c-core.c as above to: #include "i2c-boardinfo.c" 4. Recompile the module: the compiler will warn that these symbols are being exported twice, but the module will correctly insert after installation. [1] http://lists.openwrt.org/pipermail/openwrt-tickets/2007-December/008385.html
Could you attach your config, please.
Created attachment 158713 [details] Kernel Config Yes, very sorry.
I suspect that this bug is caused by a Kconfig issue, but I can't seem to reproduce it here to test properly. Perhaps it is dependent on your hardware. There have been quite a few i2c-related changes recently. Could you please try the latest vanilla 2.6.25 kernel to see if the problem still occurs there? You should be able to get it by keywording vanilla-sources.
I've tested the same machine with the same kernel configuration file (run through "make menuconfig" once to remove extraneous entries) with the vanilla 2.6.25 kernel, and modprobing i2c_core works fine.
Excellent, thanks for testing.