MagicMirror² v2.12.0 is available! For more information about this release, check out this topic.

Rpi 4 and two monitors



  • @NathTheDude said in Rpi 4 and two monitors:

    npm ERR! code ENOENT
    npm ERR! syscall open
    npm ERR! path /home/pi/package.json
    npm ERR! errno -2

    you are doing npm start in the root, not in the MagicMirror folder…



  • @bhepler that is run-start.sh

    ~/MagicMirror/package.json

    {
      "name": "magicmirror",
      "version": "2.10.1",
      "description": "The open source modular smart mirror platform.",
      "main": "js/electron.js",
      "scripts": {
        "start": "./run-start.sh",     // < ------   when u do npm start this happens
    


  • @NathTheDude run-start.sh is in the MagicMirror folder

    actually the pm2 only on the 1st screen is understandable
    as the script used by pm2 is installers/mm.sh

    which does

    DISPLAY=:0 npm start
    

    and run-start does

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

    so I would just set export DISPLAY=:0
    and the execute run-start.sh


  • Project Sponsor

    I have to head home, so I can’t investigate any more for some time. But I did find this link on StackOverflow that seems to address the issue. Aren’t we using an X11 based desktop manager?
    Anyway, this may help.



  • @bhepler correct, that is DISPLAY



  • thanks @sdetweil , right you are - I was not running npm from within the MagicMirror directory.

    When I update ‘Display’ to 1 I still get an error when trying to manually run NPM, however when ‘Display’ is set to 0 and then I run NPM there are no errors with it. The error is:

    pi@MagicMirrors:~/MagicMirror $ npm start
    
    > magicmirror@2.10.1 start /home/pi/MagicMirror
    > ./run-start.sh
    
    (electron:11918): Gtk-WARNING **: 22:18:00.088: cannot open display: :1
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! magicmirror@2.10.1 start: `./run-start.sh`
    npm ERR! Exit status 1
    npm ERR! 
    npm ERR! Failed at the magicmirror@2.10.1 start script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/pi/.npm/_logs/2020-02-04T22_18_00_154Z-debug.log
    pi@MagicMirrors:~/MagicMirror $ 
    

    @bhepler thanks for the link, it is a bit beyond my understanding at the moment. I will have to read up on it a bit more. I tried to run xrandr to see what kind of status it gives on the monitors but it currently comes back with ‘Can’t open display’, I assume it is because another service/application is utilising them?

    Anyway, thanks for your help.



  • @NathTheDude said in Rpi 4 and two monitors:

    When I update ‘Display’ to 1 I still get an error

    Yes, we just need to find out what the other Display number is.

    tvservice is wrong cause it reports display 2 for HDMI 0, and we know it’s really Display 0



  • @sdetweil , so using ‘0’ or ‘0.0’ give the same result and start MM on the first monitor.

    So far I have tried 1,2,3,4,5,6,7,8,9 and 0.1, 0.2, 0.3, 0.4, 0.5

    How far do I go? 🙂



  • @NathTheDude The 2nd monitor should be display 0, screen 1. Use this:

    DISPLAY=:0.1
    


  • Hey @OldSunGuy , thanks. ‘0’ and ‘0.0’ seem to be the first monitor however I get an error when I try anything else. So far I have tried using each of the following: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9

    Each time I try to start npm (npm start) apart from when I use 0 or 0.0 I get the following (with the value reflecting the number I changed in ‘run-start.sh’):

    (electron:2238): Gtk-WARNING **: 06:14:02.236: cannot open display: :0.1
    

    @sdetweil - not sure if this is relevant but it does not seem to matter what value I set in ‘run-start.sh’, when I reboot the pi it will always start MM on the first screen. Should it not fail if it is using ‘run-start.sh’?

    Also with an incorrect value being added to ‘run-start.sh’, when I run ‘mm.sh’ this always works and displays MM on the first screen.

    okay, I think I understand it now. When I reboot it is using ‘mm.sh’, within mm.sh is the following:

    cd ~/MagicMirror
    DISPLAY=:0 npm start
    

    Which I assume means that the ‘run-start.sh’ is not used during boot up?

    When I change this value to anything other than 0, this will also fail with the same error seen when trying to run npm previously.


Log in to reply