How to build a Concerto Viewer for Raspberry Pi 2 or 3.

8,755 views
Skip to first unread message

john.la...@gmail.com

unread,
Apr 7, 2016, 3:58:40 PM4/7/16
to Concerto Digital Signage

Concerto Viewer for Pi Build

A note right up front... These instructions may work for an original Pi, but the version of Chromium installed in these instructions will not run on the original Pi, so you'll need to find another browser to run in kiosk mode...  


Because we’re creating a purpose built signage viewer (or any browser view that runs unattended in kiosk mode), we’ll start with Raspbian Lite rather than the full version of Raspbian because we don’t need (nor want) need any of the fancy extra apps.  Since Raspian Lite doesn’t come with an Xserver or any sort of window manager, we’ll need to install them.


Initial Raspbian Lite Setup:

Download and Install Raspian Lite to a microSD card

Login as user pi (password is raspberry)

Run raspi-config:

sudo raspi-config

Expand the file system (so we’ll have room to install everything else) and exit raspi-config

Make sure you have a network connection

Reboot

sudo reboot

Login as user pi

Run raspi-config again

Sudo raspi-config

Set all your international options, keyboard, and Wifi country, as is appropriate to your locale and then exit

When you exit raspi-config, it’ll ask you to reboot

Login as user pi again.

Now we'll update and upgrade the base system (answer yes when these ask if you want to install things):

Run the command:

sudo apt-get update

Run the command:

sudo apt-get upgrade

Run the command:

sudo apt-get dist-upgrade


For security reasons, you should always change the password for the pi user.  Change the password for pi after you’ve set the international options to avoid key mapping errors in the password.  (For instance, in the default pi localization, the keyboard is UK English, which maps SHIFT-3 to the £ sign, whereas SHIFT-3 is # on the US English keyboard… This will cause issues when trying to log in.)

Change the default password for the user pi:
sudo passwd pi

Now that Raspbian Lite is installed and the initial configuration is done, we'll install the parts needed to run a GUI (so we can run Chromium).

Install X server and windows manager
You could install any desktop environment, but LXDE is lightweight and fast.  It includes a window manager (openbox), so we don’t need to worry about that.  It isn’t the fanciest looking desktop out there, but we don’t really care about that because our browser will be running in fullscreen/kiosk mode so you won’t even see it for more than a few seconds at boot time.
Install the display server
sudo apt-get install xserver-xorg
Install xinit (so we can launch x display server from a command line – this might not be necessary, but it can be useful)
sudo apt-get install xinit
Install LXDE (this’ll take a while – might want to grab lunch).  
sudo apt-get install lxde-core lxterminal lxappearance
Install LightDM login manager
sudo apt-get install lightdm
Reboot
sudo reboot

Now that we've got an X-windows environment to work in, we need a browser that works properly with Concerto.  Chromium seems to work just fine for everything except playing MP4 video.  Converting all videos to webm works perfectly, though.  Unfortunately, there's no Chromium build for Raspbian Jessie.  "Apt-get chromium-browser" isn't going to work, so we need to get a little creative.  As of this writing, Chromium 49 does not work, so we need to install Chromium 48.  The method for installation is based on the one that was once featured on this page, but has been changed.

Since we've installed LXDE and rebooted, you'll need to login as pi and then run lxterminal to continue with these.  You can also SSH into the box to do this.  I prefer the SSH method, because you can copy/paste the long command lines instead of manually typing them in.

Install Chromium-Browser
Get the files directly from the ubuntu sources with the wget command.



Install the packages you just downloaded with dpkg
sudo dpkg -i chromium-codecs-ffmpeg-extra_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb

sudo dpkg -i  chromium-browser-l10n_48.0.2564.82-0ubuntu0.15.04.1.1193_all.deb chromium-browser_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb

Some of chromium’s dependencies will not be present – fix this by running the following command:
sudo apt-get install -f

Your Pi is now ready for customization, automation, and security hardening.

Customize image for maximum automation and minimum visual footprint
From here, the instructions are based largely on the idea that the someone watching the Pi boot should be able to discern as little information about the system as possible.  From the standpoint of someone watching the boot process, the Pi could just as easily be a custom piece of hardware or remote display of a centralized server.  We want the Pi to boot directly to the browser and present no requests for input.

Install "unclutter" which makes the mouse pointer disappear when not in use
apt-get install unclutter
Remove the lockscreen/login background (this isn’t strictly necessary, as the lockscreen isn’t seen once auto-login is configured):
sudo nano /etc/lightdm/lightdm-gtk-greeter.conf
Comment out the following line by placing a # at the beginning of the line: 
background=/usr/share/images/desktop-base/login-background.svg
Save the file (ctrl-X and they Y to save)

Create a new user to use for the auto-login.  (This user will not have limited access to the system – no SSH, no sudo access, etc.)  We will use the username “signage” in this example, but you could name it whatever you’d like.
sudo adduser signage
type in the password you’d like to use
type in the password again to verify it
Accept the defaults for full name, room number, work phone, home phone, and other
Press enter when asked “Is this information correct?” to create the user. 

Login at the new user and customize the desktop for minimal visual distraction.  
This includes setting a “test pattern” as the desktop background, turning off the trashcan, and setting the various other parts of the desktop to me as minimally distractive as possible.  I’ve used a very nice variant of the “indian head” test pattern here because I like it, it’s non-system specific, is CC redistribute with modifications, and is a good general indicator that something is wrong if you see it for too long. 

Login as signage.
Run lxterminal

mv testpattern-hd-1080.png ./Pictures

Now that we've got the background image, we'll customize the desktop for the auto-login user.

Under the “customize look and feel” menu:
Turn off Play Event Sounds
Turn off Play event sounds as feedback to user input

Under the "Desktop Preferences" menu:
Set /home/signage/Pictures/testpattern-hd-1080.png as desktop background 
Set background to “stretch to fit the monitor area” set.
Turned off “show Trash can”
Turn on “Show Menus Provided by window managers when desktop is clicked”

Under the “Openbox Configuration Manager” menu:
Set Number of Desktops to 1.

Right click the center of the taskbar, select “panel settings” and make the following changes:
Height: 16
Icon Size: 16
Solid Color (with opacity)
Custom Color: #FFFFFF
Minimize Panel when not in use
Size when minimized 1 pixel

Edit /home/signage/.config/lxsession/LXDE/autostart:
nano /home/signage/.config/lxsession/LXDE/autostart
remove the line: 
@xscreensaver no-splash
add the following lines:
@xset -dpms
@xset s noblank
Unclutter display :0 noevents grab
chromium-browser http://concerto/frontend --kiosk --disable-infobars --disable-session-crashed-bubble
The first three lines turn off screen blanking/powersave
The fourth line makes the mouse disappear when not in use.
The last line launches chromium browser in kiosk mode and hides common error messages resulting from browser crashes and improper shutdowns. You should modify the URL to match whatever your concerto server is called (or use the ip address).

When done, the file should look like this:
When done, the autostart should look like this:
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@xset s off
@xset -dpms
@xset s noblank
unclutter -display :0 -noevents -grab
chromium-browser http://concerto/frontend --kiosk --disable-infobars --disable-session-crashed-bubble

Now we'll setup the system to automatically login as signage.
Login as Pi (you can do this via SSH while signage is still logged in if you'd like):
Edit /etc/lightdm/lightdm.conf
sudo nano /etc/lightdm/lightdm.conf

Uncomment the following lines in the [SeatsDefaults] section:
pam-autologin-service=lightdm-autologin
pam-greeter-service=lightdm-greeter
Uncomment the following lines and add the username of the user you created to the autologin-user line:
autologin-user=signage
autologin-user-timeout=0
Reboot
sudo reboot

If everything has gone well, the machine will automatically reboot, launch Chromium to view the concerto server in Kiosk mode.  Pressing ALT-F4 will kill chromium and get you back to the desktop.

If you’re not concerned with the security of the unit, you can probably stop here.  The next steps attempt to make the Pi more secure (and harder to identify).

Obfuscating the identity of the Pi

A potential hacker could gain useful information from watching the Pi boot.  The most basic info, of course, would be that the code is running on a Raspberry Pi (as opposed to some other device).  The boot process also lists a number of processes that could be of use when determining a method of attack.  For this reason, we’ll redirect them to another “terminal” that isn’t shown on boot.  All of the instructions from here on should be done while logged in as the user Pi unless otherwise noted.  In my opinion, this is most easily done via SSH.

Doing this is simple.  We'll change /boot/cmdline.txt to redirect boot console to a different screen.  Additionally, we’ll remove the raspberry pi logo.
sudo nano /boot/cmdline.txt
The original line will read:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
We want to change it to:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty3 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait loglevel=3 logo.nologo

We’ve changed console to tty3 and added “loglevel=3” (which reduces the detail of the boot messages) and “logo.nologo” (which removes the Pi logo from the boot screen).

Reboot to test the boot process.  
sudo reboot

If everything worked, you’ll see nothing for a while, then the test pattern desktop background you’ve set, and then chromium will load.

The long period with no output can be disconcerting to an end user.  We can put a short splash screen in the boot cycle to break up the time where nothing is displayed.  This can be a useful troubleshooting step, as well, if the Pi stops booting properly.  With this in place, you’ll be able to verify that it at least gets through basic boot and starts running init scripts just by watching the screen while it boots.  The method described here is stolen from here

I use a generic “color bars” test pattern from Wikipedia for this step.  I’ve converted it to a 1080p png.
Login as Pi (ssh is probably the easiest way to do these steps)

sudo mv JHa1EL9.png /etc/splash.png

Install “fbi” (linux framebuffer imageviewer – it allows you to display an image before the X server starts)
sudo apt-get install fbi

Create a boot script to launch fbi to show the colorbars image called aasplashscreen and placed it in /etc/init.d/

sudo nano /etc/init.d/aasplashscreen

The file should contain the following:
#! /bin/sh
### BEGIN INIT INFO
# Provides:          asplashscreen
# Required-Start:
# Required-Stop:
# Should-Start:      
# Default-Start:     S
# Default-Stop:
# Short-Description: Show custom splashscreen
# Description:       Show custom splashscreen
### END INIT INFO


do_start () {

    /usr/bin/fbi -T 1 -noverbose -a /etc/splash.png    
    exit 0
}

case "$1" in
  start|"")
    do_start
    ;;
  restart|reload|force-reload)
    echo "Error: argument '$1' not supported" >&2
    exit 3
    ;;
  stop)
    # No-op
    ;;
  status)
    exit 0
    ;;
  *)
    echo "Usage: asplashscreen [start|stop]" >&2
    exit 3
    ;;
