Jump to content
dlandon

[support] dlandon - Logitech Media Server

90 posts in this topic Last Reply

Recommended Posts

I have created an updated LMS Docker that is updated to the latest LMS - 7.9.1 and includes OS updates.  There isn't much development activity on LMS these days, but because this Docker is a server, I want to at least keep the Linux patches and security updates applied.

 

Use CA to find and install the LogitechMediaServer.

 

Note: Be sure to remove any previous LogitechMediaServer Dockers.

 

A appdata/LogitechMediaServer/Playlist folder is created.  You can use this location for your playlists, or choose another location if your playlists are stored elsewhere.

 

An update is performed on every startup to keep patches and security updates applied to Linux.  LMS is not updated.  A new docker has to be built to update LMS.


Recommended Settings

  • Change the scanner performance setting - 'Settings->Advanced->Performance->Database Memory Config' to maximum.  This should speed up scanning of libraries, especially large libraries.

 

Command Line Interface

 

LMS has a command line interface at port 9090.  A description of the CLI is here.  You access the CLI using telnet at Tower:9090.

Edited by dlandon

Share this post


Link to post

The appdata/LogitechMediaServer/playlist folder is now created when LMS is installed. 

Edited by dlandon

Share this post


Link to post

This is great, I noticed the other day LMS went to 7.9.0 and was looking at a way of updating my current LMS docker.

Is there a migration process from the Gfjardim's LMS docker container?

 

Thanks once again xD

Share this post


Link to post

Just remove his docker and install this one.  My docker is based on his work, so they are very much the same.  The appdata mapping is the same and the database is the same.  I lost my playlists, but that may have just been me.

 

I am going to try to keep the docker current with the latest LMS, even though I think the development has slowed down a lot.  The thing I added though is the updates to the OS to keep patches applied and apply security updates each time the docker is started.

Share this post


Link to post
On 4/16/2017 at 10:56 PM, dlandon said:

The appdata/LogitechMediaServer/Playlist folder is created.

 

An upgrade is performed on every startup to keep patches and updates applied.

Hi @dlandon what do these 2 lines mean exactly?

Previously the playlist folder was a variable (along with the music source) that could be set... Just need to know as I do not want to loose my playlists.

Also, by upgrade is performed on every startup, does this mean that each time docker is started, this docker will attempt to pull the latest LMS nightly build or stable release or something?? 

 

Thanks.

Share this post


Link to post

A playlists folder is created in the appdata/LogitechMediaServer folder which is where LMS can put the playlists.  You don't have to use that location.  Keep a copy of your playlists and put them in the appdata/LogitechMediaServer folder and then tell LMS in the setup that is where your playlists are, or setup LMS to where you keep your playlists.  I would have a backup copy though.  I think I broke my playlists because I set something up wrong.  LMS couldn't find the music for the playlist.  I just started over because my playlists were not complicated.

 

I would keep your current LMS appdata configuration and just install this version and not start from scratch.  I think that's where I created my problems with playlists.

 

The udgrade is for OS patches and security updates.  I will have to re-build the docker whenever there is an LMS update.  It is not automatic.

Share this post


Link to post

Seems to be working fine.

One thing, I am wondering if the music source config path needs to be read/write. I would imagine by default read should be sufficient right?

 

Hopefully this update will fix my problem of the current playlists never seeming to be correct whenever I restart my server, it always seems to have forgotten what I was listening to last session.

 

Thanks again.

Edited by johnieutah

Share this post


Link to post
2 hours ago, johnieutah said:

Seems to be working fine.

One thing, I am wondering if the music source config path needs to be read/write. I would imagine by default read should be sufficient right?

 

Hopefully this update will fix my problem of the current playlists never seeming to be correct whenever I restart my server, it always seems to have forgotten what I was listening to last session.

 

Thanks again.

As far as I know LMS does not write to the music folder.

Share this post


Link to post

All updated with no probs.

 

Good reason to update: LMS web UI now works in Edge post Creators Update once again :-)

Cheers.

Share this post


Link to post
28 minutes ago, johnieutah said:

All updated with no probs.

 

Good reason to update: LMS web UI now works in Edge post Creators Update once again :-)

Cheers.

That's one of the reasons I updated LMS.

Share this post


Link to post
21 minutes ago, dlandon said:

LMS updated to 7.9.1 latest.

Are you aware of an official change log?

 

Thanks.

Share this post


Link to post
3 hours ago, johnieutah said:

