Install Dashing on a Raspberry Pi


After having successfully set up the Raspberry Pi it’s time to add some value.

The first project will be to have a Dashing board up and running.

To get dashing to the pi we first need to install some prerequisites and configure the pi to start up chromium in kiosk mode with a URL of our choice. Next is to install dashing and start a demo project.

Let’s start with packages. Luckily some of the required ones are already installed in the image we chose like: nodejs x11-xserver-utils ttf-mscorefonts-installer xwit sqlite3 libnss3

×
bash
$ sudo apt-get install matchbox  # leightweight window manager
$ sudo ln -s /usr/lib/arm-linux-gnueabihf/nss/ /usr/lib/nss
$ 

The last command prevents the error “Failed to load NSS libraries.” you may see when you start the x-server.

Now we have to tell xinit to start what we want to see. I found this script somewhere on the web which mostly does what we need, and made some small changes.

×
bash
$ vi ~/.xinitrc
$ 

and put the following lines of code into it.

×
.xinitrc
#!/bin/sh
while true; do

  # Clean up previously running apps, gracefully at first then harshly
  killall -TERM chromium 2>/dev/null;
  killall -TERM matchbox-window-manager 2>/dev/null;
  sleep 2;
  killall -9 chromium 2>/dev/null;
  killall -9 matchbox-window-manager 2>/dev/null;

  # Clean out existing profile information
  rm -rf /home/pi/.cache;
  rm -rf /home/pi/.config;
  rm -rf /home/pi/.pki;

  # Generate the bare minimum to keep Chromium happy!
  mkdir -p /home/pi/.config/chromium/Default
  sqlite3 /home/pi/.config/chromium/Default/Web\ Data "CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR); INSERT INTO meta VALUES('version','46'); CREATE TABLE keywords (foo INTEGER);";

  # Disable DPMS / Screen blanking
  xset -dpms
  xset s off

  # Reset the framebuffer's colour-depth
  fbset -depth $( cat /sys/module/*fb*/parameters/fbdepth );

  # Hide the cursor (move it to the bottom-right, comment out if you want mouse interaction)
  xwit -root -warp $( cat /sys/module/*fb*/parameters/fbwidth ) $( cat /sys/module/*fb*/parameters/fbheight )

  # Start the window manager (remove "-use_cursor no" if you actually want mouse interaction)
  matchbox-window-manager -use_titlebar no -use_cursor no &

  # Start the browser (See http://peter.sh/experiments/chromium-command-line-switches/)
  chromium  --app=http://localhost:3030/

done;

If you now start the xserver with

×
bash
$ startx
$ 

you should see a running chromium in kiosk mode pointing to a web page that doesn’t exist yet, so let’s create it.

First let’s deactivate docs for gems. This just takes time and we don’t need it on the pi.

×
bash
$ cat > ~/.gemrc
gem: --no-ri --no-rdoc
install: --no-rdoc --no-ri
update: --no-rdoc --no-ri
^D
$ cp ~/.gemrc /home/pi
$ chown pi:pi /home/pi/.gemrc
$ 

Then we install dashing and create a dashboard - be free to choose a wiser name.

×
bash
$ cd
$ gem install bundler dashing
$ dashing new whatever
$ cd whatever
$ bundle
$ dashing start
$ 

To see the results we would have to reload the browser. If you have a mouse attached, right click and hit Reload. If you have a keyboard attached, hit ctrlr. You should see the demo dashboard of dashing.

Next time we will fill the dashboard with meaningful data.


No Comments