esac

:

You’ll need to change the permissions to make the script executable:
sudo chmod a+x /etc/init.d/aasplashscreen

You’ll also need to enable the new startup script:
sudo insserv /etc/init.d/aasplashscreen

Reboot to ensure that the new colorbars are displayed on boot.
sudo reboot

Once you’re happy with how everything works, you can harden the virtual interface.  If someone plugs in a keyboard/mouse, you want them to have as little control as possible.  Ideally, you’d want them to be completely unable to break out of kiosk mode.  If they do manage that, making it difficult to run anything else is a good step.

One of the easiest steps you can take is removing the taskbar from the user’s desktop.  Do this by commenting out the first line of /home/signage/.config/lxsession/LXDE/autostart:
sudo nano /home/signage/.config/lxsession/LXDE/autostart
Add a # to the beginning of the first line (the one that runs lxpanel), so it looks like this:
#@lxpanel --profile LXDE
Exit and write the changes.

As you’ll recall from earlier, Kiosk mode is easy to escape with ALT-F4.  In order to prevent this, we'll need to disable keyboard shortcuts.  These are found in the file /home/signage/.config/openbox/lxde-rc.xml
sudo /home/signage/.config/openbox/lxde-rc.xml

For each keyboard shortcut you’d like to disable, replace everything between the <keybind> </keybind> with the following:
<action name="Execute">
<command>false</command>
</action> 
For instance this:
<keybind key="C-A-Left">
    <action name="DesktopLeft">
<dialog>no</dialog>
<wrap>no</wrap>
    </action>
</keybind>
Becomes this:
<keybind key="C-A-Left">
<action name="Execute">
<command>false</command>
</action>
</keybind>

Which shortcuts you want to disable is up to you, but here are some suggestions:
<keybind key="W-d">
<keybind key="C-A-d">
<keybind key="A-F4">
<keybind key="A-Tab">
<keybind key="A-S-Tab">
<keybind key="C-A-Tab">
<keybind key="W-e">
<keybind key="A-F2">
<keybind key="A-F11">
<keybind key="A-C-Delete">
<keybind key="Print">

While we're editing this file, we should also disable the right-click menu on the desktop, just in case our would-be attacker manages to close chromium's kiosk mode. 
Find the following section:
<mousebind button="Right" action="Press">
   <action name="ShowMenu">
     <menu>root-menu</menu>
   </action>
</mousebind>
Change it to:
<mousebind button="Right" action="Press">
   <action name="Focus"/>
</mousebind>

