Skip to content

Commit 7f5fae5

Browse files
authored
Merge pull request #167 from hifiberry/development
Merge Development
2 parents 88dce9d + 72a69a3 commit 7f5fae5

36 files changed

+445
-107
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ b
1414
notify
1515
publish-files
1616
update-all
17+
secrets

Changelog

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
202010xx:
1+
202011xx:
2+
- replaced Spotifyd by Vollibrepsot
3+
- new audiocontrol backend that can deal with non-MPRIS source
4+
- improve pausing of active player
5+
- Bugfix: DAC2HD not detected correctly
6+
- Bugfix: SMB mounts working more reliably
7+
- lots of other small bugfixesy
8+
9+
20201022:
10+
- Bugfix: DNLA not working
11+
- Bugfix: overlay files on Pi2 missing
12+
13+
20201020:
214
- added MPD queue management
315
- Linux kernel upgrade to 5.14
416
- MPD upgrade to 0.21.25

build-all

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,10 @@ cd `dirname $0`
33
TS=`date +%Y%m%d`
44
for i in 2 3 4 0w; do
55
if [ "$1" == "parallel" ]; then
6-
./build-release $i $TS &
7-
pids[${i}]=$!
6+
screen -d -m ./build-release $i $TS
7+
echo "Started $i build"
8+
sleep 300
89
else
910
./build-release $i $TS
1011
fi
1112
done
12-
13-
for pid in ${pids[*]}; do
14-
wait $pid
15-
done

buildroot/Config.in

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,27 @@ source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/hifiberry-gmrender/Config.in"
2424
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/hifiberry-gstreamer/Config.in"
2525
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/dlnampris/Config.in"
2626
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/hifiberry-shairport/Config.in"
27-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy/Config.in"
28-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-local/Config.in"
29-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-alsamixer/Config.in"
30-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-gmusic/Config.in"
31-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-iris/Config.in"
32-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-mpd/Config.in"
33-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-mpris/Config.in"
34-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-musicbox-webclient/Config.in"
35-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-radionet/Config.in"
36-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-soundcloud/Config.in"
37-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-youtube/Config.in"
27+
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/librespot/Config.in"
28+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy/Config.in"
29+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-local/Config.in"
30+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-alsamixer/Config.in"
31+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-gmusic/Config.in"
32+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-iris/Config.in"
33+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-mpd/Config.in"
34+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-mpris/Config.in"
35+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-musicbox-webclient/Config.in"
36+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-radionet/Config.in"
37+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-soundcloud/Config.in"
38+
#source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mopidy-youtube/Config.in"
3839
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/hifiberry-mpd/Config.in"
3940
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/hifiberry-ympd/Config.in"
4041
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mpd-mpris/Config.in"
4142
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/hifiberry-alsaloop/Config.in"
4243
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/btspeaker/Config.in"
4344
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/mpris-proxy/Config.in"
4445
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/snapcast/Config.in"
45-
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/snapcastmpris/Config.in"
46+
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/snapcastmpris/Config.in
47+
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/vollibrespot/Config.in"
4648
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/webradio/Config.in"
4749

4850
comment "Backend applications"
@@ -84,6 +86,7 @@ source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/python-keyboard/Config.in"
8486
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/python-levenshtein/Config.in"
8587
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/python-mechanicalsoup/Config.in"
8688
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/python-mock/Config.in"
89+
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/python-mpd2/Config.in"
8790
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/python-musicbrainz-ngs/Config.in"
8891
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/python-oauth2client/Config.in"
8992
source "$BR2_EXTERNAL_HIFIBERRY_PATH/package/python-proboscis/Config.in"

buildroot/board/raspberrypi/genimage-raspberrypi0w.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ image boot.vfat {
1111
"zImage"
1212
}
1313
}
14-
size = 32M
14+
size = 64M
1515
}
1616

1717
image sdcard.img {

buildroot/board/raspberrypi/genimage-raspberrypi2.cfg

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ image boot.vfat {
77
"rpi-firmware/config.txt",
88
"rpi-firmware/fixup.dat",
99
"rpi-firmware/start.elf",
10+
"rpi-firmware/overlays",
1011
"zImage"
1112
}
1213
}
13-
size = 32M
14+
size = 64M
1415
}
1516

1617
image sdcard.img {

buildroot/board/raspberrypi/genimage-raspberrypi3.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ image boot.vfat {
1313
"zImage"
1414
}
1515
}
16-
size = 32M
16+
size = 64M
1717
}
1818

1919
image sdcard.img {

buildroot/board/raspberrypi/genimage-raspberrypi4.cfg

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ image boot.vfat {
44
"bcm2711-rpi-4-b.dtb",
55
"rpi-firmware/cmdline.txt",
66
"rpi-firmware/config.txt",
7-
"rpi-firmware/fixup4.dat",
8-
"rpi-firmware/start4.elf",
7+
"rpi-firmware/fixup.dat",
8+
"rpi-firmware/start.elf",
99
"rpi-firmware/overlays",
1010
"zImage"
1111
}
1212
}
13-
size = 32M
13+
size = 64M
1414
}
1515

1616
image sdcard.img {

buildroot/package/audiocontrol2/Config.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ config BR2_PACKAGE_AUDIOCONTROL2
2121
select BR2_PACKAGE_PYTHON_REQUESTS
2222
select BR2_PACKAGE_PYTHON_EXPIRINGDICT
2323
select BR2_PACKAGE_PYTHON_PYKY040
24+
select BR2_PACKAGE_PYTHON_MPD2
2425
select BR2_PACKAGE_PYTHON3
25-
# select BR2_PACKAGE_PYTHON_PYGOBJECT
2626

buildroot/package/audiocontrol2/audiocontrol2.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
################################################################################
66

7-
AUDIOCONTROL2_VERSION = e6ac1e67f74ecfd706d08113f4687f1c333db6e9
7+
AUDIOCONTROL2_VERSION = 16cc56abbb90357df08c5bcd1e83b6d232b94ef1
88
AUDIOCONTROL2_SITE = $(call github,hifiberry,audiocontrol2,$(AUDIOCONTROL2_VERSION))
99

1010
AUDIOCONTROL2_DEPENDENCIES = python3

buildroot/package/beocreate/beocreate.mk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
#
55
################################################################################
66

7-
BEOCREATE_VERSION = bd3c99c07dd3983b07f1eef07f905f3a368ec949
7+
BEOCREATE_VERSION = ee625ced94ea4cb35ef019ab658a1c7d30dc5639
88
BEOCREATE_SITE = $(call github,bang-olufsen,create,$(BEOCREATE_VERSION))
99

10-
#BEOCREATE_VERSION = 8c8e29f32834689e35e6a9038e716d078c740044
11-
#BEOCREATE_SITE = $(call github,hifiberry,create,$(BEOCREATE_VERSION))
10+
BEOCREATE_VERSION = 293908b691627ef3a07adb1c09cad4f61f5784fe
11+
BEOCREATE_SITE = $(call github,hifiberry,create,$(BEOCREATE_VERSION))
1212

1313
BEOCREATE_DEPENDENCIES += nodejs
1414

buildroot/package/disable-samba/disable-samba.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ define DISABLE_SAMBA_INSTALL_IMAGES_CMDS
1111

1212
echo "Removing SAMBA services"
1313
for s in smb nmb winbind samba; do \
14-
echo "disable $s.service" >> $(TARGET_DIR)/lib/systemd/system-preset/99-samba.preset ; \
14+
echo "disable $$s.service" >> $(TARGET_DIR)/lib/systemd/system-preset/99-samba.preset ; \
1515
done
1616
endef
1717

buildroot/package/hifiberry-automount/mount-smb.sh

100644100755
Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,46 @@
11
#!/bin/bash
22
BASEDIR=/data/library/music
33
for m in `cat /etc/smbmounts.conf | grep -v ^#`; do
4-
dir=`echo $m | awk -F\; '{print $1}'`
5-
if [ ! -d $BASEDIR/$dir ]; then
6-
mkdir -p $BASEDIR/$dir
4+
5+
# Split the line first
6+
readarray -d \; -t parts <<< "$m"
7+
MOUNTID=${parts[0]}
8+
SHARE=${parts[1]}
9+
USER=${parts[2]}
10+
PASSWORD=${parts[3]}
11+
MOUNTOPTS=${parts[4]}
12+
13+
# Remove newline from last parameter
14+
PASSWORD=$(echo $PASSWORD|tr -d '\n')
15+
MOUNTOPTS=$(echo $MOUNTOPTS|tr -d '\n')
16+
17+
if [ "$MOUNTOPTS" == "" ]; then
18+
MOUNTOPTS="rw"
19+
fi
20+
21+
if [ ! -d $BASEDIR/$MOUNTID ]; then
22+
mkdir -p $BASEDIR/$MOUNTID
723
fi
824
# Check if share is on a .local host, resolve this first
925
HOST=`echo $m | awk -F\; '{print $2}' | awk -F\/ '{print $3}'`
1026
if [[ $HOST == *.local ]]; then
1127
IP=`avahi-resolve-host-name -4 $HOST | awk '{print $2}'`
12-
if [ "$IP" != "" ]; then
13-
m=`echo $m | sed s/$HOST/$IP/`
28+
fi
29+
30+
# The try to resolve using nmblookup
31+
if [ "$IP" == "" ]; then
32+
nmblookup $HOST > /tmp/$$
33+
if [ "$?" == "0" ]; then
34+
IP=`nmblookup $HOST|awk 'END{print $1}'`
1435
fi
15-
fi
16-
17-
mountcmd=`echo $m | awk -F\; '$5=="" { $5="rw" } {print "mount -t cifs -o user=" $3 ",password=" $4 "," $5 " " $2 " /data/library/music/" $1}'`
18-
echo $mountcmd
36+
fi
37+
38+
if [ "$IP" != "" ]; then
39+
SHARE=`echo $SHARE | sed s/$HOST/$IP/`
40+
fi
41+
42+
mountcmd="mount -t cifs -o user=$USER,password=$PASSWORD,$MOUNTOPTS $SHARE /data/library/music/$MOUNTID"
43+
echo ${mountcmd}
1944
${mountcmd}
2045

2146
if [ -x /opt/hifiberry/bin/report-activation ]; then

buildroot/package/hifiberry-psplash/psplash-quit.service

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
[Unit]
22
Description=Terminate Psplash Boot Screen
3+
ConditionPathExists=!/boot/nosplash
4+
ConditionPathExists=/dev/fb0
35

46
[Service]
57
Type=oneshot

buildroot/package/hifiberry-psplash/psplash-start.vc4.service

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Wants=dev-dri-card0.device
44
After=dev-dri-card0.device
55
DefaultDependencies=no
66
ConditionPathExists=!/boot/nosplash
7+
ConditionPathExists=/dev/fb0
78

89
[Service]
910
Type=oneshot

buildroot/package/hifiberry-tools/detect-hifiberry

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,86 +30,78 @@ function check_hat {
3030
}
3131

3232
function detect_card {
33-
check_hat()
33+
check_hat
3434

3535
if [ "$HATCARD" == "DAC+ ADC Pro" ]; then
36-
echo "dacplusadcpro"
36+
DETECTED="dacplusadcpro"
3737
return
3838
fi
3939

4040
if [ "$HATCARD" == "DAC+ ADC" ]; then
41-
echo "dacplusadc"
41+
DETECTED="dacplusadc"
4242
return
4343
fi
4444

4545
if [ "$HATCARD" == "DAC 2 HD" ]; then
46-
echo "dac2hd"
46+
DETECTED="dacplushd"
47+
EEPROM=0
4748
return
4849
fi
4950

5051
# DAC+ ADC Pro
5152
res=`i2cget -y 1 0x4a 25 2>/dev/null`
5253
if [ "$res" == "0x07" ]; then
53-
echo "dacplusadcpro"
54+
DETECTEDT="dacplusadcpro"
5455
return
5556
fi
5657

5758
# Digi/Digi+
5859
res=`i2cget -y 1 0x3b 1 2>/dev/null`
5960
if [ "$res" == "0x88" ]; then
60-
echo "digi"
61+
DETECTED="digi"
6162
return
6263
fi
6364

6465
# DAC Plus
6566
res=`i2cget -y 1 0x4d 40 2>/dev/null`
6667
if [ "$res" == "0x02" ]; then
67-
echo "dacplus"
68+
DETECTED="dacplus"
6869
return
6970
fi
7071

7172
# Amp/Amp+
7273
res=`i2cget -y 1 0x1b 0 2>/dev/null`
7374
if [ "$res" == "0x6c" ]; then
74-
echo "amp"
75+
DETECTED="amp"
7576
return
7677
fi
7778
if [ "$res" == "0x60" ]; then
78-
echo "amp"
79+
DETECTED="amp"
7980
return
8081
fi
8182

8283
# DAC 2 HD
8384
res=`i2cget -yf 1 0x62 17 2>/dev/null`
8485
if [ "$res" == "0x8c" ]; then
85-
echo "dachd"
86+
DETECTED="dacplushd"
87+
EEPROM=0
8688
return
8789
fi
8890

8991
# Beocreate
9092
res=`i2cget -y 1 0x60 2 2>/dev/null`
9193
if [ "$res" == "0x03" ]; then
92-
echo "beo"
94+
DETECTED="beo"
9395
return
9496
fi
9597

9698
# Some I2C addresses might be blocked from HAT EEPROM, but hifibarry-dac is used
9799
res=`i2cdetect -y 1 | grep UU`
98100
if [ "$res" != "" ]; then
99-
echo "blocked"
101+
DETECTED="blocked"
100102
fi
101103
}
102104

103-
FORCEEEPROM=`cat /boot/config.txt | grep force_eeprom_read`
104-
if [ "$FORCEEEPROM" != "" ]; then
105-
echo "Detected force_eeprom_read, removing it" >> /var/log/hifiberry.log
106-
mount -o remount,rw /boot
107-
cat /boot/config.txt | grep -v force_eeprom_read > /tmp/config.txt
108-
cp /boot/config.txt /boot/config.txt.bak
109-
cp /tmp/config.txt /boot/config.txt
110-
sync
111-
fi
112-
113105
if [ "$FOUND" == "" ]; then
114106
echo "No HiFiBerry card configured, try to probe using I2C" >> /var/log/hifiberry.log
115107

@@ -122,7 +114,8 @@ if [ "$FOUND" == "" ]; then
122114

123115
echo "Detecting using I2C"
124116
check_i2c
125-
card=$(detect_card)
117+
detect_card
118+
card=$DETECTED
126119

127120
if [ "$card" == "beo" ]; then
128121
echo "Detected Beocreate"
@@ -153,6 +146,12 @@ if [ "$FOUND" == "" ]; then
153146
echo "Creating new config.txt" >>/var/log/hifiberry.log
154147
cat $CONFIG | grep -v "hifiberry" > /tmp/config.txt
155148
echo "dtoverlay=hifiberry-$card" >> /tmp/config.txt
149+
if [ "$EEPROM" == "0" ]; then
150+
HAS_EEPROM=`cat /tmp/config.txt | grep "force_eeprom_read=0"`
151+
if [ "$HAS_EEPROM" == "" ]; then
152+
echo "force_eeprom_read=0" >> /tmp/config.txt
153+
fi
154+
fi
156155
mv /tmp/config.txt $CONFIG
157156
echo "Adding $card to config.txt" >> $REBOOTFILE
158157
else

buildroot/package/hifiberry-tools/pause-all

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ check_paused() {
1515
echo "$DATE1 $DATE2 pause-all $PLAYER" | systemd-cat
1616
exit 0
1717
fi
18-
PROCESSLINE=`lsof | grep /dev/snd | grep pcmC${CARD}`
18+
PROCESSLINE=`lsof /dev/snd/pcmC*D*p`
1919
APP=`echo $PROCESSLINE| awk '{print $1}'`
2020
PROCESSID=`echo $PROCESSLINE| awk '{print $2}'`
2121
if [ "$APP" == "$PLAYER" ]; then

0 commit comments

Comments
 (0)