Press "Enter" to skip to content

SqueezeCore: a minimal audio OS running Squeezelite.

The purpose of this project:

I built SqueezeCore because I needed a lightweight, minimal, plug&play OS to use it as a squeezelite player. The whole OS is 17MB and when running it occupies around 60MB of RAM; SqueezeCore must be installed on a USB drive and will run completely in RAM. Perfect to be installed on a thin client!

Requirements

  • RAM: 128MB
  • CPU: 32bit or 64bit, every CPU is ok, it can run on a toaster too
  • USB flash drive: 32MB
  • An ethernet port
  • A monitor for first setup (optional)
  • A keyboard for first setup (optional)
  • A computer running Logitech Media Server

Installation:

Download SqueezeCore .IMG from here: SqueezeCore
Flash the .IMG using Etcher or a similar software

Which version should I download?

1st rule: if you are unsure download the generic .img. It is usually more stable, and has less specific hardware requirements.
If you want to try the RT version please read all the FAQs before. Since the generic image is stable enough all the development will be on the RT.

Changelog

—Generic—
v0.1-ALPHA: initial release
v0.2-BETA: fixed a bug that caused squeezelite not being able to lock on the specified output device
v0.3-BETA: minor fixes
v1.0-STABLE: added support for static ip
v1.1-STABLE: added more debug options. Fixed a network bug
—Real Time Kernel—
v0.1-RT-BETA: initial release
v0.2-RT-BETA: added support to setup static ip
v0.3-RT-BETA: candidate release. added more debug info

First Setup:

Using monitor and keyboard (recommended):

Plug into your computer the USB flash drive with SqueezeCore, an ethernet cable (wifi not supported at the moment), a keyboard and a monitor.
Power on and boot from USB.
Now you will have to enter some squeezelite settings like: what audio device use as output, buffer settings and so on; if you have any doubts leave all settings as default and just select your audio output device. (Important: read carefully the options during the setup)
From now on every time you power on your computer squeezelite will start at boot with the defined settings.

Headless setup:

Plug the SqueezeCore USB drive to your computer. Create a file named squeeze.conf inside the “/config” directory. Open squeeze.conf with Notepad++ (or a similar editor that allows you to set the UNIX(LF) newline) and insert the squeezelite options following this example:

Output=hw:CARD=UD501,DEV=0 #1st line: output device
PlayerName=SqueezeCore         #2nd line: Player Name
ModelName=SqueezeCore           #3rd line: Model Name
Server=                                     #4th line: [server_address:port], empty to autodiscover
AlsaParams=40:4::0                  #5th line: ALSA parameters [buffer:period_count:sample_format:mmap]
Buffer=4096:3072                      #6th line: [stream_buffer:output_buffer]
Priority=45                                 #7th line: process priority [1-99]
 AdditionalOptions=                  #8th line: [OPTIONAL] additional commands

In the same way create a file named network.conf with the following syntax:

IP=192.168.1.200
Netmask=255.255.255.0 
Broadcast=192.168.1.255
DefaultRoute=192.168.1.1 

In the IP field you can type DHCP to automatically get an IP address, in this case leave all the other fields empty. See example:

IP=DHCP
Netmask= 
Broadcast=
DefaultRoute= 

Save, plug your SqueezeCore USB flash drive to your PC, power on, profit!

F.A.Q.

I want bit-perfect audio but in the output device list my dac does not appear as “hw:CARD=card_name” but only “default:CARD=card_name”
You can try to type 0 during output selection to not choose any option, then, in additional options (last question) type “-o hw:CARD=card_name,DEV=0”

I want to reset my configuration! How can I do it?
Directly on SqueezeCore: “rm -f /squeezecore/config/squeeze.conf && sync”
From Windows: delete /config/squeeze.conf

But, what about the RT version?
It is a specific build with a custom Real Time kernel; the hardware requirements are different from the generic version:
Minimal Hardware Requirements for RT:
CPU: Only Intel, Only Core2Duo and newer (Xeon, Core i3 i5 i7, new Pentium and Celeron). 2 core 4 thread (recommended 4 physical cores).
The Other requirements are the same of the generic one.

In the RT version the difference is not only in the kernel but there are other tweaks under the hood like:
The player runs on a isolated core with round robin scheduler.
All the DAC USB interrupts are isolated on one core.
The remaining core are for kernel and the remaining interrupts and software running.

Since the RT version has more strict hardware requirements do you have any suggestion for the hardware setup?
I really like mini-ITX and thin-ITX motherboards with Pentium and Celeron N-series (like N3160) or J-series (like j4105 j3455). Those models have 4 cores and very low power consuption.
About bios settings you can try to disable multi-threading and C-states (but I really don’t know if this can affect the sound performance, you can try and come back here to write your feedback)

Thanks to:

  • Marco Curti for Squeezelite-R2
  • TinyCoreLinux team for their awesome distro. Squeezecore is based on Tinycorelinux.

If you are using SqueezeCore and you like it consider to buy me a coffee: paypal.me

7 Comments

  1. Luca Marchetti Luca Marchetti 10 Febbraio 2020

    ciao lo sto provando, intanto devo che i dsd non li riproduce esatto? altrimenti sbaglio io. grazie cmq funziona da dio velocissimo bravo

    • Simone Simone 10 Febbraio 2020

      Ciao Luca! Ho appena testato e i DSD li riproduce senza problemi, sia in DSD nativo che in DoP. Quindi possiamo provare a risolvere, ti chiedo qualche informazione così da capire dove è il problema:
      Il file che stai riproducendo è in formato .dsf?
      Che DAC stai utilizzando, è connesso in USB?
      Collega la chiavetta di SqueezeCore al tuo computer, nella cartella “config” è presente il file “squeeze.conf”, aprilo con il blocco note e copiane il contenuto e scrivimelo.
      Grazie mille!

  2. Luca Marchetti Luca Marchetti 13 Febbraio 2020

    Ciao come dac uso un topping d30 legge in nativo fino a dsd 128. Si i file sono dsf, appena riesco Ti giro il contenuto del file. Grazie

  3. Luca Marchetti Luca Marchetti 13 Febbraio 2020

    default:CARD=D30
    SqueezeCore
    SqueezeCore
    auto
    40:4::0
    4096:4096
    45

    eccoti il contenuto del file
    ciao

    • Simone Simone 14 Febbraio 2020

      prova a sostituire default:CARD=D30 con hw:CARD=D30,DEV=0

  4. Luca Marchetti Luca Marchetti 14 Febbraio 2020

    perfetto funziona adesso, ora provo a far comparazione con daphile usando lo stesso server e cambiando il player. grazie ancora.

    • Simone Simone 14 Febbraio 2020

      Perfetto, tieni d’occhio la pagina che entro 7/10gg dovrei rilasciare una nuova versione!

Rispondi a Luca Marchetti Annulla risposta

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: