Archphile - An Archlinux Based Audiophile Distribution for Raspberry Pi and Udoo Quad

Cheers Michael,

your works needs a medal, wouldn't be able to figure out by myself such sequence.

I stuck in few places i think, all problems are caused from the second step where i needed to add line to /etc/pacman.d/mirrorlist

then got plenty of errors when was trying to install unzip and update base-devel tools:
error: failed retrieving file 'unzip-6.0-12-armv7h.pkg.tar.xz' from tardis.tiny-vps.com : The requested URL returned error: 404
warning: failed to retrieve some files

although i unziped file at my pc and just copied them to RPI2, but then was problem building package, and ended up with:

Code:
[archie@archphile ~]$ makepkg -s
==> WARNING: Cannot find the sudo binary. Will use su to acquire root privileges.
==> ERROR: Cannot find the strip binary required for object file stripping.

Any ideas where I am messing up and what else i could try?
 
Thanks for the help. Now was able to download repository, unzip and launch 'makepkg', but got error while cloning 'git' and after cannot install anything with 'pacman', getting this:
Code:
pacman: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
That's how begining of 'pacman' file looks - the place that i changed.
Code:
#
# Arch Linux ARM repository mirrorlist
# Generated on 2016-02-07
#

## Geo-IP based mirror selection and load balancing
Server = http://tardis.tiny-vps.com/aarm/repos/2016/02/29/$repo/os/$arch
Server = http://mirror.archlinuxarm.org/$arch/$repo

### Mirrors by country

### Australia (not Austria!)
## Sydney
# Server = http://au.mirror.archlinuxarm.org/$arch/$repo

#SeriouslyToughLifeWithArch
 
Ok. It got a bit tricky now, but we can sort it out.

It seems that you pulled in an outdated openssl package into your system, probably with "makepkg -s". That is why anything that directly or indirectly depends on this library fails to run. I think that the outdated package is coming from 'tardis.tiny-vps.com' repository. Please comment out this repository in your pacman configuration file for a moment.

Let's start from making the pacman workable again by installing the correct version of openssl. Download the following file into your /tmp directory:

Code:
http://nl2.mirror.archlinuxarm.org/armv7h/core/openssl-1.1.0.e-1-armv7h.pkg.tar.xz

Note: I believe that this is the correct path for RPi3 package repository.

Next we will unpack it and will tell linux dynamic linker that it should search for libraries in the unpacked directory.

Code:
cd /tmp
tar -xf penssl-1.1.0.e-1-armv7h.pkg.tar.xz
cd ./usr/lib
LD_LIBRARY_PATH=${PWD} /usr/bin/pacman --help

That should resolve missing shared library error for pacman and you should be able to see pacman's help message. That means you have a working version of pacman again.

Now, let's install the openssl pacakage into its rightful place

Code:
LD_LIBRARY_PATH=${PWD} /usr/bin/pacman -S openssl

Let's verify if that resolves the problem:

Code:
/usr/bin/pacman --help

That should display the pacman option again. If you get a message about another missing library then the procedure is exactly as above. Just download the package for this library, unpack it into /tmp and use the correct LD_LIBRARY_PATH variable.

In general I recommend avoiding makepkg -s. Just makepkg and if some packages are required at the build time install them manually with pacman.

Please let me know is something from the above is not clear. I do not have RPi3 and I may have missed something.
 
Hey mate, thanks a lot for your help. It really gets tricky here.

Actually all your steps went as you planned, before the last step:
Code:
/usr/bin/pacman --help
With that I got again same missing library/pacman error. And now the system crashed completely. I'll try tomorrow to rewrite archphile and do 'makepkg' without 's', maybe that will help to have best distro on my RPI2 :)

cheers
 
Last edited:
Does it still complain about openssl or some other library? Did you remove extra link to the library from the pacman configuration?

You can always use a tool called ldd. It shows the dynamic dependencies of a binary. For example:

Code:
ldd /usr/bin/pacman

Also, since we have downloaded the openssl package and we know that it works let's take some short cut. The first step as before and then:

Code:
cd /tmp
tar -xf openssl-1.1.0.e-1-armv7h.pkg.tar.xz
cd ./usr/lib
LD_LIBRARY_PATH=${PWD} /usr/bin/pacman -U /tmp/openssl-1.1.0.e-1-armv7h.pkg.tar.xz
 
Last edited:
Thanks flexus for pointing this out.
Tried. I think i am too dumb for this.
Just adding keys didn't help,
"make" on this at the end gave me error,
Code:
libopenssl-1.0-compat

while copying lib files from here to openssl lib
Code:
http://ftp.f3l.de/archlinuxarm/arm/extra/openssl-1.0-1.0.2.k-3-arm.pkg.tar.xz
system kicked me out and ended up with "connection refused" while trying to login wit putty.

Will let to someone smarter to try to launch spotify on Archphile. Its like a riddle here :rolleyes:
 
The rollback machine entry I gave was not correct and I am sorry. The correct addition in mirrorlist file is:

Code:
Server = http://tardis.tiny-vps.com/aarm/repos/2016/02/29/$arch/$repo

A good idea is to comment everything else and ensure that you will only download packages from the above.

The issue you have is because you installed packages from current repos and dependencies broke.

If you add the above using a fresh installation everything will be ok. However I cannot guarantee that librespot can be built as I did not test.
 
Ok will try to describe my journey to launch spotify, maybe someone will want to install on archphile. At the end I succeeded with fortnoth library and it sounds really good, but i cant control the sound through software as i have old hifiberry based dac that doesn't support alsa mixers.

So basics:
placing archphile image into rpi, then login through putty or terminal or oldschool way (connected keyboard and monitor)
Code:
root
archphile
then
Code:
i2select
<number of your dac>
systemctl reboot

then connect again, and if needed to have volume control through software:
Code:
nano /etc/mpd.conf
change
Code:
mixer_type      “software”
ctrl+x, y, enter 

systemctl restart mpd
systemctl daemon-reload
now you have working player.

next step to install the stuff for spotify
 
here is nothing new, just putting everything that Tuxx wrote in one place
Code:
nano /etc/pacman.d/mirrorlist
add this and comment other line with Server at the begining. should look something similar
Code:
#Server = some trash...
Server = http://tardis.tiny-vps.com/aarm/repos/2016/02/29/$arch/$repo

Code:
pacman -Sy base-devel unzip
enter
y
then creating user
Code:
useradd -m -G users -s /bin/bash archie
passwd archie
<password once>
<password again>
nano /etc/sudoers
add this line
Code:
archie ALL=(ALL) ALL

now you might need (might not - try your luck you can do it later) to expand space dedicated for root
Code:
fdisk /dev/mmcblk0
d
2
n
p
2
enter
enter
w
<RPI starts cursing>
systemctl reboot
login and put
Code:
resize2fs /dev/mmcblk0p2
ok you have more space now.

now you need cargo and rust (still have no idea what they do)
Code:
curl [url]https://sh.rustup.rs[/url] -sSf | sh
1
after it finishes
Code:
source $HOME/.cargo/env
then
Code:
su archie
source $HOME/.cargo/env

check if
Code:
cargo
brings anything. if no - repeat with archie the same
Code:
curl [url]https://sh.rustup.rs[/url] -sSf | sh
1

Alright, so now 4 different options with spotify, for me worked only the last one.
1) From archphile git.
Code:
wget [url]https://github.com/archphile/playgro...ive/master.zip[/url]
unzip master.zip
cd playground-master/librespot-archphile/
nano PKGBUILD
replace this line:
Code:
makedepends=('git' 'rust' 'protobuf' 'cargo')
with
Code:
makedepends=('git' 'protobuf')
Code:
ctrl+x
y
enter
and replace
Code:
sha256sums=( ...
with
Code:
sha256sums=('SKIP'
'23b41fb8651a780a438cc4ebc0a0e401d91b9ef394c78df766dea54debd5c774'
'a2091a0bd5941b178af496e471e96e857349d683bcbda735f2eb5cb7c1cecb03'
'cd05d40dcc1572aba86aed732b5e0e47ff644d6c40380cc2d2b4d80acc2c2b1f'
'61b68cf5776374218caf525d707a52bf14d349e4f1a7c8ef76b8ed5789f19114')

then
Code:
makepkg -s
then pacman -U started cursing so
Code:
makepkg -i
then at the end got some error that wasn't able to create directory found. thats how far my patience got.

2) better results was cloning plietar git straight.
Code:
wget [url]https://github.com/plietar/librespot/archive/master.zip[/url]
unzip master.zip
cd <in>
cargo build
cd target/debug
./librespot --username USERNAME --cache /tmp --name DEVICENAME
connected but got panick errors when started playing song (no sound of course)