Also, we should disable the middle click, just in case:
Find the following section:
<mousebind button="Middle" action="Press">
   <action name="ShowMenu">
     <menu>client-list-combined-menu</menu>
   </action>
</mousebind>

Change it to:
<mousebind button="Middle" action="Press">
   <action name="Focus"/>
</mousebind>

Don't forget the / after "Focus" because if you do, you'll get an error when your desktop loads.

If you're linux savvy, you might notice that CTRL-ALT-F1 through CTRL-ALT-F8 can still be used to switch virtual TTY (and get to a login prompt.)  To eliminate that, you’ll need to edit change the X server’s configuration by adding a conf file:
sudo nano /usr/share/X11/xorg.conf.d/50-novtswitching.conf

Add the following to the file and then exit and save:
Section "ServerFlags"
        Option "DontVTSwitch" "true"
EndSection

To prep for general deployment, you must remove the chromium configuration from user signage (otherwise every Pi will grab the same screen instead of giving you a unique token.
sudo rm -rf /home/signage/.config/chromium
While you're at it, remove the chromium cache files too.
sudo rm -rf  /home/signage/.cache/chromium

It would also be a good idea to clear the bash history by deleting the following files: 
sudo rm /home/pi/.bash_history

sudo rm /home/signage/.bash_history

If you have multiple Pi’s in the environment, its probably a good idea to rename them.   Saving the following code in a file called “/home/pi/hostupdate.sh” will allow a quick rename based on the mac address of the Pi.  This will ensure a unique name every time.  

hostupdate.sh contains the following commands:
MAC="SignView""$( sed "s/^.*macaddr=\([0-9A-F:]*\) .*$/\1/;s/://g" /proc/cmdline )"
echo "$MAC" > "/etc/hostname"
CURRENT_HOSTNAME=$(cat /proc/sys/kernel/hostname)
sed -i "s/127.0.1.1.*$CURRENT_HOSTNAME/127.0.1.1\t$MAC/g" /etc/hosts
hostname $MAC

When an image is deployed to a new Pi, run the following command (as Pi) to set the hostname to “SignView<MACADDR>” so each deployment is unique:
sudo /home/pi/hostupdate.sh

Hopefully this helps.  If you have any questions, I'll do my best to answer them.  If you have any suggestions for improvements, I'm eager to hear them.  And if you find any errors (or I'm an idiot and have done something stupid here), please let me know!

john.la...@gmail.com

unread,
Apr 8, 2016, 12:48:31 PM4/8/16
to Concerto Digital Signage, john.la...@gmail.com
One last thing to add.  The Pi "firmware" will automatically overlay a small square in the upper right hand corner of the display if the Pi starts getting too hot (green/red), or is not receiving enough power (rainbow).  Since this is a dead giveaway to identifying a Pi, you might want to disable it.

To disable the overlay, login as user Pi and issue the following command:
sudo nano /etc/config.txt

Add the following line to the end of the file
avoid_warnings=1

Exit and save, then reboot to activate the change.
Message has been deleted

zasoby.in...@gmail.com

unread,
Apr 9, 2016, 5:02:58 AM4/9/16
to Concerto Digital Signage, john.la...@gmail.com
Great job! Thanks a lot!


Kimmo J

unread,
May 25, 2016, 7:12:58 AM5/25/16
to Concerto Digital Signage, john.la...@gmail.com
On Thursday, April 7, 2016 at 10:58:40 PM UTC+3, john.la...@gmail.com wrote:

Concerto Viewer for Pi Build

A note right up front... These instructions may work for an original Pi, but the version of Chromium installed in these instructions will not run on the original Pi, so you'll need to find another browser to run in kiosk mode...  



Great instructions, thank you. You saved me a fair bit of work figuring this stuff out for myself, big thanks for posting this. 

All I had to do in order to get where I wanted to go was to set up the built-in wifi and get a USB 2-to-1 y-cable, and now I can set up displays with just one power cable to the wall from the display itself (they all have USB ports that can power the Pi if you double up and use two). 
 

Teemu Lehtilä

unread,
Jun 10, 2016, 6:38:05 AM6/10/16
to Concerto Digital Signage, john.la...@gmail.com
First, thanks for the awsome guide!

Just some minor tweaks:
At the part where you modify autostart, the @xset s off part is missing:
add the following lines:
@xset -dpms
@xset s noblank
Unclutter display :0 noevents grab
chromium-browser http://concerto/frontend --kiosk --disable-infobars --disable-session-crashed-bubble
It is however the next part where you list all the contents of the file but that may be confusing to some.

jim....@gmail.com

unread,
Jun 30, 2016, 3:58:05 PM6/30/16
to Concerto Digital Signage, john.la...@gmail.com
This is one of, if not the best, tutorials I have ever read. Thoughtfully comprehensive, well-researched, and easy to follow.

THANK YOU!

Jim

john.la...@gmail.com

unread,
Jul 2, 2016, 9:22:27 AM7/2/16
to Concerto Digital Signage
Glad you liked it! My biggest frustration with most step by step guides is that they don't explain why you're doing each step.

I was worried that it might be too verbose!

Kenley Cheung

unread,
Jul 5, 2016, 12:43:21 AM7/5/16
to concerto-dig...@googlegroups.com
This is excellent.

On Sat, Jul 2, 2016 at 6:22 AM, <john.la...@gmail.com> wrote:
Glad you liked it! My biggest frustration with most step by step guides is that they don't explain why you're doing each step.

I was worried that it might be too verbose!

--
You received this message because you are subscribed to the Google Groups "Concerto Digital Signage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to concerto-digital-s...@googlegroups.com.
To post to this group, send email to concerto-dig...@googlegroups.com.
Visit this group at https://groups.google.com/group/concerto-digital-signage.
For more options, visit https://groups.google.com/d/optout.



--
Kenley Cheung

abmi...@midas.be

unread,
Jul 6, 2016, 9:40:59 AM7/6/16
to Concerto Digital Signage, john.la...@gmail.com
Hello,
A big thank to you for this tuto, it's very comprehensible and helpfull.
I just have a question: the autolog with lightdm doesn't work. When i reboot i have to set the log and password. Maybie it's because i changed the lightdm.conf while i was root, i did this because as an user i was not a "sudoer" even using sudo. If you have any idea of my issue you are very welcome :)
Thanks again
Message has been deleted

gautam...@gmail.com

unread,
Feb 25, 2017, 5:39:44 PM2/25/17
to Concerto Digital Signage, john.la...@gmail.com
Very nicely explained. This made my work lot easier!
Chromium can now be installed with a simple apt-get
sudo apt-get install chromium-browser


Phish

unread,
Mar 10, 2017, 9:03:36 AM3/10/17
to Concerto Digital Signage, john.la...@gmail.com
I wonder if it would be possible to add a walkthrough how to install the server on the Raspberry Pi 3?! :)

