Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. Error compiling under Trixie for Raspberry PI 3B+

Error compiling under Trixie for Raspberry PI 3B+

Scheduled Pinned Locked Moved Troubleshooting
2 Posts 1 Posters 4 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R
    R
    ricorico94
    wrote last edited by ricorico94
    #1

    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/direction
    

    I 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 config

    sudo ./configure --my-transport=rf24 --my-rf24-irq-pin=15
    
    

    but 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_fd
    
    

    What do I do wrong ?
    Thanks for your help..

    1 Reply Last reply
    0
    • R
      R
      ricorico94
      wrote last edited by ricorico94
      #2

      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 line
      

      To 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 ?

      1 Reply Last reply
      0

      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
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      15

      Online

      12.4k

      Users

      11.2k

      Topics

      113.5k

      Posts


      Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • MySensors
      • OpenHardware.io
      • Categories
      • Recent
      • Tags
      • Popular