MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    YAPi0 Installer Stretch Lite

    Scheduled Pinned Locked Moved General Discussion
    118 Posts 4 Posters 103.9k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S Offline
      stuartiannaylor
      last edited by stuartiannaylor

      https://github.com/StuartIanNaylor/MagicMirror-Install-Guide-Raspberry-0-to-3

      MagicMirror-Install-Guide-Raspberry-0-to-3

      Rather than an install script a guide on how easy it is to install NodeJS and magic mirror works for all Pi and also includes 0 scripts which don’t use the incompatible electron Armv7l package

      Grab you image from raspberrypi.org/downloads/raspbian/

      Its up to you which you use but as in the name Raspbian Raspbian Stretch Lite Latest is the lightest and likely to create the best results.
      For a mirror that will generally be remote and a mirror installing a full desktop is likely pointless.

      Flash the image using Etcher from https://www.balena.io/etcher/
      Boot and then enter your WiFi details as the presumption is you will have a WiFi mirror.

      So our flash is complete and we are going to boot our pi zero and create some settings. All we need is the SSID of your WiFi router (The name it lists up as when you connect) My ssid=“TALKTALKF20CC3” My psk=“VE3JAX5F” (MyWifi password)

      • So we are going to login: login: = pi password = raspberry

      • then type: sudo raspi-config and press enter

      • Choose 2: Network Choose N2: WiFi Select your country. Enter your ssid. Enter your wifi password.

      • Choose 5: Interfaces Choose P2: SSH Yes to enable.

      • Tab to finish and Yes to reboot

      We need a SSH client such as Putty or Bitvise.
      Also Notepad++ is a great little editor that supports Unix & Windows LF/EOF formats.
      If your unsure the sugestions is Bitvise & Notepad++

      When the Pi reboots in the boot console log on screen you should now see a line My IP address is … copy that into the Server Host address and the pi/raspberry login details and login.

      Update your system and install the base packages for MagicMirror

      sudo apt-get update -y
      sudo apt-get upgrade -y
      sudo apt-get dist-upgrade -y
      

      Pi0/1 owners yeap the first boot update/upgrade to get the latest will be a :sleeping: experience with Pi 2/3 owners being slightly less :sleeping:.
      So now we have a completely updated and upgraded Pi and now to install Mirror specific packages.

      sudo apt-get install -y chromium-browser unclutter lightdm git rpd-plym-splash plymouth-x11 xdotool
      

      NodeJS for Pi 0/1 Armv6l is supported but not pakaged due to problems with Chromium compile for electron, this is no problem as the NodeJS NVM NodeVersionManager is excellent and probably should be used for all Pi versions.
      If you have a Pi 2/3 armv7l processor then you can install NodeJS via raspbian packages sudo-apt-get instal… but the NVM gives far better control.
      Read the GitHub ReadMe for a run down of how to use NVM and what it is capable of.
      To install

      curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
      

      As it will tell you close the current SSH console or reboot. So do so and install Node with…

      nvm install --lts
      

      As we will use the latest Long Term Support Version.

      ##Cloning & Installing MagicMirror
      From the MagicMirror site click on repository and copy the url or click the green clone button and copy from there.

      git clone https://github.com/MichMich/MagicMirror.git
      

      Then we will enter the MagicMirror folder and start the install

      cd ~/MagicMirror && npm install
      

      More :sleeping: time.
      So that MagicMirror will autostart and restart on failure we are going to install the NodeJS Process Manager PM2 and if you need further infomation the documentation is great.
      So to install

      npm install pm2@latest -g
      

      Then we are going to ask PM2 for the correct startup command and paste that into the console.

      pm2 startup
      

      Which for me returns, but trust PM2 and not me.

      [PM2] To setup the Startup Script, copy/paste the following command:
      sudo env PATH=$PATH:/home/pi/.nvm/versions/node/v10.15.1/bin /home/pi/.nvm/versions/node/v10.15.1/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
      

      So do as said and copy & paste what PM2 tells you.
      This is where us Pi0/1 and 2/3 owners depart as the need of use of Chromium rather Electron dicates some small changes.
      For Pi 0/1 owners.
      For Pi 2/3 owners the last thing is.

      pm2 start ~/MagicMirror/installers/pm2_MagicMirror.json
      

      Save that for autoboot

      pm2 save
      

      Copy the sample config.js to the config folder

      wget https://raw.githubusercontent.com/StuartIanNaylor/MagicMirror-Install-Guide-Raspberry-0-to-3/master/config.js -O ~/MagicMirror/config/config.js
      

      And we are ready to go with

      DISPLAY=:0 npm start
      

      Thats it unless you wish to read Make things Plymouth pretty and Save my Flash in the above to folders on instructions how to have a MagicMirror splash screen and how to use zram and tools to limit flash writes to a minimium. Apart the last bit about raspi-config and desktop autologin.

      So back to Pi0/1 users.
      The quickest and easiest way is to create a ~/.Xsession file and here is a sample config.

      nano ~/.Xsession
      

      Paste the following

      xset s off
      xset -dpms
      xset s noblank
      sleep 20
      chromium-browser --noerrdialogs --kiosk http://localhost:8080 --incognito --disable-translate --window-size=1920,1080 --window-position=0,0
      

      Then edit run-start.sh

      sed -i 's/electron js\/electron.js /node serveronly /g' ~/MagicMirror/run-start.sh
      

      So it looks like

      if [ -z "$DISPLAY" ]; then #If not set DISPLAY is SSH remote or tty
      	export DISPLAY=:0 # Set by default display
      fi
      node serveronly $1
      

      So for Desktop Autologin

      sudo raspi-config
      
      • 3 Boot options
      • Desktop/CLI
      • Desktop Autologin

        Then like the P2/3 owners add and save to PM2
      pm2 start ~/MagicMirror/installers/pm2_MagicMirror.json
      

      Save that for autoboot

      pm2 save
      

      Then reboot

      1 Reply Last reply Reply Quote 0
      • garblefluxG Offline
        garbleflux Project Sponsor
        last edited by

        @stuartiannaylor said in YAPi0 Installer Stretch Lite:

        pm2 save

        Great job! I ve got it to work - it runs fine on my Pi0!
        Thank you for your great efforts.
        Michael

        1 Reply Last reply Reply Quote 0
        • S Offline
          stuartiannaylor
          last edited by stuartiannaylor

          What you can do is add a script line to run-start-sh

          Call it xdotool.sh
          so you would have sh xdotool.sh

          after

          if [ -z "$DISPLAY" ]; then #If not set DISPLAY is SSH remote or tty
          	export DISPLAY=:0 # Set by default display
          	
          fi
          sh xdotool.sh &
          node serveronly $1
          xdotool.sh
          

          xdotool.sh contains

          export DISPLAY=:0
          sleep 25
          xdotool search --onlyvisible --class "chromium" key ctrl+F5
          

          The above will make Chromium refresh on any config.js changes or any restart of the server.

          If have been banging my head against a brick xorg / plymouth combination for no reason than to get a smooth splash screen all the way till the browser displays.
          This seems far more trouble than its worth.
          I included lightdm as thought that might make things easier but might drop it as it seems to make no difference and just adds bloat.

          https://www.semicomplete.com/projects/xdotool/ is excellent for external control just haven’t spent much time with it yet with my plymouth waste of time.

          1 Reply Last reply Reply Quote 0
          • B Offline
            bdream
            last edited by

            @ stuartiannaylor

            That sounds like exacly what I’m looking for :thumbs_up:

            I finished my first MagicMirror and looking for tuning options.
            As exp. I would like to small the case a bit and would be happy to use Rpi0 instead of Rpi3.

            I followed your instruction “MagicMirror-Install-Guide-Raspberry-0-to-3”

            I installed a new raspbian “Raspbian Buster with desktop”
            may this cause my issues not using “Raspbian Buster Lite”?

            I run in problem with command

            cd ~/MagicMirror/ && npm install
            

            as I got many WARN and ERR messages. I’m not alowed to attach because the file type is .log so I will paste only the WARN and ERR instead of the whole log-file.

            11359 timing action:extract Completed in 111604ms
            11360 silly extract lodash@^4.17.13 extracted to /home/pi/MagicMirror/node_modules/.staging/lodash-dee8f977 (111572ms)
            11361 warn tar ENOENT: no such file or directory, open '/home/pi/MagicMirror/node_modules/.staging/moment-fbf25dd9/min/moment-with-locales.js'
            11362 warn tar ENOENT: no such file or directory, open '/home/pi/MagicMirror/node_modules/.staging/lodash-20df1054/core.min.js'
            11363 warn tar ENOENT: no such file or directory, open '/home/pi/MagicMirror/node_modules/.staging/lodash-24d00653/core.min.js'
            .
            .
            .
            // many similar WARN messages
            .
            .
            .
            12301 warn tar ENOENT: no such file or directory, open '/home/pi/MagicMirror/node_modules/.staging/rrule-21671673/dist/es5/rrule-tz.js.map'
            12302 timing stage:rollbackFailedOptional Completed in 170ms
            12303 timing stage:runTopLevelLifecycles Completed in 545603ms
            12304 silly saveTree magicmirror@2.8.0
            12304 silly saveTree ├─┬ chai-as-promised@7.1.1
            12304 silly saveTree │ └── check-error@1.0.2
            12304 silly saveTree ├─┬ chai@4.2.0
            12304 silly saveTree │ ├── assertion-error@1.1.0
            .
            .
            12304 silly saveTree │   ├── parse-ms@1.0.1
            12304 silly saveTree │   └── plur@1.0.0
            12304 silly saveTree └── valid-url@1.0.9
            12305 warn grunt-stylelint@0.11.1 requires a peer of stylelint@^10.0.0 but none is installed. You must install peer dependencies yourself.
            12306 verbose type system
            12307 verbose stack FetchError: request to https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org registry.npmjs.org:443
            12307 verbose stack     at ClientRequest.req.on.err (/home/pi/.config/versions/node/v10.16.3/lib/node_modules/npm/node_modules/node-fetch-npm/src/index.js:68:14)
            12307 verbose stack     at ClientRequest.emit (events.js:198:13)
            12307 verbose stack     at TLSSocket.socketErrorListener (_http_client.js:392:9)
            12307 verbose stack     at TLSSocket.emit (events.js:198:13)
            12307 verbose stack     at emitErrorNT (internal/streams/destroy.js:91:8)
            12307 verbose stack     at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
            12307 verbose stack     at process._tickCallback (internal/process/next_tick.js:63:19)
            12308 verbose cwd /home/pi/MagicMirror
            12309 verbose Linux 4.19.66+
            12310 verbose argv "/home/pi/.config/versions/node/v10.16.3/bin/node" "/home/pi/.config/versions/node/v10.16.3/bin/npm" "install"
            12311 verbose node v10.16.3
            12312 verbose npm  v6.9.0
            12313 error code EAI_AGAIN
            12314 error errno EAI_AGAIN
            12315 error request to https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org registry.npmjs.org:443
            12316 verbose exit [ 1, true ]
            
            

            Any idea :nerd_face: what to do getting the RasPi0 run?
            Hold in mind what happen in case of newer MagicMirror software or other updates need to run automaticly.

            Many thanks, bdream

            –
            cheers, bdream

            S 2 Replies Last reply Reply Quote 0
            • S Offline
              sdetweil @bdream
              last edited by

              @bdream try my updated installer, I am working to get this to replace the current version…

              see https://forum.magicmirror.builders/topic/10171/anyone-want-to-try-updated-installer
              others have reported it works ok on Pi zero

              rename the MagicMirror folder or remove it before running the installer

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              1 Reply Last reply Reply Quote 0
              • B Offline
                bdream
                last edited by

                ok, many thanks! :grinning_face: I will try it now.
                Just deleted the MagicMirror folder…

                If I understand you correctly the new script will replace the old one as:

                ~~curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash~~
                
                bash -c "$(curl -sL https://www.dropbox.com/s/rlh710ng0zwv3vp/raspberry.sh?dl=0)"
                
                

                but all other in your manual will stay. Right?

                CU, bdream

                –
                cheers, bdream

                S 1 Reply Last reply Reply Quote 0
                • S Offline
                  sdetweil @bdream
                  last edited by

                  @bdream the installer also fixes pm2 and the screen saver
                  and creates a log of the install process results

                  i don’t think u will need the other steps in the pi0 manual anymore

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  1 Reply Last reply Reply Quote 0
                  • B Offline
                    bdream
                    last edited by bdream

                    thanks for this info, so I know what to do if my attempt to fix first installation only by deleting /MagicMirror and start your script fails :frowning_face: :winking_face:. And it failed :frowning_face:

                    I get a new “Raspbian Buster Lite” now and start again :nerd_face:

                    Will let you know about the outcome. It will take long time :sleeping_face:

                    Best gerads, bdream

                    –
                    cheers, bdream

                    S 1 Reply Last reply Reply Quote 0
                    • S Offline
                      sdetweil @bdream
                      last edited by

                      @bdream said in YAPi0 Installer Stretch Lite:

                      start your script fails . And it failed

                      please post the contents of ~/install.log

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      1 Reply Last reply Reply Quote 0
                      • B Offline
                        bdream
                        last edited by

                        Ohh sdetweil, my bad. I overwrote the SD-card already with the new image. I have to learn how to work with forum and being sensitive for upcoming questions/requests.

                        For now I started your script again an it seems it’s running :sleeping_face:

                        I wonder as I have on screen a warning

                        npm WARN npm npm does not support Node.js v10.15.2
                        npm WARN npm You should probably upgrade to a newer version of node as we
                        npm WARN npm can't make promises that npm will work with this version.
                        npm WARN npm Supported releases of Node.js are the latest releases of 4, 6, 7, 8, 9.
                        npm WARN npm You can find the latest version at https://nodejs.org/
                        /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
                        /usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
                        + npm@6.11.3
                        added 430 packages from 833 contributors in 433.321s
                        npm installation Done!
                        Cloning MagicMirror ...
                        Klone nach 'MagicMirror' ...
                        remote: Enumerating objects: 315, done.
                        remote: Counting objects: 100% (315/315), done.
                        remote: Compressing objects: 100% (282/282), done.
                        remote: Total 315 (delta 39), reused 193 (delta 21), pack-reused 0
                        Empangene Obekte: 100% (315/315), 655.08 KiB | 867.00 KiB/s, Fertig.
                        Löse Unterschiede auf: 100% (39/39), Fertig.
                        Cloning MagicMirror Done!
                        Installing dependencies ...
                        npm WARN deprecated time-grunt@2.0.0: Deprecated because Grunt is practically unmaintained. Move on to something better. This package will continue to work with Grunt v1, but it will not receive any updates.
                        
                        > electron-chromedriver@1.8.0 install /home/pi/MagicMirror/node_modules/electron-chromedriver
                        > node ./download-chromedriver.js
                        

                        That is the position cursor is blinking and nothing change since a long time.

                        Here you are the install.log from actual running? installation.

                        install starting  - So Sep 22 18:22:15 CEST 2019
                        installing on armv6l processor system
                        forcing armv71 architecture for pi 0
                        Updating packages ...
                        Installing helper tools ...
                        Check current Node installation ...
                        Node.js is not installed.
                        Installing Node.js ...
                        Node.js installation Done! version=v10.15.2
                        Check current NPM installation ...
                        npm is not installed.
                        Installing npm ...
                        upgrading npm to latest
                        npm installation Done!
                        Cloning MagicMirror ...
                        Cloning MagicMirror Done!
                        Installing dependencies ...
                        

                        Cheers, bdream

                        –
                        cheers, bdream

                        1 Reply Last reply Reply Quote 0
                        • B Offline
                          bdream
                          last edited by

                          Oh boy, so bad.

                          Maybe I don’t understand what I’m doing here.

                          install.log has not changed but MM ist also not running.
                          After I stopped above stated blinking curser with Ctrl - C

                          > electron-chromedriver@1.8.0 install /home/pi/MagicMirror/node_modules/electron-chromedriver
                          > node ./download-chromedriver.js
                          

                          I did install MM

                          cd ~/MagicMirror
                          npm install
                          

                          after I did

                          npm install pm@latest -g
                          

                          what failed.
                          I’m :pouting_face:
                          Do I go total wrong way here?
                          Where is my fault?

                          Maybe it’s that I’m not clear in what will your script do and what have I to do additional and in which sequence?

                          Have you any advise to me please?

                          Many thanks fpor your help! bdream

                          –
                          cheers, bdream

                          S 1 Reply Last reply Reply Quote 0
                          • S Offline
                            sdetweil @bdream
                            last edited by

                            @bdream my script should do EVERYTHING…

                            the chromedriver install had a problem…

                            can u do this

                            cd /home/pi/MagicMirror/node_modules/electron-chromedriver
                            node ./download-chromedriver.js
                            

                            and show me what the results are…

                            thanks

                            Sam

                            How to add modules

                            learning how to use browser developers window for css changes

                            1 Reply Last reply Reply Quote 0
                            • B Offline
                              bdream
                              last edited by

                              Hi Sam,
                              as I get Error replaying with code inside: 0_1569315660505_Error.JPG
                              I will attach requested resukt as jpg-file 0_1569315787927_result.JPG

                              cheers, bdream

                              –
                              cheers, bdream

                              S 1 Reply Last reply Reply Quote 0
                              • S Offline
                                sdetweil @bdream
                                last edited by

                                @bdream
                                hmm…

                                try this from the MagicMirror folder

                                npm install  --arch=armv7l electron-chromedriver@1.8.0
                                

                                Sam

                                How to add modules

                                learning how to use browser developers window for css changes

                                1 Reply Last reply Reply Quote 0
                                • B Offline
                                  bdream
                                  last edited by

                                  Here it is…

                                  pi@RasPiZeroWH:~/MagicMirror $ npm install  --arch=armv7l electron-chromedriver@1.8.0
                                  
                                  > electron-chromedriver@1.8.0 install /home/pi/MagicMirror/node_modules/electron-chromedriver
                                  > node ./download-chromedriver.js
                                  
                                  successfully dowloaded and extracted!
                                  npm WARN grunt-stylelint@0.11.1 requires a peer of stylelint@^10.0.0 but none is installed. You must install peer dependencies yourself.
                                  
                                  + electron-chromedriver@1.8.0
                                  updated 1 package and audited 3773 packages in 640.327s
                                  found 16 high severity vulnerabilities
                                    run `npm audit fix` to fix them, or `npm audit` for details
                                  pi@RasPiZeroWH:~/MagicMirror $
                                  

                                  cheers, bdream

                                  –
                                  cheers, bdream

                                  S 1 Reply Last reply Reply Quote 0
                                  • S Offline
                                    sdetweil @bdream
                                    last edited by

                                    @bdream weird. Works normal, fails in script.

                                    So, do this.

                                    cd ~/MagicMirror
                                    npm install --arch=armv71
                                    

                                    Please advise your results

                                    Sam

                                    How to add modules

                                    learning how to use browser developers window for css changes

                                    1 Reply Last reply Reply Quote 0
                                    • B Offline
                                      bdream
                                      last edited by

                                      see here:

                                      pi@RasPiZeroWH:~/MagicMirror $ npm install --arch=armv71
                                      
                                      > magicmirror@2.8.0 install /home/pi/MagicMirror
                                      > cd vendor && npm install
                                      
                                      npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
                                      npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
                                      
                                      audited 220 packages in 69.246s
                                      found 5 vulnerabilities (4 low, 1 high)
                                        run `npm audit fix` to fix them, or `npm audit` for details
                                      
                                      > magicmirror@2.8.0 postinstall /home/pi/MagicMirror
                                      > sh installers/postinstall/postinstall.sh && npm run install-fonts
                                      
                                      MagicMirror installation successful!
                                      
                                      > magicmirror@2.8.0 install-fonts /home/pi/MagicMirror
                                      > cd fonts && npm install
                                      
                                      audited 1 package in 7.131s
                                      found 0 vulnerabilities
                                      
                                      npm WARN grunt-stylelint@0.11.1 requires a peer of stylelint@^10.0.0 but none is installed. You must install peer dependencies yourself.
                                      
                                      audited 3773 packages in 413.334s
                                      found 16 high severity vulnerabilities
                                        run `npm audit fix` to fix them, or `npm audit` for details
                                      
                                      

                                      cheers, bdream

                                      –
                                      cheers, bdream

                                      S 1 Reply Last reply Reply Quote 0
                                      • S Offline
                                        sdetweil @bdream
                                        last edited by

                                        @bdream all good!

                                        Make sure to copy the sample config.js to config.js in the config folder.

                                        Then npm start

                                        Sam

                                        How to add modules

                                        learning how to use browser developers window for css changes

                                        1 Reply Last reply Reply Quote 0
                                        • B Offline
                                          bdream
                                          last edited by

                                          0_1569337684282_npm_start.jpg

                                          Seems not to be an easy task.
                                          And I totally lost what I have to do in case I want to setup it again on Pi0 :dizzy_face:

                                          Cheers, bdream

                                          –
                                          cheers, bdream

                                          S 2 Replies Last reply Reply Quote 0
                                          • S Offline
                                            sdetweil @bdream
                                            last edited by

                                            @bdream hm… this hardware is not enough like pi0. My script works there.

                                            I will have to look at the YAPI0 doc and see what is different

                                            Sam

                                            How to add modules

                                            learning how to use browser developers window for css changes

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 1 / 6
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy