Skip to contentSkip to conversation

trying to add python-smbus-cffi, but installing fails

Buildroot New ir. Tjeerd Pinkert 4 participants 8 messages Mar 13, 2015 – Apr 5, 2015

lore
Share & tools
lore
#0 lore raw

Hi,

I was trying to install the python smbus-cffi as a package (currently in my BR2_EXTERNAL directory) but installation fails.

It looks like the package is trying to load itself to register, but of course it fails because I think the host python loads this, and can not load the _cffi_backend.so compiled for the target?

Anyone an idea how to get solve this chicken egg problem?

This is the part where the install script fails:
Installed /local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/pycparser-2.10-py2.7.egg Traceback (most recent call last):
File "setup.py", line 7, in <module>
import smbus
File
"/local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/smbus/__init__.py", line 1, in <module>
from .smbus import ffi
File
"/local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/smbus/smbus.py", line 40, in <module>

     ffi = FFI()

File
"/opt/freescale/buildroot/output/target/usr/lib/python2.7/site-packages/cffi/api.py", line 56, in __init__
import _cffi_backend as backend
ImportError:
/opt/freescale/buildroot/output/target/usr/lib/python2.7/site-packages/_cffi_backend.so:
wrong ELF class: ELFCLASS32
make: *** [/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/.stamp_built] Error 1

I include here the Buildroot scripts for installation, which should make it easy to test for others. (I think the PYTHON_SMBUS_CFFI_INSTALL_TARGET_OPTS = install is not needed, but it also fails without this)

Best regards,

Tjeerd Pinkert
-------------- next part --------------
config BR2_PACKAGE_PYTHON_SMBUS_CFFI
bool "python-smbus-cffi"
depends on BR2_PACKAGE_PYTHON_CFFI
help
This Python module allows SMBus access through the I2C /dev interface on Linux hosts. The host kernel must have I2C support, I2C device interface support, and a bus adapter driver.

This module is a cffi-based python reimplementation of the python-smbus C-extension (http://www.lm-sensors.org/browser
/i2c-tools/trunk/py-smbus/) and works on PyPy and CPython (2.6 and up).

https://pypi.python.org/pypi/smbus-cffi/
-------------- next part --------------
################################################################################
#

# python-smbus-cffi
#
################################################################################

PYTHON_SMBUS_CFFI_VERSION = 0.4.1
PYTHON_SMBUS_CFFI_SOURCE = smbus-cffi-$(PYTHON_SMBUS_CFFI_VERSION).tar.gz PYTHON_SMBUS_CFFI_SITE = https://pypi.python.org/packages/source/s/smbus-cffi
PYTHON_SMBUS_CFFI_SETUP_TYPE = setuptools PYTHON_SMBUS_CFFI_INSTALL_TARGET_OPTS = install PYTHON_SMBUS_CFFI_DEPENDENCIES = host-pkgconf libffi python-cffi PYTHON_SMBUS_CFFI_LICENSE = GPLv2
PYTHON_SMBUS_CFFI_LICENSE_FILES = LICENSE

$(eval $(python-package))

#1 lore raw
Quoted 36 lines · ir. Tjeerd Pinkert

Hi,

I was trying to install the python smbus-cffi as a package (currently in my BR2_EXTERNAL directory) but installation fails.

It looks like the package is trying to load itself to register, but of course it fails because I think the host python loads this, and can not load the _cffi_backend.so compiled for the target?

Anyone an idea how to get solve this chicken egg problem?

This is the part where the install script fails:
Installed /local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/pycparser-2.10-py2.7.egg Traceback (most recent call last):
File "setup.py", line 7, in <module>
import smbus
File
"/local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/smbus/__init__.py", line 1, in <module>
from .smbus import ffi
File
"/local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/smbus/smbus.py", line 40, in <module>

    ffi = FFI()

File
"/opt/freescale/buildroot/output/target/usr/lib/python2.7/site-packages/cffi/api.py", line 56, in __init__
import _cffi_backend as backend
ImportError:
/opt/freescale/buildroot/output/target/usr/lib/python2.7/site-packages/_cffi_backend.so:
wrong ELF class: ELFCLASS32
make: *** [/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/.stamp_built] Error 1

