philippe44 / LMS-Raop

LMS to AirPlay bridge
65 stars 12 forks source link

Did not pop up pair window when pair appleTV. #12

Closed goven closed 5 years ago

goven commented 5 years ago

I use Synology DS218+,and installed LMS with air-bridge plugin, after start LMS,it found my appleTV 4K and appeared a pair button, when I clicked pair button,my appleTV showed a pair code, but there is nothing happened on LMS,so I can't input the pair code showed on my appleTV to pair it.please help me.Thx!

philippe44 commented 5 years ago

Pairing requires some Perl crypto-libs which usually are not installed on NAS. I've tried to build and include as many as possible, but that's a royal pain as these libraries are CPU, OS and Perl version specific ... a lot of permutation & combination. You can either get the keys using a temporary installation on a PC with Windows, Linux or OSX or you can tell me what Perl, CPU and OS runs on your NAS (I assume Linux + Celeron but I have no idea wrt Perl version)

goven commented 5 years ago

Thx for your reply,my perl version is 5.24.0-0074,CPU is INTEL Celeron J3355,and OS on my NAS is Synology DSM 6.2.2-24922.can you please help me to solve this problem.Thx again!

goven commented 5 years ago

Hi,I don't want to disturb you, but I wanna know how it's going.could you please help me with this matter,That would be very nice of you.Thanks.

philippe44 commented 5 years ago

That combination of Linux/CPU/Perl should be supported. What do you have in the log when you set the level for Airplay bridge to debug and try to pair (set the level in LMS Settings, Advanced, Logging, do not use the AirPlay bridge settings

goven commented 5 years ago

maybe this log can help: [19-05-17 14:48:37.8271] Plugins::RaopBridge::Pairing::displayPIN (50) Cannot load crypto modules, please check your configuration

goven commented 5 years ago

Each time when I clicked the pair button, these logging appears : [19-05-17 15:13:09.6905] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.6901] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 99. [19-05-17 15:13:09.6914] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.6911] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 107. [19-05-17 15:13:09.6921] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.6919] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 113. [19-05-17 15:13:09.6928] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.6926] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 119. [19-05-17 15:13:09.6946] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.6943] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 128. [19-05-17 15:13:09.6964] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.6960] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 141. [19-05-17 15:13:09.6972] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.6969] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 147. [19-05-17 15:13:09.6989] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.6986] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 158. [19-05-17 15:13:09.6998] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.6994] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 164. [19-05-17 15:13:09.7015] Slim::Utils::Misc::msg (1254) Warning: [15:13:09.7011] Use of uninitialized value in concatenation (.) or string at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/HTML/EN/plugins/RaopBridge/settings/basic.html line 173. [19-05-17 15:13:35.4022] Plugins::RaopBridge::Pairing::displayPIN (50) Cannot load crypto modules, please check your configuration

goven commented 5 years ago

basic.html.zip

Here is the basic.html file.

philippe44 commented 5 years ago

Can you edit the file Pairing.pm (it’s in the plugin’s directory and at the end of the like ‘cannot load crypto ... ); replace ); by , $@);

goven commented 5 years ago

Pairing.pm.zip This this it,I'm not sure if I could edit properly,could you edit it for me?Thanks!

philippe44 commented 5 years ago

Pairing.pm.zip

goven commented 5 years ago

Image 2019-5-17 at 11 54 PM

I edit the file Pairing.pm,replaced ); by , $@); at the end of the "cannot load crypto); . here is the new error logging:

[19-05-17 23:48:52.5345] Plugins::RaopBridge::Pairing::displayPIN (50) Cannot load crypto modules, please check your configurationAttempt to reload CryptX.pm aborted. Compilation failed in require at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/Pairing.pm line 40.

philippe44 commented 5 years ago

So it seems that the crypto module does not load properly. I'm sorry but I don't know why. You can try that Pairing.pm file which will make the plugin fail to start but will give me probably a better idea why. Pairing.zip

goven commented 5 years ago

I replaced this pm file, and restarted LMS,then I go to LMS setting-plugins-air bridge-settings,it give me this error massage at this page,not in the log, same thing happens when I go to LMS setting-advance:

404 Not Found: plugins/Extensions/settings/plugins/RaopBridge/settings/basic.html

philippe44 commented 5 years ago

You must have something else in server.log when LMS restarts. On the web browser, don’t stay on the plugin settings page

goven commented 5 years ago

Is this what we looking for?

[19-05-18 20:25:26.4378] main::init (387) Starting Logitech Media Server (v7.9.1, 1504317335, Mon Sep 4 22:13:00 UTC 2017) perl 5.024000 - x86_64-linux [19-05-18 20:25:27.2417] Slim::Utils::PluginManager::load (393) Warning: Couldn't call Plugins::RaopBridge::Plugin->initPlugin: Can't locate Plugins/RaopBridge/Pairing.pm: /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/Pairing.pm: Permission denied at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/Plugin.pm line 33. [19-05-19 17:25:09.0263] Slim::Utils::Misc::msg (1254) Warning: [17:25:09.0024] Image::Scale libpng warning: iCCP: known incorrect sRGB profile (/volume1/@appstore/SqueezeCenter/Slim/Plugin/DontStopTheMusic/HTML/EN/plugins/DontStopTheMusic/html/images/icon.png)

philippe44 commented 5 years ago

Yes and no - when you copied the file Pairing.pm, you changed its owner and permissions so it can’t be loaded anymore. You must set it to what all other .pm have. Use a combination of chown, chgroup and chmod

goven commented 5 years ago

here is this.

[19-05-21 19:51:40.1166] main::init (353) Starting Logitech Media Server (v7.7.6, 1452060463, Thu Jan 21 02:17:04 UTC 2016) perl 5.024000 [19-05-21 19:51:43.0353] Slim::Utils::PluginManager::load (374) Warning: Couldn't call Plugins::RaopBridge::Plugin->initPlugin: Can't locate loadable object for module CryptX in @INC (@INC contains: /volume1/@appstore/SqueezeCenter/Plugins/RaopBridge/lib /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/lib /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins /volume1/@appstore/SqueezeCenter/CPAN/arch/5.24/x86_64-linux /volume1/@appstore/SqueezeCenter/CPAN/arch/5.24/x86_64-linux/auto /volume1/@appstore/SqueezeCenter/CPAN/arch/5.24.0/x86_64-linux /volume1/@appstore/SqueezeCenter/CPAN/arch/5.24.0/x86_64-linux/auto /volume1/@appstore/SqueezeCenter/CPAN/arch/x86_64-linux /volume1/@appstore/SqueezeCenter/CPAN/arch/5.24 /volume1/@appstore/SqueezeCenter/lib /volume1/@appstore/SqueezeCenter/CPAN /volume1/@appstore/SqueezeCenter/CPAN/auto /volume1/@appstore/SqueezeCenter /usr/local/lib/perl5/site_perl /usr/local/share/perl5/site_perl /usr/local/lib/perl5/vendor_perl /usr/local/share/perl5/vendor_perl /usr/local/lib/perl5/core_perl /usr/local/share/perl5/core_perl .) at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/Pairing.pm line 16. Compilation failed in require at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/Pairing.pm line 16. BEGIN failed--compilation aborted at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/Pairing.pm line 16. Compilation failed in require at /volume1/@appstore/SqueezeCenter/Cache/InstalledPlugins/Plugins/RaopBridge/Plugin.pm line 33. [19-05-21 19:51:47.9093] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:51:47.9112] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:51:58.9097] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:51:58.9117] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:52:09.9091] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:52:09.9111] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:52:18.8179] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:52:20.9120] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:52:20.9149] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:52:31.9086] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable! [19-05-21 19:52:31.9106] Slim::Web::JSONRPC::requestMethod (443) request not dispatchable!

goven commented 5 years ago

Hi,did it goes well?

philippe44 commented 5 years ago

It shows the problem: for some reason that I don't understand yet, your Perl system is not adding some of the directories containing crypto libraries to the search list. So when LMS starts, it can't load the plugin as they are missing. Might not be that, but running LMS on a NAS is often crippled with these kind of problem

goven commented 5 years ago

Thanks anyway, maybe it's the problem with my NAS environment,I choose to give up.

igoris commented 10 months ago

I also have this issue, with the same logs but on Mac OS. Sorry, not sure if it's better to resurrect this issue or create a new one.

I took a quick look at the code and it seems that offending line is this one https://github.com/philippe44/LMS-Raop/blob/master/plugin/Pairing.pm#L29. I'm not a perl programmer myself but it seems a bit weird to me because it looks like method->object instead of object->method. Reversing the call to CryptX->import seemed to fix it and the pairing was successful.

philippe44 commented 10 months ago

Indeed, you're right. I did that change last month to avoid a use CryptX that was bothering some but I screwed up...

Thanks!