Giter Club home page Giter Club logo

volumio3-os's Introduction

Buildscripts for Volumio System

Copyright Volumio SRL

Requirements

On a Debian (buster) host, the following packages are required:

build-essential
ca-certificates
curl
debootstrap
dosfstools
git
jq
kpartx
libssl-dev
lz4
lzop
md5deep
multistrap
parted
patch
pv
qemu-user-static
qemu-utils
qemu
squashfs-tools
sudo
u-boot-tools
wget
xz-utils
zip

How to

  • Ensure you have installed all dependencies listed above.
  • Clone the build repo, and launch the build script (requires root permissions).
git clone https://github.com/volumio/volumio3-os.git build
cd ./build
./build.sh -b <architecture> -d <device> -v <version>

where flags are :

  • -b <arch> Build a base rootfs with Multistrap.

    Options for the target architecture are:
    arm (Raspbian armhf 32bit), armv7 (Debian armhf 32bit), armv8 (Debian arm64 64bit)
    x64 (Debian amd64 64bit).

  • -d <dev> Create Image for Specific Devices.

    Example supported device names:
    mp1, nanopineo2, odroidn2, orangepilite, pi, rockpis, tinkerboard, x64

    Run ./build.sh -h for a definitive list; new devices are being added as time allows.

  • -v <vers> Version

Example: Build a Raspberry PI image from scratch, version 3.0 :

./build.sh -b arm -d pi -v 3.0

You do not have to build the base and the image at the same time.

Example: Build the base for x64 first and the image version 3.123 in a second step:

./build.sh -b x64
./build.sh -d x64 -v 3.123

Sources

Kernel Sources

Main Packages Sources

Debian Packages Sources (x86)

All Debian-retrieved packages sources can be found at the debian-sources Repository

Raspbian Packages Sources (armhf)

All Raspbian-retrieved packages sources can be found at the raspbian-sources Repository

If any information, source package or license is missing, please report it to info at volumio dot org

Caching packages

If you are doing a lot of volumio builds you may wish to save some bandwidth by installing a package cache program, such as apt-cacher-ng. For a Debian-based system, these are the steps:

  • install, and configure so https package sources are not cached
    # apt-get install apt-cacher-ng
    # cat >> /etc/apt-cacher-ng/local.conf
    # do not cache https package sources
    PassThroughPattern: ^(.*):443$
    ^D
    # systemctl restart apt-cacher-ng
    
  • Set this environment variable; build.sh will do the rest.
    $ export APT_CACHE='http://localhost:3142'    # or similar
    $ sudo -E ./build.sh -b arm -d pi             # -E preserves the environment
    
  • To confirm operation, watch the log file during a build
    # tail -f /var/log/apt-cacher-ng/apt-cacher-ng.log
    

Some packages cannot easily be cached, because they are downloaded over https (the cache is detected by the SSL certificate checks made by the https protocol). Also some packages are downloaded via wget or similar, which do not make use of the cache.

volumio3-os's People

Contributors

150balbes avatar arturnadolski avatar ashthespy avatar balbuze avatar cdu13a avatar ce3a avatar chrismade avatar cron410 avatar darmur avatar earlchew avatar ecsv avatar flatmax avatar foonerd avatar ghembs avatar gkkpch avatar macmpi avatar mervinderuiter avatar miero avatar nikkov avatar oitdmser avatar peterdavehello avatar piffio avatar pkendall64 avatar saiyato avatar sparkysbc avatar thomaspasser avatar timothyjward avatar volumio avatar wraul avatar xipmix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

volumio3-os's Issues

Network name in Finder on MacOS is ALL CAPS

When browsing the network in MacOS Finder, volumio appears fine, but the name is ALL CAPS. Very unsightly. My other samba network devices appear with proper cased names. The name I see in MacOS is the 'NAME WITH SPACES' and not the 'name-with-spaces' that is the hostname. Additionally, the same volumio has 'netbios name = Name With Spaces set.

Note the output of avahi-browse below. The advert for the shared disk is ALL CAPS, but all others are normal.
sudo avahi-browse -a

