Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 3 of 3
  1. #1
    Senior Member
    Join Date
    Jul 2008
    Posts
    139

    Request for Comments: Alps

    I've been spending quite a bit of time with Alpine Linux on Raspberry Pi's and x86_64. I have an idea I've been mulling over and tinkering around with, I'm calling it Alps, as a riff on the Alpine theme, and which may or may not be an acronym (Another Logitech Player Server or Alpine Linux Player Server or Alpine LMS Plus Squeezelite or ??).

    It's in its' infancy and I'm probably jinxing it by posting about it prematurely, but, I feel like the big pieces are in place and I just need to fit them together. I have packages for LMS and Squeezelite (currently redoing the armhf build environment), and most/all of the additional packages are in the Alpine repos, including those needed to support bluetooth.

    The general idea is rather than have a web (or other UI) on the player itself for configuration, you would do any player config through a plugin for LMS (called Alps), using the familiar plugin workflow and framework that LMS includes out of the box. There would be a global settings page that would apply to all Alps players and then player specific settings also. No settings would really be stored on the player side, they would be read from the server at player boot. The main exception would probably be for Raspberry Pi config.txt (usercfg.txt) which are needed early in the boot process.

    I've got a proof of concept plugin working on the LMS side, and headless setup scripts working on the client side. For example, the basic steps to setup an RPi would be:

    1. Download the stock Alpine tarball for your RPi.
    2. Format SD card and extract the Alpine tarball to it.
    3. Add the Alps tar.gz file to the root of the SD card and an optional wifi.txt file with SSID/credential info.
    4. Boot

    On first boot, the Alps script downloads and installs squeezelite, starts it with null sound output and then shows up in LMS with a unique player name based on the MAC address. Now that it's checked in with LMS, you go into the Alps plugin settings and configure the player. The player configures itself at each boot based on the settings stored on the server.

    As I said, I have most of the concept pieces working, the LMS plugin, the headless boot and player check-in etc. Just trying to think through the negatives to this approach. I'm basing the design to suit my setup which I assume is fairly typical but I'm not sure. By that I mean I have a home server already, which does other things besides run LMS. So this automatic player setup approach assumes that an LMS instance already exists on the network.

    One plus is that I've tested it with USB boot on x86_64 hardware (Wyse thin clients) so the same basic approach can be used for a variety of hardware, as long as Alpine supports it.

    Anyway, comments welcome!
    Last edited by sodface; 2020-09-07 at 07:39.

  2. #2
    Senior Member
    Join Date
    Jan 2017
    Posts
    117
    I think it is great extending the LMS ecosystem.

    One question I was asking myself with your approach was the benefit compared to existing solutions. If you are using RasPi's, I think there already is a great solution that covers quite a lot, maybe everything that is possible with LMS, squeezelite and RasPi's.

    So your solution would cover also x86 hardware. Is that the reason why you are working on it? Or is there something else?

  3. #3
    Senior Member
    Join Date
    Jul 2008
    Posts
    139
    Quote Originally Posted by schup011 View Post
    I think it is great extending the LMS ecosystem.

    One question I was asking myself with your approach was the benefit compared to existing solutions. If you are using RasPi's, I think there already is a great solution that covers quite a lot, maybe everything that is possible with LMS, squeezelite and RasPi's.

    So your solution would cover also x86 hardware. Is that the reason why you are working on it? Or is there something else?
    Hi schup011, thanks for the comments. The main reason I'm working on it is just for fun! But beyond that, I do agree that PiCorePlayer (I assume that's what you are referring to) is a full featured solution with a great bunch of guys developing and supporting it, but I really like Alpine and I'm running it on most everything I own, from my home router, thin clients and Rpi's, to the laptop I'm typing this on. It's a really versatile distro. I also thought managing players through an LMS plugin would make it feel like an integrated solution, give you a single point of management, and also save me from having to develop an interface that ran client side.

    I'm trying to have the player update itself at boot, so to get the latest packages you just reboot the player. Not sure if that will go for the base OS or just the add on packages, haven't got that far yet. Got Jivelite and related support packages built for x86_64 a couple nights ago. Got an Rpi4 setup for building aarch64 and an Rpi A+ for armhf. I think those are the only 3 architectures I'm going to host packages for at this time, all of which are supported by Alpine, at least for now. There's been talk about eliminating armhf or turning it over to the community to support. We'll see what happens. There's still not much out there that competes with the Pi Zero W as far as size/value/features IMO,

Posting Permissions

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