txoof / PaperPi

E-Paper display loop with plugins
97 stars 10 forks source link

crash when starting daemon #155

Closed txoof closed 5 months ago

txoof commented 5 months ago

Start daemon with sudo systemctl restart paperpi -- setting up display fails miserably; looks like there's a permission problem with /dev/spidev0.0

Mar 12 21:40:41 lroom-b64 paperpi[2676]: 21:40:41 paperpi :main      :655 :INFO       - ********** PaperPi 0.5.6.0 RGB Starting **********
Mar 12 21:40:41 lroom-b64 paperpi[2676]: 21:40:41 paperpi :main      :657 :INFO       - PaperPi is running in daemon mode
Mar 12 21:40:41 lroom-b64 paperpi[2676]: /usr/local/paperpi/venv_paperpi/lib/python3.11/site-packages/IT8951/interface.py:28: RuntimeWarning: No channels have been set up yet - nothing to clean up!  Try cleaning up at the end of your program instead!
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   self.spi = SPI(**spi_kwargs)
Mar 12 21:40:41 lroom-b64 paperpi[2676]: 21:40:41 paperpi :setup_display:415 :CRITICAL   - Error initializing EPD: [Errno 13] Permission denied: '/dev/spidev0.0'
Mar 12 21:40:41 lroom-b64 paperpi[2676]: Traceback (most recent call last):
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/paperpi.py", line 407, in setup_display
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     screen = Screen(epd=epd, vcom=vcom)
Mar 12 21:40:41 lroom-b64 paperpi[2676]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/venv_paperpi/lib/python3.11/site-packages/epdlib/Screen.py", line 240, in __init__
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     self.epd = epd
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     ^^^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/venv_paperpi/lib/python3.11/site-packages/epdlib/Screen.py", line 63, in new_f
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     return f(self, *args, **kwds)
Mar 12 21:40:41 lroom-b64 paperpi[2676]:            ^^^^^^^^^^^^^^^^^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/venv_paperpi/lib/python3.11/site-packages/epdlib/Screen.py", line 330, in epd
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     myepd = self._load_hd(epd)
Mar 12 21:40:41 lroom-b64 paperpi[2676]:             ^^^^^^^^^^^^^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/venv_paperpi/lib/python3.11/site-packages/epdlib/Screen.py", line 436, in _load_hd
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     myepd = AutoEPDDisplay(vcom=self.vcom)
Mar 12 21:40:41 lroom-b64 paperpi[2676]:             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/venv_paperpi/lib/python3.11/site-packages/IT8951/display.py", line 215, in __init__
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     epd = EPD(vcom=vcom, bus=bus, device=device, data_hz=spi_hz)
Mar 12 21:40:41 lroom-b64 paperpi[2676]:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/venv_paperpi/lib/python3.11/site-packages/IT8951/interface.py", line 28, in __init__
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     self.spi = SPI(**spi_kwargs)
Mar 12 21:40:41 lroom-b64 paperpi[2676]:                ^^^^^^^^^^^^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "src/IT8951/spi.pyx", line 52, in IT8951.spi.SPI.__cinit__
Mar 12 21:40:41 lroom-b64 paperpi[2676]: PermissionError: [Errno 13] Permission denied: '/dev/spidev0.0'
Mar 12 21:40:41 lroom-b64 paperpi[2676]: During handling of the above exception, another exception occurred:
Mar 12 21:40:41 lroom-b64 paperpi[2676]: Traceback (most recent call last):
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/paperpi.py", line 746, in <module>
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     exit_code = main()
Mar 12 21:40:41 lroom-b64 paperpi[2676]:                 ^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/paperpi.py", line 668, in main
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     screen_return = setup_display(config)
Mar 12 21:40:41 lroom-b64 paperpi[2676]:                     ^^^^^^^^^^^^^^^^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]:   File "/usr/local/paperpi/paperpi.py", line 416, in setup_display
Mar 12 21:40:41 lroom-b64 paperpi[2676]:     logging.critical(f'The user executing {constants.app_name} does not have access to the SPI device.')
Mar 12 21:40:41 lroom-b64 paperpi[2676]:                                            ^^^^^^^^^^^^^^^^^^
Mar 12 21:40:41 lroom-b64 paperpi[2676]: AttributeError: module 'my_constants' has no attribute 'app_name'
Mar 12 21:40:42 lroom-b64 systemd[1]: paperpi-daemon.service: Deactivated successfully.
Mar 12 21:40:42 lroom-b64 systemd[1]: paperpi-daemon.service: Consumed 1.155s CPU time.
txoof commented 5 months ago

looks like this is a groups issue https://forums.raspberrypi.com/viewtopic.php?t=141013

txoof commented 5 months ago

Install script needs to add paperpi user to spi and gpio groups:

$ usermod paperpi -a -G spi,gpio
txoof commented 5 months ago

resolved in #156