Page 1 of 3

Client & Server on same machine

PostPosted: 02 Dec 2014, 19:30
by hbert
Hi, i am thinking of setting up a Rune Audio server based on a raspberry pi in my home.
I wanted to know if it is possible to have the Raspberry running as server and at the same time access the RuneUI via a monitor connected to the Raspberry.
Thanks and greetings from Germany :)

Re: Client & Server on same machine

PostPosted: 02 Dec 2014, 20:42
by cmh714
My guess thats possible but somewhat defeating of the general purpose for Rune which is to be streamlined for performance.

You would need a desktop environment and a browser in order to do what you ask.

Re: Client & Server on same machine

PostPosted: 12 Dec 2014, 01:14
by popov
Hi

Why ?
Runeaudio is optimized for sound, having client and server on the same RPI ???

Re: Client & Server on same machine

PostPosted: 13 Dec 2014, 20:36
by strangerng
My 5 cents))
You know, the main problem of the pi is power.
Let's be honest, it's really not fast and, as a result, if you'll install both server part (RuneUI+mpd) with the client (X-server I guess and some web browser) it will work somehow, but you'll lose all the benefits of high quality sound of rune audio. Besides browser will respond rather slowly.
So, IMHO, it's not the way it should be done.
I'm using rune audio on pi in a similar way, but...
I have connected screen to the pi with rune audio and also installed Ir receiver.
But I'm using ncmpc as an UI client on that screen.
No X, just fbterm.
This configuration doesn't affect sound and rather usable.

Re: Client & Server on same machine

PostPosted: 03 Mar 2015, 17:31
by jnfindley
I have not bought one yet, but I'd like to try this on a Raspberry Pi 2. I would think with the extra RAM and the quad-core processor on the Pi2 that this would should be possible without degrading the audio quality. I'd like to attach the Pi to my TV via HDMI, and have the TV display the currently playing song and album art. I would still control the queue through the web browser of a network attached device (iPhone, tablet, etc.). My TV is already attached to my receiver via an optical digital output, so this setup would not require an additional sound card to send digital audio to the receiver.

Re: Client & Server on same machine

PostPosted: 23 Apr 2015, 22:45
by TJH
Hi jnfindley

Have you tried server and player on the Pi 2 yet? I'd like to know how it goes.

Re: Client & Server on same machine

PostPosted: 29 Jun 2015, 22:12
by holymoly
Hi,
I've found out how to install an x-server on my raspberry pi 2.
My wife wanted a simple internet radio an I have an old xenarc 7" touchscreen which would be great to use as a second interface.

First make a backup of your SD-Card. If you don't know how to do this, please do not go on as this is the easiest part.

After this I increased the size of the partition, so there is enough space for the additional software (very important). I used a SD-Cardreader and gparted (you can use a ubuntu live cd for this).

All done? Ok, let's begin:

Update Repository (to be sure all software packages are up to date and download-links still exist)

Code: Select all
pacman -Sy


Please DO NOT run a full system update (pacman -Syu). It will brick your installation!

Install x-server:
Code: Select all
pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils


Install graphic-driver:
Code: Select all
pacman -S xf86-video-fbdev xf86-video-vesa


Install the desktop environment:
Code: Select all
pacman -S xfce4


Start desktop environment:
Code: Select all
startxfce4

At this time you have to start the environment manually on every boot. I did not have the time to care about auto-starting it at this time.

Now we have a very lightweight desktop environment and many essential parts such as the browser are still missing.
I've tried a lot of browsers and midori was the only one who worked the way i wanted. So let's install it:
Code: Select all
pacman -S midori


BUT, if you want to start midori now (like every useable browser I've tried -all of them webkit based) you get an error because of
ICU - International Components for Unicode http://site.icu-project.org/

Well I thought this could be solved with installing/updating icu:
Code: Select all
pacman -S icu


Now I can start midori and show the runeaudio webinterface by visiting http://127.0.0.1. Even fullscreen is possible (midori -e Fullscreen)

Everything seems to work as it should - well sadly NOT!

After rebooting the system the whole webinterface is not working anymore!
Image

The problem is icu. But I have to install/update it, to get any browser to work.

This is the error message I get:
Code: Select all
 Warning: socket_write() expects parameter 1 to be resource, boolean given in /srv/http/app/libs/runeaudio.php on line 99 Warning: socket_last_error() expects parameter 1 to be resource, boolean given in /srv/http/app/libs/runeaudio.php on line 88 Warning: socket_close() expects parameter 1 to be resource, boolean given in /srv/http/app/libs/runeaudio.php on line 89


So the php code seems to have a problem with the new icu package. Hopefully only a small problem, but I don't know. Sadly I'm not into php programming. This is where I need your help! Maybe someone can modify the code to get runeaudio to work again.

This is the ICU Info before update...
Code: Select all
 <icuSystemParams type="icu4c">
    <param name="copyright"> Copyright (C) 2014, International Business Machines Corporation and others. All Rights Reserved. </param>
    <param name="product">icu4c</param>
    <param name="product.full">International Components for Unicode for C/C++</param>
    <param name="version">54.1</param>
    <param name="version.unicode">7.0</param>
    <param name="platform.number">4000</param>
    <param name="platform.type">Linux</param>
    <param name="locale.default">en_US_POSIX</param>
    <param name="locale.default.bcp47">en-US-u-va-posix</param>
    <param name="converter.default">US-ASCII</param>
    <param name="icudata.name">icudt54l</param>
    <param name="icudata.path"></param>
    <param name="cldr.version">26.0</param>
    <param name="tz.version">2014h</param>
    <param name="tz.default">CET</param>
    <param name="cpu.bits">32</param>
    <param name="cpu.big_endian">0</param>
    <param name="os.wchar_width">4</param>
    <param name="os.charset_family">0</param>
    <param name="os.host">armv7l-unknown-linux-gnueabihf</param>
    <param name="build.build">armv7l-unknown-linux-gnueabihf</param>
    <param name="build.cc">gcc</param>
    <param name="build.cxx">g++</param>
    <param name="uconfig.internal_digitlist">1</param>
    <param name="uconfig.have_parseallinput">1</param>
    <param name="uconfig.format_fastpaths_49">1</param>
 </icuSystemParams>


... and after update:
Code: Select all
 <icuSystemParams type="icu4c">
    <param name="copyright"> Copyright (C) 2015, International Business Machines Corporation and others. All Rights Reserved. </param>
    <param name="product">icu4c</param>
    <param name="product.full">International Components for Unicode for C/C++</param>
    <param name="version">55.1</param>
    <param name="version.unicode">7.0</param>
    <param name="platform.number">4000</param>
    <param name="platform.type">Linux</param>
    <param name="locale.default">en_US_POSIX</param>
    <param name="locale.default.bcp47">en-US-u-va-posix</param>
    <param name="converter.default">US-ASCII</param>
    <param name="icudata.name">icudt55l</param>
    <param name="icudata.path"></param>
    <param name="cldr.version">27.0.1</param>
    <param name="tz.version">2015b</param>
    <param name="tz.default">CET</param>
    <param name="cpu.bits">32</param>
    <param name="cpu.big_endian">0</param>
    <param name="os.wchar_width">4</param>
    <param name="os.charset_family">0</param>
    <param name="os.host">armv7l-unknown-linux-gnueabihf</param>
    <param name="build.build">armv7l-unknown-linux-gnueabihf</param>
    <param name="build.cc">gcc</param>
    <param name="build.cxx">g++</param>
    <param name="uconfig.internal_digitlist">1</param>
    <param name="uconfig.have_parseallinput">1</param>
    <param name="uconfig.format_fastpaths_49">1</param>
 </icuSystemParams>


Can someone please have a look at runeaudio.php and fix the error?

P.S.: If you don't install icu, you can use the mpd client ario. But it has a ugly interface for my touchscreen and does not support all runeaudio features such as selecting an internet radio (only if you have them stored in a playlist).

Greetings from Germany

Re: Client & Server on same machine

PostPosted: 08 Jul 2015, 23:43
by nicosalto
Hi Holymoly,
iam really curious on what you have done there, and wish to do the same thing.
Did you found a solution for the icu issue at the end ?

Re: Client & Server on same machine

PostPosted: 09 Jul 2015, 04:30
by benkit
Hi Holymoly,
Yes,I'm also looking for this solution. Server and client are running on the same Ras PI 2 and touch screen is able that would be perfected music player like a charm .

Thank you for your sharing
BK

Re: Client & Server on same machine

PostPosted: 09 Jul 2015, 11:12
by JB314
Hi @holymoly,
I got the same issue when Redis service is not available (after a pacman -Syu for example :) )
You can try to manually start rune_SY_wrk or rune_PL_wrk script (under /var/www/command/), it should display some useful error.
If you have something like "Redis went away", that's mean the redis service is not correctly started.
So you can check the service file usr/lib/systemd/system/redis.service if it looks like this one : https://raw.githubusercontent.com/RuneA ... is.service
And you can also check if the user "redis" can write into folders /tmp and /run/redis/
After that you can restart the redis service, check if the file /tmp/redis.sock and /run/redis/redis.pid are present
Finally reboot the Rpi or restart the services php-fpm.service and rune_PL_wrk.service.