Quoted 3 lines

I include here the Buildroot scripts for installation, which should make it easy to test for others. (I think the PYTHON_SMBUS_CFFI_INSTALL_TARGET_OPTS = install is not needed, but it also fails without this)

Looks like the problem with python-cryptography:
https://github.com/pyca/cryptography/issues/1325 See the last post.

#2 lore raw
Quoted 37 lines · Yegor Yefremov
Quoted 36 lines · ir. Tjeerd Pinkert

Hi,

I was trying to install the python smbus-cffi as a package (currently in my BR2_EXTERNAL directory) but installation fails.

It looks like the package is trying to load itself to register, but of course it fails because I think the host python loads this, and can not load the _cffi_backend.so compiled for the target?

Anyone an idea how to get solve this chicken egg problem?

This is the part where the install script fails:
Installed /local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/pycparser-2.10-py2.7.egg Traceback (most recent call last):
File "setup.py", line 7, in <module>
import smbus
File
"/local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/smbus/__init__.py", line 1, in <module>
from .smbus import ffi
File
"/local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/smbus/smbus.py", line 40, in <module>

    ffi = FFI()

File
"/opt/freescale/buildroot/output/target/usr/lib/python2.7/site-packages/cffi/api.py", line 56, in __init__
import _cffi_backend as backend
ImportError:
/opt/freescale/buildroot/output/target/usr/lib/python2.7/site-packages/_cffi_backend.so:
wrong ELF class: ELFCLASS32
make: *** [/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/.stamp_built] Error 1

Quoted 6 lines
Quoted 3 lines

I include here the Buildroot scripts for installation, which should make it easy to test for others. (I think the PYTHON_SMBUS_CFFI_INSTALL_TARGET_OPTS = install is not needed, but it also fails without this)

Looks like the problem with python-cryptography:
https://github.com/pyca/cryptography/issues/1325 See the last post.

In this thread someone mentions a dirty workaround via installing cffi on host: https://github.com/pyca/bcrypt/issues/34

Will try it, if I have enough time.

#3 lore raw

Since I'm quite new to Buildroot, I am trying to understand how to do things and how this thing works by reading the manual and source code.

I have been trying further on the python-smbus-cffi today, but python-cffi seems to be fundamentally broken according to the internet. Since my host machine does not yet have the python-cffi package (Debian Stable), I could not pursue that path further.

Next I tried to get the py-smbus from the i2c-tools package compiled. Unfortunately unsuccessful. To compile the py-smbus package one normally adds the EXTRA=py-smbus to the make command. I did that by adding an option to the configuration menu and then trying to compile via a modified makefile, but that goes wrong.

I figured I needed a python-package makefile. Simply adding one to the package directory then seems to be logical, but somehow does not work because

1. I need to call 'make' from the subdirectory py-smbus.
2. I get a funny error, probably I don't understand the make system good enough yet.

I get the following compilation error, I attached the scripts to this email, but, what would be the correct approach for this type of (sub)package compilation? Help is highly appreciated.

error:
package/i2c-tools/i2c-tools-python.mk:17: *** "I2C_TOOLS_SETUP_TYPE must be set". Stop.

Best regards,

Tjeerd Pinkert

Quoted 43 lines · Yegor Yefremov
Quoted 41 lines · Yegor Yefremov
Quoted 39 lines · ir. Tjeerd Pinkert

Hi,

I was trying to install the python smbus-cffi as a package (currently in my BR2_EXTERNAL directory) but installation fails.

It looks like the package is trying to load itself to register, but of course it fails because I think the host python loads this, and can not load the _cffi_backend.so compiled for the target?

Anyone an idea how to get solve this chicken egg problem?

This is the part where the install script fails:
Installed /local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/pycparser-2.10-py2.7.egg Traceback (most recent call last):
File "setup.py", line 7, in <module>
import smbus
File
"/local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/smbus/__init__.py", line 1, in <module>
from .smbus import ffi
File
"/local/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/smbus/smbus.py", line 40, in <module>

     ffi = FFI()