August

unread,
Mar 11, 2017, 11:36:55 AM3/11/17
to concerto-dig...@googlegroups.com
Folks are certainly welcome to write up something on our Wiki, but this isn’t something we’re looking to encourage in the future. The Raspberry Pi units can at times perform nicely as frontend units (depending on whether video is used on the screen), but they’re extremely poorly suited for the sort of application Concerto is meant for - networked digital signage. The Concerto Player is much better suited to the sort of application you seem to want.

-- 
August

On March 10, 2017 at 9:03:45 AM, Phish (del...@tigress.com) wrote:

I wonder if it would be possible to add a walkthrough how to install the server on the Raspberry Pi 3?! :)

Phish

unread,
Mar 12, 2017, 12:07:42 AM3/12/17
to Concerto Digital Signage
But I don't need a player, I need the content-server. I need a webfrontend that will serve the stuff to the player. For what should I use the player if I have nothing to play?
I don't get that, sorry. For our application only the Pi3 can be the source. The solution right now is to use Chromium in fullscreen, that works well enough as a "player".

I don't want the player, I want the content-backend with webinterface to manage the "signs".

Diego Garcia del Rio

unread,
Mar 12, 2017, 6:21:36 PM3/12/17
to Concerto Digital Signage
It will probably be tough to get the Server going on an rPi3... You could try taking a clean install of raspbian, installing mysql with a small memory footpring as possible, then installing the dependencies (just as in stock linux).. but you'll have to see if the DEBs are available for raspbian or not... After thatn, install concerto from source (or maybe even the DEB as its not really a binary and MIGHT be marked as multiplatform...

might work.. although ruby is quite demanding RAM/CPU wise...

Phish

unread,
Mar 12, 2017, 7:12:29 PM3/12/17
to Concerto Digital Signage
I did that already.... though there is something odd happening:

PHP Enviroment

  • PHP Version: PASS (5.6.29-0+deb8u1)
  • Short Tag Support: FAIL Not enabled in PHP.INI
  • MySQL Support: PASS (Ok)
  • GD Support: PASS (2.1.1-dev)
  • JSON Support: PASS (OK)
  • PATH INFO Global: PASS (/test)

Concerto Config

  • Config access: PASS (OK)
  • Common Directory: FAIL COMMON_DIR incorrectly setup, make sure it ends in a trailing '/'.
  • Image Upload Directory: FAIL Cannot write to IMAGE_DIR
  • Template Upload Directory: FAIL Cannot write to TEMPLATE_DIR
  • MySQL Connection test: PASS (OK)
The concerto-files are in /var/www/html/concerto, in the root-dir setting is: define('ROOT_DIR', '/var/www/html/concerto/');                    //server-side path where Concerto lives
If I open the concerto-site under 192.168.1.38/concerto the page automatically jumps to http://192.168.1.38/admin/index.php/ and I get a 404 because /admin is under /concerto/admin ofcourse...
and I don't see a reason why it jumps there.

Any idea what could be wrong?

Diego Garcia del Rio

unread,
Mar 12, 2017, 7:26:27 PM3/12/17
to concerto-dig...@googlegroups.com
PHP?... Seems like you installed concerto 1.0 and not 2.0... 2.0 is ruby-based... As far as I understand 1.0 is no longer supported/maintained/used...

I would try to follow this guide on a brand-new raspbian...




--
You received this message because you are subscribed to a topic in the Google Groups "Concerto Digital Signage" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/concerto-digital-signage/MiBkD5JOjE4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to concerto-digital-signage+unsub...@googlegroups.com.
To post to this group, send email to concerto-digital-signage@googlegroups.com.

Diego Garcia del Rio

unread,
Mar 12, 2017, 7:27:24 PM3/12/17
to concerto-dig...@googlegroups.com
I would also try to use sqlite if your setup is small.. as it should be much smaller than mysql. But don't expect much speed...

To unsubscribe from this group and all its topics, send an email to concerto-digital-signage+unsubscr...@googlegroups.com.

Phish

unread,
Mar 12, 2017, 7:33:26 PM3/12/17
to Concerto Digital Signage
Yes, I installed 1 because 2 didn't compile at all. Some old rubbish working software is better than software that does not work at all.
To unsubscribe from this group and all its topics, send an email to concerto-digital-signage+unsub...@googlegroups.com.
To post to this group, send email to concerto-dig...@googlegroups.com.

Diego Garcia del Rio

unread,
Mar 12, 2017, 7:37:02 PM3/12/17
to concerto-dig...@googlegroups.com
You could try just downloading this DEB:


and then using dpkg -i to install the local file.. you will then have to run apt-get update to fix the dependencies...

I have zero experience on concerto1. Concerto2 is ruby based so its not really compiled....  but ruby has quite a few dependencies here and there. The reality is that the project is developed/tested against x86/x64, especially on the server side.. so its probably quite hard to get it running on an arm architecture.

One question, are you planning on running both the server AND client on the same device?... if so, that's probably a REALLY BAD idea as chromium and X on the pi will use a fair ammount of ram already.



To unsubscribe from this group and all its topics, send an email to concerto-digital-signage+unsubscr...@googlegroups.com.
To post to this group, send email to concerto-dig...@googlegroups.com.
Visit this group at https://groups.google.com/group/concerto-digital-signage.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "Concerto Digital Signage" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/concerto-digital-signage/MiBkD5JOjE4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to concerto-digital-signage+unsub...@googlegroups.com.
To post to this group, send email to concerto-digital-signage@googlegroups.com.

Phish

unread,
Mar 12, 2017, 7:39:14 PM3/12/17
to Concerto Digital Signage
Btw. in https://github.com/concerto/concerto/wiki/Installing-Concerto-2#installing-from-source I think there is a missing step? Else I don't understand the step between 4 and 5. changing directory and then it says "When Concerto is started up, it will by default execute the following commands:" but HOW it will start up automatically? It has nothing done yet.

It's a mess, nothing works. And Screenly sadly lacks important features :/

Diego Garcia del Rio

unread,
Mar 12, 2017, 7:44:17 PM3/12/17
to concerto-dig...@googlegroups.com
try running those commands manually:

bundle install --path vendor/bundle 
bundle exec rake db:migrate
bundle exec rake db:seed


What the wiki meant is that if installed by the deb and started by the startup script, it would execute those commands.. (at least during the first run). 

I have almost no experience with ruby... but my memory was that it was a bit of a mess to get some of this stuff going out of the box... ruby and rails have a lot of lingo that seems clear for those experienced in the workflow.. but for the rest of us, its not as straightforward.