Are you aware of an official change log?

 

Thanks.

Yes.  Here.

Share this post


Link to post

Could you consider adding IO::Socket::SSL to the docker? I'm trying to use the Podcast plugin to listen to a Podcast that's available via an HTTPS feed, and I keep getting the error:

 

There was an error loading the remote feed for : (Can't connect to https URL lack of IO::Socket::SSL

Thanks!

Share this post


Link to post

Done.  Update to the latest Docker.

 

Because of including these packages and building a new Docker, the latest nightly build of LMS was included.  The change log is here.  No major changes.

Share this post


Link to post

Awesome. Thanks!

 

Seems to have addressed the issue. After updating the server's Web UI can now properly load the feed.xml and show the tracklist. I'll have to wait until I'm home tonight in order to test actually playing the feed, but I'm assuming that won't be a problem.

 

Cheers,

 

-A

Share this post


Link to post

I'm really sorry to do this to you again, but now I'm trying to load up the latest ShairTunes2 (fork) plugin in order to enable my LMS as an AirPlay receiver, and I'm getting a "Plugin Failed to load" error. If you check the LMS docker log file, it's pretty clear why:

 

[17-07-11 11:44:17.8246] Slim::bootstrap::tryModuleLoad (286) Warning: Module [Plugins::ShairTunes2W::Plugin] failed to load:

Can't locate Crypt/OpenSSL/RSA.pm in @INC (you may need to install the Crypt::OpenSSL::RSA module) (@INC contains: /usr/sbin/Plugins/ShairTunes2W/lib /config/cache/InstalledPlugins/Plugins/ShairTunes2W/lib /config/cache/InstalledPlugins /usr/share/squeezeboxserver/CPAN/arch/5.22/x86_64-linux-thread-multi /usr/share/squeezeboxserver/CPAN/arch/5.22/x86_64-linux-thread-multi/auto /usr/share/squeezeboxserver/CPAN/arch/5.22.1/x86_64-linux-gnu-thread-multi /usr/share/squeezeboxserver/CPAN/arch/5.22.1/x86_64-linux-gnu-thread-multi/auto /usr/share/squeezeboxserver/CPAN/arch/5.22/x86_64-linux-gnu-thread-multi /usr/share/squeezeboxserver/CPAN/arch/5.22/x86_64-linux-gnu-thread-multi/auto /usr/share/squeezeboxserver/CPAN/arch/x86_64-linux-gnu-thread-multi /usr/share/squeezeboxserver/CPAN/arch/5.22 /usr/share/squeezeboxserver/lib /usr/share/squeezeboxserver/CPAN /usr/share/squeezeboxserver /usr/sbin /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /config/cache/InstalledPlugins/Plugins/ShairTunes2W/Plugin.pm line 33.
BEGIN failed--compilation aborted at /config/cache/InstalledPlugins/Plugins/ShairTunes2W/Plugin.pm line 33.

 

Any chance you could add OpenSSL to the Docker OS when you get a chance?

 

Cheers,

 

-A

Share this post


Link to post
6 hours ago, Ambrotos said:

I'm really sorry to do this to you again, but now I'm trying to load up the latest ShairTunes2 (fork) plugin in order to enable my LMS as an AirPlay receiver, and I'm getting a "Plugin Failed to load" error. If you check the LMS docker log file, it's pretty clear why:

 


[17-07-11 11:44:17.8246] Slim::bootstrap::tryModuleLoad (286) Warning: Module [Plugins::ShairTunes2W::Plugin] failed to load:

Can't locate Crypt/OpenSSL/RSA.pm in @INC (you may need to install the Crypt::OpenSSL::RSA module) (@INC contains: /usr/sbin/Plugins/ShairTunes2W/lib /config/cache/InstalledPlugins/Plugins/ShairTunes2W/lib /config/cache/InstalledPlugins /usr/share/squeezeboxserver/CPAN/arch/5.22/x86_64-linux-thread-multi /usr/share/squeezeboxserver/CPAN/arch/5.22/x86_64-linux-thread-multi/auto /usr/share/squeezeboxserver/CPAN/arch/5.22.1/x86_64-linux-gnu-thread-multi /usr/share/squeezeboxserver/CPAN/arch/5.22.1/x86_64-linux-gnu-thread-multi/auto /usr/share/squeezeboxserver/CPAN/arch/5.22/x86_64-linux-gnu-thread-multi /usr/share/squeezeboxserver/CPAN/arch/5.22/x86_64-linux-gnu-thread-multi/auto /usr/share/squeezeboxserver/CPAN/arch/x86_64-linux-gnu-thread-multi /usr/share/squeezeboxserver/CPAN/arch/5.22 /usr/share/squeezeboxserver/lib /usr/share/squeezeboxserver/CPAN /usr/share/squeezeboxserver /usr/sbin /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /config/cache/InstalledPlugins/Plugins/ShairTunes2W/Plugin.pm line 33.
BEGIN failed--compilation aborted at /config/cache/InstalledPlugins/Plugins/ShairTunes2W/Plugin.pm line 33.

 

Any chance you could add OpenSSL to the Docker OS when you get a chance?

 

Cheers,

 

-A

Done.

Share this post


Link to post

Hm, unfortunately that didn't resolve the startup exception. But, digging into it a bit I think I know why.

 

The log reports the error in the file Plugin.pm, line 33. If you open that file, it's trying to load Crypt::OpenSSL::RSA, a Perl module. If you check earlier in that same file, you see the line

use lib catdir($Bin, 'Plugins', 'ShairTunes2W', 'lib');

... so the module is expecting the ./Plugins/ShairTunes2W/lib folder to contain the library of Perl modules for loading. The lib folder seems to contain OpenSSL module files for each of several recent versions of Perl; 5.12, 5.14, 5.18, and 5.20. Unfortunately, if you run docker exec -it perl -v in the latest LMS docker, you can see what we're running Perl v5.22. Just on a whim, I tried copying the 5.20 directory to a new directory called 5.22, but upon restart that resulted in a different error regarding undefined symbols etc.

 

Anyway, it seems that the ShairTunes2 plugin is looking for OpenSSL Perl modules in the config/cache/InstalledPlugins/Plugins/ShairTunes2W/lib folder, not the OpenSSL executable in /usr/bin. I'm going to see if I can download the OpenSSL modules specifically for Perl 5.22 from CPAN and load them into the correct library folder. I'll let you know how it goes.

 

Cheers,

 

-A

Share this post


Link to post
2 hours ago, Ambrotos said:

Hm, unfortunately that didn't resolve the startup exception. But, digging into it a bit I think I know why.

 

The log reports the error in the file Plugin.pm, line 33. If you open that file, it's trying to load Crypt::OpenSSL::RSA, a Perl module. If you check earlier in that same file, you see the line


use lib catdir($Bin, 'Plugins', 'ShairTunes2W', 'lib');

... so the module is expecting the ./Plugins/ShairTunes2W/lib folder to contain the library of Perl modules for loading. The lib folder seems to contain OpenSSL module files for each of several recent versions of Perl; 5.12, 5.14, 5.18, and 5.20. Unfortunately, if you run docker exec -it perl -v in the latest LMS docker, you can see what we're running Perl v5.22. Just on a whim, I tried copying the 5.20 directory to a new directory called 5.22, but upon restart that resulted in a different error regarding undefined symbols etc.

 

Anyway, it seems that the ShairTunes2 plugin is looking for OpenSSL Perl modules in the config/cache/InstalledPlugins/Plugins/ShairTunes2W/lib folder, not the OpenSSL executable in /usr/bin. I'm going to see if I can download the OpenSSL modules specifically for Perl 5.22 from CPAN and load them into the correct library folder. I'll let you know how it goes.

 

Cheers,

 

-A

You need to let me know what packages need to be installed.

Share this post


Link to post

That's what I'm trying to confirm. Right now, it appears that the only things missing are the following modules:

 

Bignum.pm

RSA.pm

Random.pm

 

...but I'm trying to make sure that if I provide these modules manually then it starts properly. I don't want to ask for a list of modules that winds up being incomplete. The current error message only lists RSA.pm, but that's just because that's where it currently fails. I can't be sure that it won't fail on some dependency further down the list until I try it for myself.

 

Hopefully I'll have an opportunity to dig a bit more after work this evening. I'll keep you posted.

 

Cheers,

 

-A

Share this post


Link to post
24 minutes ago, Ambrotos said:

 

Hopefully I'll have an opportunity to dig a bit more after work this evening. I'll keep you posted.

 

 

Quick followup, I was able to get the plugin to start correctly by simply adding the following to the docker image:

 

docker exec -it LogitechMediaServer apt-get install libcrypt-openssl-bignum-perl libcrypt-openssl-random-perl libcrypt-openssl-rsa-perl

 

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.