3 tries 3 fails Raspberry b+



  • Ho gang.
    I’m having problems getting this to work on my pi b. I’ve installed raspbian, and the mirror files themselves direct, but can’t get the mirror to start! In not sure if it’s because I’m missing something, missing a step, or just plain shouldn’t be rusted with computers any more!
    Is there a tutorial that’s for the b+ knocking around? I’ve searched and can’t seem to find anything.
    Thanks! Nick



  • Ah. Am I right in thinking the tutorial for the pi 0 will do it? Might get out of bed and have a play…


  • Module Developer

    Does everything install correctly?

    What do you mean you can’t get it to start? What happens?



  • I’ve followed the guide from
    http://blog.dylanjpierce.com/raspberrypi/magicmirror/tutorial/2015/12/27/build-a-magic-mirror.html

    And

    http://michaelteeuw.nl/post/83916869600/magic-mirror-part-vi-production-of-the

    And neither work I’m afraid. No error messages, nothing notes a file/programme missing, nada. Just get to the point where it should “work” and nothing happens.

    I’ll try the pi 0 tutorial and see how that goes. It’s just that I have a spare pi b and all parts, and it’s a shame I can’t get it to go…


  • Module Developer

    @infamoustiggr Well that’s because you need to do this way…

    https://github.com/MichMich/MagicMirror

    The instructions are in full and easy to follow there ;) The other places may not be up-to-date. The instructions in the link above are for this mirror exactly …

    There’s two ways:
    Automatic Installer (Raspberry Pi Only!)
    or
    Manual Installation


  • Module Developer

    @infamoustiggr

    Yup, cowboydude is absolutely right. I went with the Automatic installer on my Raspberry Pi 3

    Worked perfectly, and the directions are damn good



  • I know, but I’ve got a Pi 1 model b. Unfortunately the easy install option is unavailable…

    I’ve got as far as the npm install, but it’s throwing up lots of error in a log file… Any hints?


  • Module Developer

    @infamoustiggr

    This is from the main installation page at https://github.com/MichMich/MagicMirror#manual-installation

    Raspberry Pi Support

    Electron, the app wrapper around MagicMirror², only supports the Raspberry Pi 2 & 3. The Raspberry Pi 1 is currently not supported. If you want to run this on a Raspberry Pi 1, use the server only feature and setup a fullscreen browser yourself.

    Server Only:

    In some cases, you want to start the application without an actual app window. In this case, execute the following command from the MagicMirror folder: node serveronly. This will start the server, after which you can open the application in your browser of choice.

    I hope this helps



  • @Mykle1 ho there! I had read this bit too, but, being as I am to programming what a brick is to top flight springboard diving, I’m getting stuck on what parts of the instructions apply to me and which don’t. For example, the npm install comes up with a horrific number of errors, but I don’t know if I actually need it…

    Once I’ve got this working I’ll write it up… I’m sure there’s a while bunch of people who bought the Pi 1 b and have since upgraded!



  • Hi all,
    I’m running my mirror on an original Pi B 256MB with no issues at all!

    The Raspbian version I use is DietPi which is really great on a 256MB Pi. Note that the standard user in DietPi is “root” rather than “pi”. If you use standard Raspbian just replace all occurences of “root” with “pi” in the scripts below.

    As the documentation states you start off with installing the Server Only option. If I remember correctly I had to manually install many of the node module dependencies as they weren’t installed correctly otherwise

    I use matchbox as the window manager because it suited my needs best. It uses less resources which again is great for a 256MB Pi.

    I’m using systemd scripts rather than pm2 as I think they work better. My scripts:

    magicmirror.service:

    [Unit]
    Description=Node.js Magic Mirror Server
    
    [Service]
    ExecStart=/usr/bin/node /root/MagicMirror/serveronly/index.js
    WorkingDirectory=/root/MagicMirror
    Restart=always
    RestartSec=20
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=nodejs-magicmirror
    Environment=NODE_ENV=production PORT=1337
    
    [Install]
    WantedBy=multi-user.target
    

    matchbox.service:

    [Unit]
    Description=X11
    After=X.service
    
    [Service]
    Environment=DISPLAY=:0.0
    ExecStart=/usr/bin/matchbox-window-manager -use_titlebar no -use_cursor no
    User=root
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    Kioskbrowser.service:

    [Unit]
    Description=Kiosk Browser
    After=matchbox.service magicmirror.service
    Requires=magicmirror.service
    
    [Service]
    WorkingDirectory=/root/MagicMirror
    User=root
    
    Environment=DISPLAY=:0.0
    
    # Don't activate screensaver
    ExecStartPre=/usr/bin/xset s off
    
    # Disable DPMS (Energy Star) features
    ExecStartPre=/usr/bin/xset -dpms
    
    # Don't blank the video device
    ExecStartPre=/usr/bin/xset s noblank
    
    ExecStart=/root/kioskbrowser http://localhost
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    

    Note that the kioskbrowser service relies on a user script called /root/kioskbrowser. This script has some extra logic to avoid the initial white screen when midori has loaded but not fetched any magic mirror content. The script perform a curl call to see if the magic mirror module is responding. If not it waits for a few seconds and then tries again. Once the magic mirror responds it starts midori in fullscreen mode.

    /root/kioskbrowser:

    #!/bin/bash
    status=1
    url="$1"
    wait="10s"
    tries=0
    
    # URL must be first argument
    if [ -z "$url" ]; then
      exit 1
    fi
    
    # Make sure that the url is reachable
    while [ $status -ne 0 ]; do
      let tries++
      curl --fail --progress-bar -o /dev/null --url "$url"
      status=$?
      if (($tries > 10)); then
        wait="30s"
      fi
      if (($tries > 20)); then
      wait="5m"
      fi
      if (($tries > 30)); then
      echo "$0: Can't load URL $url"
        exit 2
      fi
      sleep "$wait"
    done
    
    # Start browser in fullscreen mode
    /usr/bin/midori -e Fullscreen -a "$url"
    

    Hope this helps.


Log in to reply
 

Looks like your connection to MagicMirror Forum was lost, please wait while we try to reconnect.