File
"/opt/freescale/buildroot/output/target/usr/lib/python2.7/site-packages/cffi/api.py", line 56, in __init__
import _cffi_backend as backend
ImportError:
/opt/freescale/buildroot/output/target/usr/lib/python2.7/site-packages/_cffi_backend.so:
wrong ELF class: ELFCLASS32
make: *** [/opt/freescale/buildroot/output/build/python-smbus-cffi-0.4.1/.stamp_built] Error 1

I include here the Buildroot scripts for installation, which should make it easy to test for others. (I think the PYTHON_SMBUS_CFFI_INSTALL_TARGET_OPTS = install is not needed, but it also fails without this)

Quoted 8 lines
Quoted 2 lines

Looks like the problem with python-cryptography:
https://github.com/pyca/cryptography/issues/1325 See the last post.

In this thread someone mentions a dirty workaround via installing cffi on host: https://github.com/pyca/bcrypt/issues/34

Will try it, if I have enough time.

-------------- next part -------------- config BR2_PACKAGE_I2C_TOOLS
bool "i2c-tools"
help
Heterogeneous set of I2C tools for Linux

This package contains a heterogeneous set of I2C tools for Linux:
a bus probing tool, a chip dumper, register-level access helpers, EEPROM decoding scripts, and more.

http://www.lm-sensors.org/wiki/I2CTools

if BR2_PACKAGE_I2C_TOOLS
config BR2_PACKAGE_I2C_TOOLS_PYTHON
bool "Python bindings for the i2c-tools, py-smbus" select BR2_PACKAGE_PYTHON
help
Python bindings for the i2c-tools package. This is the python-smbus extention.
endif
-------------- next part --------------
################################################################################
#

# i2c-tools
#
################################################################################

I2C_TOOLS_VERSION = 3.1.1
I2C_TOOLS_SOURCE = i2c-tools-$(I2C_TOOLS_VERSION).tar.bz2 I2C_TOOLS_SITE = http://dl.lm-sensors.org/i2c-tools/releases
I2C_TOOLS_LICENSE = GPLv2+, GPLv2 (py-smbus) I2C_TOOLS_LICENSE_FILES = COPYING

I2C_TOOLS_EXTRA =
#ifeq ($(BR2_PACKAGE_I2C_TOOLS_PYTHON),y)
#I2C_TOOLS_EXTRA = py-smbus
#I2C_TOOLS_DEPENDENCIES += python
#endif

define I2C_TOOLS_BUILD_CMDS

	$(MAKE) EXTRA=$(I2C_TOOLS_EXTRA) $(TARGET_CONFIGURE_OPTS) -C $(@D)

endef

define I2C_TOOLS_INSTALL_TARGET_CMDS

	for i in i2cdump i2cget i2cset i2cdetect; \
	do \
		$(INSTALL) -m 755 -D $(@D)/tools/$$i $(TARGET_DIR)/usr/bin/$$i; \
	done

endef

$(eval $(generic-package))
-------------- next part --------------
################################################################################
#

# py-smbus (i2c-tools python bindings)
#
################################################################################

ifeq ($(BR2_PACKAGE_I2C_TOOLS_PYTHON),y)

PYTHON_I2C_TOOLS_VERSION = 3.1.1
PYTHON_I2C_TOOLS_SOURCE = i2c-tools-$(PYTHON_I2C_TOOLS_VERSION).tar.bz2 PYTHON_I2C_TOOLS_SITE = http://downloads.sourceforge.net/project/pyalsaaudio
PYTHON_I2C_TOOLS_SETUP_TYPE = distutils
PYTHON_I2C_TOOLS_LICENSE = GPLv2
PYTHON_I2C_TOOLS_LICENSE_FILES = COPYING PYTHON_I2C_TOOLS_DEPENDENCIES = i2c-tools

$(eval $(python-package))

endif

#4 lore raw

PATCH 1/1 Added package python-smbus

Hi all,

I managed to add a package python-smbus that installs the i2c-tools py-smbus extension so that i2c can be used under python.

Most probably it is better to integrate this somehow into the i2c-tools scripts but this is the first onset of getting it working. Hints on how to best integrate, if regarded necessary, are welcome.

Best regards,

Tjeerd Pinkert

buildroot$ git diff 6bf057b0f2ba188397a691f74877a4a30aaea3f9 --

