Archphile - μια audiophile διανομή για Raspberry Pi, Udoo, Cubox-i και Odroid C1+/C2

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Με προφανή τρόπο όχι. Εγώ το βλέπω συνήθως αν θέλω από τον mpdroid, τον γνωστό Android client.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Ετοιμάστηκαν όλα τα images και έγινε bump σε νέα έκδοση 0.99.4.b.

Οι λόγοι ήταν οι εξης:

- νεότερος raspberry pi kernel (4.1.18), πάλι με το i2s patch που διορθώνει τα sound levels
- νέο i2select ώστε να προσαρμοστεί στο παραπάνω και να κάνει finetuning στο Iqaudio+ και στο Hifiberry+
- update της glibc ώστε να διορθωθεί ένα μεγάλο κενό ασφαλείας

Θα γίνει πρώτα ένα beta testing στο Raspberry για να σιγουρέψουμε ότι το i2s είναι οκ και λογικά αύριο κάποια στιγμή θα έχουν ανέβει όλα τα images.

Ένα δημόσιο ευχαριστώ στον Sat Lover που με βοήθησε πάρα πολύ ώστε να μπορέσω να λύσω τα προβλήματα.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Ένα δάκρυ συγκίνησης κυλάει στο μάγουλό μου:D

Πριν λίγο ανέβηκαν όλα τα images της τελευταίας έκδοσης 0.99.4b Beta:

http://archphile.org/blog/0-99-4b-beta-raspberry-pi-2-odroid-c1-cubox-udoo-quad/

Οι υποστηριζόμενες συσκευές είναι:

- Raspberry Pi 2
- Odroid C1+
- Cubox-i4 pro
- Udoo Quad


Σε γενικές γραμμές δεν έχει αλλάξει κάτι ιδιαίτερο από την προηγούμενη έκδοση. Τα πιο σημαντικά για τους χρήστες του avclub είναι:

- νεότερος kernel 4.1.18 για raspberry pi με το i2s patch ο οποίος διαχειρίζεται σωστά τα max volumes σε i2s dacs όπως το hifiberry plus
- νέο πακέτο i2select ώστε να είναι συμβατό με το παραπάνω
- full update στο τελευταίο Archlinuxarm ώστε να λυθεί ένα πολύ σοβαρό κενό ασφαλείας με την προηγούμενη glibc


Σε φρέσκια εγκατάσταση, ξεχνάτε όλα τα προηγούμενα που έχουν γραφτεί για το hifiberry plus και απλά τρέχετε το i2select χωρίς κανένα επιπλέον βήμα.


Ελπίζω ότι όλα έχουν πάει καλά και ότι η 0.99.4b θα είναι αντάξια της δουλειάς που έχω ρίξει.

Πάω να πάρω τις βιταμίνες μου :firstprize:



Aν είστε "Σπαρτιάτες" εγκαταστήστε mpd-archphile-minimal. Το προτείνω ανεπιφύλακτα:

[root@archphile ~]# mpd -V
Music Player Daemon 0.19.12


Copyright (C) 2003-2007 Warren Dukes <[email protected]>
Copyright (C) 2008-2014 Max Kellermann <[email protected]>
This is free software; see the source for copying conditions. There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.




Database plugins:
simple proxy


Storage plugins:
local


