[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://
/usr/bin/unmute
#!/bin/bash
amixer scontrols | sed -e 's/^Simple mixer control//' | while read line; do
amixer sset "$line" unmute;
amixer sset "$line" 100%;
done
/usr/bin/archphile-optimize
# this command is used in order to unmute dac and set the volume to 100% during boot
#
/usr/bin/unmute
#!/bin/bash
# mixer settings for Iqaudio+ and Hifiberry+ i2s Dacs
amixer sset "'Digital',0" 100%
amixer sset "'Analogue Playback Boost',0" 0%
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
Θα σας πω μια ιστορία η οποία με έχει κάνει να χάσω τα λιγοστά μαλλιά μου τις τελευταίες ημέρες.
Για πολύ καιρό συνυπήρχαν 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 όπου επαναλαμβάνω πως εδώ και πολύ καιρό είναι μια χαρά και κάνει τη δουλειά που πρέπει.