mholgatem / gpioneer

A python GPIO controller
MIT License
33 stars 6 forks source link

Retropie - Failed to start gpioneer-web #16

Closed greekgroover closed 5 years ago

greekgroover commented 5 years ago

I received a raspberry pi with retropie installed as an xmas present. I had issues with configuring the gamepad controllers so I thought it would be a good idea to update retropie as well as the underling rasbian.

after that it refuses to boot and exits with the error "Failed to start GPioneer-web.

pi@raspberrypi:~ $ systemctl status gpioneer-web.service ● gpioneer-web.service - GPioneer-web Loaded: loaded (/lib/systemd/system/gpioneer-web.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Wed 2019-01-02 23:59:51 CET; 5min ago Process: 461 ExecStart=/usr/bin/python app.py (code=exited, status=210/CHROOT) Main PID: 461 (code=exited, status=210/CHROOT)

Jan 02 23:59:50 raspberrypi systemd[1]: gpioneer-web.service: Failed with result 'exit-code'. Jan 02 23:59:51 raspberrypi systemd[1]: gpioneer-web.service: Service hold-off time over, scheduling restart. Jan 02 23:59:51 raspberrypi systemd[1]: Stopped GPioneer-web. Jan 02 23:59:51 raspberrypi systemd[1]: gpioneer-web.service: Start request repeated too quickly. Jan 02 23:59:51 raspberrypi systemd[1]: Failed to start GPioneer-web. Jan 02 23:59:51 raspberrypi systemd[1]: gpioneer-web.service: Unit entered failed state.

I don't fully unterstand the error because if I enter the ip into the webserver I am greated with a nice gui. in the logs:

Jan 02 23:59:55 Stopped gpioneer-daemon.Started gpioneer-daemon.gpioneer.service: Main process exited, code=exited, status=210/CHROOTgpioneer.service: Unit entered failed state.gpioneer.service: Failed with result 'exit-code'.gpioneer.service: Service hold-off time over, scheduling restart.

I already ran the install script and all packages are up to date.

What am I missing? How can I see the webpage but still receive an error that gpioneer-web can't be started? How can I resolve this error? Is there a safe way and recommended way of "migrating" from gpioneer to GPIOnext?

thank you very much!

caver01 commented 5 years ago

Greekgroover,

Although it is not pleasant to hear this, and I sympathize with you given that this was apparently a gift, but the best course of action is to seek help from whomever setup your system or to start over and reimage the SD card using only the official RetroPie image. It would be extremely irresponsible for anyone to troubleshoot this, as the build is a complete unknown. There is no telling what kind of miscofiguratuons are waiting to rob you of your time and energy, let alone that of anyone willing to assist. I can almost guarantee that this is the same response you would get from the RetroPie forum as well.

You NEED to start from a supported, working image in order to make any troubleshooting effort worthwhile. Your situation is dire—an unbootable Pi downstream of a failed update to an image whose origin is unknown at worst, and very likely misconfigured at best. I wish there was a silver bullet fix, but this is certainly not a GPIOneer issue at bottom. Besides, you will have the opportunity to learn so much about your fine gift in the process of building and configuring it. The Pi is, after all, a computer intended to be used to educate.

I know it is not the answer you wanted, and maybe someone else will have a second opinion, but consider this: with the low price of an additional SD card, you could set this one aside and come back to it in the future if you really wanted to try other ideas later while you build upon a known, working system and learn about how your particular hardware setup is perhaps unique.

mholgatem commented 5 years ago

The web interface is run as systemd service. While it logs the errors that it runs into, it also has the ability to restart itself. So chances are, it is running into a failed state due to some resources not being available. By time it restarts itself, those resources are now available and thus the web page can load. So the errors that you are seeing in the log are from the previous failed state.

There unfortunately is no migration mechanism for switching between gpioneer and gpionext, but you can easily disable gpioneer by using the following commands:

sudo systemctl disable gpionext
sudo systemctl disable gpionext-web
sudo systemctl daemon-reload

Then you can follow the instructions for installing GPIOnext. You will have to reconfigure your buttons, but gpionext makes it pretty simple. GPIOnext removes the web interface in favor of a basic GUI that can be navigated via keyboard.