3)
Code:
wget [url]https://github.com/herrernst/librespot/releases/download/v20170515-6f24e3b/librespot-linux-armhf-raspberry_pi.zip[/url] 
unzip librespot-linux-armhf-raspberry_pi.zip
./librespot --username USERNAME --cache /tmp --name DEVICENAME
also got panick error, but different. It seems that spotify tries to block librespot.

4) this one was successful.
Code:
wget [url]https://github.com/Fornoth/spotify-connect-web/releases/download/0.0.3-alpha/spotify-connect-web_0.0.3-alpha.tar.gz[/url]
tar zxvf spotify-connect-web_0.0.3-alpha.tar.gz
A spotify-connect-web directory will be created, and you'll need to put your spotify_appkey.key in that directory. applying for it basically leads nowhere. but you can get download it atleast from two places:
a)from Rafas git(looks like a nice guy, maybe wont mind)
Code:
https://github.com/RafaPolit/moode-spotify-connect-web
b) from some german discussion. search the comment section
Code:
http://powerpi.de/spotify-connect-auf-dem-raspberry-pi-2-installieren-dein-smartphone-ist-die-fernbedienung/
then it should work
Code:
./spotify-connect-web --username 12345678 --password xyz123 --bitrate 320
 
and if your "amixer" empty like mine and you are using simple hifiberry or mamboberry or anything else that uses hifiberry drivers, most probably you out of luck controlling it through software. But you can stil connect following the post by twirre:
https://volumio.org/forum/spotify-connect-t2811-80.html and control volume through amplifier
Althouh librespot library implemented volume control that worked on my RPI, but Fornoth doesn't succeed in that. I wonder why?
 
Hi guys!

Does anyone know how to get I2S to work with the soekris 1021 on odroid C2?

For Archphile with C1+ there was a workaround in /boot/boot.ini- but that part changed in C2- Version.

Would be great if someone has experience with this and would share IT.

Greetingz, Robert

Hi guys!

Have I2S working now with Soekris DAM on C2 and archphile;-)
After loading the modules for odroid dac the dam was locked- but no sound.

When I set the value for 'setenv nographics' in /boot/boot.ini to 0 it suddenly worked:)

Just as an information- if anybody is interested.

Greetingz, Robert
 
Hi guys!

Have I2S working now with Soekris DAM on C2 and archphile;-)
After loading the modules for odroid dac the dam was locked- but no sound.

When I set the value for 'setenv nographics' in /boot/boot.ini to 0 it suddenly worked:)

Just as an information- if anybody is interested.

Greetingz, Robert
Thanks for the info.
Might this issue be related to that the Odroid C2 is aarch64 and this needs a different version of luajit to be compiled? Sidenote: an official beta of luajit for aarch64 is only recently available.
 
Hi Michael,

thank you for Archphile. I am using it on a C1 with upsampling to 32/96 and brutefir including filters made with DRCDesigner. CPU load is about 13 % on all four cores. Works a treat and the result in terms of SQ is awesome. Good to see that the homepage is available again even if you have decided not to maintain Archphile any longer.

Best Regards
 
Even though the project is officially dead, Michael is still using Archphile on his own Odroid C2, so he's made available an up-to-date version: Archphile - Browse /odroidc2/0.99.6-beta at SourceForge.net

"As you already know, Archphile is not an active project anymore. However I still use my Odroid C2 and I always try to keep my software up-to-date. So I decided to share with you the latest image I have created for personal use."