Decoders plugins:
[mad] mp3 mp2
[vorbis] ogg oga
[oggflac] ogg oga
[flac] flac
[sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2
[dsdiff] dff
[dsf] dsf
[faad] aac
[pcm]


Output plugins:
null fifo alsa


Input plugins:
file alsa curl mms


Playlist plugins:
extm3u m3u pls cue embcue


Protocols:
file:// http:// https:// mms:// mmsh:// mmst:// mmsu:// alsa://
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Γράφω αυτό το post ώστε να δώσω κάποιες εξτρα πληροφορίες για το volume control, γιατί τελευταία έχει γίνει μεγάλη συζήτηση και ίσως αρκετοί να μην καταλαβαίνουν τι παίζει ακριβώς.


Για να είμαστε bit perfect θα πρέπει το volume να είναι στο 100% και αυτό να αντιστοιχεί σε 0db.


Ο MPD δίνει επιλογές για:

- απενεργοποιημένο mixer
- software mixer (καλό είναι να τον αποφεύγουμε)
- hardware mixer

Τον πρώτο καιρό που στο Archphile υποστήριζα μόνο USB dacs δεν ασχολούμουν και πολύ με το θέμα. Έβαζα όπως και τώρα το mixer απενεργοποιημένο εξ' ορισμού και έδινα οδηγίες για το πως θα τον ανοιξει όποιος θέλει. Τότε όμως παρατηρήθηκε σε κάποια dacs ότι είτε ξεκινούν muted είτε το volume τους δεν είναι στο 100%. Έτσι τότε με αφορμή μια εντολή που έτρεχε το volumio εμπλούτισα με ακόμα μια και έφτιαξα την εντολή

Code:
/usr/bin/unmute

Το unmute είναι ένα πάναπλο script που κάνει unmute και σηκώνει τα levels στο 100%:


Code:
#!/bin/bash
amixer scontrols | sed -e 's/^Simple mixer control//' | while read line; do
    amixer sset "$line" unmute;
    amixer sset "$line" 100%;
done


Αυτή την εντολή την έβαλα και ακόμα την έχω να τρέχει σε κάθε εκκίνηση και μπορεί να απενεργοποιηθεί αν κάνουμε edit το


Code:
/usr/bin/archphile-optimize


και ασχοληθούμε με το παρακάτω section βάζοντας μια δίεση:

Code:
# this command is used in order to unmute dac and set the volume to 100% during boot
#
/usr/bin/unmute


Όλα κυλούσαν ήρεμα και ομαλά μέχρι που εμφανίστηκαν τα hifiberry και iqaudio dacs τα οποία είναι βασισμένα στο ίδιο chip. Αυτά λοιπόν για αδιανόητο λόγο είχαν τέτοια υλοποίηση στον driver όπου το 100% του volume αντιστοιχούσε σε παραπάνω db με αποτέλεσμα να κλιπάρουν.

Ήταν εμφανές ότι έπρεπε να αλλάξω το unmute ώστε να μην πηγαίνει στο 100%. Βρήκα λοιπόν ότι όταν ο το volume πηγαίνει στο 81%, τότε έχω 0db.

Οπότε έφτιαξα ένα script, το i2select, το οποίο μεταξύ άλλων πάει και αλλάζει την εντολή unmute ώστε το volume να καρφώνει στην εκκίνηση εκεί που θα έπρεπε.


Στη συνέχεια παρατήρησα ότι υπήρχε ένα analogue volume boost το οποίο δίνει ακόμα 0.8db. Ο hifiberry έλεγε ότι αυτό θα πρέπει να είναι στο μηδέν ενώ ο iqaudio έλεγε ότι θα πρέπει να είναι στο max. Στην προηγούμενη έκδοση ήταν ρυθμισμένα έτσι.


Πλέον με τους νέους kernel που έχω βάλει, το volume δεν χρειάζεται να πηγαίνει στο 81%. Όποιος για λόγο που δεν καταλαβαίνω θέλει αυτά τα 24 επιπλέον db, μπορεί να βάλει ένα ειδικό option στο config.txt. Μην το κάνετε διότι είναι μια λαλακία και μισή!

Έμενε λοιπόν να αποφασίσω το τι θα κάνω με το boost. Έπειτα από ακροάσεις του iqaudio διαπίστωσα ότι το αποτέλεσμα είναι ελάχιστα ακουστό και οπότε αποφάσισα πλέον να το ρίξω στο 0 και για τα 2 dac. Έτσι όταν κάποιος τρέχει το i2select και διαλέγει τα iqaudio plus και hifiberry plus, η εντολή unmute αντικαθίσταται με την παρακάτω:


Code:
#!/bin/bash
# mixer settings for Iqaudio+ and Hifiberry+ i2s Dacs
amixer sset "'Digital',0" 100%
amixer sset "'Analogue Playback Boost',0" 0%


Δηλαδή το volume πηγαίνει στο 100% που αντιστοιχεί στα 0db ενώ το boost μηδενίζει.



Ακόμα και αν ενεργοποιήσετε hardware volume control, το script αυτό θα τρέχει σε κάθε εκκίνηση και θα πηγαίνει το volume εκεί που είναι σωστό. Μετά θα μπορείτε να το κατεβάζετε. Αν δε θέλετε να συμβαίνει αυτό παίζετε με το arhcphile-optimize όπως εξήγησα παραπάνω και τελειώνει η ιστορία μια και καλή!
 
Last edited:

sat lover

Established Member
18 November 2007
272
fresh install σε rpi2 με hifiberry dac+,οι πρώτες εντυπώσεις πολύ καλές,πολύ γρήγορη ανανέωση της database,φανταστικό και σταθερό image
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Θα σας πω μια ιστορία η οποία με έχει κάνει να χάσω τα λιγοστά μαλλιά μου τις τελευταίες ημέρες.

Για πολύ καιρό συνυπήρχαν 2 kernels για το rpi. Ο επίσημος ήταν ο ένας και ο άλλος ήταν αυτός του Raspberry Pi foundation.

Υπήρχε μια βασική διαφωνία για το πως θα ονομαστεί το module που ανοίγει το i2s στα dacs:

- Το RPI Foundation ονόμασε το module bcm2708-i2s
- Στον επίσημο kernel το ονόμασαν bcm2835-i2s

Το module που χρησιμοποιούμε όλον αυτό τον καιρό είναι το πρώτο, δηλαδή το bcm2708-i2s.


Κάποια στιγμή οι δύο κώδικες έγιναν merged και επειδή η διαφωνία συνέχιζε, παρέμεινε το ίδιο module με 2 ονοματα.

Στον stable kernel αυτή τη στιγμή θα παρατηρήσει κανεις και τα 2:

https://github.com/raspberrypi/linux/tree/rpi-4.1.y/sound/soc/bcm


Σε νεότερη έκδοση που δεν έχει γίνει ακομη stable (4.4.x), αποφάσισαν πλέον να ονοματίζουν το module ως bcm2835. Αυτό που τους είχε ξεφύγει όμως ήταν κάποιες διορθώσεις όπου ενεργοποιούσαν τα 24 bit.

Έτσι εμφανίστηκε ένα patch για την 4.4.y το οποίο διόρθωνε τα 24 bit όπως είχε γίνει παλαιότερα στο 2708.

Κάπου εκεί εγώ βρήκα το patch αυτό και το εφάρμοσα στον 4.1.18, φτιάχνοντας το module bcm2835-i2s, όπου μαντέψτε τι...... στον 4.1.18 δεν χρησιμοποιείται!!

Με άλλα λόγια, το patch που εφάρμοσα, φτιάχνει ένα module το οποίο δεν χρησιμοποιείται, ενώ παράλληλα τα 24 bit παίζουν μια χαρά στο raspberry pi με τον stable kernel.

Για όλα αυτά έψαχνα μέρες, και τελικά επικοινώνώνησα με τον άνθρωπο που έχει γράψει τον driver και μου εξήγησε το μπάχαλο που έχει συμβεί:

Hi Michael,
the bcm2835-i2s is coming from upstream (i.e. the kernel as maintained
by Torvalds), while the bcm2708-i2s is coming from downstream (i.e. the
kernel maintained by the Raspberry Pi Foundation).

In principle they both perform the same task. At the time of development
there was a disagreement about how to name the platform so it was
different for upstream and downstream.

Unfortunately when merging the upstream kernel and the downstream kernel
no one thought about merging these files. It would be best to merge all
recent changes to the bcm2708-i2s into the bcm2835-i2s and replace the
usage of the bcm2708-i2s with the usage of the bcm2835-i2s everywhere.

Greetings,
Florian


Επειδή έχω δώσει την εντύπωση στην κοινότητα ότι έχω κάνει κάτι όπου δεν έχουν κάνει οι άλλοι, θα ετοιμάσω έναν νέο τελικό image με μαμά kernel, καθώς και όλη την παραπάνω πληροφορία σε ένα αναλυτικό post.

Το image που θα φτιάξω θα χρησιμοποιεί το module bcm2708-i2s όπου επαναλαμβάνω πως εδώ και πολύ καιρό είναι μια χαρά και κάνει τη δουλειά που πρέπει.
 

Ilias_1971

Senior Member
28 March 2007
388
Γέρακας
Αγαπητέ tuxx συγχαρητήρια για την προσπάθειά σου.

Είχα την προηγούμενη έκδοση του Archphile και σήμερα πέρασα την καινούρια, αλλά αντιμετωπίζω ένα πρόβλημα.

Σε Raspberry pi2 δεν έχω ήχο από τη Hifiberry Digi+ επειδή δείχνει να μην ενεργοποιείται.

Με την προηγούμενη έκδοση έπαιζε, αλλά με την καινούρια δεν...

Ακολούθησα το βήμα με το i2select, επιλέγοντας την επιλογή 3 που αντιστοιχεί στη Hifiberry Digi και αμέσως έκανα επανεκκίνηση.

Δεν ξέρω εάν πρέπει να αλλάξω κάτι στο mpd.conf ή κάπου αλλού.

Αντιγράφω από την ενότητα "audio_output" του mpd.conf μήπως σε βοηθήσει να βγάλεις κάποιο συμπέρασμα:


enabled "yes"
type "alsa"
name "MY DAC"
mixer_control "Digital"
mixer_device "hw:0"
mixer_index "0"
device "hw:0,0"


Επίσης με την εντολή "alsamixer", ως Card αναφέρει "snd_rpi_hifiberry_digi".


Ευχαριστώ εκ των προτέρων για την όποια βοήθεια.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Βγάζεις μια φωτο από τον alsamixer? Για το συγκεκριμένο δεν έχω αλλάξει τίποτα από την προηγούμενη έκδοση.
 

Ilias_1971

Senior Member
28 March 2007
388
Γέρακας
Screenshot%202016-03-01%2000.49.59.png


https://www.dropbox.com/s/92uv0swnq847y2e/Screenshot%202016-03-01%2000.49.59.png
 

Ilias_1971

Senior Member
28 March 2007
388
Γέρακας
Αγαπητέ tuxx μετά από 2-3 επανεκκινήσεις είδε την κάρτα και παίζει κανονικά. :a0210:

Δεν ξέρω τι άλλαξε.

Έτρεξα την εντολή "aplay -l" και την αναφέρει πλήρως.

Σε ευχαριστώ πολύ για το χρόνο σου.

Και πάλι συγχαρητήρια για το έργο σου.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Παρότι με αγχώνει ο τρόπος που έλυσες το πρόβλημα, σου εύχομαι καλές ακροάσεις :D

--- Αυτόματη συγχώνευση μηνύματος ---

Θα σας πω μια ιστορία η οποία με έχει κάνει να χάσω τα λιγοστά μαλλιά μου τις τελευταίες ημέρες.

Για πολύ καιρό συνυπήρχαν 2 kernels για το rpi. Ο επίσημος ήταν ο ένας και ο άλλος ήταν αυτός του Raspberry Pi foundation.

Υπήρχε μια βασική διαφωνία για το πως θα ονομαστεί το module που ανοίγει το i2s στα dacs:

- Το RPI Foundation ονόμασε το module bcm2708-i2s
- Στον επίσημο kernel το ονόμασαν bcm2835-i2s

Το module που χρησιμοποιούμε όλον αυτό τον καιρό είναι το πρώτο, δηλαδή το bcm2708-i2s.


Κάποια στιγμή οι δύο κώδικες έγιναν merged και επειδή η διαφωνία συνέχιζε, παρέμεινε το ίδιο module με 2 ονοματα.

Στον stable kernel αυτή τη στιγμή θα παρατηρήσει κανεις και τα 2:

https://github.com/raspberrypi/linux/tree/rpi-4.1.y/sound/soc/bcm


Σε νεότερη έκδοση που δεν έχει γίνει ακομη stable (4.4.x), αποφάσισαν πλέον να ονοματίζουν το module ως bcm2835. Αυτό που τους είχε ξεφύγει όμως ήταν κάποιες διορθώσεις όπου ενεργοποιούσαν τα 24 bit.

Έτσι εμφανίστηκε ένα patch για την 4.4.y το οποίο διόρθωνε τα 24 bit όπως είχε γίνει παλαιότερα στο 2708.

Κάπου εκεί εγώ βρήκα το patch αυτό και το εφάρμοσα στον 4.1.18, φτιάχνοντας το module bcm2835-i2s, όπου μαντέψτε τι...... στον 4.1.18 δεν χρησιμοποιείται!!

Με άλλα λόγια, το patch που εφάρμοσα, φτιάχνει ένα module το οποίο δεν χρησιμοποιείται, ενώ παράλληλα τα 24 bit παίζουν μια χαρά στο raspberry pi με τον stable kernel.

Για όλα αυτά έψαχνα μέρες, και τελικά επικοινώνώνησα με τον άνθρωπο που έχει γράψει τον driver και μου εξήγησε το μπάχαλο που έχει συμβεί:




Επειδή έχω δώσει την εντύπωση στην κοινότητα ότι έχω κάνει κάτι όπου δεν έχουν κάνει οι άλλοι, θα ετοιμάσω έναν νέο τελικό image με μαμά kernel, καθώς και όλη την παραπάνω πληροφορία σε ένα αναλυτικό post.

Το image που θα φτιάξω θα χρησιμοποιεί το module bcm2708-i2s όπου επαναλαμβάνω πως εδώ και πολύ καιρό είναι μια χαρά και κάνει τη δουλειά που πρέπει.


Ελπίζω αυτό να είναι και το τελευταίο image για την ώρα:

http://archphile.org/blog/apology-community-new-version-raspberry-pi-2-0-99-4c/
 

kostis

AVClub Enthusiast
26 January 2007
876
Κόρινθος
Φλάσαρα για πρώτη φορά σήμερα το Archphile (με το τελευταίο archphile-0.99.4c-beta-rpi2.img).

Συγχαρητήρια στον tuxx για την πολύ καλή δουλειά.

Αντιμετωπίζω το εξής πρόβλημα: Προσπαθώ να δηλώσω τον δικτυακό σκληρό που έχω στο τοπικό δίκτυο (έναν WD MyBookLive) αλλά κάτι κάνω λάθος. Διάβασα το σχετικό άρθρο http://archphile.org/howto/nas-configuration και έκανα τα εξής:

μετέτρεψα τις γραμμές

#SAMBA Share – Share using username/paswword
#//xxx.xxx.xxx.xxx/mymusicdir /mnt/nas-samba cifs username=msusername,password=mspassword,ro,iocharset=utf8,nolock,noauto,x-systemd.automount,x-systemd.device-timeout=10,sec=ntlm,rsize=8048,wsize=8096

σε

#SAMBA Share – Share using username/paswword
#//192.168.2.8/Public/01Music/Mono - Stereo /mnt/nas-samba cifs username=admin,password=εδώ έβαλα το πασγουρντ,ro,iocharset=utf8,nolock,noauto,x-systemd.automount,x-systemd.device-timeout=10,sec=ntlm,rsize=8048,wsize=8096

βγήκα, έσωσα και μετά reboot. Όταν επανεκκινησε δεν είδε τίποτα ο ympd.

Σκέφτηκα ότι κάποιο λάθος έκανα, ξαναείδα τις οδηγίες και αντιλήφθηκα ότι έλειπε η δίεση από τη δεύτερη γραμμή του παραδείγματος που υπάρχει εκεί. Οπότε έκανα edit το αρχείο σε:

#SAMBA Share – Share using username/paswword
//192.168.2.8/Public/01Music/Mono - Stereo /mnt/nas-samba cifs username=admin,password=εδώ έβαλα το πασγουρντ,ro,iocharset=utf8,nolock,noauto,x-systemd.automount,x-systemd.device-timeout=10,sec=ntlm,rsize=8048,wsize=8096

Μετά το reboot δεν ξαναξεκίνησε το rpi2. Αναγκάστηκα να ξαναφλασάρω την κάρτα. Αυτό επαναλήφιηκε 2 ακόμα φορές.

Τί κάνω λάθος; Μήπως υπάρχουν κάπου πιο αναλυτικές οδηγίες για να μην ενοχλώ;

Να πω επίσης ότι ο φάκελος Public του WD που χρησιμοποιώ είναι κοινόχρηστος, αλλά επειδή το moode μου ζήταγε username και password του διαχειριστή για να τον δει, τα έβαλα και στο Archphile. To Rune ας πούμε δε μου τα ζήταγε, τον έβλεπε και χωρίς αυτά.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Από τη στιγμή που είναι κοινόχρηστος, θα χρησιμοποιήσεις τιες γραμμές για το public share! Δε θα βάλεις σε καμία περίπτωση username και password!
 

kostis

AVClub Enthusiast
26 January 2007
876
Κόρινθος
Τη δίεση πριν την ip τη βάζω;

Επίσης γράφω καινούριες γραμμές ή επεξεργάζομαι τις υπάρχουσες;
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Διάθεση σημαίνει σχόλιο. Αφήνεις τη διάση μόνο στον τίτλο που έχω και επεξεργαζεσαι τις υπάρχουσες γραμμές.

Πριν κάνεις το οτιδήποτε αφαίρεσε τα κενά από τα ονόματα των directories σου γιατί θα παιδευτεις πολύ σε Linux.

--- Αυτόματη συγχώνευση μηνύματος ---

Ετοιμάζω:

- ffmpeg 3
- mpd 0.19.13

Θα τα δώσω ως updates σε πακέτα όπως έκανα παλιά ώστε να είστε πάντοτε πλήρως ενημερωμένοι. Με τον νέο ffmpeg ισιώνει και ένα πρόβλημα με αδυναμία αναπαραγωγής αρχείων alac. Μόνο ο βούδας ξέρει βέβαια γιατί κάποιος μπορεί να χρησιμοποιεί alac το 2016 αλλά λέμε τώρα :D
 

Σταύρος Κ.

Established Member
19 June 2006
215
Αναφορικά με την χρήση του HifiBerry Digi+ που έχω συνδεδεμένο, θα ήθελα να πω ότι έχοντας εγκαταστήσει την αρχική version δεν αντιλήφτηκα κάποιο πρόβλημα κατά την αναπαραγωγή (μέσω NAS).
Πάντως - καλού κακού - το αναβάθμισα στην τελευταία (4c).
Λειτουργεί και καλύπτει τις απαιτήσεις μου με άψογο τρόπο.
Μιχάλη και πάλι σε ευχαριστώ για την άπλετη προσφορά σου !
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Μια που έχεις το digi, επιβεβαίωσε ότι δε δίνει controls στον alsamixer Και μετά πήγαινε και απενεργοποίησε τις γραμμές:

mixer_control "Digital"
mixer_device "hw:0"
mixer_index "0"

στο /etc/mpd.conf


Όχι ότι έχεις πρόβλημα δηλαδή έτσι, αλλά για να είσαι 100% σωστός!
 

Σταύρος Κ.

Established Member
19 June 2006
215
Μια μικρή βοήθεια : πως επιβεβαιώνω ότι δεν δίνω controls στον alsamixer?

PS
Αν θες και άλλα δεδομένα σε σχέση με το digi, είμαι στην διάθεση σου…