package/Config.in +1 -0
index 262a7fb..7ef7149 100644
@@ -525,6 +525,7 @@ menu "external python modules"
         source "package/python-flup/Config.in"
         source "package/python-gobject/Config.in"
         source "package/python-httplib2/Config.in"
+       source "package/python-smbus/Config.in"
         source "package/python-id3/Config.in"
         source "package/python-ipaddr/Config.in"
         source "package/python-ipy/Config.in"
package/python-smbus/Config.in new file +9 -0
new file mode 100644
index 0000000..d53b0af
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_PYTHON_SMBUS
+       bool "python-smbus"
+       depends on BR2_PACKAGE_I2C_TOOLS
+       help
+         Python bindings to smbus from the i2c-tools package
+
+         http://www.lm-sensors.org/wiki/I2CTools
+
+         pyhton-smbus needs i2c-tools
(quoted diff) +0 -0

b/package/python-smbus/python-smbus.mk
new file mode 100644
index 0000000..1673e6a

package/python-smbus/python-smbus.mk new file +18 -0
@@ -0,0 +1,18 @@
+################################################################################
+#
+# python-smbus (i2c-tools python bindings)
+#
+################################################################################
+
+PYTHON_SMBUS_VERSION = 3.1.1
+PYTHON_SMBUS_SOURCE = i2c-tools-$(PYTHON_SMBUS_VERSION).tar.bz2
+PYTHON_SMBUS_SITE = http://dl.lm-sensors.org/i2c-tools/releases
+PYTHON_SMBUS_SETUP_TYPE = distutils
+PYTHON_SMBUS_LICENSE = GPLv2
+PYTHON_SMBUS_LICENSE_FILES = COPYING
+PYTHON_SMBUS_DEPENDENCIES = i2c-tools
+PYTHON_SMBUS_SUBDIR=py-smbus
+
+TARGET_CFLAGS += -I../include
+
+$(eval $(python-package))
Quoted 34 lines · ir. Tjeerd Pinkert

Since I'm quite new to Buildroot, I am trying to understand how to do things and how this thing works by reading the manual and source code.

I have been trying further on the python-smbus-cffi today, but python-cffi seems to be fundamentally broken according to the internet. Since my host machine does not yet have the python-cffi package (Debian Stable), I could not pursue that path further.

Next I tried to get the py-smbus from the i2c-tools package compiled. Unfortunately unsuccessful. To compile the py-smbus package one normally adds the EXTRA=py-smbus to the make command. I did that by adding an option to the configuration menu and then trying to compile via a modified makefile, but that goes wrong.

I figured I needed a python-package makefile. Simply adding one to the package directory then seems to be logical, but somehow does not work because

1. I need to call 'make' from the subdirectory py-smbus.
2. I get a funny error, probably I don't understand the make system good enough yet.

I get the following compilation error, I attached the scripts to this email, but, what would be the correct approach for this type of (sub)package compilation? Help is highly appreciated.

error:
package/i2c-tools/i2c-tools-python.mk:17: *** "I2C_TOOLS_SETUP_TYPE must be set". Stop.

Best regards,

Tjeerd Pinkert

#5 lore raw

PATCH 1/1 Added package python-smbus

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dear Tjeerd,

sorry, i didn't spot your thread yesterday, actually I just posted a python-smbus patch a couple of weeks back, see here:
http://patchwork.ozlabs.org/patch/435345/

Right now i can't test your patch, but for first sight it seems to be OK. I also considered to integrate it into the i2c-tools package, but imho it's reasonable to handle it as an external python module, as you did as well.

Regards
zgyarmati

Quoted 85 lines · ir. Tjeerd Pinkert

Hi all,

I managed to add a package python-smbus that installs the i2c-tools py-smbus extension so that i2c can be used under python.

Most probably it is better to integrate this somehow into the i2c-tools scripts but this is the first onset of getting it working. Hints on how to best integrate, if regarded necessary, are welcome.

Best regards,

Tjeerd Pinkert

buildroot$ git diff 6bf057b0f2ba188397a691f74877a4a30aaea3f9 --

package/Config.in index renamed from package/Config.in +0 -0

262a7fb..7ef7149 100644 --- a/package/Config.in +++ b/package/Config.in @@ -525,6 +525,7 @@ menu "external python modules" source "package/python-flup/Config.in" source "package/python-gobject/Config.in" source
"package/python-httplib2/Config.in" + source
"package/python-smbus/Config.in" source "package/python-id3/Config.in" source "package/python-ipaddr/Config.in" source "package/python-ipy/Config.in" diff --git a/package/python-smbus/Config.in b/package/python-smbus/Config.in new file mode 100644 index 0000000..d53b0af --- /dev/null +++ b/package/python-smbus/Config.in @@ -0,0 +1,9 @@ +config
BR2_PACKAGE_PYTHON_SMBUS + bool "python-smbus" +
depends on BR2_PACKAGE_I2C_TOOLS + help + Python
bindings to smbus from the i2c-tools package + +
http://www.lm-sensors.org/wiki/I2CTools + + pyhton-smbus
needs i2c-tools diff --git a/package/python-smbus/python-smbus.mk b/package/python-smbus/python-smbus.mk new file mode 100644 index 0000000..1673e6a --- /dev/null +++ b/package/python-smbus/python-smbus.mk @@ -0,0 +1,18 @@

package/Config.in index renamed from package/Config.in +2 -0
+################################################################################
 
 +# +# python-smbus (i2c-tools python bindings) +# 
+################################################################################
 
 + +PYTHON_SMBUS_VERSION = 3.1.1 +PYTHON_SMBUS_SOURCE =

i2c-tools-$(PYTHON_SMBUS_VERSION).tar.bz2 +PYTHON_SMBUS_SITE =
http://dl.lm-sensors.org/i2c-tools/releases

package/Config.in index renamed from package/Config.in +2 -0
+PYTHON_SMBUS_SETUP_TYPE = distutils +PYTHON_SMBUS_LICENSE = GPLv2 
+PYTHON_SMBUS_LICENSE_FILES = COPYING +PYTHON_SMBUS_DEPENDENCIES =

i2c-tools +PYTHON_SMBUS_SUBDIR=py-smbus + +TARGET_CFLAGS += -I../include + +$(eval $(python-package))

Quoted 30 lines · ir. Tjeerd Pinkert

Since I'm quite new to Buildroot, I am trying to understand how to do things and how this thing works by reading the manual and source code.

I have been trying further on the python-smbus-cffi today, but python-cffi seems to be fundamentally broken according to the internet. Since my host machine does not yet have the python-cffi package (Debian Stable), I could not pursue that path further.

Next I tried to get the py-smbus from the i2c-tools package compiled. Unfortunately unsuccessful. To compile the py-smbus package one normally adds the EXTRA=py-smbus to the make command. I did that by adding an option to the configuration menu and then trying to compile via a modified makefile, but that goes wrong.

I figured I needed a python-package makefile. Simply adding one to the package directory then seems to be logical, but somehow does not work because

1. I need to call 'make' from the subdirectory py-smbus. 2. I get a funny error, probably I don't understand the make system good enough yet.

I get the following compilation error, I attached the scripts to this email, but, what would be the correct approach for this type of (sub)package compilation? Help is highly appreciated.

error: package/i2c-tools/i2c-tools-python.mk:17: *** "I2C_TOOLS_SETUP_TYPE must be set". Stop.

Quoted 7 lines
Quoted 4 lines

Best regards,

Tjeerd Pinkert

_______________________________________________ buildroot mailing list buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

- --
Bests,
Zoltan Gyarmati
IRC freenode: zgyarmati
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJVCBHsAAoJEAGmEeeR8iVhbEMH/0VVl37kKph96e5fdErI7ssF trBbexvhSNMeLCsaD41k6s02p3rHxRsoU7/YNXyTZYBWatPfdvtWHhbxkakP8h1x 8cLvjyp4BanZLHrIPFeM/wRVWRd7mAV8DNnl58EfyE7NdGco4krQreXhi22y+eYz zmLcAd7gQsvuR7hm/8wp89U9ORVTfQN9YXH8U5SaiL5gKxtwH19v/egkW1d0M033 kQE6qvIP+zvcB8ROjrybkTnP0lS4PliKEmaR8uqjHPy405nl6nfOLCCQNIVxNDVy HpXzFz14brfYAFMrsz8qBgeyy/Sl4ZMw9shzuXCHPYrAwxr3I4loQd4V1Lgt9hg= =xzEs
-----END PGP SIGNATURE-----