+  wlan0 IPv4 50:32:37:4a:33:fc@fe80::5232:37ff:fe4a:33fc   _apple-mobdev2._tcp  local
+  wlan0 IPv4 LIVING ROOM STEREO                            Microsoft Windows Network local
+  wlan0 IPv4 XXXXXXXXXXXXXXXXXX                            Microsoft Windows Network local
+  wlan0 IPv4 XXXXXXXXXXX                                   Microsoft Windows Network local
+  wlan0 IPv4 XXXXXXXXXXX                                   Apple TimeMachine    local
+  wlan0 IPv4 LIVING ROOM STEREO                            _device-info._tcp    local
+  wlan0 IPv4 iPad                                          _companion-link._tcp local
+  wlan0 IPv4 Macbook                                       _companion-link._tcp local
+  wlan0 IPv4 3DC75D429960@Living Room Stereo               AirTunes Remote Audio local
+  wlan0 IPv4 living-room-stereo                            _Volumio._tcp        local
+  wlan0 IPv4 Living Room Stereo                            Web Site             local
+  wlan0 IPv4 b1715ce8-899d-5df8-9fd3-9092804fef7b          _spotify-connect._tcp local

I'm experiencing an error building nanopineo2

root@DESKTOP-N4H162K:~/volumio3# ./build.sh -b armv8 -d nanopineo2 -v 2.1.
[ .... ] Running Volumio Image Builder -
[ .. ] Checking whether we are running as root
[ .. ] Creating log directory
[ .. ] Setting default Volumio variant
[ .... ] Creating armv8 rootfs
[ .. ] armv8 rootfs exists, cleaning it
[ .... ] Setting up Multistrap environment
[ .. ] Preparing rootfs apt-config
[ .. ] Adding SecureApt keys to rootfs
Executing: /tmp/apt-key-gpghome.7jPoEKdrAA/gpg.1.sh --fetch-keys https://archive.raspbian.org/raspbian.public.key
gpg: requesting key from 'https://archive.raspbian.org/raspbian.public.key'
gpg: connecting dirmngr at '/run/user/0/gnupg/d.end3wh1qf9mxm8gcx9ih19dm/S.dirmngr' failed: IPC connect call failed
gpg: WARNING: unable to fetch URI https://archive.raspbian.org/raspbian.public.key: No dirmngr

use of lvm volume

I'd like to combine multiple partitions to form the volumio_data mount, however the lack of lvm2 in the initramfs means that lvm is not available during boot.

Is there a way of generating a persistent initramfs with custom modules without building the entire image?

Alternatively, can I somehow get volumio to boot without the volumio data partition kernel parameter, so I can handle the mount point later in the fstab?

[Raspberry] `PiCustom`, `Bassowl` are incompatible with fake `libraspberrypi0`

Since we use the fake libraspberrypi0 package, we have some issues with (cross compiled) firmware that depends on ld-linux-armhf.so vs ld-linux.so directly.

So this is

  • PiCustom
  • Bassowl
  • brcmfmac43430b0
2024-04-01 17:18:43 URL:https://raw.githubusercontent.com/Darmur/bassowl-hat/master/driver/archives/modules-rpi-6.1.69-bassowl.tar.gz [28443/28443] -> "Bassowl.tar.gz" [1]
arm-binfmt-P: Could not open '/lib/ld-linux-armhf.so.3': No such file or directory
arm-binfmt-P: Could not open '/lib/ld-linux-armhf.so.3': No such file or directory

This is the patch I had, but I also had another patch that shuffles things around to actually install libraspberrypi0 which solves a lot of other problems as well.

commit a850002979a2f9c5d7d857804268b9d0420dfe37 (HEAD -> base/bookworm)
Author: ashthespy <[email protected]>
Date:   Wed Mar 15 11:15:43 2023 +0100

    [raspberry] Fix arm/pi specific quirks
