• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Python Modul für GPIO

Mardor

Well-Known Member
Themenstarter #1
Hallo,

ich setze auf meinem Raspberry Pi 2 aktuell RaspBSD (FreeBSD-armv6-11.0-RPI2-286145.img) von http://raspbsd.org/# ein.
Soweit funktioniert alles und ich bin auch sehr begeistert. Das einzige was ich nicht hinbekomme ist die GPIO des Raspberry anzusteuern weil das python Modul RPi.GPIO fehlt.

Laut freshports.org sollte es ein Paket geben das "raspberrypi-userland" heisst, allerdings kann ich keines in den Ports finden.
Was mich verwundert ist der Kommentar auf freshports:

A package is not available for ports marked as: Forbidden / Broken / Ignore / Restricted
PKGNAME: raspberrypi-userland
Irgendwie wiederspricht sich diese Aussage (es gibt kein Paket aber der Name ist raspberrypi-userland).
Sollte ich das Paket wirklich via portmaster kompilieren müssel und mit portsnap die Ports holen müssen, so wäre für mich die Frage ob es irgendwie geht via portsnap nur diesen einen Port zu holen um nicht zu viel MicroSD Platz zu verbrauchen ?

Gruß Mardor
 

Mardor

Well-Known Member
Themenstarter #3
Hallo darktrym,

leider führt die Installation des GPIO Moduls über PIP immer wieder zu Fehlermeldungen.

Code:
  File "/tmp/pip-build-ro2fe_sd/numpy/numpy/distutils/command/build_src.py", line 299, in build_library_sources
  sources = self.generate_sources(sources, (lib_name, build_info))
  File "/tmp/pip-build-ro2fe_sd/numpy/numpy/distutils/command/build_src.py", line 386, in generate_sources
  source = func(extension, build_dir)
  File "numpy/core/setup.py", line 669, in get_mathlib_info
  raise RuntimeError("Broken toolchain: cannot link a simple C program")
  RuntimeError: Broken toolchain: cannot link a simple C program

  ----------------------------------------
Command "/usr/local/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-ro2fe_sd/numpy/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-mh0bu7uq-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-ro2fe_sd/numpy
Gruß Marcus
 

Mardor

Well-Known Member
Themenstarter #4
Auch das auf "https://github.com/gonzoua/freebsd-gpio" beschriebene Verfahren funktioniert nicht weil hier irgendetwas geht.

Code:
python3.4 setup.py build
running build
running build_py
running build_ext
building '_bsdgpio' extension
/nxb-bin/usr/bin/cc -Wno-unused-result -DNDEBUG -fPIC -I/usr/local/include/python3.4m -c _bsdgpiomodule.c -o build/temp.freebsd-11.0-CURRENT-arm-3.4/_bsdgpiomodule.o
unable to execute '/nxb-bin/usr/bin/cc': No such file or directory
error: command '/nxb-bin/usr/bin/cc' failed with exit status 1
Gruß Mardor
 

Crest

rm -rf /*
Mitarbeiter
#6
Das FreeBSD GPIO Device ist sehr einfach und mit wenigen ioctl() Aufrufen zu bedienen. Sollte Python dir die Möglichkeit bieten direkt Systemcalls auszuführen ist es vermutlich einfacher ohne Gluecode direkt mit dem GPIO Device zu reden.
 

darktrym

Fahnenträger
#7
Direkt Syscalls aufrufen? Nö, entweder bastelt man sich hier was selbst(mit riesen Aufwand) um die Brücke C(Kernel) und Python-Userland zu schaffen oder fixt das gleich selbst. Du wirst ja sicher nicht der einzige mit dem Problem sein.