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
4 Posts 3 Posters 134 Views 2 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 ?

      OldSurferDudeO 1 Reply Last reply
      0
      • nagelcN
        nagelcN
        nagelc
        wrote last edited by
        #3

        I can't really help with the linux code, but if one of the old heads doesn't weigh in, try Ai. This is the kind of thing AI is good at. "I was running this under bullseye, but when I switched to trixie, I get these errors". I've used github copilot for errors similar to this on other programs with good luck. Usually takes about 3 iterations to get to the real problem / solution. When you get it running, don't forget to submit a PR to fix it for MySensors.

        1 Reply Last reply
        0
        • R ricorico94

          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 ?

          OldSurferDudeO
          OldSurferDudeO
          OldSurferDude
          wrote last edited by
          #4

          @ricorico94 said:

          Failed to request GPIO line

          Looks like the library for the GPIO isn't working. Try to get it working with Raspberry Pi OS

          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


          17

          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