diff --git a/recipes/devices/pi.sh b/recipes/devices/pi.sh
index 7ff06f98..08d37280 100644
--- a/recipes/devices/pi.sh
+++ b/recipes/devices/pi.sh
@@ -329,6 +331,13 @@ device_chroot_tweaks_pre() {
        log "Updating LD_LIBRARY_PATH"
        ldconfig
 
+       # Fixing some Debian/sid quirks
+       if dpkg -l libraspberrypi0 &>/dev/null && [[ "$(dpkg --print-architecture)" = armhf ]]; then
+               log "Fixing linker ld-linux-armhf"
+               ln -s /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3 2>/dev/null || true
+               ln -s /lib/arm-linux-gnueabihf/ld-linux-armhf.so.3 /lib/arm-linux-gnueabihf/ld-linux.so.3 2>/dev/null || true   
+       fi 

[Raspberry] `snd-bcm2835.enable_compat_alsa` is no longer defined.

@Darmur in bf30089 the kernel version based compat_alsa logic was removed.

# ALSA tweaks
kernel_params+=("snd-bcm2835.enable_compat_alsa=${compat_alsa}" "snd_bcm2835.enable_hdmi=1" "snd_bcm2835.enable_headphones=1")

So now an empty snd-bcm2835.enable_compat_alsa= is added to the kernel parameters (as $compat_alsa is undefined)

If this flag no longer does anything, should it also be removed to avoid confusion?

Setting of netmask wrong in dhcpcd.conf

Hi volumio-os dev Team,

There is a bug in setting the network address and netmask manual: When i put in e.g. the address 10.10.1.199 and NETMASK 255.255.0.0 in the UI, this results in an entry of 10.10.1.199/24
But the netmask should be /16
The setting of the netmask is not correct.
I always have to get in over ssh to manual correct it...

Thanks.
Daniel

Pi 5.4.xx kernels don't boot..

Green led flashed a few times, and then stops.. Haven't connected a screen/UART to check the actual output.
I am guessing @volumio you might have some hints?

DHCP configuration in wireless.js

The back end uses dhcpcd.conf to set up static IP for both wired and wireless.

Whereas, wireless.js uses the following to get for IP address handling.

launch(wpasupp, "wpa supplicant", false, function(err) {
logger("wpasupp " + err);
wpaerr = err;
try {
dhclient = fs.readFileSync('/data/configuration/wlanstatic', 'utf8');
console.log("FIXED IP");
} catch (e) {
console.log("DHCP IP ");
}
launch(dhclient,"dhclient", false, callback);
});

Some issues come to light:

  1. Reference to /data/configuration/wlanstatic that doesn't exist.
  2. The call to dhclient just runs /usr/bin/sudo /sbin/dhcpcd with out any arguments.
    Wouldn't it be better to explicitly call dhcpcd | -n, --rebind
  3. There is no err passed to the callback in launch
  4. The callback will be triggered immediately (sync=false), not waiting for the network connection to succeed before requesting an IP address via dhclient (dhcpcd in this case).

armv8 (aarch64) installer bug

When selects any armv8 arch's, example:
sudo ./build.sh -b armv8 -d rockpis -v 2.0
we a got no directory exists: /build/amrv7/..., but installer creates /build/armv8/... before.

if FIX this in scripts, got another error:
[ -- ] Installing /volumio/customPkgs/00libcurl4_7.74.0-1.2~bpo10+1_armv7.deb Selecting previously unselected package libcurl4:armhf. (Reading database ... 26122 files and directories currently installed.) Preparing to unpack .../00libcurl4_7.74.0-1.2~bpo10+1_armv7.deb ... De-configuring libcurl4:arm64 (7.64.0-4+deb10u2) ... Unpacking libcurl4:armhf (7.74.0-1.2~bpo10+1) ... dpkg: error processing package libcurl4:armhf (--install): package libcurl4:armhf 7.74.0-1.2~bpo10+1 cannot be configured because libcurl4:arm64 is at a different version (7.64.0-4+deb10u2) dpkg: error processing package libcurl4:arm64 (--install): package libcurl4:arm64 7.64.0-4+deb10u2 cannot be configured because libcurl4:armhf is at a different version (7.74.0-1.2~bpo10+1) Processing triggers for libc-bin (2.28-10+deb10u1) ... Errors were encountered while processing: libcurl4:armhf libcurl4:arm64 [ error ] Volumio chroot config failed [ chrootconfig.sh ] [ error ] Error stack [main] <= [ 76 /chrootconfig.sh ] [ error ] Imagebuilder script failed!! [ error ] Error stack [source] <= [main] <= [ 236 /home/alexandr/VOLUMIO/volumio3-os/scripts/makeimage.sh ] [ -- ] Cleaning up image_tmp mounts [ -- ] Unmounting chroot temporary devices at /mnt/volumio/rootfs [ .. ] Cleaning loop device /dev/loop60 [ /dev/loop60: [66310]:8305234 (/home/alexandr/VOLUMIO/volumio3-os/Volumio-2.0-2023-10-02-rockpis.img) ] [ .. ] Deleting image file

Cleanup Sudoers

We have quite some legacy:

volumio ALL=(ALL) NOPASSWD: /sbin/poweroff,/sbin/shutdown,/sbin/reboot,/sbin/halt,/bin/systemctl,/usr/bin/apt-get,/usr/sbin/update-rc.d,/usr/bin/gpio,/bin/mount,/bin/umount,/sbin/iwconfig,/sbin/iwlist,/sbin/ifconfig,/usr/bin/killall,/bin/ip,/usr/sbin/service,/bin/journalctl,/bin/chmod,/sbin/ethtool,/usr/sbin/alsactl,/bin/tar,/usr/bin/dtoverlay,/sbin/dhclient,/usr/sbin/i2cdetect,/sbin/dhcpcd,/usr/bin/alsactl,/bin/mv,/sbin/iw,/bin/hostname,/sbin/modprobe,/sbin/iwgetid,/bin/ln,/usr/bin/unlink,/bin/dd,/usr/bin/dcfldd,/opt/vc/bin/vcgencmd,/opt/vc/bin/tvservice,/usr/bin/renice,/bin/rm,/bin/kill,/usr/sbin/i2cset,/usr/bin/smbtree,/usr/bin/timedatectl,/usr/bin/xset,/usr/bin/xinput,/usr/bin/tee
volumio ALL=(ALL) NOPASSWD: /bin/sh /volumio/app/plugins/system_controller/volumio_command_line_client/commands/kernelsource.sh, /bin/sh /volumio/app/plugins/system_controller/volumio_command_line_client/commands/pull.sh
volumio ALL=(ALL) NOPASSWD: /usr/local/bin/x86Installer.sh,/usr/local/bin/PiInstaller.sh

Repo size

It would seem that in the shift from volumio/Build, one of motivations for having a new repo wasn't implemented - namely volumio/Build#413?

We still have quite leftovers from ./platforms in the repo, making clones ~47 MiB..

checkRepoBloat.sh 
.
.
.
418c87428972  690KiB platforms/cuboxi/lib/modules/3.14.14-cubox/kernel/fs/xfs/xfs.ko
5e5483ca6175  829KiB platforms/cuboxi/lib/modules/3.14.14-cubox/kernel/fs/ocfs2/ocfs2.ko
e6b434f0b652  974KiB platforms/cuboxi/lib/modules/3.14.14-cubox/kernel/fs/btrfs/btrfs.ko
d7856a9257e0  1.0MiB platforms/cuboxi/uboot/u-boot.img
761f410bc473  4.1MiB platforms/udoo/boot/uImage
d035e5869856  5.7MiB platforms/cuboxi/boot/zImage
Total: 118MiB

Security Concerns

There are several significant security concerns with the way this distribution has been implemented:

  • Web UI clients connect directly to a nodejs process via an iptables port redirect.
    • Best practice is to serve web apps via a reverse proxy.
    • Using a well-known web server such as nginx to front-end client traffic offloads many security concerns to a well-maintained package with more resources for handling those kinds of issues.
    • I assume the iptables redirect was done because only root can listen on ports <1024. Implementing a reverse proxy removes the need for this as software like nginx includes secure ways to listen on ports 80 and 443 without maintaining root access.
    • See this article for how to implement.
  • Web UI is HTTP by default and does not support configuring HTTPS.
    • Best practice is to serve web apps via HTTPS only, with HTTP redirecting to HTTPS.
    • Auto-generating a self-signed certificate is a widely accepted practice for deployments such as this, the idea being an encrypted connection is always better than an unencrypted connection even if the certificate is not fully trusted.
    • This can be easily implemented alongside the above reverse proxy recommendation, as only the client traffic to the reverse proxy needs to be encrypted since the traffic from the reverse proxy to the nodejs process is loopback only.
    • See this utility for a best-practices config generator for nginx to implement this.
  • No local firewall is implemented, nor is configuring one supported.
    • Best pactice is to run a local firewall to control what traffic is allowed to reach processes running on the device.
    • Installing and configuring ufw is as simple as:
      apt install ufw
      ufw allow ssh
      ufw allow http
      ufw allow https
      ufw allow mdns
      [...]
      ufw enable
      
    • This results in a config file /etc/ufw/user.rules which can be included in the image.
    • To see which service names are supported cat /etc/services. Custom ports can be added with ufw allow 1234/udp.
  • Changing the default SSH password is not supported.
    • While using a default username and password for SSH access is common practice, best practice is to implement the ability to change it for those who wish to.
    • I have seen replies to forum threads on this to the effect of "this is OK because SSH is disabled by default," however SSH can be enabled via the web UI with no authentication required to do so, easily circumventing this.
  • Web UI does not support authentication and authorization.
    • There are areas of the web UI which should really be locked behind an authentication system.
      • The /dev interface allows access to sensitive information and functions, such as enabling SSH.
      • The settings area of the web UI allows reconfiguration of the device, service accounts (e.g. Volumio, Spotify) and other sensitive configuration/information.
    • Best practice is to implement role-based access control rather than a simple all-or-nothing authentication model.
    • Potential roles could be:
      • Admin: Full access (current behaviour)
      • User: Ability to use play controls, queue media, etc. but no access to settings or /dev
      • Read-Only: Ability to view Now Playing and the queue
    • More granular access control could also be a useful feature, e.g. the ability to allow users to change/queue tracks but not change the volume could be useful in a common-area jukebox device.
  • Ownership and permissions of system directories is modified.
    • The changes to ownership and permissions of the following directories is concerning and contrary to posix best practices.
      -bash-5.0# ls -ld / /etc /lib
      drwxrwxrwx 1 root    root    1024 Jan  1  1970 /
      drwxr-xr-x 1 volumio volumio 1024 Jul 27 22:02 /etc
      drwxr-xr-x 1 volumio volumio 1024 Jul 27 21:10 /lib

Migration to Debian Bookworm

Mild déjà vu, but pickup from volumio/Build/issues/401

Know issues

  • Node version bump (native modules need recompiation)
  • #174
  • Missing Volumio custom packages
    • upmpdcli and dependencies (libnpupnp1,libupnpp6)
    • shairport-sync
    • mpd and mpc

Device specific

  • [Raspberry] Switch to WiringPi/WiringPi pre-builds
  • #173
  • [Raspberry] Other DAC firmware
  • [Raspberry] brcmfmac43430b0 and other firmware

Requires investigation

  • Do we still need custom libcurl and friends

House keeping

  • StandardOutput=syslog is deprecated

hostname wrong with umlaut

If I choose in the onboarding process a hostname with an ä ö or ü, the hostname is not set correctly. The umlaut is simply omitted, but the gui is displaying the expected hostname with the umlaut.

Screenshot_20220912_154916

On the other hand, cat /etc/hostname results volumio-kche.

Userconfig.txt overfilled

The userconfigt.txt gets overfilled after each update

Add your custom config.txt options to this file, which will be preserved during updates

Add your custom config.txt options to this file, which will be preserved during updates# Add your custom config.txt options to this file, which will be preserved during updates

Add your custom config.txt options to this file, which will be preserved during updates

Add your custom config.txt options to this file, which will be preserved during updates

Add your custom config.txt options to this file, which will be preserved during updates

Add your custom config.txt options to this file, which will be preserved during updates

Add your custom config.txt options to this file, which will be preserved during updates

Add your custom config.txt options to this file, which will be preserved during updates

Add your custom config.txt options to this file, which will be preserved during updates

Add your custom config.txt options to this file, which will be preserved during updates

`libjson-glib` is missing for spotify plugin

I'm not sure if volumio3-os is responsible for this or the plugin itself.
But after installing the spotify plugin on a fresh install I got the message in the UI that I can not log in.
I looked into journalctl -f to see what's happening and saw this error message:

Jan 13 12:49:13 music systemd[1]: Started Spotify Daemon.
Jan 13 12:49:13 music volumio[1308]: /usr/bin/spopd: error while loading shared libraries: libjson-glib-1.0.so.0: cannot open shared object file: No such file or directory

After installing the package (libjson-glib-1.0-0) it worked.

Volumio 3.449 Wifi AP security vulnerability

If connected to home network through lan, and skipped the wifi configuration volumio still broadcasts an wifi ap to setup the device. Possibly someone can gain acces to network without any hinderence.

CD doesn't update when ripping

After ripping a CD (USB drive) and inserting a new one the disk is showing the last one ripped and not showing updated information. I have to reboot to get the new disk to show up. This is on x86.

node failure on x86 build

nodejs has no 32bit support after 9+ the script wants 14 i am unsure where or what to alter to change node version or if this will work at all

Customization of the screensaver (Photo/Cover Frame) "enhancement"

Hello
I would like to propose extension of the screen saver function with the ability to display photos or album covers such as photo frame. When music doesn't play.
If there is already such a plugin or function I would be very grateful for indicating where I can set it up.

feature request for console =>"PS" -> /etc/profile

maybe we can add to profile, something like that ?
.) to see user name ?
.) to see in which directory the user is ?
`.) and to have that in colored ?

like that:
export PS1='[\033[0;32m]\u@\H:[\033[36m]$PWD[\033[0m] $ '
[ "$TERM" = "xterm" ] && export PS1='[\e]0;\u@\h: \w\a]'$PS1

Migration to NetworkManager? (`dhcpcd` issues on Pi OS)

Bookworm normally uses NetworkManager by default instead of dhcpcd.
Investigate if we need to move or can continue with dhcpcd.

Giving the timing #76 , I might have had some issues with dhcpcd during initial Bookworm/Sid efforts.
Unfortunately, I have forgotten more details, will update if I can recall them.

multiroom sound dropout on primo

this is the snapclient output when dropout occur :

2024-02-11 20-05-36 [Info] Chunk: 0     0       0       0       500     225
2024-02-11 20-05-37 [Info] Chunk: 0     0       0       0       500     225
2024-02-11 20-05-38 [Info] Chunk: 0     0       0       0       500     225
2024-02-11 20-05-39 [Info] Chunk: 0     0       0       0       500     225
2024-02-11 20-05-40 [Info] Chunk: 0     0       0       0       500     225
ALSA lib /home/pi/volumio-alsa-plugin/src/pcm_volumioswitch.c:912:(_snd_pcm_volumioswitch_advance) PCM volumioMultiRoomClient cannot write to target PCM volumioOutput as it has failed its update check.
2024-02-11 20-05-40 [Err] XRUN
2024-02-11 20-05-40 [Info] age > 200: -239
2024-02-11 20-05-40 [Info] sleep < -bufferDuration/2: -239 < -15, sleep: -239
2024-02-11 20-05-40 [Info] sleep < -bufferDuration/2: -239 < -15, sleep: -209
2024-02-11 20-05-40 [Info] sleep < -bufferDuration/2: -209 < -15, sleep: -179
2024-02-11 20-05-40 [Info] sleep < -bufferDuration/2: -179 < -15, sleep: -149
2024-02-11 20-05-40 [Info] sleep < -bufferDuration/2: -149 < -15, sleep: -119
2024-02-11 20-05-40 [Info] sleep < -bufferDuration/2: -119 < -15, sleep: -89
2024-02-11 20-05-40 [Info] sleep < -bufferDuration/2: -89 < -15, sleep: -29
2024-02-11 20-05-40 [Info] sleep < -bufferDuration/2: -29 < -15, sleep: 0
2024-02-11 20-05-40 [Info] Sleep 0, age: 0, bufferDuration: 30
2024-02-11 20-05-40 [Info] Sleep 0
2024-02-11 20-05-41 [Info] Chunk: 1     1       1       1       27      224
2024-02-11 20-05-42 [Info] Chunk: 1     1       1       1       60      224
2024-02-11 20-05-43 [Info] Chunk: 1     1       1       1       94      224
2024-02-11 20-05-44 [Info] Chunk: -3    -1      1       1       127     224

[Feature Request] - update shairport to support Airplay 2

Hi, the developpement branch of Shairport now supports airplay 2.

Airplay 2 is interesting for the users thanks to the multiroom support. It offers for example the possbility to sync a playback between volumio and a recent Sonos speaker or an HomePod.

Even if shairport is careful on the support of airplay2 it works very well on HifiBerry since few months, users appreciate it. I have tested by myself with a great satisfaction (multiroom sync is good, no audio latency for video and covers are now displayed by shairport).

On moode users start to install it manually (seems to still working as the original shairport compiled for the os so the switch to enable/disable it still working).

I hope Volumio will follow soon ;)

(May be it could be implemented as an optional beta feature in a first time ?)

Thank you.

USB not recognized in Volumio

RPI 3B+ just upgraded from Volumio 2.9 to 3.233 and the USB drive that is recognized on 2.9 is not on 3.233.
SSH lsusb reveals the USB is mounted, what's happening?

Just tried another USB drive and it works...seems 3.233 is fussy regarding drives?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.