trying to add python-smbus-cffi, but installing fails
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.1PYTHON_SMBUS_CFFI_SOURCE = smbus-cffi-$(PYTHON_SMBUS_CFFI_VERSION).tar.gz PYTHON_SMBUS_CFFI_SITE = https://pypi.python.org/packages/source/s/smbus-cffiPYTHON_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 = GPLv2PYTHON_SMBUS_CFFI_LICENSE_FILES = LICENSE
$(eval $(python-package))
Quoted 36 lines · ir. Tjeerd Pinkert
Hi,
I was trying to install the python smbus-cffi as a package (currently in my
BR2_EXTERNALdirectory) 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_backendas 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.
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_EXTERNALdirectory) 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_backendas 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.
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_EXTERNALdirectory) 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_backendas 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 1I 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.1I2C_TOOLS_SOURCE = i2c-tools-$(I2C_TOOLS_VERSION).tar.bz2 I2C_TOOLS_SITE = http://dl.lm-sensors.org/i2c-tools/releasesI2C_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.1PYTHON_I2C_TOOLS_SOURCE = i2c-tools-$(PYTHON_I2C_TOOLS_VERSION).tar.bz2 PYTHON_I2C_TOOLS_SITE = http://downloads.sourceforge.net/project/pyalsaaudioPYTHON_I2C_TOOLS_SETUP_TYPE = distutilsPYTHON_I2C_TOOLS_LICENSE = GPLv2PYTHON_I2C_TOOLS_LICENSE_FILES = COPYING PYTHON_I2C_TOOLS_DEPENDENCIES = i2c-tools
$(eval $(python-package))
endif
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
@@ -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
@@ -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_TYPEmust be set". Stop.Best regards,
Tjeerd Pinkert
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
-0262a7fb..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 @@ +configBR2_PACKAGE_PYTHON_SMBUS+ bool "python-smbus" +
depends onBR2_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 --gita/package/python-smbus/python-smbus.mkb/package/python-smbus/python-smbus.mknew 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/releasespackage/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_TYPEmust 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-----
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: SHA1Dear 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
zgyarmatiQuoted 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
-0262a7fb..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 @@ +configBR2_PACKAGE_PYTHON_SMBUS+ bool "python-smbus" +
depends onBR2_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 --gita/package/python-smbus/python-smbus.mkb/package/python-smbus/python-smbus.mknew 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/releasespackage/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_TYPEmust 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 v1iQEcBAEBAgAGBQJVCBHsAAoJEAGmEeeR8iVhbEMH/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
PATCH 1/1 Added package python-smbus
In reply to ir. Tjeerd PinkertHi 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
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