#6 lore raw

PATCH 1/1 Added package python-smbus

Dear Zoltan,

I missed your patch as well, so don't worry. It probably depends on the fact if adding to the TARGET_CFLAGS is considered sane, in that case no extra file/file modification is needed which might make things less prone to error? I would be fine with both approaches.

I think your way of handling the source definitions is preferable, since that gives only one place where the source is defined.

Best regards,

Tjeerd Pinkert

Quoted 131 lines · Zoltan Gyarmati

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dear Tjeerd,

sorry, i didn't spot your thread yesterday, actually I just posted a python-smbus patch a couple of weeks back, see here:
http://patchwork.ozlabs.org/patch/435345/

Right now i can't test your patch, but for first sight it seems to be OK. I also considered to integrate it into the i2c-tools package, but imho it's reasonable to handle it as an external python module, as you did as well.

Regards
zgyarmati

Quoted 85 lines · ir. Tjeerd Pinkert

Hi all,

I managed to add a package python-smbus that installs the i2c-tools py-smbus extension so that i2c can be used under python.

Most probably it is better to integrate this somehow into the i2c-tools scripts but this is the first onset of getting it working. Hints on how to best integrate, if regarded necessary, are welcome.

Best regards,

Tjeerd Pinkert

buildroot$ git diff 6bf057b0f2ba188397a691f74877a4a30aaea3f9 --

package/Config.in index renamed from package/Config.in +0 -0

262a7fb..7ef7149 100644 --- a/package/Config.in +++ b/package/Config.in @@ -525,6 +525,7 @@ menu "external python modules" source "package/python-flup/Config.in" source "package/python-gobject/Config.in" source
"package/python-httplib2/Config.in" + source
"package/python-smbus/Config.in" source "package/python-id3/Config.in" source "package/python-ipaddr/Config.in" source "package/python-ipy/Config.in" diff --git a/package/python-smbus/Config.in b/package/python-smbus/Config.in new file mode 100644 index 0000000..d53b0af --- /dev/null +++ b/package/python-smbus/Config.in @@ -0,0 +1,9 @@ +config
BR2_PACKAGE_PYTHON_SMBUS + bool "python-smbus" +
depends on BR2_PACKAGE_I2C_TOOLS + help + Python
bindings to smbus from the i2c-tools package + +
http://www.lm-sensors.org/wiki/I2CTools + + pyhton-smbus
needs i2c-tools diff --git a/package/python-smbus/python-smbus.mk b/package/python-smbus/python-smbus.mk new file mode 100644 index 0000000..1673e6a --- /dev/null +++ b/package/python-smbus/python-smbus.mk @@ -0,0 +1,18 @@

package/Config.in index renamed from package/Config.in +2 -0
+################################################################################
 
  +# +# python-smbus (i2c-tools python bindings) +#
+################################################################################
 
  + +PYTHON_SMBUS_VERSION = 3.1.1 +PYTHON_SMBUS_SOURCE =

i2c-tools-$(PYTHON_SMBUS_VERSION).tar.bz2 +PYTHON_SMBUS_SITE =
http://dl.lm-sensors.org/i2c-tools/releases

package/Config.in index renamed from package/Config.in +2 -0
+PYTHON_SMBUS_SETUP_TYPE = distutils +PYTHON_SMBUS_LICENSE = GPLv2
+PYTHON_SMBUS_LICENSE_FILES = COPYING +PYTHON_SMBUS_DEPENDENCIES =

i2c-tools +PYTHON_SMBUS_SUBDIR=py-smbus + +TARGET_CFLAGS += -I../include + +$(eval $(python-package))

Quoted 30 lines · ir. Tjeerd Pinkert

Since I'm quite new to Buildroot, I am trying to understand how to do things and how this thing works by reading the manual and source code.

I have been trying further on the python-smbus-cffi today, but python-cffi seems to be fundamentally broken according to the internet. Since my host machine does not yet have the python-cffi package (Debian Stable), I could not pursue that path further.

