wouterdebie / locast2tuner

Locast to Emby/Plex/Channels server
https://wouterdebie.github.io/locast2tuner/
MIT License
52 stars 8 forks source link

Latest v0.3.6 will not start on aarch64 (Raspberry PI OS - Beta) #95

Closed dwilson1251 closed 3 years ago

dwilson1251 commented 3 years ago

Updated to latest on Raspian OS (armf/ buster) and the service will no longer start

I've tried all kinds of things:

pi@towerpi:~ $ sudo systemctl status locast2tuner ● locast2tuner.service - locast2tuner Loaded: loaded (/lib/systemd/system/locast2tuner.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Wed 2021-08-25 22:10:42 EDT; 3min 31s ago Process: 5246 ExecStart=/usr/bin/locast2tuner -c /etc/locast2tuner/config --cache_dir /var/lib/locast2tuner --logfile /var/log/locast2tuner/locast2tuner.lo Main PID: 5246 (code=exited, status=203/EXEC)

Aug 25 22:10:42 towerpi systemd[1]: Started locast2tuner. Aug 25 22:10:42 towerpi systemd[5246]: locast2tuner.service: Failed to execute command: No such file or directory Aug 25 22:10:42 towerpi systemd[5246]: locast2tuner.service: Failed at step EXEC spawning /usr/bin/locast2tuner: No such file or directory Aug 25 22:10:42 towerpi systemd[1]: locast2tuner.service: Main process exited, code=exited, status=203/EXEC Aug 25 22:10:42 towerpi systemd[1]: locast2tuner.service: Failed with result 'exit-code'.

wouterdebie commented 3 years ago

Strange. Is /usr/bin/locast2tuner executable? What happens if you do sudo chmod +x /usr/bin/locast2tuner and then restart the service?

wouterdebie commented 3 years ago

Also, the file being owned by root is fine. What does ls -l /usr/bin/locast2tuner give you? And file /usr/bin/locast2tuner?

wouterdebie commented 3 years ago

@dwilson1251 I just released 0.3.7 and @eiddor tested that one on a raspberry pi and it seems to work. One thing you could additionally try is to remove and completely purge (sudo dpkg --purge locast2tuner) the package and then reinstall.

dwilson1251 commented 3 years ago

@wouterdebie - Sorry for the delay; had to find a time to remote it and troubshoot. I tried all the suggestions; ultimately removing and purging the package. Then I realized this particular pi was running the 64bit beta; I had this working for awhile so not sure what changed (sorry for the confusion).

Here is the output for: ls -l /usr/bin/locast2tuner -rwxr-xr-x 1 root root 19346956 Aug 26 11:43 /usr/bin/locast2tuner

file /usr/bin/locast2tuner /usr/bin/locast2tuner: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=41f726e8e7f71a35fc50985b3aeb069f233bdee9, for GNU/Linux 3.2.0, stripped

I dug into the service and noticed the user/group called is: User=locast2tuner Group=locast2tuner

locast2tuner:x:109:114::/var/lib/locast2tuner:/bin/false

Am guessing this is an arch issue, and I'll have to rebuild this with the 32bit version of the os? Apologies again for the confusion on my part; I have some PI's on 32bit for things like PiHole (essentially the most stable), but for this use case wanted the latest (plex, wireguard, etc.) This one is at my parents, so everything is remote.

eiddor commented 3 years ago

Then I realized this particular pi was running the 64bit beta; I had this working for awhile so not sure what changed (sorry for the confusion).

So, we're only building for the armv7 target, but that doesn't explain why this was working for you previously. I know we changed a bit in the build workflow recently, so that might be something that @wouterdebie can comment on.

dwilson1251 commented 3 years ago

@eiddor - supposedly aarch64 should support full backwards compatiblity with armv7; with some exceptions. Currently looking at what those exceptions, dependencies, etc. might be though. This might explain why it was working prior to the build change; maybe something dropped off.

wouterdebie commented 3 years ago

The big difference is that we went from static binaries to dynamic for raspbian/ubuntu. This would then break if there are other distros that don't have the dynamic libs in the right place. What does ldd /usr/bin/locast2tuner give you?

dwilson1251 commented 3 years ago

not a dynamic executable

eiddor commented 3 years ago

Huh... on my (32-bit) RPi, this is the output...

pi@rpi4a:~ $ ldd /usr/bin/locast2tuner
    linux-vdso.so.1 (0xbee71000)
    /usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0xb5c4d000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb5c20000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb5bf6000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb5b74000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb5b61000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb5a13000)
    /lib/ld-linux-armhf.so.3 (0xb6ee9000)
wouterdebie commented 3 years ago

I think that if the interpreter (in this case /lib/ld-linux-armhf.so.3) isn't available, ldd returns that it's not a dynamic executable. But yeah, this seems to be pretty much the problem.. @dwilson1251 do you happen to have /lib/ld-linux-armhf.so.3 on your system?

Something I found that might help: https://unix.stackexchange.com/questions/553743/correct-way-to-add-lib-ld-linux-so-3-in-debian

Lastly, let me look into building for aarch64.

wouterdebie commented 3 years ago

@dwilson1251 would you be able to test out an aarch64 build? I just built one here: https://github.com/wouterdebie/locast2tuner/actions/runs/1171889534

If you click on "aarch64deb" you'll get a zip file that contains a .deb package.

dwilson1251 commented 3 years ago

@wouterdebie - Took me a minute to figure out how to get the package over to the remote machine over a wireguard vpn, but made it happen. It appears to be working from the logs, and is recognized by Plex; currently refreshing guide data. Appreciate the effort

wouterdebie commented 3 years ago

Awesome! Thanks for testing! I'll merge this into the main branch, which will allow you to install through apt-get. I'll let you know when the package is in the repo and you can try to install it.

wouterdebie commented 3 years ago

@dwilson1251 you should be able to test using apt-get and depending on your setup an amd64 package should be downloaded.

dwilson1251 commented 3 years ago

@wouterdebie - sorry for the delay; pulled using apt-get and locast2tuner_0.3.10_arm64.deb was unpacked

Looks like we're all set, no issues noted in the logs and plex tuner functioning as expected. Very much appreciated!

wouterdebie commented 3 years ago

Awesome! Thanks!!

On Thu, Aug 26, 2021, 18:08 dwilson1251 @.***> wrote:

Closed #95 https://github.com/wouterdebie/locast2tuner/issues/95.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/wouterdebie/locast2tuner/issues/95#event-5215698286, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABKABSQXXOIH5WW7GGRMYTT63CQDANCNFSM5C2LDYJA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.