On Sun, Mar 12, 2017 at 8:39 PM, Phish <you...@delphin-homepage.de> wrote:
Btw. in https://github.com/concerto/concerto/wiki/Installing-Concerto-2#installing-from-source I think there is a missing step? Else I don't understand the step between 4 and 5. changing directory and then it says "When Concerto is started up, it will by default execute the following commands:" but HOW it will start up automatically? It has nothing done yet.

It's a mess, nothing works. And Screenly sadly lacks important features :/

--
You received this message because you are subscribed to a topic in the Google Groups "Concerto Digital Signage" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/concerto-digital-signage/MiBkD5JOjE4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to concerto-digital-signage+unsub...@googlegroups.com.
Message has been deleted
Message has been deleted

Phott Schtup

unread,
Mar 13, 2017, 3:07:39 PM3/13/17
to concerto-dig...@googlegroups.com

I, too, would like this information. The reason I would like to see this is because I have a friend who saw the potential of Conerto when I did a demo of it, and he wants to do something interesting. He wants a single screen in his business that displays things like products, schedules, specials, etc. If Concerto server could be installed onto a Pi, then the client-side also run from the same Pi, it could be used as a single-screen "appliance". Still managed the exact same way, still have the exact same abilities, but only available from one screen, the one the appliance is attached to. With the newer screens that have a USB port, the Pi can be plugged into that port for power so the only power cord needed is the one for the display itself.

In the case of one display, a Pi 3 will do even video suitably on one screen (I have done it successfully on a limited basis). If the server and client are on the same device, that would make it very easy for an end-user to deploy, especially in the case of a small business who only needs one screen and doesn't want to burn a computer just for a server for the signage.

Things to think about!

Doug

P.S. once configured and working, an image of the flashdrive would make deployment very easy.

Diego Garcia del Rio

unread,
Mar 13, 2017, 3:21:48 PM3/13/17
to concerto-dig...@googlegroups.com
Keep in mind that concerto does not support the serving of local video content (at least out of the box). The video needs to be uploaded to a separate web server (or a different process in the concerto host). concerto stores all of its media in the DB itself so it can't store the video. 

And again, hosting the server AND client on the same rPi will be painful IMO.



On Mon, Mar 13, 2017 at 4:07 PM, Phott Schtup <lifest...@gmail.com> wrote:

I, too, would like this information. The reason I would like to see this is because I have a friend who saw the potential of Conerto when I did a demo of it, and he wants to do something interesting. He wants a single screen in his business that displays things like products, schedules, specials, etc. If Concerto server could be installed onto a Pi, then the client-side also run from the same Pi, it could be used as a single-screen "appliance". Still managed the exact same way, still have the exact same abilities, but only available from one screen, the one the appliance is attached to. With the newer screens that have a USB port, the Pi can be plugged into that port for power so the only power cord needed is the one for the display itself.

In the case of one display, a Pi 3 will do even video suitably on one screen (I have done it successfully on a limited basis). If the server and client are on the same device, that would make it very easy for an end-user to deploy, especially in the case of a small business who only needs one screen and doesn't want to burn a computer just for a server for the signage.

Things to think about!

Doug

P.S. once configured and working, an image of the flashdrive would make deployment very easy.


On 03/11/2017 10:36 AM, August wrote:
Folks are certainly welcome to write up something on our Wiki, but this isn’t something we’re looking to encourage in the future. The Raspberry Pi units can at times perform nicely as frontend units (depending on whether video is used on the screen), but they’re extremely poorly suited for the sort of application Concerto is meant for - networked digital signage. The Concerto Player is much better suited to the sort of application you seem to want.

-- 
August

On March 10, 2017 at 9:03:45 AM, Phish (del...@tigress.com) wrote:

I wonder if it would be possible to add a walkthrough how to install the server on the Raspberry Pi 3?! :)
--
You received this message because you are subscribed to the Google Groups "Concerto Digital Signage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to concerto-digital-signage+unsub...@googlegroups.com.
To post to this group, send email to concerto-digital-signage@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Concerto Digital Signage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to concerto-digital-signage+unsub...@googlegroups.com.
To post to this group, send email to concerto-digital-signage@googlegroups.com.

--
You received this message because you are subscribed to a topic in the Google Groups "Concerto Digital Signage" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/concerto-digital-signage/MiBkD5JOjE4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to concerto-digital-signage+unsub...@googlegroups.com.
To post to this group, send email to concerto-digital-signage@googlegroups.com.

Eric Chatham

unread,
Mar 15, 2017, 2:13:57 PM3/15/17
to Concerto Digital Signage, john.la...@gmail.com
I have tried several different configurations over the past two years or so of using Concerto with Raspberry Pis and the most stable configuration that I have came across has been running BerryBoot with Raspbian (Jessie) using Chromium in kiosk mode I've listed the options that I added to LXDE autostart below and there are some additional Chrome extensions that may be useful at http://peter.sh/experiments/chromium-command-line-switches/ I also install unclutter (sudo apt-get install unclutter) to get rid of the cursor and after the initial boot I set the homepage of the Chromium browser to http://[YOUR.CONCERTO.HERE]/frontend. I also enable SSH (using sudo raspi-config) so I can reopen the browser remotely in the event of a crash (Using the command "DISPLAY=:0 chromium -kiosk -noerrdialogs") but as I said I've found this build to be very stable running for usually a month or longer without issue. And in the event of an unexpected reboot comes up without issue...

Commands added to /etc/xdg/lxsession/LXDE-pi/autostart

@xset s off
@xset -dpms
@xset s noblank
@xset s off
 @chromium -kiosk -noerrdialogs"@xset s off

Hope this helps...

rodrigo....@gmail.com

unread,
Mar 18, 2017, 6:33:42 AM3/18/17
to concerto-dig...@googlegroups.com, john.la...@gmail.com



Concerto Viewer for Pi Build


 

Hi,

Follow this very same guide above (Concerto Viewer for Pi Build) but take also a look to the material down here, I just simplified several deploy/installation command operations of this great Concerto Viewer for Pi guide, I stacked on each other several commands into at last just two main commands as Simplified strings (Part I & II), be my guest and feel the power!:


# Deploy Raspbian Lite on SD card


# Raspbian Jessie Lite download here:

https://www.raspberrypi.org/downloads/raspbian/



# PART 1 - Firefox or Chromium?



# FIREFOX - Several installations  and Firefox install. Paste the below command string into the RPI terminal. This command Update/Upggrade Raspian, install unclutter, Install Firefox, creates signage (it asks for password twice x 2), then reboot itself:


sudo apt update -y && sudo apt upgrade -y && sudo apt dist-upgrade -y && sudo apt install firefox-esr -y && sudo apt install unclutter && sudo apt-get autoremove -y && sudo apt-get clean && sudo adduser signage ; sudo passwd signage ; sudo shutdown -r now


OR


# CHROMIUM - Several installations  and even Chromium install. Paste the below command string into the RPI terminal.  This command Update/Upggrade Raspian, install unclutter, Install Chromium, creates signage (it asks for password twice x 2), then reboot itself:


sudo apt update -y && sudo apt upgrade -y && sudo apt dist-upgrade -y && sudo apt install -y chromium-browser && sudo apt install unclutter && sudo apt-get autoremove -y && sudo apt-get clean && sudo adduser signage ; sudo passwd signage ; sudo shutdown -r now


 My LXDE/autostart example with Chromium. Login FIRST as "signage".  (TIP: "--kiosk" is the ticket to the signage solution through Chromium, "--incognito" means it gets "quiet and peaceful" namely the browser it's gonna show just the signage and not other system info, info & error bubbles, update info etc):


nano /home/signage/.config/lxsession/LXDE/autostart


@lxpanel --profile LXDE

@pcmanfm --desktop --profile LXDE

@xset s off

@xset -dpms

@xset s noblank

unclutter -display :0 -noevents -grab

@/usr/bin/chromium-browser --incognito --kiosk http://concerto.server.ip.number/frontend/1




# change now the PI user password:

sudo passwd pi



# PART 2 - Deploy GUI, services and daemons


# Paste the below command string into the RPI terminal. This command installs xserver-xorg, xinit, lxde-core, lxterminal, lxappearance, lightdm and then reboot:


sudo apt-get install xserver-xorg -y && sudo apt-get install xinit -y && sudo apt-get install lxde-core lxterminal lxappearance -y && sudo apt-get install lightdm -y && sudo reboot




#Appendix - Logout now from LXDE (logout user "pi"). Login as "signage" into the LXDE (GUI), Run lxterminal. The command down here download the “test pattern picture” and copy it to the “Pictures” folder. Paste the below command string into the RPI terminal:


wget http://fungi.yuggoth.org/testpattern/testpattern-hd-1080.png ; mv testpattern-hd-1080.png ./Pictures



# Follow this page guide (HINT: you are already here) in order to complete the rest of the “Concerto Viewer for Pi Build” system deploy guide:


https://groups.google.com/forum/#!searchin/concerto-digital-signage/install$20player$20rpi%7Csort:relevance/concerto-digital-signage/MiBkD5JOjE4/o2hXSx1EBQAJ 



Enjoy!


Vangelius


Postscript!  Did you feel it?


# Tip: >> Log in into the Pi. "sudo ifconfig" give you the IP number of the Raspberry Pi through direct login at the machine. >>For Remote access: Open SSH under "sudo raspi-config" (or create a empty file with "ssh" as title under the SD Win32 partition) and remote terminal login through SSH and copy and paste below power commands. >> Headless (Remote without keyboard or Screen monitor) Another way to know your PI IP number it's if you can surf to your own router with another computer at home and identify the raspberry's IP address there. Use a Web search engine to know your router's IP number and username/password. There you can find the IP of the PI in your home router. Another tip: You can find and activate VNC server (REALVNC) with "sudo raspi-config". Clients here.



# My crontab example (HDMI signal display OFF at 19.30 evening and ON again at 7.30 morning. A quick reboot follows screen ON 7.30: "shutdown -r") It's only showing display at screen from Monday to Friday ("1-5") Not Saturday ("6") or Sunday ("7"):

# Go into the crontab editor:
sudo crontab -e

Paste this into the cron file and modify at will, then save it with whatever name the RPI name the file to, let the RPI choose the name of the crontab file, just say yes and save:

# minute   hour   day of month     month   day of week       command

#  0-59    0-23   1-31             1-12    0-7 (0/7 is Sun)

30 19 * * * /opt/vc/bin/tvservice -p ; /opt/vc/bin/tvservice -o

30 7 * * 1-5 /opt/vc/bin/tvservice -p ; chvt 6 ; chvt 7 && sleep 15 && sudo shutdown -r now


What is the difference between “&&” and “;” when chaining commands [duplicate]:

http://unix.stackexchange.com/questions/37069/what-is-the-difference-between-and-when-chaining-commands


kjh...@gmail.com

unread,
Apr 2, 2017, 12:13:24 PM4/2/17
to Concerto Digital Signage, john.la...@gmail.com
Hi everyone and thank you for this great tutorial and all the helpful and presious tips!

I followed the steps and I'm stuck in launching graphical environment with the new user.
When I type in startx in the new user session I get the following error in /home/newUser/.local/share/xorg/Xorg.0.log

open /dev/fb0: Permission denied

Sorry to bother you if it's a trivial issue. I didn't dive into linux world for more then 10 years.

These are the steps (trough ssh) I followed starting with a fresh install of the image 2017-03-02-raspbian-jessie-lite.img

# enable SSH using raspi-config
sudo raspi
-config
# updating packages source list
sudo apt
-get update

# xserver-xorg
sudo apt
-get install xserver-xorg
# xinit
sudo apt
-get install xinit
# desktop environment and window manager (openbox)

sudo apt
-get install lxde-core lxterminal lxappearance
# login manager
sudo apt
-get install lightdm
# reboot
sudo reboot

# chromium-browser
sudo apt
-get install chromium-browser
# unclutter, to hide the mouse cursor
sudo apt
-get install unclutter
# reboot
sudo reboot

# set up hostname
sudo echo newhost
> /etc/hostname

# create a user account that, when logged in,
# will start the X server and the player
sudo adduser newuser

# when I test with the new user by logging in using a keyboard
startx
# I got the xorg error

Thanks for your help.

Best regards.

kevin....@eastern.k12.in.us

unread,
Jun 19, 2017, 1:53:44 PM6/19/17
to Concerto Digital Signage, john.la...@gmail.com
Hello All,

I have followed the OP's instructions but I am seeing some freezing issues deploying 3 Rpi-3's. When I setup my first Pi and only had it running there seemed to be no issues except some minor things I will list. Our athletic director here at the K-12 school I work for has initiated this project and I suggested Concerto using he Pi-3's. I'm almost ready to suggest another player platform if I cannot get my issues resolved. The displays being used will be 2 Vizio 48" TV's and 1 Samsung 64" TV.

Issues:

1) When rebooting or power down, Chromium "restore previous screen" bubble will appear, not always but occasionally.

2) Weather applet will not update automatically, I can initiate a manual update through the web gui.