Next I tried to get the py-smbus from the i2c-tools package compiled. Unfortunately unsuccessful. To compile the py-smbus package one normally adds the EXTRA=py-smbus to the make command. I did that by adding an option to the configuration menu and then trying to compile via a modified makefile, but that goes wrong.

I figured I needed a python-package makefile. Simply adding one to the package directory then seems to be logical, but somehow does not work because

1. I need to call 'make' from the subdirectory py-smbus. 2. I get a funny error, probably I don't understand the make system good enough yet.

I get the following compilation error, I attached the scripts to this email, but, what would be the correct approach for this type of (sub)package compilation? Help is highly appreciated.

error: package/i2c-tools/i2c-tools-python.mk:17: *** "I2C_TOOLS_SETUP_TYPE must be set". Stop.

Quoted 7 lines
Quoted 4 lines

Best regards,

Tjeerd Pinkert

_______________________________________________ buildroot mailing list buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

- --
Bests,
Zoltan Gyarmati
IRC freenode: zgyarmati
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJVCBHsAAoJEAGmEeeR8iVhbEMH/0VVl37kKph96e5fdErI7ssF trBbexvhSNMeLCsaD41k6s02p3rHxRsoU7/YNXyTZYBWatPfdvtWHhbxkakP8h1x 8cLvjyp4BanZLHrIPFeM/wRVWRd7mAV8DNnl58EfyE7NdGco4krQreXhi22y+eYz zmLcAd7gQsvuR7hm/8wp89U9ORVTfQN9YXH8U5SaiL5gKxtwH19v/egkW1d0M033 kQE6qvIP+zvcB8ROjrybkTnP0lS4PliKEmaR8uqjHPy405nl6nfOLCCQNIVxNDVy HpXzFz14brfYAFMrsz8qBgeyy/Sl4ZMw9shzuXCHPYrAwxr3I4loQd4V1Lgt9hg= =xzEs
-----END PGP SIGNATURE-----
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#7 lore raw

PATCH 1/1 Added package python-smbus

In reply to ir. Tjeerd Pinkert

Hi Tjeerd,

Quoted 5 lines · ir. Tjeerd Pinkert

Hi all,

I managed to add a package python-smbus that installs the i2c-tools py-smbus extension so that i2c can be used under python.

Quoted 8 lines

Most probably it is better to integrate this somehow into the i2c-tools scripts but this is the first onset of getting it working. Hints on how to best integrate, if regarded necessary, are welcome.

Best regards,

Tjeerd Pinkert

For the future reference, can you please send patches using git? For more information on this, please see the manual.

http://nightly.buildroot.org/manual.html#submitting-patches

[...]

Quoted 7 lines
package/python-smbus/python-smbus.mk new file +0 -0
new file mode 100644
index 0000000..1673e6a

package/python-smbus/python-smbus.mk line 9

Quoted 9 lines
package/python-smbus/python-smbus.mk new file +9 -0
@@ -0,0 +1,18 @@
+################################################################################
+#
+# python-smbus (i2c-tools python bindings)
+#
+################################################################################
+
+PYTHON_SMBUS_VERSION = 3.1.1
+PYTHON_SMBUS_SOURCE = i2c-tools-$(PYTHON_SMBUS_VERSION).tar.bz2
+PYTHON_SMBUS_SITE = http://dl.lm-sensors.org/i2c-tools/releases

Since you are using i2c-tools package itself, an option should be added to this package to build and install the python bindings. I was going to attempt to try to explain the way to do this but it turned out that it was completely different than what is proposed here. I will be pushing this out here shortly and would appreciate if you could test this new patch out.

package/python-smbus/python-smbus.mk line 18

Quoted 9 lines
package/python-smbus/python-smbus.mk new file +9 -0
+PYTHON_SMBUS_SETUP_TYPE = distutils
+PYTHON_SMBUS_LICENSE = GPLv2
+PYTHON_SMBUS_LICENSE_FILES = COPYING
+PYTHON_SMBUS_DEPENDENCIES = i2c-tools
+PYTHON_SMBUS_SUBDIR=py-smbus
+
+TARGET_CFLAGS += -I../include
+
+$(eval $(python-package))

Thanks,
-Ryan