Loading a kernel module but find no device


I have a created a running system on my Beagleboard xM, using Robert
Nelson’s image ‘ubuntu-10.10-r7-minimal-armel’.

I have connected a RTC based on the DS1307 to the I2C port, I can see
the RTC on port I2C-2 address 0x68 using the i2cdetect command. The
only device I can see is /dev/rtc0 which seems to be using the RTC-TWL
driver. I can see a kernel module called rtc-ds1307.ko which if I load
with command ‘sudo modprobe rtc-ds1307’ seems to load OK and I can see
it loaded with the lsmod command. When I check the /dev folder I don’t
see any new rtc devices and hence cannot connect to with my own
program or with hwclock.

Should when I load the kernel module I expect to see a new device in /
dev or am I missing something?


The kernel needs to know where to expect an I�C device, as it is not save to probe every possible address for any loaded device driver.

This mapping is normally done in the board file (arch/arm/mach-omap2/board-omap3beagle.c), but you can also register an I�C device from userspace with something like:

# echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-<busnum>/new-device

Check dmesg output to see if if it worked.