3) Regular screen freezing when all 3 Pi's are running. My current test environment is using one of the Vizio's and 2 LCD PC monitors. The Pi is not froze as I can still SSH into it.

Pi's have been allocated 256mb for the GPU. Raspbian is fully updated. Not sure if this makes a difference but I started with one Pi and after I had it configured to my liking I made an image of it and flashed it to the other 2 Pi's. I did make the appropriate changes to the new images, changed hostname, etc. Screen content has 4 sections, graphics, date, weather & ticker.

I am more than happy to provide any system logs if anyone needs them.

TIA

Phott Schtup

unread,
Jun 19, 2017, 2:46:27 PM6/19/17
to concerto-dig...@googlegroups.com

The Pi's work ok. They do have the lockup issue. I could be all wet here, but it is my feeling (no actual proof) that this may be caused by temp cached data hogging up the Pi's RAM. What I did that helped IMMENSELY was set a cron job that rebooted the pi at an opportune time. Possibly twice per day. And, I didn't run Chromium. . . I used Firefox-ESR. Much more stable.

All this being said, I have since given up on the Pi's for display units. Just too unstable and unreliable in the fully hands-off display function. They are GREAT and do a good job if you don't mind babysitting them (the daily reboots help a LOT) a bit.

Since we had a stack of Dell Latitude D630's laying around with dead batteries, but otherwise very functional, I just installed Mint on them, and Firefox and set them to auto restart once a day. These are very stable. I also wrote a script that even if the display locks up, if you can get to their web server (yeah, I added apache2 to them for this very reason) you just go to their webserver (I have static IPs assigned with our DHCP server) with a specific address and that runs a script that restarts the display unit. Works slick. . . I can do it from my phone, or any computer on our network just by going to their address with a browser. Of course, ssh works, too, but that is more limited in what you can access it with. The web script is far more accessible! I can do that standing right in front of the display in about 10 seconds with a browser on my phone.

Doing the copy of the card is how I do mine as well. I also keep an image on my computer so that when (not if) the card fails, I can get right back up with a new one. Seems those cards don't last too long in something dynamic that runs 24/7. They just seem to wear out.

About the weather thing. . . I never got that far and just what came with the standard virtual machine image is all I need. Sorry I can't help with that!

On the freezing display. . . Have you tried Firefox? I found that to be the most stable in this system.

Doug
--
You received this message because you are subscribed to the Google Groups "Concerto Digital Signage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to concerto-digital-s...@googlegroups.com.
To post to this group, send email to concerto-dig...@googlegroups.com.

kevin....@eastern.k12.in.us

unread,
Jun 23, 2017, 10:38:42 AM6/23/17
to Concerto Digital Signage, john.la...@gmail.com
I think I may have found a solution to the chromium lockups. I have implemented a script to gracefully kill chromium and then restart it. I have added it to a cron job to run every 4 hours. It seems to be working as when I came in to work this morning none of the 3 displays were frozen. My script is below and I welcome any suggestions for improvement.

browser-restart.sh

#!/bin/bash

/usr/bin/pkill --oldest --signal TERM -f chromium-browser
/home/concerto/browser-start.sh
export DISPLAY=:0
/usr/bin/chromium-browser http://10.2.1.101/frontend --kiosk --disable-infobars --disable-session-crashed-bubble


On Thursday, April 7, 2016 at 3:58:40 PM UTC-4, john.la...@gmail.com wrote:

Concerto Viewer for Pi Build

A note right up front... These instructions may work for an original Pi, but the version of Chromium installed in these instructions will not run on the original Pi, so you'll need to find another browser to run in kiosk mode...  

sudo apt-get install lxde-core lxterminal lxappearance
Install LightDM login manager
sudo apt-get install lightdm
Reboot

mv testpattern-hd-1080.png ./Pictures

Now that we've got the background image, we'll customize the desktop for the auto-login user.

Under the “customize look and feel” menu:
Turn off Play Event Sounds
Turn off Play event sounds as feedback to user input

Under the "Desktop Preferences" menu:
Set /home/signage/Pictures/testpattern-hd-1080.png as desktop background 
Set background to “stretch to fit the monitor area” set.
Turned off “show Trash can”
Turn on “Show Menus Provided by window managers when desktop is clicked”

Under the “Openbox Configuration Manager” menu:
Set Number of Desktops to 1.

Right click the center of the taskbar, select “panel settings” and make the following changes:
Height: 16
Icon Size: 16
Solid Color (with opacity)
Custom Color: #FFFFFF
Minimize Panel when not in use
Size when minimized 1 pixel

Edit /home/signage/.config/lxsession/LXDE/autostart:
nano /home/signage/.config/lxsession/LXDE/autostart
remove the line: 
@xscreensaver no-splash
add the following lines:
@xset -dpms
@xset s noblank
Unclutter display :0 noevents grab
chromium-browser http://concerto/frontend --kiosk --disable-infobars --disable-session-crashed-bubble
The first three lines turn off screen blanking/powersave
The fourth line makes the mouse disappear when not in use.
The last line launches chromium browser in kiosk mode and hides common error messages resulting from browser crashes and improper shutdowns. You should modify the URL to match whatever your concerto server is called (or use the ip address).

When done, the file should look like this:
When done, the autostart should look like this:
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@xset s off
@xset -dpms
@xset s noblank
unclutter -display :0 -noevents -grab

kevin....@eastern.k12.in.us

unread,
Jun 26, 2017, 6:58:56 AM6/26/17
to Concerto Digital Signage
I may have found a better solution than what I posted earlier regarding the browser restart script. Someone in a IRC channel I frequent suggested disabling hardware acceleration in Chromium. So I added the switch --disable-gpu in my Chromium startup command. So far the 3 Pi's have been running 3 days with no freezing issues without using the browser restart script.

Only remaining issue is that the weather applet does not automatically update.
To unsubscribe from this group and stop receiving emails from it, send an email to concerto-digital-signage+unsub...@googlegroups.com.

Krisztián Takács

unread,
Aug 1, 2017, 9:30:02 AM8/1/17
to concerto-dig...@googlegroups.com, john.la...@gmail.com
Hi Guys,

@OP Thank you for the guide :)

I have installed Concerto on a virtual server and I'm trying it with a Pi3 + Rasbpian. Everything displays right.
I have some issues however. My goal is to display a more or less static content but sometimes I need to update it dynamically.
For  example: I set the "show on screen" value is set to 240 seconds for testing purposes.





