I recently bought an Ocean Digital Internet radio - WR210N - in anticipation of (finally) being able to travel again (one day!). It's a nice piece of kit - reasonable sound - good battery life and eminently portable, I use it a lot around the house.
I wondered if I could connect it to my music collection, currently hosted on a PI3B+ running PCP + LMS, so I installed Andy Grundman's UPnP/DNLA plugin, tried to connect to my LMS server and got nothing, nada, ziltch !
I bit of trawling through the net with Google finally gave me this post, which beautifully explains the problem and outlines the solution.
So I decided to see if I could implement the suggested fix and check whether it works.
Good News, it does. :D I can now connect to my music collection.
Basically what I have done is to unpack slimserver.tcz from the SD card, modify Discovery.pm, and pack it all back again. Works like a charm, the only caveat is the you have to do it every time there is a new LMS version.
Perhaps someone a little more savvy than I could look at parameterising the plugin to achieve the same result.
However, this is what I did using a Deepin 20.2 virtual machine :-
This bodge should work with any UPnP player that relies on port 1900 for M-Search to look for a suitable server.
I hope it will be of use to someone.
NWJ
I wondered if I could connect it to my music collection, currently hosted on a PI3B+ running PCP + LMS, so I installed Andy Grundman's UPnP/DNLA plugin, tried to connect to my LMS server and got nothing, nada, ziltch !
I bit of trawling through the net with Google finally gave me this post, which beautifully explains the problem and outlines the solution.
Code:
https://forums.slimdevices.com/showthread.php?110925-UPnP-DLNA-Media-Interface-1-0-must-listen-to-port-1900-with-Ocean-Digital-WR-230S
Good News, it does. :D I can now connect to my music collection.
Basically what I have done is to unpack slimserver.tcz from the SD card, modify Discovery.pm, and pack it all back again. Works like a charm, the only caveat is the you have to do it every time there is a new LMS version.
Perhaps someone a little more savvy than I could look at parameterising the plugin to achieve the same result.
However, this is what I did using a Deepin 20.2 virtual machine :-
Code:
# Mount your SD card - not detailed as it depends on your set-up
# Get root access
sudo su
# Enter password to allow root operations
# Change to root level
cd /
# Make a work Directory
mkdir /home/user/Documents/TCZ
# Copy slimserver.tcz to your work area
cp /media/user/PCP_ROOT/tce/optional/slimserver.tcz /home/user/Documents/TCZ/slimserver.tcz
# Unsquash it
unsquashfs -d /home/user/Documents/TCZ/squashfs-root /home/user/Documents/TCZ/slimserver.tcz
# Rename the original file (just in case)
mv /home/user/Documents/TCZ/slimserver.tcz /home/user/Documents/TCZ/slimserver-orig.tcz
# Edit Discovery.pm
nano /home/user/Documents/TCZ/squashfs-root/usr/local/slimserver/Slim/Plugin/UPnP/Discovery.pm
# Find the Lines
# DLNA 7.2.3.5, ignore M-SEARCH with source port 1900 or <1024
if ($port == 1900 || $port <= 1024) {
# And Change to read
# DLNA 7.2.3.5, ignore M-SEARCH with source port 1900 or <1024
#if ($port == 1900 || $port <= 1024) {
# DLNA 7.2.3.5, ignore M-SEARCH with source port <1024 (Allow 1900 for Ocean Digital, etc.)
if ($port <= 1024) {
# NOTE: if statements DO NOT have a leading #
# Resquash it
mksquashfs /home/user/Documents/TCZ/squashfs-root /home/user/Documents/TCZ/slimserver.tcz
# Create an MD5 Checksum
md5sum /home/user/Documents/TCZ/slimserver.tcz > /home/user/Documents/TCZ/slimserver.tcz.md5.txt
# Now copy the new files
cp /home/user/Documents/TCZ/slimserver.tcz /media/user/PCP_ROOT/tce/optional/slimserver.tcz
cp /home/user/Documents/TCZ/slimserver.tcz.md5.txt /media/user/PCP_ROOT/tce/optional/slimserver.tcz.md5.txt
# Tidy up
rm -r /home/user/Documents/TCZ/*
I hope it will be of use to someone.
NWJ