New MPD and ffmpeg packages available for update

Hi all,

I am writing to announce you that MPD 0.19.13 and ffmpeg 3 are available for update if you are using latest 0.99.4 images:

  1. clear the package cache
pacman -Scc

you will need to pres and ENTER twice


2. Update ffmpeg (it’s a good idea even if you use mpd-archphile minimal which is ffmpeg independent):

pacman -Sy ffmpeg-archphile


3. Now it’s time to update the MPD package. For a standard installation you should do the following:

pacman -Sy mpd-archphile

Replace the name of the package with mpd-archphile-minimal, mpd-archphile-sacd, mpd-archphile-sacd if you use a different package.

Please note that mpd-archphile-native-dsd remains in 0.19.12, and mpd-archphile-sacd remains on an old github version but they are both rebuilt in order to use latest ffmpeg package.


4. If you use an i2s dac, its time to run i2select. If you use Odroid C1+ or Cubox-i you must run bselect and choose your board.


Please note that MPD package update will override your mpd.conf configuration.


Have fun,


Ps. A special thanks goes to espakman  for his very important support in general (testing, bugfixing etc.) and to iSushi42 for testing the packages.

Raspberry Pi 3, Odroid C2 and Archphile

Hi all,

After the announcement of two very interesting hardware platforms:

I have been asked many times if I am willing to support them. The answer is obvious: of course I would like to support both devices but as Archphile is a community driven project the only way I can do this is with the support of the community!

If you are interested in seeing these two new platforms supported, please use the Paypal button on the right side to donate so that you can help me buy both of them and start the porting of Archphile distribution.




An apology to the community and a new version for Raspberry Pi 2 (0.99.4c)

Hi all,

As many of you may have noticed since the first version of 0.99.4 beta for Raspberry Pi 2, I stated that I had patched the linux kernel and had fixed some issues with 24 bit and i2s dacs. After a lot o research it appears that the patch I applied did nothing. Let me give you some history:

Since the beginning of Rpi kernels and i2s dacs there were two modules: bcm2708-i2s (from the source of Raspberry Pi foundation) and bcm2835-i2s (from the tree tha Linus Torvalds maintains). When these two sources merged, both modules continued existing although the only module that was needed for i2s connectivity was bcm2708-i2s. In latest dev Raspberry Pi kernels (If I remember correctly 4.4.y) the devs decided to merge these modules keeping only the name of bcm2835-i2s.

Later, a patch appeared that corrected the code for 24 bit playback . I found the code that was patching bcm2835-i2s (this is the one used in 4.4 and 4.5 and the patch was needed there) and without having understood that in 4.1.17 and 4.1.18 this module is in reality useless, I decided to patch it and offer a custom kernel package for Archphile.

As you understand my custom kernel was fixing a module that does nothing in these versions. In 4.1.18 that was the kernel of 0.99.4b, the only module used was bcm2708-i2s which is 100% ok with 24 bit playback.

In order to be able to fully understand all of the above, I decided to ask the man behind the code of these modules, Florian Meier. He was very quick and to the point explaining me that my patch was in fact doing nothing:

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.


I would like to apologize for spreading the community that I made a kernel package that solved a problem that did not exist. For this reason I decided to make an image again, this time using the default archlinuxARM kernel package 4.1.18. I hope this is the final image for now. You can donwload it here:



I hope you will have my feedback very soon regarding the Raspberry Pi 3 and Odroid C2!





0.99.4b Beta is up for Raspberry Pi 2, Odroid C1+, Cubox-i and Udoo Quad

Edit: Most of the new information is now included in Archphile Website documentation. Please read carefully all the sections of Tips & Tricks in order to understand how you can configure Archphile to suit your own needs!


Hi all,

after almost a week of feedback and testing after 0.99.4 Beta I am happy to announce you that Archphile 0.99.4b Beta is up for all the supported boards. With regards to the differences between 0.99.4 released last week for Raspberry Pi 2 and Odroid C1+ the only differences are:

– Fully updated system that includes latest Glibc that fixes a security vulnerability
– a custom Raspberry Pi 2 kernel based on 4.1.18 which fixes the maximum volume of Hifiberry Plus Dac
– an updated i2select package in order to be compliant with the kernel above

A quick summary for all devices:

– Latest MPD 0.19.12
– Latest YMPD with extra patches (fix for folders shown as empy – remeber last database folder position – dirble API Key)
– Replaced shairport with shairport-sync 2.8
– Added bselect command that configures mpd.conf for various embedded boards
– Added commands to backup/restore MPD database
– Added option to limit MPD in one core
– Added option to optimize IRQ affinity
– Added Samba capabilities – USB disks can be shared in local network
– Added USB sleep support (needs extra configuration)
– Added brutefir support (playground repository)
– Added an alternative minimalistic MPD package named mpd-archphile-minimal (playground repository)
– Added optional MPD fork with SACD ISO support and another MPD fork with native DSD support
– Added the useful alsacap command line tool