This content is being submitted to TEST feed, and Display 2 (my Pi) is set to show the TEST feed. This is all good. But when I replace the content behind TEST feed , the Pi will not refresh the screen upon the changes only when the 240 seconds timer expired.
If I use VNC to connect the the Pi and hit F5 it refreshes the page and will display new content.
Is there a way to tell the PI to refresh the page when there is something new?

I have also tried to set the "show on screen" to for example 10/20/60 seconds so the page is refreshed every 10/20/60 seconds but it blinks as well every time(even if there is no new content) which is disturbing.

I have tried the Concerto Player img as well from their website and this is working as expected, the screen is refreshed as soon as there are changes. But that one cannot be installed on PI :( 

So I would need a workaround for this (without having to got to the PI through VNC and hit F5 :) ). Any help would be greatly appreciated.

than you.

Matthew Swanson

unread,
Aug 1, 2017, 7:51:00 PM8/1/17
to Concerto Digital Signage, john.la...@gmail.com
Not sure if this applies to your specific case but this is how I have mine refresh. I installed xdotool to refresh the page every X amount of seconds. Some need it every 15 minutes some only need it after several hours.


sudo apt-get install xdotool


Then I put a script in my home directory called refresh.sh. You can change the timing by changing 1000 to any number of seconds. Make sure you make the script executable. (chmod +x refresh.sh)

#!/bin/bash
while true; do
  xdotool key ctrl+r
  sleep 1000
done 


I put mine in .bashrc because I have my web browser open that way and the script keeps running. You could also have a cron run it.

kevin....@gmail.com

unread,
Aug 6, 2017, 10:23:19 AM8/6/17
to Concerto Digital Signage, john.la...@gmail.com
Thought I would report back with my current state of this project. Before deploying the 3 Pi/TV combo's to their permanent locations, I had them running in my office and the best time run I got was 9 days without any intervention.

After deployment, 2 of the 3 will not stay running for more than 8 hours without locking up. Sometimes I can still ping them but there will be no SSH connection. I have tried disabling power management of the Wifi & moved a AP closer to one, all to no success.

Looking for any and all suggestions.

Matthew Swanson

unread,
Aug 8, 2017, 11:25:27 AM8/8/17
to Concerto Digital Signage, john.la...@gmail.com, kevin....@gmail.com
Personally I would hardwire them. I have had numerous issues with them dropping network

izwanr...@gmail.com

unread,
Aug 17, 2017, 4:40:56 AM8/17/17
to Concerto Digital Signage
when it's all done.. the content in the digital signage can be control via remote?

gustavo...@gmail.com

unread,
Oct 9, 2017, 2:08:14 PM10/9/17
to Concerto Digital Signage
Many thanks for this tutorial.

In my case, I had to do two changes to your settings:

1) Instead of


    @lxpanel --profile LXDE
    @pcmanfm --desktop --profile LXDE
    @xset s off
    @xset -dpms
    @xset s noblank
    unclutter -display :0 -noevents -grab
    chromium-browser http://concerto/frontend --kiosk --disable-infobars --disable-session-crashed-bubble

what worked for me was:


@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
#@xscreensaver -no-splash
@xset s noblank

@xset s off
@xset -dpms
unclutter –display :0 –noevents –grab
chromium-browser --kiosk --app=http://192.168.1.15/frontend/6 --kiosk --disable-infobars --disable-session-crashed-bubble
 (Ref.: https://www.raspberrypi.org/forums/viewtopic.php?t=57552)
Not sure why...

2) Also, since I'm using a TV monitor to display the signage, whenever someone turned the TV source to something different from the Rasp source, or when the Rasp Pi was boot with the TV source set to other source than the Pi, it would not show anything whenever I switched the TV source to the Rasp Pi.
Enabling hdmi_drive=2 in /boot/config.txt seemed to have fixed the issue.

On Thursday, April 7, 2016 at 4:58:40 PM UTC-3, john.la...@gmail.com wrote:

dan.m...@gmail.com

unread,
Oct 29, 2017, 1:39:53 AM10/29/17
to Concerto Digital Signage
Thanks for this write up.  Everything is working well for me except autologin.

I'm a little confused about which lines to edit in lightdm.conf.  I've pasted my current lightdm.conf file below. 
The Pi boots and displays the login screen instead of logging in as signage and starting Chromium.
Any thoughts or suggestions about how to make this work or were to look for errors?

Thanks!
Dan


#
# General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
#logind-check-graphical=false
#log-directory=/var/log/lightdm
#run-directory=/var/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=/usr/share/lightdm/greeters:/usr/share/xgreeters
#backup-logs=true
#
# Seat configuration
#
# Seat configuration is matched against the seat name glob in the section, for example:
# [Seat:*] matches all seats and is applied first.
# [Seat:seat0] matches the seat named "seat0".
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
#
# type = Seat type (xlocal, xremote, unity)
# pam-service = PAM service to use for login
# pam-autologin-service=lightdm-autologin
# pam-greeter-service=lightdm-greeter
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-config = Config file to pass to X server
# xserver-layout = Layout to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -s$
# unity-compositor-timeout = Number of seconds to wait for compositor to start
# greeter-session = Session to load for greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user=signage
# autologin-user-timeout=0
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[Seat:Defaults]
#type=xlocal
#pam-service=lightdm
pam-autologin-service=lightdm-autologin
pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
#unity-compositor-command=unity-system-compositor
#unity-compositor-timeout=60
#greeter-session=example-gtk-gnome
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
#user-session=default
#allow-user-switching=true
#allow-guest=true
#guest-session=
#session-wrapper=lightdm-session
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
autologin-user=signage
autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false

#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn.  Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=
#hostname=

#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=true
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8



gustavo...@gmail.com

unread,
Oct 29, 2017, 7:18:59 AM10/29/17
to Concerto Digital Signage
Have you created the signage user as stated by this instruction in the guide: sudo adduser signage?

In my case I didn't, so, instead of

autologin-user=signage

I have
autologin-user=pi


dan.m...@gmail.com

unread,
Oct 29, 2017, 10:42:06 AM10/29/17
to Concerto Digital Signage

I have created the signage user.  I've also added the signage user to the group autologin since I found that mentioned in a how-to.  That didn't help either.
I'm really just trying to find a log file somewhere that will tell me what the problem is.  I looked in /var/log/lightdm/lightdm.log but there were no errors indicated there.

Thanks for the suggestion though.

Dan

julien....@gmail.com

unread,
Feb 23, 2018, 6:02:11 AM2/23/18
to Concerto Digital Signage
Thanks A LOT for this guide ! Great job !

I use chromium v.60 (after a apt-get install ;-) ), and the option --disable-session-crashed-bubble don't work for the version , anybody find how to ignore the crash bubble ?
Reply all
Reply to author
Forward
0 new messages