From 2deefaeec74cc239492b4f8edaf0ec5422349e2c Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Fri, 10 Sep 2021 08:58:03 -0700 Subject: [PATCH] Fix libgpiod for 64-bit Pi by detecting and loading appropriate lib --- .../microcontroller/bcm283x/pulseio/PulseIn.py | 9 ++++++++- .../bcm283x/pulseio/libgpiod_pulsein64 | Bin 0 -> 25832 bytes 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64 diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py index 19dc98f..326f802 100644 --- a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py +++ b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py @@ -5,6 +5,7 @@ import os import atexit import random import sysv_ipc +import struct DEBUG = False queues = [] @@ -49,9 +50,15 @@ class PulseIn: "Message queue creation failed" ) from sysv_ipc.ExistentialError + # Check if OS is 64-bit + if struct.calcsize("P") * 8 == 64: + libgpiod_filename = "libgpiod_pulsein64" + else: + libgpiod_filename = "libgpiod_pulsein" + dir_path = os.path.dirname(os.path.realpath(__file__)) cmd = [ - dir_path + "/libgpiod_pulsein", + dir_path + "/" + libgpiod_filename, "--pulses", str(maxlen), "--queue", diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64 b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64 new file mode 100644 index 0000000000000000000000000000000000000000..0143060ba9a7451f75a73c7cea934fcb8a6304da GIT binary patch literal 25832 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 literal 0 HcmV?d00001 -- 2.49.0