The website is not updated yet in order to include the latest tips and how-tos. You can use all the information from the previous announcements for 0.99.4 Beta where I explain most of the new stuff until I finish with the website pages.

Please note that Archphile is a completely open source and non-commercial distribution based on user donations. If you like my distribution and you want to help me keep it alive please donate using the paypal button below!


I hope you will enjoy it!




P.s I would like to thank Espakman from Archphile forum and Sat Lover from that helped me apply all the bugfixes for Hifiberry Plus i2s DAC!


Archphile 0.99.4 beta for Odroid C1+ is up!

Hi all,

I am very happy to announce that the first image for Odroid C1+ (and C1 too) is up!

All the tips I  have written for the Raspberry Pi 2 release  are the same for an Odroid Archphile installation.

An additional feature is that you can customize IRQ affinity:

# nano /usr/bin/archphile-optimize

you will find the following section:

# IRQ affinity optimization – Do not apply it if you are using Raspberry Pi 2 !!!

change it to:

# IRQ affinity optimization – Do not apply it if you are using Raspberry Pi 2 !!!

and reboot with:

# systemctl reboot

If you want to customize it further you can edit the following file and play around with it:

#nano /usr/bin/irq-archphile

Another tweak that you may want to apply is to stop the blue blinking light after the boot process. In order to do this, find the following section in the same file:

# Disable Odroid C1+ heartbeat blue led
#echo default-on > /sys/class/leds/blue\:heartbeat/trigger

and change it to:

# Disable Odroid C1+ heartbeat blue led
echo default-on > /sys/class/leds/blue\:heartbeat/trigger

Last but not least, after installing any of the additional MPD packages (mpd-archphile-minimal, mpd-archphile-sacd, mpd-archphile-native-dsd) or when you come back to default package, please remember to run the following command:

# bselect

and choose Odroid C1+.

bselect (from Board Selection) is a very simple script that ensures that mpd.conf will be modified accordingly in order to be ready for your Odroid C1+ board. If you don’t run this command you will not be able to hear any sound!

Please note that Archphile is a completely open source and non-commercial distribution based on user donations. If you like my distribution and you want to help me keep it alive please donate using the paypal button below!


I hope you will enjoy it!



Archphile 0.99.4 beta for Raspberry Pi 2 is up!

Edit: Please see updated guide for mpd-archphile-sacd. Due to a typo you need to give one extra command. The package will be re-uploaded.

Edit 2: The new mpd-archphile-sacd package is uploaded. If you haven’t installed it, please follow the instructions directly. If you have already installed, please run the following command before reinstalling:

pacman -Scc

when it asks you please press Y and ENTER twice.


Hi all,

it’s been a long since the last uploaded image and I am very happy to announce that Archphile 0.99.4 beta image for Raspberry Pi 2 is up!

If you want to have a look at the changelog please click here.

Some noticeable changes:

– custom kernel image based on 4.1.17
MPD 0.19.12
– option to run MPD only in one core
– latest YMPD with many fixes and additions (please go to settings for update DB!) that you will notice immediately like, option to play stream from the web interface, dirble support etc. It also solves an old bug that caused many folders to appear as empty.
– replacement of shairport with shairport-sync to support latest ios devices
– custom libupnp package
– dbackup/drestore commands to backup and restore MPD database
samba support for USB disks – now you can add music to your USB disk through your local network using samba
brutefir support – it’s installed by default with options in mpd.conf but of course it needs extra configuration to work
lirc installed by default. I will write a how to on how to configure your custom remote control
– Playground repository is enabled by default. It includes many packages like a minimal version of MPD, a custom MPD version with native DSD playback support and a fork of MPD with SACD ISO playback support. It also includes squeezelite, logitechmediaserver and some extra packages for which I am going to write a separate how-to.

Run MPD in one core

edit /usr/bin/archphile-optimize with:

nano /usr/bin/archphile-optimize

and make the changes to:

# set affinity of MPD in one core – choose values from 0-3
#taskset -c -p 2 $(pidof mpd)

so that it becomes as follows:

# set affinity of MPD in one core – choose values from 0-3
taskset -c -p 2 $(pidof mpd)

and reboot with:

systemctl reboot

Backup/restore MPD database

Run dbackup command to backup the database and drestore in order to restore it. The backup location is in /opt/dbackup. You can also put your mpd.db using a fresh installation there and give drestore to restore your previously backed up MPD database. The location of the file you have to manually backup (using filezilla with sftp protocol for example) is:


Share your mounted USB disk using SAMBA

systemctl start nmbd smbd
systemctl enable nmbd smbd

Installation of custom MPD packages (please note that only the preinstalled package is supported!)

