philippe44 / AirConnect

Use AirPlay to stream to UPnP/Sonos & Chromecast devices
Other
3.5k stars 216 forks source link

Raspbian Errors #8

Closed jrl290 closed 6 years ago

jrl290 commented 6 years ago

Tried running aircast-arm on Raspbian. After chmod +x, first error I got was: ./aircast-arm: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

Ran these to install libssl.so.1.0.0:

sudo wget http://ftp.nl.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u6_armhf.deb
sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u6_armhf.deb

Now I get the error: Illegal instruction

philippe44 commented 6 years ago

I've never seen that before. What Raspbian version are you using?

crhuber commented 6 years ago

Im also having the same problem on: Linux raspberrypi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux

RASPBIAN STRETCH WITH DESKTOP Image with desktop based on Debian Stretch Version:September 2017 Release date:2017-09-07 Kernel version:4.9 http://downloads.raspberrypi.org/raspbian/release_notes.txt

philippe44 commented 6 years ago

Did you try to install libssl with apt-get sudo apt-get update sudo apt-get install libssl1.0.0

crhuber commented 6 years ago

sudo apt-get install libssl1.0.0 Reading package lists... Done Building dependency tree
Reading state information... Done Package libssl1.0.0 is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source

E: Package 'libssl1.0.0' has no installation candidate

philippe44 commented 6 years ago

Yep, it seems that Stretch does not have any more libssl1.0.0 and has moved to 1.0.2. I don't have a solution yet, but you probably find some answers by searching around. I will work on that, but not before a few weeks

eldarionbb commented 6 years ago

I ran into the same error on my Raspberry Pi. After some searching I found an easy solution: you have to create symbolic links (with name equal to the old version) to the newer versions of the libraries (libssl and libcrypto). For the application it will seem that the correct version of the libraries is available.

Steps:

  1. Go to the folder where the newer versions of the libraries are located. On my Pi it is /usr/lib/arm-linux-gnueabihf. The installed version is libssl.so.1.0.2 and libcrypto.so.1.0.2.
  2. Create the symbolic links to the newer versions sudo ln -s libssl.so.1.0.2 libssl.so.1.0.0 sudo ln -s libcrypto.so.1.0.2 libcrypto.so.1.0.0
  3. Done! Now airupnp-arm will run like it should without throwing the error.
philippe44 commented 6 years ago

You can do that, but I'd rather install the Jesse version of openssl1.0.0. See README that I've updated

mkhorton commented 6 years ago

I tired the instructions about installing openssl1.0.0 from the README, but still got the illegal instruction error on Raspbian Stretch. Following eldarionbb's instructions above did work however, and I can run the pre-compiled bin now.

(Thanks for the great app btw, had tried to get mkchromecast/shairport-sync working without success, and AirConnect seems to be working flawlessly -- really appreciated!)

tomchkk commented 6 years ago

+1 for @mkhorton's comment re: @eldarionbb's instructions. Worked for me!

philz commented 5 years ago

I used the following steps to get this working on my Raspbian Stretch Raspberry Pi Zero, streaming to Sonos:

mkdir airconnect
cd airconnect
ln -s /usr/lib/arm-linux-gnueabihf/libssl.so.1.0.2 libssl.so.1.0.0
ln -s /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.2 libcrypto.so.1.0.0
wget https://raw.githubusercontent.com/philippe44/AirConnect/master/bin/airupnp-arm
chmod ugo+x airupnp-arm
LD_LIBRARY_PATH=$(pwd) ./airupnp-arm

Thanks to the previous commenters for getting me on the right track. I was unsuccessful with using the Stretch openssl package and with trying to use Docker.

philippe44 commented 5 years ago

I think you're going the complicated way. Look at the README and install the openssl lib 1.0.0

miked1313 commented 5 years ago

I am running Raspbian Stretch Lite 4.14 on a PI Model B Rev 2 with an arm6 CPU. I ran: wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u9_armhf.deb sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u9_armhf.deb

But I'm still getting the "Illegal instruction" error when I try to execute airupnp-arm. I did not try to create the symlink.

/usr/lib/arm-linux-gnueabihf contains: libssl.so.1.0.0 libssl.so.1.0.2 libssl.so.1.1

I did not try to run sudo apt-get install libssl1.0.0.

Suggestions?

pwt commented 5 years ago

@miked1313 I suspect that armhf is not supported on your CPU. You might want to try the following libssl version instead: http://security-cdn.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0-dbg_1.0.1t-1+deb8u9_armel.deb

I also wonder whether you need to use the airupnp-arm5 version of the AirConnect binary. This is just guesswork on my part, but it might be worth a quick test.

philippe44 commented 5 years ago

thats a good point @pwt, and I remember now that with older Pi CPUs, I have a problem with my build that I've never been able to sort out. It started when I switched to cross-compiling. The armhf version should work for all Pi, at least a 2B, but it does not not and I never understood why. I've tried different fp options and spent hours rebuilding the compiler again and again, but it never worked so I gave up. On older Pi with 2835, try the arm5el (no fp) and after with 2836, the armhf works (although from your post you have 2836 ...)

miked1313 commented 5 years ago

I ended up getting this to work the other evening. I did end up running sudo apt-get install libssl1.0.0 and it said that a newer version was already installed (1.1.0f). Then I re-ran: wget http://mirrordirector.raspbian.org/raspbian/pool/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u9_armhf.deb sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u9_armhf.deb

I may have rebooted after that. Then I was able to execute airupnp-arm. Thank you for your assistance!

pwt commented 5 years ago

For anyone interested in a potentially easier, Docker-based install for Raspberry Pis, you might want to try my nascent Docker packaging at: https://github.com/pwt/docker-airconnect-arm.

andrewdavidmackenzie commented 5 years ago

I tried the link approach and now I get an error: "version `OPENSSL_1.0.1' not found" which I asssume meaning my binary (cross-compiled using a docker) is linked against that specific version. But I cannot apt-get that version on my Pi, as it says it doesn't exist.

pwt commented 5 years ago

As advertised above, you may want to try my Raspberry Pi Docker image for airupnp. I handle all of the dependencies within the image. It's very stable running as a container, as well as being easy to manage and update.