Search
Search titles only
By:
Search titles only
By:
Home
Forums
New posts
Search forums
What's new
New posts
Latest activity
Members
Current visitors
Κανονισμός Λειτουργίας
Σωματείο AVClub
Log in
Register
Search
Search titles only
By:
Search titles only
By:
New posts
Search forums
Menu
Install the app
Install
Reply to thread
Home
Forums
Δικάναλος Ήχος
Computer Audio
Computer Audio Software
Δημιουργία headless Archlinux MPD server σε Raspberry Pi model B με USB DAC
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="tuxx" data-source="post: 1057036023" data-attributes="member: 45860"><p>Σε αυτό τον οδηγό θα καλύψω τα βασικά βήματα για τη δημιουργία ενός MPD server για bit perfect (όσο αυτό είναι δυνατόν στο Rpi) αναπαραγωγή σε Raspberry Pi model B με χρήση USB DAC.</p><p></p><p></p><p>H διανομή που θα χρησιμοποιήσουμε ειναι το Archlinux ARM.</p><p></p><p></p><p></p><p></p><p><strong>1. Κατεβάζετε τη διανομη και την γράφετε στην SD Card. </strong></p><p></p><p></p><p>Παρότι είμαι linux user, δεν έχω card reader σε μηχάνημα με linux και έτσι χρησιμοποιώ το W32Diskmanager με απόλυτη επιτυχία. Για κατέβασμα και οδηγίες πατάτε το παρακάτω link:</p><p></p><p></p><p><a href="http://archlinuxarm.org/platforms/armv6/raspberry-pi" target="_blank">http://archlinuxarm.org/platforms/armv6/raspberry-pi</a></p><p></p><p></p><p><strong>2. Mπουτάρετε με την SD Card που ετοιμάσατε παραπάνω και κάνετε login στη νέα σας διανομή με χρήση SSH</strong></p><p></p><p></p><p>Username: root</p><p>Password: root</p><p></p><p></p><p>- Όσοι θα το κάνουν από Linux/Unix, δίνουν απλά την εντολή:</p><p></p><p></p><p>ssh <a href="mailto:root@xxx.xxx.xxx.xxx">root@xxx.xxx.xxx.xxx</a> (όπου xxx.xxx.xxx.xxx η ip που έχει πάρει το raspberry μέσω dhcp. Εγώ βρίσκω ποιά είναι αυτή μέσα από το administration control του router μου)</p><p></p><p></p><p>- Oι χρήστες Windows θα χρησιμοποιήσουν το putty το οποίο θα κατεβάσουν από εδώ --> <a href="http://www.putty.org/" target="_blank">http://www.putty.org/</a></p><p></p><p></p><p></p><p></p><p>3.<strong> Βασικές ρυθμίσεις συστήματος (από εδώ και πέρα χρησιμοποιώ τον editor "nano". Όταν θέλουμε να σώσουμε και να βγούμε από το αρχείο με nano, πατάμε CTRL+X και μετά Υ )</strong></p><p></p><p></p><p>- αλλαγή root password:</p><p></p><p></p><p>[CODE]passwd[/CODE]</p><p></p><p></p><p>- αλλαγή hostname με ένα της προτίμησής μας (εγώ ονόμασα το σύστημά μου "archphile")</p><p></p><p></p><p>[CODE]hostnamectl set-hostname archphile[/CODE]</p><p></p><p></p><p>- ορισμός στατικής ip</p><p></p><p></p><p>[CODE]nano /etc/netctl/eth0[/CODE]</p><p></p><p></p><p>To αρχείο σας θα πρέπει να είναι με αυτή τη μορφή, εννοείται με τις δικές σας ρυθμίσεις δικτύου:</p><p></p><p></p><p>[CODE]</p><p>Description='A basic static ethernet connection'</p><p>Interface=eth0</p><p>Connection=ethernet</p><p>AutoWired=yes</p><p>IP=static</p><p>Address=('192.168.1.149/24')</p><p>Gateway='192.168.1.1'</p><p>DNS=('8.8.8.8' '8.8.4.4')</p><p></p><p></p><p></p><p></p><p>#Description='A basic dhcp ethernet connection'</p><p>#Interface=eth0</p><p>#Connection=ethernet</p><p>#IP=dhcp</p><p>#ExecUpPost='/usr/bin/ntpd -gq || true'</p><p></p><p></p><p>## for DHCPv6</p><p>#IP6=dhcp</p><p>## for IPv6 autoconfiguration</p><p>#IP6=stateless</p><p>[/CODE]</p><p></p><p></p><p>Και στη συνέχεια:</p><p></p><p></p><p>[CODE]netctl enable eth0[/CODE]</p><p></p><p></p><p>Από το επόμενο boot το δίκτυό θα έχει την επιθυμητή ip</p><p></p><p></p><p>- disable στον cron ο οποίος όποτε τρέχει τρώει πολλή CPU</p><p></p><p></p><p>[CODE]systemctl disable cronie[/CODE]</p><p></p><p></p><p>- ορισμός του performance governor ως default:</p><p></p><p></p><p>[CODE]pacman -Syu </p><p>pacman -S cpupower</p><p>nano /etc/default/cpupower</p><p>[/CODE]</p><p></p><p></p><p>Ασχολούμαστε μόνο με το αρχικό section το οποίο πρέπει να είναι όπως το παρακάτω:</p><p></p><p></p><p>[CODE]</p><p># Define CPUs governor</p><p># valid governors: ondemand, performance, powersave, conservative, userspace.</p><p>governor='performance'</p><p>[/CODE]</p><p>και στη συνέχεια:</p><p></p><p></p><p>[CODE]systemctl start cpupower</p><p>systemctl enable cpupower[/CODE]</p><p></p><p></p><p>- Βελτιστοποίηση για λιγότερα writes:</p><p></p><p></p><p>[CODE]</p><p>nano /etc/fstab</p><p>[/CODE]</p><p></p><p></p><p>το αρχείο θα πρέπει να είναι όπως το παρακάτω:</p><p></p><p></p><p>[CODE]</p><p>#</p><p># /etc/fstab: static file system information</p><p>#</p><p># <file system> <dir> <type> <options> <dump> <pass></p><p>/dev/mmcblk0p1 /boot vfat defaults 0 0</p><p></p><p></p><p>#Finetuning for less writes on SD Card - Warning!!! Logs are deleted after each reboot.</p><p>tmpfs /var/log tmpfs defaults 0 0</p><p>[/CODE]</p><p></p><p></p><p>[CODE]</p><p>nano /etc/sysctl.d/99-sysctl.conf </p><p>[/CODE]</p><p></p><p></p><p>To αρχείο θα πρέπει να είναι ως εξής:</p><p></p><p></p><p>[CODE]</p><p>vm.swappiness = 0</p><p>vm.min_free_kbytes=32768</p><p>vm.vfs_cache_pressure = 300</p><p>[/CODE]</p><p></p><p></p><p>- Ορισμός locales</p><p></p><p></p><p>[CODE]nano /etc/locale.gen[/CODE]</p><p></p><p></p><p>Βγάζετε το "#" από όποια γραμμή επιθυμείτε. Εγώ ενεργοποιώ το αγγλικό(en_US) UTF-8 και το ελληνικό(el_GR) UTF-8. Στη συνέχεια:</p><p></p><p></p><p>[CODE]nano /etc/locale.conf[/CODE]</p><p></p><p></p><p>To παραπάνω αρχείο θα πρέπει να περιέχει την παρακάτω γραμμή:</p><p></p><p></p><p>[CODE]LANG="en_US.UTF-8"[/CODE]</p><p></p><p></p><p>Τέλος δίνετε την παρακάτω εντολή:</p><p></p><p></p><p>[CODE]locale-gen[/CODE]</p><p></p><p></p><p>- Ρύθμιση Zώνης/Ώρας και συγχρονισμός ώρας με ntp</p><p></p><p></p><p>[CODE]</p><p>rm -r /etc/localtime</p><p>ln -s /usr/share/zoneinfo/Europe/Athens /etc/localtime</p><p>pacman -S ntp</p><p>nano /etc/ntp.conf</p><p>[/CODE]</p><p></p><p></p><p>το ntp.conf θα πρέπει να είναι κάπως έτσι για Ελλάδα:</p><p></p><p></p><p>[CODE]</p><p># With the default settings below, ntpd will only synchronize your clock.</p><p>#</p><p># For details, see:</p><p># - the ntp.conf man page</p><p># - http://support.ntp.org/bin/view/Support/GettingStarted</p><p># - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon</p><p></p><p></p><p># Associate to public NTP pool servers; see http://www.pool.ntp.org/</p><p>#server 0.pool.ntp.org iburst</p><p>#server 1.pool.ntp.org iburst</p><p>#server 2.pool.ntp.org iburst</p><p></p><p></p><p>server 3.gr.pool.ntp.org iburst</p><p>server 0.europe.pool.ntp.org iburst</p><p>server 2.europe.pool.ntp.org iburst</p><p></p><p></p><p></p><p></p><p># Only allow read-only access from localhost</p><p>restrict default noquery nopeer</p><p>restrict 127.0.0.1</p><p>#restrict ::1</p><p></p><p></p><p># Location of drift file</p><p>driftfile /var/lib/ntp/ntp.drift</p><p>[/CODE]</p><p></p><p></p><p>Τέλος δίνετε τις εντολές:</p><p></p><p></p><p>[CODE]</p><p>systemctl start ntpd</p><p>systemctl enable ntpd</p><p>[/CODE]</p><p></p><p></p><p><strong>4. Εγκατάσταση των πακέτων που θα χρειαστούμε για MPD server με samba και nfs shares:</strong></p><p></p><p></p><p>[CODE]</p><p>pacman -Syu</p><p>pacman -S mpd mpc alsa-utils htop cifs-utils nfs-utils</p><p>[/CODE]</p><p></p><p></p><p><strong>5. Ρύθμιση της alsa να βλέπει μόνο το USB DAC και κάποιες έξτρα βελτιώσεις στην αναπαραγωγή:</strong></p><p></p><p></p><p>[CODE]nano /etv/modprobe.d/alsa-base.conf[/CODE]</p><p></p><p></p><p>Το αρχείο θα πρέπει να είναι ως εξής:</p><p></p><p></p><p>[CODE]</p><p>options snd slots=snd_usb_audio</p><p>options snd_usb_audio index=0 nrpacks=1</p><p>[/CODE]</p><p></p><p></p><p><strong>6. Δημιουργία των φακέλων που θα γίνoνται mount τα shares και πιθανώς κάποιος USB δίσκος (δε θα ασχοληθούμε με τον δίσκο γι αρχή).</strong></p><p></p><p></p><p>[CODE]</p><p>mkdir /mnt/nas-nfs</p><p>chmod 777 /mnt/nas-nfs</p><p>mkdir /mnt/nas-samba</p><p>chmod 777 /mnt/nas-samba</p><p>mkdir /mnt/webradio</p><p>chmod 777 /mnt/webradio</p><p>mkdir /mnt/usb-disk</p><p>chmod 777 /mnt/usb-disk</p><p>[/CODE]</p><p></p><p></p><p><strong>7. Στήσιμο του mpd:</strong></p><p><strong></strong></p><p><strong></strong></p><p>[CODE]</p><p>mkdir /var/lib/mpd/music</p><p>chown -R mpd /var/lib/mpd</p><p>cd /var/lib/mpd/music</p><p>ln -s /mnt/nas-nfs</p><p>ln -s /mnt/nas-samba</p><p>ln -s /mnt/webradio</p><p>ln -s /mnt/usb-disk</p><p>gpasswd -a mpd audio</p><p>nano /etc/mpd.conf</p><p>[/CODE]</p><p></p><p></p><p>To /etc/mpd.conf θα πρέπει να είναι κάπως έτσι:</p><p></p><p></p><p>[CODE]</p><p>###################################</p><p>##Archphile Default Configuration##</p><p></p><p></p><p>follow_outside_symlinks "yes"</p><p>follow_inside_symlinks "yes"</p><p>db_file "/var/lib/mpd/mpd.db"</p><p>log_file "/var/log/mpd.log"</p><p>pid_file "/var/run/mpd/pid"</p><p>music_directory "/var/lib/mpd/music"</p><p>playlist_directory "/var/lib/mpd/playlists"</p><p>state_file "/var/lib/mpd/mpdstate"</p><p>user "mpd"</p><p>bind_to_address "any"</p><p>port "6600"</p><p>log_level "default"</p><p>zeroconf_enabled "yes"</p><p>zeroconf_name "archphile"</p><p>volume_normalization "no"</p><p>audio_buffer_size "2048"</p><p>buffer_before_play "20%"</p><p>filesystem_charset "UTF-8"</p><p>id3v1_encoding "UTF-8"</p><p>gapless_mp3_playback "yes"</p><p>auto_update "yes"</p><p>mixer_type "disabled"</p><p>group "audio"</p><p>max_connections "20"</p><p></p><p></p><p>decoder {</p><p> plugin "ffmpeg"</p><p> enabled "no"</p><p>}</p><p></p><p></p><p>input {</p><p> plugin "curl"</p><p>}</p><p></p><p></p><p>audio_output {</p><p>enabled "yes"</p><p>type "alsa"</p><p>name "USB-Audio"</p><p>device "hw:0,0"</p><p>dsd_usb "yes"</p><p>}</p><p>[/CODE]</p><p></p><p></p><p></p><p></p><p>- To τελικό βήμα (που δεν καταλαβαίνω και καλά γιατί απαιτείται) είναι να γίνει edit το παρακάτω:</p><p></p><p></p><p>[CODE]</p><p>nano /boot/cmdline.txt</p><p>[/CODE]</p><p></p><p></p><p>και να αλλαχτεί το ipv6.disable=1 σε ipv6.disable=0</p><p></p><p></p><p></p><p></p><p><u>Μερικά σχόλια για τα παραπάνω:</u></p><p></p><p><em>Aυτό που κάνατε με τις παραπάνω εντολές ήταν οτι δημιουργήσατε τον φάκελο /var/lib/mpd/music, ορίσατε ότι το /var/lib/mpd ανήκει στον χρήστη mpd κάνατε </em></p><p><em>links των φακέλων που προσαρτείτε τα mounts σας στο φάκελο /var/lib/mpd/music που έιναι και το σημείο που βλέπεi την library o mpd και ορίσατε ότι ο χρήστης mpd ανήκει στο audio group</em>.</p><p></p><p><em>To audio buffer size στο /etc/mpd.conf παίζει επίσης ρόλο στην αναπαραγωγη και πρέπει να γίνουν δοκιμές με διάφορες τιμές.</em></p><p></p><p></p><p></p><p>- Δοκιμάζετε ότι όλα πάνε καλά και μπορεί να τρέξει ο mpd:</p><p></p><p>[CODE]</p><p>mpd --no-daemon</p><p>[/CODE]</p><p></p><p></p><p>και τέλος σηκώνετε το service και το ενεργοποιείτε στην εκκίνηση:</p><p></p><p></p><p>[CODE]</p><p>systemctl start mpd</p><p>systemctl enable mpd</p><p>[/CODE]</p><p></p><p></p><p></p><p></p><p><strong>8. Ορισμός των SAMBA και ΝFS shares:</strong></p><p></p><p></p><p>[CODE]</p><p>nano /etc/fstab</p><p>[/CODE]</p><p></p><p></p><p>Παραθέτω το δικό μου αρχείο:</p><p></p><p></p><p>[CODE]</p><p></p><p></p><p>#</p><p># /etc/fstab: static file system information</p><p>#</p><p># <file system> <dir> <type> <options> <dump> <pass></p><p>/dev/mmcblk0p1 /boot vfat defaults 0 0</p><p></p><p></p><p>#Finetuning for less writes on SD Card - Warning!!! Logs will be deleted after reboot.</p><p>tmpfs /var/log tmpfs defaults 0 0</p><p></p><p></p><p>#SAMBA Share</p><p>//192.168.1.150/Music /mnt/nas-samba cifs guest,noauto,x-systemd.automount,x-systemd.device-timeout=10,sec=ntlm,rsize=16384,wsize=16384</p><p></p><p></p><p>#NFS Share</p><p>#192.168.1.150:/music /mnt/nas-nfs nfs4 noauto,x-systemd.automount,x-systemd.device-timeout=10,rsize=16384,wsize=16384</p><p>[/CODE]</p><p></p><p></p><p></p><p></p><p><u>Mερικά σχόλια για το παραπάνω:</u></p><p></p><p></p><p><em>Στο παραπάνω σενάριο έχω κάνει comment to ΝFS και χρησιμοποιώ μόνο samba.</em></p><p><em></em></p><p><em></em></p><p><em>Tα παραπάνω θα πρέπει να προσαρμοστούν ανάλογα με το ΝΑS. Στην περίπτωσή μου έχω ένα Archlinux Desktop και οι ρυθμίσεις είναι έγκυρες γι αυτό. Ο κάθε ένας θα πρέπει να βρει τα δικά του mount options ή να ποστάρει από κάτω το σενάριό του και να το βρούμε μαζί.</em></p><p><em></em></p><p><em></em></p><p><em>Οι τιμές των rsize και wsize είναι τρομερά σημαντικές για την τελική αναπαραγωγή. Επίσης είναι θέμα του κάθε συστήματος. Πειραματιστείτε!!</em></p><p><em></em></p><p><em></em></p><p><em>Καλό είναι όταν γίνονται αλλαγές στο παραπάνω αρχείο να γίνονται πρώτα και χειροκίνητες δοικιμές προσάρτησης, πχ</em>:</p><p></p><p></p><p>[CODE]</p><p>mount /mnt/nas-samba</p><p>[/CODE]</p><p></p><p>ώστε να βλέπετε ότι δεν υπάρχει error.</p><p></p><p></p><p></p><p></p><p><strong>9. Προσθήκη μερικών πολύ ενδιαφέροντων webradio που βρήκα από το forum του Volumio:</strong></p><p></p><p></p><p>Πηγαίνετε στο παρακάτω link και κάνετε download πάνω δεξιά το zip:</p><p></p><p></p><p><a href="https://www.dropbox.com/sh/uvoj146f907f1f4/dssh0hfZRs" target="_blank">https://www.dropbox.com/sh/uvoj146f907f1f4/dssh0hfZRs</a></p><p></p><p></p><p>To κάνετε extract στο pc σας και μετά με χρήση προγράμματος όπως το filezilla (επιλέγοντας SFTP, username:root, password: το password που βάλατε και ip την στατική ip σας)</p><p></p><p></p><p>προσθέτετε τα extracted pls αρχεία στο /mnt/webradio.</p><p></p><p></p><p></p><p></p><p><strong>10. Reboot και προσευχή στο θεό που πιστεύετε</strong></p><p></p><p>[CODE]</p><p>reboot</p><p>[/CODE]</p><p></p><p></p><p></p><p></p><p><strong>11. login ακόμα μια φορά με ssh και update της library</strong>:</p><p></p><p>[CODE]</p><p>mpc update </p><p>[/CODE]</p><p></p><p>Kαλό είναι να γίνει και ένα τσεκάρισμα ότι το volume είναι στο 100%</p><p></p><p>[CODE]</p><p>alsamixer</p><p>[/CODE]</p><p></p><p></p><p><strong>12. Χειρίσμός του νέο σας mpd headless server με ένα πρόγραμμα όπως το Ario, ή από κινητά με τα mpdroid, mpod.</strong></p><p><strong></strong></p><p><strong></strong><a href="http://ario-player.sourceforge.net/" target="_blank">http://ario-player.sourceforge.net/</a></p><p><a href="https://play.google.com/store/apps/details?id=com.namelessdev.mpdroid&hl=el" target="_blank">https://play.google.com/store/apps/details?id=com.namelessdev.mpdroid&hl=el</a></p><p><a href="https://itunes.apple.com/us/app/mpod/id285063020?mt=8" target="_blank">https://itunes.apple.com/us/app/mpod/id285063020?mt=8</a></p><p></p><p></p><p><strong>13. Eπισκόπηση απόδοσης</strong></p><p><strong></strong></p><p>Για παρακολούθηση cpu/ram/proccesses:</p><p></p><p>[CODE]</p><p>htop</p><p>[/CODE]</p><p></p><p>Για επαλήθευση ότι δε γίνεται downsampling κλπ:</p><p></p><p>[CODE]</p><p>cat /proc/asound/card0/pcm0p/sub0/hw_params</p><p>[/CODE]</p><p></p><p><strong>Πηγές:</strong></p><p><strong></strong></p><p>- conf files του Volumio: <a href="http://volumio.org/" target="_blank">http://volumio.org/</a></p><p>- conf files του Runeaudio: <a href="http://www.runeaudio.com/" target="_blank">http://www.runeaudio.com/</a></p><p>- <a href="http://www.raspyfi.com/raspyfi-rc2-how-its-made-and-list-of-all-the-optimizations/" target="_blank">http://www.raspyfi.com/raspyfi-rc2-how-its-made-and-list-of-all-the-optimizations/</a></p><p>- <a href="http://volumio.org/forum/internet-radio-stations-volumio-t641.html" target="_blank">http://volumio.org/forum/internet-radio-stations-volumio-t641.html</a></p><p></p><p></p><p><strong>Τοdo:</strong></p><p></p><p>- χρήση usb δίσκου</p><p>- εύρεση τρόπου να κλείνει ο server χωρίς να χρειάζετε να κάνουμε login με ssh και να δίνουμε εντολή shutdown.</p></blockquote><p></p>
[QUOTE="tuxx, post: 1057036023, member: 45860"] Σε αυτό τον οδηγό θα καλύψω τα βασικά βήματα για τη δημιουργία ενός MPD server για bit perfect (όσο αυτό είναι δυνατόν στο Rpi) αναπαραγωγή σε Raspberry Pi model B με χρήση USB DAC. H διανομή που θα χρησιμοποιήσουμε ειναι το Archlinux ARM. [B]1. Κατεβάζετε τη διανομη και την γράφετε στην SD Card. [/B] Παρότι είμαι linux user, δεν έχω card reader σε μηχάνημα με linux και έτσι χρησιμοποιώ το W32Diskmanager με απόλυτη επιτυχία. Για κατέβασμα και οδηγίες πατάτε το παρακάτω link: [URL]http://archlinuxarm.org/platforms/armv6/raspberry-pi[/URL] [B]2. Mπουτάρετε με την SD Card που ετοιμάσατε παραπάνω και κάνετε login στη νέα σας διανομή με χρήση SSH[/B] Username: root Password: root - Όσοι θα το κάνουν από Linux/Unix, δίνουν απλά την εντολή: ssh [EMAIL="root@xxx.xxx.xxx.xxx"]root@xxx.xxx.xxx.xxx[/EMAIL] (όπου xxx.xxx.xxx.xxx η ip που έχει πάρει το raspberry μέσω dhcp. Εγώ βρίσκω ποιά είναι αυτή μέσα από το administration control του router μου) - Oι χρήστες Windows θα χρησιμοποιήσουν το putty το οποίο θα κατεβάσουν από εδώ --> [URL]http://www.putty.org/[/URL] 3.[B] Βασικές ρυθμίσεις συστήματος (από εδώ και πέρα χρησιμοποιώ τον editor "nano". Όταν θέλουμε να σώσουμε και να βγούμε από το αρχείο με nano, πατάμε CTRL+X και μετά Υ )[/B] - αλλαγή root password: [CODE]passwd[/CODE] - αλλαγή hostname με ένα της προτίμησής μας (εγώ ονόμασα το σύστημά μου "archphile") [CODE]hostnamectl set-hostname archphile[/CODE] - ορισμός στατικής ip [CODE]nano /etc/netctl/eth0[/CODE] To αρχείο σας θα πρέπει να είναι με αυτή τη μορφή, εννοείται με τις δικές σας ρυθμίσεις δικτύου: [CODE] Description='A basic static ethernet connection' Interface=eth0 Connection=ethernet AutoWired=yes IP=static Address=('192.168.1.149/24') Gateway='192.168.1.1' DNS=('8.8.8.8' '8.8.4.4') #Description='A basic dhcp ethernet connection' #Interface=eth0 #Connection=ethernet #IP=dhcp #ExecUpPost='/usr/bin/ntpd -gq || true' ## for DHCPv6 #IP6=dhcp ## for IPv6 autoconfiguration #IP6=stateless [/CODE] Και στη συνέχεια: [CODE]netctl enable eth0[/CODE] Από το επόμενο boot το δίκτυό θα έχει την επιθυμητή ip - disable στον cron ο οποίος όποτε τρέχει τρώει πολλή CPU [CODE]systemctl disable cronie[/CODE] - ορισμός του performance governor ως default: [CODE]pacman -Syu pacman -S cpupower nano /etc/default/cpupower [/CODE] Ασχολούμαστε μόνο με το αρχικό section το οποίο πρέπει να είναι όπως το παρακάτω: [CODE] # Define CPUs governor # valid governors: ondemand, performance, powersave, conservative, userspace. governor='performance' [/CODE] και στη συνέχεια: [CODE]systemctl start cpupower systemctl enable cpupower[/CODE] - Βελτιστοποίηση για λιγότερα writes: [CODE] nano /etc/fstab [/CODE] το αρχείο θα πρέπει να είναι όπως το παρακάτω: [CODE] # # /etc/fstab: static file system information # # <file system> <dir> <type> <options> <dump> <pass> /dev/mmcblk0p1 /boot vfat defaults 0 0 #Finetuning for less writes on SD Card - Warning!!! Logs are deleted after each reboot. tmpfs /var/log tmpfs defaults 0 0 [/CODE] [CODE] nano /etc/sysctl.d/99-sysctl.conf [/CODE] To αρχείο θα πρέπει να είναι ως εξής: [CODE] vm.swappiness = 0 vm.min_free_kbytes=32768 vm.vfs_cache_pressure = 300 [/CODE] - Ορισμός locales [CODE]nano /etc/locale.gen[/CODE] Βγάζετε το "#" από όποια γραμμή επιθυμείτε. Εγώ ενεργοποιώ το αγγλικό(en_US) UTF-8 και το ελληνικό(el_GR) UTF-8. Στη συνέχεια: [CODE]nano /etc/locale.conf[/CODE] To παραπάνω αρχείο θα πρέπει να περιέχει την παρακάτω γραμμή: [CODE]LANG="en_US.UTF-8"[/CODE] Τέλος δίνετε την παρακάτω εντολή: [CODE]locale-gen[/CODE] - Ρύθμιση Zώνης/Ώρας και συγχρονισμός ώρας με ntp [CODE] rm -r /etc/localtime ln -s /usr/share/zoneinfo/Europe/Athens /etc/localtime pacman -S ntp nano /etc/ntp.conf [/CODE] το ntp.conf θα πρέπει να είναι κάπως έτσι για Ελλάδα: [CODE] # With the default settings below, ntpd will only synchronize your clock. # # For details, see: # - the ntp.conf man page # - http://support.ntp.org/bin/view/Support/GettingStarted # - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon # Associate to public NTP pool servers; see http://www.pool.ntp.org/ #server 0.pool.ntp.org iburst #server 1.pool.ntp.org iburst #server 2.pool.ntp.org iburst server 3.gr.pool.ntp.org iburst server 0.europe.pool.ntp.org iburst server 2.europe.pool.ntp.org iburst # Only allow read-only access from localhost restrict default noquery nopeer restrict 127.0.0.1 #restrict ::1 # Location of drift file driftfile /var/lib/ntp/ntp.drift [/CODE] Τέλος δίνετε τις εντολές: [CODE] systemctl start ntpd systemctl enable ntpd [/CODE] [B]4. Εγκατάσταση των πακέτων που θα χρειαστούμε για MPD server με samba και nfs shares:[/B] [CODE] pacman -Syu pacman -S mpd mpc alsa-utils htop cifs-utils nfs-utils [/CODE] [B]5. Ρύθμιση της alsa να βλέπει μόνο το USB DAC και κάποιες έξτρα βελτιώσεις στην αναπαραγωγή:[/B] [CODE]nano /etv/modprobe.d/alsa-base.conf[/CODE] Το αρχείο θα πρέπει να είναι ως εξής: [CODE] options snd slots=snd_usb_audio options snd_usb_audio index=0 nrpacks=1 [/CODE] [B]6. Δημιουργία των φακέλων που θα γίνoνται mount τα shares και πιθανώς κάποιος USB δίσκος (δε θα ασχοληθούμε με τον δίσκο γι αρχή).[/B] [CODE] mkdir /mnt/nas-nfs chmod 777 /mnt/nas-nfs mkdir /mnt/nas-samba chmod 777 /mnt/nas-samba mkdir /mnt/webradio chmod 777 /mnt/webradio mkdir /mnt/usb-disk chmod 777 /mnt/usb-disk [/CODE] [B]7. Στήσιμο του mpd: [/B] [CODE] mkdir /var/lib/mpd/music chown -R mpd /var/lib/mpd cd /var/lib/mpd/music ln -s /mnt/nas-nfs ln -s /mnt/nas-samba ln -s /mnt/webradio ln -s /mnt/usb-disk gpasswd -a mpd audio nano /etc/mpd.conf [/CODE] To /etc/mpd.conf θα πρέπει να είναι κάπως έτσι: [CODE] ################################### ##Archphile Default Configuration## follow_outside_symlinks "yes" follow_inside_symlinks "yes" db_file "/var/lib/mpd/mpd.db" log_file "/var/log/mpd.log" pid_file "/var/run/mpd/pid" music_directory "/var/lib/mpd/music" playlist_directory "/var/lib/mpd/playlists" state_file "/var/lib/mpd/mpdstate" user "mpd" bind_to_address "any" port "6600" log_level "default" zeroconf_enabled "yes" zeroconf_name "archphile" volume_normalization "no" audio_buffer_size "2048" buffer_before_play "20%" filesystem_charset "UTF-8" id3v1_encoding "UTF-8" gapless_mp3_playback "yes" auto_update "yes" mixer_type "disabled" group "audio" max_connections "20" decoder { plugin "ffmpeg" enabled "no" } input { plugin "curl" } audio_output { enabled "yes" type "alsa" name "USB-Audio" device "hw:0,0" dsd_usb "yes" } [/CODE] - To τελικό βήμα (που δεν καταλαβαίνω και καλά γιατί απαιτείται) είναι να γίνει edit το παρακάτω: [CODE] nano /boot/cmdline.txt [/CODE] και να αλλαχτεί το ipv6.disable=1 σε ipv6.disable=0 [U]Μερικά σχόλια για τα παραπάνω:[/U] [I]Aυτό που κάνατε με τις παραπάνω εντολές ήταν οτι δημιουργήσατε τον φάκελο /var/lib/mpd/music, ορίσατε ότι το /var/lib/mpd ανήκει στον χρήστη mpd κάνατε links των φακέλων που προσαρτείτε τα mounts σας στο φάκελο /var/lib/mpd/music που έιναι και το σημείο που βλέπεi την library o mpd και ορίσατε ότι ο χρήστης mpd ανήκει στο audio group[/I]. [I]To audio buffer size στο /etc/mpd.conf παίζει επίσης ρόλο στην αναπαραγωγη και πρέπει να γίνουν δοκιμές με διάφορες τιμές.[/I] - Δοκιμάζετε ότι όλα πάνε καλά και μπορεί να τρέξει ο mpd: [CODE] mpd --no-daemon [/CODE] και τέλος σηκώνετε το service και το ενεργοποιείτε στην εκκίνηση: [CODE] systemctl start mpd systemctl enable mpd [/CODE] [B]8. Ορισμός των SAMBA και ΝFS shares:[/B] [CODE] nano /etc/fstab [/CODE] Παραθέτω το δικό μου αρχείο: [CODE] # # /etc/fstab: static file system information # # <file system> <dir> <type> <options> <dump> <pass> /dev/mmcblk0p1 /boot vfat defaults 0 0 #Finetuning for less writes on SD Card - Warning!!! Logs will be deleted after reboot. tmpfs /var/log tmpfs defaults 0 0 #SAMBA Share //192.168.1.150/Music /mnt/nas-samba cifs guest,noauto,x-systemd.automount,x-systemd.device-timeout=10,sec=ntlm,rsize=16384,wsize=16384 #NFS Share #192.168.1.150:/music /mnt/nas-nfs nfs4 noauto,x-systemd.automount,x-systemd.device-timeout=10,rsize=16384,wsize=16384 [/CODE] [U]Mερικά σχόλια για το παραπάνω:[/U] [I]Στο παραπάνω σενάριο έχω κάνει comment to ΝFS και χρησιμοποιώ μόνο samba. Tα παραπάνω θα πρέπει να προσαρμοστούν ανάλογα με το ΝΑS. Στην περίπτωσή μου έχω ένα Archlinux Desktop και οι ρυθμίσεις είναι έγκυρες γι αυτό. Ο κάθε ένας θα πρέπει να βρει τα δικά του mount options ή να ποστάρει από κάτω το σενάριό του και να το βρούμε μαζί. Οι τιμές των rsize και wsize είναι τρομερά σημαντικές για την τελική αναπαραγωγή. Επίσης είναι θέμα του κάθε συστήματος. Πειραματιστείτε!! Καλό είναι όταν γίνονται αλλαγές στο παραπάνω αρχείο να γίνονται πρώτα και χειροκίνητες δοικιμές προσάρτησης, πχ[/I]: [CODE] mount /mnt/nas-samba [/CODE] ώστε να βλέπετε ότι δεν υπάρχει error. [B]9. Προσθήκη μερικών πολύ ενδιαφέροντων webradio που βρήκα από το forum του Volumio:[/B] Πηγαίνετε στο παρακάτω link και κάνετε download πάνω δεξιά το zip: [URL]https://www.dropbox.com/sh/uvoj146f907f1f4/dssh0hfZRs[/URL] To κάνετε extract στο pc σας και μετά με χρήση προγράμματος όπως το filezilla (επιλέγοντας SFTP, username:root, password: το password που βάλατε και ip την στατική ip σας) προσθέτετε τα extracted pls αρχεία στο /mnt/webradio. [B]10. Reboot και προσευχή στο θεό που πιστεύετε[/B] [CODE] reboot [/CODE] [B]11. login ακόμα μια φορά με ssh και update της library[/B]: [CODE] mpc update [/CODE] Kαλό είναι να γίνει και ένα τσεκάρισμα ότι το volume είναι στο 100% [CODE] alsamixer [/CODE] [B]12. Χειρίσμός του νέο σας mpd headless server με ένα πρόγραμμα όπως το Ario, ή από κινητά με τα mpdroid, mpod. [/B][URL]http://ario-player.sourceforge.net/[/URL] [URL]https://play.google.com/store/apps/details?id=com.namelessdev.mpdroid&hl=el[/URL] [URL]https://itunes.apple.com/us/app/mpod/id285063020?mt=8[/URL] [B]13. Eπισκόπηση απόδοσης [/B] Για παρακολούθηση cpu/ram/proccesses: [CODE] htop [/CODE] Για επαλήθευση ότι δε γίνεται downsampling κλπ: [CODE] cat /proc/asound/card0/pcm0p/sub0/hw_params [/CODE] [B]Πηγές: [/B] - conf files του Volumio: [URL]http://volumio.org/[/URL] - conf files του Runeaudio: [URL]http://www.runeaudio.com/[/URL] - [URL]http://www.raspyfi.com/raspyfi-rc2-how-its-made-and-list-of-all-the-optimizations/[/URL] - [URL]http://volumio.org/forum/internet-radio-stations-volumio-t641.html[/URL] [B]Τοdo:[/B] - χρήση usb δίσκου - εύρεση τρόπου να κλείνει ο server χωρίς να χρειάζετε να κάνουμε login με ssh και να δίνουμε εντολή shutdown. [/QUOTE]
Verification
Post reply
Home
Forums
Δικάναλος Ήχος
Computer Audio
Computer Audio Software
Δημιουργία headless Archlinux MPD server σε Raspberry Pi model B με USB DAC
Top
Bottom
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…