pacman -Sy mpd-archphile-minimal
systemctl reenable mpd
systemctl restart mpd
pacman -Sy mpd-archphile-native-dsd
systemctl reenable mpd
systemctl restart mpd
pacman -Sy mpd-archphile-sacd
systemctl reenable mpd
systemctl restart mpd

In order to restore official MPD package just do the following:

pacman -Sy mpd-archphile
systemctl reenable mpd
systemctl restart mpd

Installation of squeezelite/logitechmediaserver (completely unofficial – just for experimenting – Archphile will always be an MPD based distribution)

pacman -Sy logitechmediaserver squeezelite-archphile
systemctl stop mpd ympd
systemctl disable mpd ympd
systemctl start squeezelite logitechmediaserver
systemctl enable squeezelite logitechmediaserver

The commands above will install logitechmediaserver and squeezelite on the same machine, disable MPD and ympd and will use squeezelite by default.

If you want to go back to the old situation:

systemctl start mpd ympd
systemctl enable mpd ympd

and if you want to unininstalled the extra packages:

pacman -R logitechmediaserver squeezelite-archphile

Please note that in the next days I will update the website with new sections including additional details for all the changes and additions. Most of the existing guides are ready to be used with this version

That’s all for now! I will come back the next days uploading the images for the remaining devices. I will also update i2select package in order to support the Iqaudio AMP+.

Please note that Archphile is a completely open source and non-commercial distribution based on user donations. If you like my distribution and you want to help me keep it alive please donate using the paypal button below!


P.S. I would like to thank a new Archphile forum member named espakman. His last minute bugfixes and suggestions helped me upload the best possible image for this device!




MPD flavors in next Archphile images

Hi all,

I am very happy to announce that the next archphile images are very close to be released. In this post I will present you all the different MPD packages that this release will include:


  • Standard MPD package (mpd-archphile)

This is the standard MPD package. It includes support for the majority of well known formats (including alac, ape etc.) and options and it’s suitable for the majority of the users.


  • MPD package with a minimalistic approach (mpd-archphile-minimal)

This package is what I use for my own needs. It has many of options disabled (ffmpeg, avahi, etc.) and it supports a very basic set of files (flac, mp3, ogg, aac, wav, dsf, dff).


  • MPD package with native DSD support (mpd-archphile-native-dsd)

The difference with the above package, is that it includes the lintweaker patch that enables native DSD support for various USB receivers.


  • MPD fork package with SACD ISO playback support (mpd-archphile-sacd)

This package is a fork of MPD by Maxim V. Anisiutkin that includes SACD ISO playback support. It’s not based on the same code as the above packages and it’s highly experimental. However many archphile users report that it’s stable enough for everyday use.


So why focusing so much in DSD capability?

I will be very honest with you stating that I don’t like DSD. To be more specific, it’s not that I don’t like it, but I really don’t care. Over 99% of the music I have is 16/44.1 PCM, which sounds great to my ears.

All the available SACD titles are very limited to specific audience listening to classical, jazz and classic rock recordings from the past. So even if  it sounds better or if it’s a better technology (I am not really sure about it for both of them..) it’s not for me as most of the music genres I am interested in are released in PCM format.

However, I really like to experiment and in addition I want to give Archphile users the option to test and decide themselves. Creating the packages above was easy for me and this is the reason that I am offering these two DSD specific packages based on the wonderful work of Maxim and lintweaker.




Details on upcoming Archphile version

Hi all,

It’s been a long time since my last post here, so I decided to write some notes on the images I am currently preparing.

Hardware notes:

– From next Archphile version the old raspberries (ARM6) are no longer supported

– Since yesterday I am a happy owner of an Odroid C1+. I have already installed Archphile on it, and if it continues to be stable and without problems, 0.99.4 will be the first official version for this device.

Software notes:

– Currently I am working on latest MPD 0.19.11 which seems to be a very stable version. This is one of the most lightweight packages I have created as many unneeded features have been disabled.

– In addition I am working on the MPD fork that has SACD ISO support. The package is ready but I haven’t tested it yet. It will remain on Playground Repository, meaning that it’s not a part of the main distro.

– Latest YMPD has some very nice features, like Dirble Support, multiple outputs selection plus some extras I haven’t tested yet.

– IOS 9.x broke compatibility with shairport and this is the reason I have replaced it with shairport-sync.

Samba support is added in order to share the usb disks on local network. It will be not enabled by default, but it’s a very easy procedure.

Usb disks sleep support: I have introduced two different methods for this. I will give further details after the release. It’s also not enabled by default as not all USB disks support it.

I hope that 0.99.4 Beta (it seems that I have already adopted the model of infinite beta :P), will be the best Archphile version since the beginning of this project.

My free time is currently very limited but I believe that I will be able to upload the new images during November.



p.s. I would really like to thank all the people (and especially Runeaudio team) that helped Archphile stay alive by donating during the Greek capital controls.