Home of the Squeezebox™ & Transporter® network music players.
Page 1 of 2 12 LastLast
Results 1 to 10 of 12
  1. #1

    How to install 3rd-party plugins for SB Touch's Squeezebox Server instance

    Note: this isn't supported by Logitech, and won't survive firmware updates. Also some plugins won't work -- some won't load in Touch's SBS instance because they assume the Web UI will be available and blindly try to call APIs that aren't available on Touch; others may have architectural dependencies (for instance, my DenonSerial plugin on Linux requires a compiled version of the Device::SerialPort Perl module, and does not bundle a copy compiled for the Touch/ARM architecture). Many plugins, especially older plugins, cannot be fully configured without the Web interface.

    Also, there is very little free RAM on Touch -- the device only has 128 MB of RAM, and I've seen it use about 115-125 MB to run the built-in Squeezebox Server instance alongside the normal Touch "player" software. Some plugins might need more than the 5-10 MB of unallocated RAM that is available on Touch. Push it too far and Touch will crash/reboot. There doesn't seem to be any easy way to create a page/swap file to give you some breathing room (at the expense of performance). If you really want an ultra-lower power, compact server, you're probably better off with a SheevaPlug -- since about half of Touch's memory is need for the player software (jive and jive-alsa) and SheevaPlug has twice the installed RAM, it should be a much better server platform. Caveat hacker.

    What you'll need:
    • Squeezebox Touch (note: Amazon affiliate code shamelessly embedded in URL)
    • A computer for copying the plugin to Touch.
    • For that computer, an SCP client program like WinSCP for Windows
    • For that computer, a Telnet client (Windows, Mac, Linux all include command-line Telnet clients)


    What to do:
    • Download the plugin's zip file. If the author hasn't provided an easy way to find the link, you may need to examine some Squeezebox Server repository XML files. Logitech hosts a few on MySqueezebox.com: Logitech extensions, Recommended extensions, and Other 3rd-party extensions. Here's the XML for my current VolumeLock plugin (the latest version of the first plugin I ever wrote, finishing it before I even received my Squeezebox):
      Code:
      <plugin name="VolumeLock" creator="Watkins, Peter" email="peterw@tux.org" 
      link="http://www.tux.org/~peterw/slim/VolumeLock.html" maxTarget="7.*" 
      minTarget="7.0" sha="144a84253a1e1dc7b97b06bc80cc7d831c0542e7"
      url="http://www.tux.org/~peterw/slim/slim7/VolumeLock/VolumeLock-2.1.15.zip" 
      version="2.1.15">
      <changes lang="EN">
      2.1.15: fixed volume & unmuting in 7.4/Radio; 2.1.14: more 7.4 fixes, new approach for Radio and Touch; 2.1.12: initial fixes for 7.4, but do NOT try to lock or cap the volume of a Touch or Radio (or Controller)!
      </changes>
      <desc lang="EN">
      Allows you to lock the analog and digital output levels of any Squeezebox, Transporter, or SliMP3. Can either prevent any changes in volume, or simply set a maximum volume. (Boom, Classic, Radio, Receiver, Slimp3, SoftSqueeze, Squeezebox1, Touch, Transporter)
      </desc>
      <title lang="EN">VolumeLock</title>
      </plugin>
      The "plugin" tag tells you it's a plugin (and not an applet, wallpaper image, etc.) The "url" attribute of that first "plugin" tag tells you where my zip file is (the minTarget says it should work on Squeezebox Server 7.0 or newer, and maxTarget says it should work on any 7.x version. Touch runs SBS 7.5, so this plugin is a good candidate.
    • Unzip the zip file on your computer. You should end up with a directory with the plugin's name (e.g. VolumeLock). The directory will have an "install.xml" file and some other content, possibly other subdirectories.
    • Make sure remote login is enabled for your Touch. On Touch itself, use Home > Settings > Advanced > Remote login and check the Enable SSH box.
    • Use your SSH client to log in to your Touch (use Home > Settings > Advanced > Diagnostics to find the IP address for your Touch)
    • Use your SCP client to copy the unzipped folder to the /usr/squeezecenter/Plugins directory on Touch (so you should end up with a new directory on Touch like /usr/squeezecenter/Plugins/VolumeLock).
    • On Touch, use Home > Settings > Advanced > Squeezebox Server and stop Touch's SBS instance. Wait patiently for it to stop.
    • On Touch, use Home > Settings > Advanced > Squeezebox Server and start Touch's SBS instance. Wait patiently for it to start.
    • With your SCP client, browse to /etc/squeezecenter/prefs on Touch. You should now see a folder named "plugin" or "plugins" and inside that you should see a file named after the plugin you just installed, e.g. "VolumeLock.prefs".
    • I would suggest you go back and disable remote login now.**


    At this point you may still need to configure the plugin. For instance, VolumeLock is somewhat effective on Touch and Radio but cannot be configured through the normal Touch and Radio menus. Here's how I configured VolumeLock to cap the volume on my Touch. This is a little tricky no just because the command line stuff can feel awkward, but because the preferences used for specific plugins are usually not documented. Normally you'd need to either configure the plugin on a full version of SBS and mimic its settings, or read the plugin's source code. VolumeLock has two key per-player preferences. The "volumeLockMode" pref determines how & whether to restrict a player's volume. Possible values are "PLUGIN_VOLUME_ALLOW_ALL" (don't interfere), "PLUGIN_VOLUME_FIX" (try to prevent any change up or down), and "PLUGIN_VOLUME_SET_MAX" (allow turning the volume down, but never allow it to go louder than the configured maximum). The "volumeLockVolume" pref is the volume level specified for the fixed or max volume scenarios.

    On Touch, Home > Settings > Advanced > Diagnostics gives you its IP address and its MAC address (there are other ways to get the MAC address, including looking on the label underneath your Touch). You can now use your telnet app to connect to its CLI network interface, with a command on your computer like
    Code:
    telnet 192.168.1.10 9090
    . replacing 192.168.1.10 with the Touch IP address. After turning Touch's volume down, I used these CLI commands to configure it for a maximum volume:
    Code:
    00:04:20:11:22:33 playerpref plugin.VolumeLock:volumeLockVolume 70
    00:04:20:11:22:33 playerpref plugin.VolumeLock:volumeLockMode PLUGIN_VOLUME_SET_MAX
    where 00:04:20:11:22:33 is my player's MAC address, and "plugin.VolumeLock" is taken from the file & directory names in Touch's /etc/squeezecenter/prefs directory. Now when I try to increase the volume on my Touch beyond 70, VolumeLock takes action, turning the volume down and displaying a popup reminding me that the volume is capped.

    Did I mention running plugins on Touch like this is not supported by Logitech? If something goes horribly wrong, you should perform a factory reset. On Touch, you can do this by holding the reset button (just above the power jack) for about 20 seconds.

    -Peter

    ** For quite a while now, remote access to Controller, Radio, and Touch has set up SSH with a constant default password. This is a security risk, especially if you ever connect your Squeezebox to "public" networks. It's this kind of security flaw that makes jailbreaked iPhones vulnerable -- the jailbreak software tends to set a default root password, and the phone owners don't bother changing it. You can change Touch's root password, but why not just disable SSH?
    http://www.tux.org/~peterw/
    Note: The best way to reach me is email or PM, as I don't spend time on the forums.
    Free plugins: AllQuiet Auto Dim/AutoDisplay BlankSaver ContextMenu DenonSerial
    FuzzyTime KidsPlay KitchenTimer PlayLog PowerCenter/BottleRocket SaverSwitcher
    SettingsManager SleepFade StatusFirst SyncOptions VolumeLock

  2. #2
    Senior Member erland's Avatar
    Join Date
    Dec 2005
    Location
    Sweden
    Posts
    11,002
    Maybe you could also put this information on the wiki to make it easier for people to find it later ?
    Erland Isaksson (My homepage)
    Lead platform developer of ickStream Music Platform - A world of music at your fingertips

    (Also developer of many plugins/applets (both free and commercial). If you like to encourage future presence on this forum and/or third party plugin/applet development, consider purchasing some plugins)

  3. #3
    Senior Member iPhone's Avatar
    Join Date
    Oct 2007
    Location
    Atlanta
    Posts
    2,996
    I have been doing some Plugin hacks on my Touch running TinySC. Peter, how stable has your Touch been running Plugins with TinySC running? The reason I ask is that my Touch just runs and runs with TinySC. But after several hours and no more then a few days with TinySC and plugins, I get restarts or crashes.

    For AndyG, would it help to remove more of the builtin plugins if they are ones we don't use?
    iPhone
    Media Room:
    ModWright Platinum Signature Transporter, VTL TL-6.5 Signature Pre-Amp, Ayre MX-R Mono's, VeraStarr 6.4SE 6-channel Amp, Vandersteen Speakers: Quatro Wood Mains, VCC-5 Reference Center, four VSM-1 Signatures, Video: Runco RS 900 CineWide AutoScope 2.35:1, Vandersteen V2W Subwoofer

    Living Room:
    Transporter, ADCOM GTP-870HD, Cinepro 3K6SE III Gold, Vandersteen Model 3A Signature, Two 2Wq subs, VCC-2, Two VSM-1

    Office: Touch with Vandersteen VSM-1s
    Kitchen: Touch in-wall mount w/ Thiel Powerpoint 1.2s
    Bedroom: Squeezebox BOOM
    Bathroom: Squeezebox Radio
    Around the House: SliMP3, SB1, SB2, SB3
    Ford Thunderbird: Duet, Mac Mini
    Ford Expedition: SB Touch, USB drive

  4. #4
    Senior Member JJZolx's Avatar
    Join Date
    Apr 2005
    Location
    Colorado
    Posts
    11,420
    Quote Originally Posted by iPhone View Post
    would it help to remove more of the builtin plugins if they are ones we don't use?
    I certainly can't imagine it would hurt.

    /etc/squeezecenter/prefs/plugins/state.prefs

  5. #5
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    19,475

    How to install 3rd-party plugins for SBTouch's Squeezebox Server instance

    > Maybe you could also put this information on the wiki to make it easier
    > for people to find it later ?


    And please don't forget to add a note to do a factory reset before calling support :-)

    --

    Michael

  6. #6
    Junior Member
    Join Date
    Sep 2009
    Posts
    21

    Trying to install ickstream plugin on SB-Touch server

    Hi,

    With reference to Pippin's post here: http://forums.slimdevices.com/showth...737#post868737

    I'm trying without luck to install the ickstream plugin on the "Squeezebox Touch server"(TinySC installed ON the Touch") v. 7.7.3(latest TinySC I can find).

    The error messages I get on restarting the server and when it tries to install the plugin are:
    Code:
    [70-01-01 01:42:41.6425] Slim::bootstrap::tryModuleLoad (283) Warning: Module [Plugins::IckStreamPlugin::Plugin] failed to load:
    Can't locate Plugins/IckStreamPlugin/Plugin.pm in @INC (@INC contains: /usr/squeezecenter/Slim/Plugin/IckStreamPlugin/lib /etc/squeezecenter/cache/InstalledPlugins /usr/squeezecenter/CPAN/arch/5.10/arm-linux-gnueabi-thread-multi /usr/squeezecenter/CPAN/arch/5.10/arm-linux-gnueabi-thread-multi/auto /usr/squeezecenter/CPAN/arch/5.10.0/arm-linux-gnueabi /usr/squeezecenter/CPAN/arch/5.10.0/arm-linux-gnueabi/auto /usr/squeezecenter/CPAN/arch/5.10/arm-linux-gnueabi /usr/squeezecenter/CPAN/arch/5.10/arm-linux-gnueabi/auto /usr/squeezecenter/CPAN/arch/arm-linux-gnueabi /usr/squeezecenter/lib /usr/squeezecenter/CPAN /usr/squeezecenter /usr/squeezecenter /etc/perl /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl   .) at (eval 804) line 2.
    BEGIN failed--compilation aborted at (eval 804) line 2.
    
    [70-01-01 01:42:41.6643] Slim::Utils::PluginManager::load (295) Error: Couldn't load Plugins::IckStreamPlugin::Plugin
    Firstly, I'm uncertain about which plugin to download and install.

    However, I've tried the linux, linux-arm and windows version - all to no avail.


    Anyone who could please shed some light on the subject and help me install the ickstream plugin onto the SBT embedded server?


    Any help would be greatly appreciated!


    Best regards,

    Vegard

  7. #7
    Babelfish's Best Boy mherger's Avatar
    Join Date
    Apr 2005
    Location
    Switzerland
    Posts
    19,475

    How to install 3rd-party plugins for SBTouch's Squeezebox Server instance

    > I'm trying without luck to install the ickstream plugin on the
    > "Squeezebox Touch server"(TinySC installed ON the Touch") v.
    > 7.7.3(latest TinySC I can find).


    Forget it. The Touch doesn't have enough memory to do this. Do yourself
    a favor and get a Raspberry Pi to run LMS instead.

    --

    Michael

  8. #8
    Junior Member
    Join Date
    Sep 2009
    Posts
    21
    Quote Originally Posted by mherger View Post
    >

    Forget it. The Touch doesn't have enough memory to do this. Do yourself
    a favor and get a Raspberry Pi to run LMS instead.

    --

    Michael
    Thanks for the advice, Michael! -Guess I'll drop this project right away, then!...

    LMS on the raspberry is a great project and I'm sure I'll check it out when my Touch dies.

    However, for the time being, it seems a little overkill, as I'm only trying to get a way to access the ickstream plugin user interface for Tidal etc. without cranking on my workstation server every time. Since the ickstream plugin also keeps my harddisks spinning and from going into standby on my Mybook Live NAS even when not in use, the ickstream plugin on the Touch's TinySC seemed like a great idea, suggested also by another guru on these forums; Pippin.

    Guess I'll wait for a plugin fix or try your suggestion with a rasberry LMS installation with remote library from the NAS if I get to impatient.

    Keep up the good work!

    Vegard

  9. #9
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    14,498
    Quote Originally Posted by Vegz78 View Post
    the ickstream plugin on the Touch's TinySC seemed like a great idea, suggested also by another guru on these forums; Pippin.
    Didn't Pippin suggest an applet not a plugin ? if it is a true Applet then not the same as a plugin.

  10. #10
    Junior Member
    Join Date
    Sep 2009
    Posts
    21
    Quote Originally Posted by bpa View Post
    Didn't Pippin suggest an applet not a plugin ? if it is a true Applet then not the same as a plugin.
    Nope, on the contrary.

    I found the Ickstream applet and wondered if and how it could be installed on the Squeezebox Touch. On that subject Pippin was kind enough to respond and tell me that the applet would replace the Squeeze firmware on the Touch instead of augmenting it, and that it was only developed as an experiment for something else, required an Ickstream controller and wasn't really the focus right now.

    Further he noted about the applet:
    "..the applet does something else, it's a software that runs only on the Touch and plays locally there, it can't be controlled with e.g. iPeng. But in the case of the ickStream applet it could be controlled with an ickStream controller, but what you can not do that way is control all the other Squeezebox functionality on the Touch. It was really meant to offer a compatibility path to a different system."


    Then he suggested that I might try to install the Ickstream plugin on the Squeezebox server(TinySC) embedded in the Squeezebox Touch, which might give med the functionality I was looking for(Ickstream functionality without turning on my PC server with LMS and my whole music library and without putting load, perpetuate HDD activity and hight temperature on my Mybook Live NAS):
    "Now... LMS can run on the Touch as well as you know and although it lacks an installer you can technically (if done manually) also install plugins there and this might actually even work with the ickStream plugin (haven't tried it)."


    This I tried, but failed. And when I asked for help on this thread, Michael, was kind enough to answer and inform me about the scarce memory resources on the Squeezebox Touch, that installing the Ickstream plugin there probably wouldn't work, and that installing LMS on a Rasberry PI probably was a better idea to acheive the functionality I'm looking for.


    Now, for the time being, LMS is running with the Ickstream plugin on my Mybook Live NAS, which is really driving me nuts with the etarnally spinning disks, its scary high operating temperatures and my fear of disk crash and data loss.


    Since I today mostly listen to streamed online music and it's soon Christmas, I'm seriously contemplating a ready made Rasberry Pi solution with a cabinet and a decent soundcard...


    In the meantime, if anybody against all odds has any luck and could share their experience in installing Ickstream as a working plugin on the Squeezebox Touch TinySC or installing LMS with the Ickstream plugin on a WD Mybook Live NAS while managing to get the disks to spin down on inactivity, I'd be happy to hear about it!

    Have a nice day!


    Vegard

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •