Linking Problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Gearoid:

* Gearoid Murphy <gearoid.murphy at ul.ie> [2005-06-09 19:54:36 +0100]:
> Hi all,
>    This should be trivial for everyone here. I'm trying to write a user 
> space program i2c device driver. I access the device using /dev but when 
> I try to use functions included in the i2c-core my compiler tells me its 

The functions in i2c-core are for the use of in-kernel drivers (including
kernel modules).  Userspace cannot use them directly.

> getting an undefined reference. I know this is because I'm not including 
> the proper libraries. How do i get around this?. I've tried explicitly 
> including the i2c-core.ko in the gcc compile command but this spews out 
> errors about other undefined references.

Err... no way that could be expected to work.  You can't just link an
object or fragment of the kernel with a user program.

>    All I want to do is successfully communicate to an SRF08 sonar using 
> the i2c parallel port adapter for the ELV adapter (built using the 
> schema in the i2c docs). I'm using debian 2.6+ and am completely at my 
> wits end.

Get the lm_sensors2 package.  Install just the userspace part of it.
That will give you, among other things, /usr/local/include/linux/i2c-dev.h.
Use that in your user program (#include <linux/i2c-dev.h>).  All the
code in that header is inline, so you won't need to link anything else.
The functions are similar to those in i2c-core.

OR, if you're familiar with Python, I wrote a set of Python bindings
for I2C/SMBus access.  You can find them here:

http://members.dca.net/mhoffman/sensors/python/20050122/

Copy those two files somewhere, then 'python ./setup.py --help-commands'.
(I really should include a readme.txt)

Feel free to ask more questions; good luck with your project.

Regards,

-- 
Mark M. Hoffman
mhoffman at lightlink.com





[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux