Error compiling under Trixie for Raspberry PI 3B+
-
Hi,
I'm trying to re-install MySensors on a fresh installation on Raspberry Pi 3B+ using Trixie.
I faced several errors. I could solve a couple, but I'm still blocked.
What I solved:- initial stropts.h error.. so I used development branch (git clone https://github.com/mysensors/MySensors.git --branch development )
- then the problem in ATOMIC Block
./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’ 106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \I think I solved I solved it by replacing a coupe lines in MyHwLinuxGeneric.h file as per advice of some other posts ([https://github.com/mysensors/MySensors/issues/1557 )
then compilation was ok, but running I got GPIO error message:
~/MySensors $ sudo ./bin/mysgw Oct 25 09:51:59 INFO Starting gateway... Oct 25 09:51:59 INFO Protocol version - 2.4.0-rc.1 Oct 25 09:51:59 DEBUG MCO:BGN:INIT GW,CP=RNNGL-Q-,FQ=NA,REL=2,VER=2.4.0-rc.1 Oct 25 09:51:59 DEBUG TSF:LRT:OK Oct 25 09:51:59 DEBUG TSM:INIT Oct 25 09:51:59 DEBUG TSF:WUR:MS=0 Oct 25 09:52:10 ERROR Could not open /sys/class/gpio/gpio15/directionI found this post : link text which had similar type of error and pointing to a commit #1562
Unfortunately, I'm not understanding very well how github works. I tried to download the 4 different modified files and replace the original ones, one by one (hopefully I downloaded correct ones, I don't feel very comfortable) .
Then I installed also the new lib ( sudo apt-get install libgpiod-dev ), launched again the configsudo ./configure --my-transport=rf24 --my-rf24-irq-pin=15but when I launch sudo make, then I can't compile anymore:
hal/architecture/Linux/drivers/core/interrupt.cpp:108:27: error: ‘gpiod_line_event_wait’ was not declared in this scope; did you mean ‘gpiod_info_event_type’? 108 | int ret = gpiod_line_event_wait(line, NULL); | ^~~~~~~~~~~~~~~~~~~~~ | gpiod_info_event_type hal/architecture/Linux/drivers/core/interrupt.cpp:113:41: error: aggregate ‘interruptHandler(void*)::gpiod_line_event event’ has incomplete type and cannot be defined 113 | struct gpiod_line_event event; | ^~~~~ hal/architecture/Linux/drivers/core/interrupt.cpp:114:21: error: ‘gpiod_line_event_read’ was not declared in this scope; did you mean ‘gpiod_line_event’? 114 | if (gpiod_line_event_read(line, &event) == 0) { | ^~~~~~~~~~~~~~~~~~~~~ | gpiod_line_event hal/architecture/Linux/drivers/core/interrupt.cpp:115:49: error: ‘GPIOD_LINE_EVENT_RISING_EDGE’ was not declared in this scope; did you mean ‘GPIOD_EDGE_EVENT_RISING_EDGE’? 115 | if (event.event_type == GPIOD_LINE_EVENT_RISING_EDGE) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | GPIOD_EDGE_EVENT_RISING_EDGE hal/architecture/Linux/drivers/core/interrupt.cpp:134:9: error: ‘gpiod_line_release’ was not declared in this scope; did you mean ‘gpiod_line_request’? 134 | gpiod_line_release(line); | ^~~~~~~~~~~~~~~~~~ | gpiod_line_request hal/architecture/Linux/drivers/core/interrupt.cpp:91:14: warning: unused variable ‘c’ [-Wunused-variable] 91 | char c; | ^ hal/architecture/Linux/drivers/core/interrupt.cpp: In function ‘void attachInterrupt(uint8_t, void (*)(), uint8_t)’: hal/architecture/Linux/drivers/core/interrupt.cpp:157:26: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 157 | char *chipname = "gpiochip0"; | ^~~~~~~~~~~ hal/architecture/Linux/drivers/core/interrupt.cpp:159:33: error: aggregate ‘attachInterrupt(uint8_t, void (*)(), uint8_t)::gpiod_line_event event’ has incomplete type and cannot be defined 159 | struct gpiod_line_event event; | ^~~~~ hal/architecture/Linux/drivers/core/interrupt.cpp:164:16: error: ‘gpiod_chip_open_by_name’ was not declared in this scope; did you mean ‘gpiod_chip_info_get_name’? 164 | chip = gpiod_chip_open_by_name(chipname); | ^~~~~~~~~~~~~~~~~~~~~~~ | gpiod_chip_info_get_name hal/architecture/Linux/drivers/core/interrupt.cpp:170:16: error: ‘gpiod_chip_get_line’ was not declared in this scope; did you mean ‘gpiod_chip_get_info’? 170 | line = gpiod_chip_get_line(chip, line_num); | ^~~~~~~~~~~~~~~~~~~ | gpiod_chip_get_info hal/architecture/Linux/drivers/core/interrupt.cpp:178:17: error: ‘gpiod_line_request_both_edges_events’ was not declared in this scope; did you mean ‘gpiod_line_request_wait_edge_events’? 178 | gpiod_line_request_both_edges_events(line, "gpiointerrupt"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | gpiod_line_request_wait_edge_events hal/architecture/Linux/drivers/core/interrupt.cpp:181:17: error: ‘gpiod_line_request_falling_edge_events’ was not declared in this scope; did you mean ‘gpiod_line_request_wait_edge_events’? 181 | gpiod_line_request_falling_edge_events(line, "gpiointerrupt"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | gpiod_line_request_wait_edge_events hal/architecture/Linux/drivers/core/interrupt.cpp:184:17: error: ‘gpiod_line_request_rising_edge_events’ was not declared in this scope; did you mean ‘gpiod_line_request_wait_edge_events’? 184 | gpiod_line_request_rising_edge_events(line, "gpiointerrupt"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | gpiod_line_request_wait_edge_events hal/architecture/Linux/drivers/core/interrupt.cpp:194:40: error: ‘gpiod_line_event_get_fd’ was not declared in this scope; did you mean ‘gpiod_line_request_get_fd’? 194 | if ((sysFds[gpioPin] = gpiod_line_event_get_fd(line)) < 0) { | ^~~~~~~~~~~~~~~~~~~~~~~ | gpiod_line_request_get_fdWhat do I do wrong ?
Thanks for your help.. -
Hi again.
I found another post (#1610), which seems referring to the previous one (#1562) and to TRixie.
So I replaced the 6 files by ones found in Files of #1610.
Now I can compile with no error, but when launching mysgw, I get an error ::~/MySensors $ sudo ./bin/mysgw Oct 25 12:56:48 INFO Starting gateway... Oct 25 12:56:48 INFO Protocol version - 2.4.0-rc.1 Oct 25 12:56:48 DEBUG MCO:BGN:INIT GW,CP=RNNGL-Q-,FQ=NA,REL=2,VER=2.4.0-rc.1 Oct 25 12:56:48 DEBUG TSF:LRT:OK Oct 25 12:56:48 DEBUG TSM:INIT Oct 25 12:56:48 DEBUG TSF:WUR:MS=0 Oct 25 12:56:48 ERROR Failed to request GPIO lineTo clarify my setup, I wanted to run the MySensors gateway on my same Raspberry Pi 3B+/Trixie than my Domoticz (same setup than before under Bullseye..)
Any idea ?
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login