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.

    Rpi 4 and two monitors

    Scheduled Pinned Locked Moved Hardware
    60 Posts 6 Posters 35.0k Views 6 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 Do not disturb
      sdetweil @NathTheDude
      last edited by

      @NathTheDude but is the desktop all the way across as a single desktop, or two separate instances?

      Sam

      How to add modules

      learning how to use browser developers window for css changes

      bheplerB 1 Reply Last reply Reply Quote 0
      • N Offline
        NathTheDude
        last edited by

        @sdetweil , it is seen as two separate monitors. There is not a setting to scretch one screen to the other with the settings. The closest is ‘Strectch to cover screen’ but that does not seem to help.

        1 Reply Last reply Reply Quote 0
        • bheplerB Offline
          bhepler Module Developer @sdetweil
          last edited by

          @sdetweil - I don’t know if that capability is in the Raspi display drivers. It’s always going to see the two monitors as two separate devices with unique desktops. If you click on the Identify button, it should show you a different number on each monitor.

          The only thing I can think of that would treat two monitors as a single continuous desktop is the AMD Eyefinity tech.

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

            Thanks @sdetweil and @bhepler , could you point me in the direction of how I would display a seperate instance of MM each monitor? I know this would mean I would need to update/maintain two different MM’s but maybe that is a better option if I want to add various modules?

            1 Reply Last reply Reply Quote 0
            • S Do not disturb
              sdetweil @bhepler
              last edited by

              @bhepler said in Rpi 4 and two monitors:

              I don’t know if that capability is in the Raspi display drivers. It’s always going to see the two monitors as two separate devices with unique desktops. If you click on the Identify button, it should show you a different number on each monitor.

              well, that is stupid sh… , in this day and age you should be able to config the thing like u want…

              I booted ubuntu on my desktop with has two displays and it made one big desktop by default…
              can’t understand why raspi should be so dumb

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              1 Reply Last reply Reply Quote 0
              • N Offline
                NathTheDude
                last edited by NathTheDude

                does this help


                pi@MagicMirrors:~ $ tvservice --list
                2 attached device(s), display ID’s are :
                Display Number 2, type HDMI 0
                Display Number 7, type HDMI 1
                pi@MagicMirrors:~ $

                S 1 Reply Last reply Reply Quote 0
                • S Do not disturb
                  sdetweil @NathTheDude
                  last edited by

                  @NathTheDude MagicMirror startup in the run-start.sh file sets DISPLAY=:0 for the primary display
                  I would guess that the second display is :1

                  so, do
                  export DISPLAY=:1
                  then npm start

                  see if it comes up on the second display

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  1 Reply Last reply Reply Quote 0
                  • N Offline
                    NathTheDude
                    last edited by NathTheDude

                    @sdetweil na, no joy. I did try this yesterday also but was not sure I was looking in the right place. For the sake of it I tried using numbers 0 to 9, all with the same result. This for example:

                    npm ERR! code ENOENT
                    npm ERR! syscall open
                    npm ERR! path /home/pi/package.json
                    npm ERR! errno -2
                    npm ERR! enoent ENOENT: no such file or directory, open '/home/pi/package.json'
                    npm ERR! enoent This is related to npm not being able to find a file.
                    npm ERR! enoent 
                    
                    npm ERR! A complete log of this run can be found in:
                    npm ERR!     /home/pi/.npm/_logs/2020-02-04T21_33_32_894Z-debug.log
                    

                    However if I reboot the RPI with run-start having the different value it will still display the MM on the first screen, this made me think that this script was not being used at the startup as I would expect it to fail and not display the MM - perhaps I am wrong.

                    S 2 Replies Last reply Reply Quote 0
                    • bheplerB Offline
                      bhepler Module Developer
                      last edited by

                      I wonder if we’re looking in the wrong place? Perhaps it’s how the MM process is calling Electron that determines where on the desktop the app appears.

                      S 1 Reply Last reply Reply Quote 0
                      • S Do not disturb
                        sdetweil @NathTheDude
                        last edited by

                        @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…

                        Sam

                        How to add modules

                        learning how to use browser developers window for css changes

                        1 Reply Last reply Reply Quote 0
                        • S Do not disturb
                          sdetweil @bhepler
                          last edited by sdetweil

                          @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
                          

                          Sam

                          How to add modules

                          learning how to use browser developers window for css changes

                          1 Reply Last reply Reply Quote 0
                          • S Do not disturb
                            sdetweil @NathTheDude
                            last edited by sdetweil

                            @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

                            Sam

                            How to add modules

                            learning how to use browser developers window for css changes

                            1 Reply Last reply Reply Quote 0
                            • bheplerB Offline
                              bhepler Module Developer
                              last edited by

                              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.

                              S 1 Reply Last reply Reply Quote 0
                              • S Do not disturb
                                sdetweil @bhepler
                                last edited by

                                @bhepler correct, that is DISPLAY

                                Sam

                                How to add modules

                                learning how to use browser developers window for css changes

                                1 Reply Last reply Reply Quote 0
                                • N Offline
                                  NathTheDude
                                  last edited by

                                  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.

                                  S 1 Reply Last reply Reply Quote 0
                                  • S Do not disturb
                                    sdetweil @NathTheDude
                                    last edited by sdetweil

                                    @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

                                    Sam

                                    How to add modules

                                    learning how to use browser developers window for css changes

                                    1 Reply Last reply Reply Quote 0
                                    • N Offline
                                      NathTheDude
                                      last edited by

                                      @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? :)

                                      O 1 Reply Last reply Reply Quote 0
                                      • O Offline
                                        OldSunGuy @NathTheDude
                                        last edited by

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

                                        DISPLAY=:0.1
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • N Offline
                                          NathTheDude
                                          last edited by NathTheDude

                                          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.

                                          O 1 Reply Last reply Reply Quote 0
                                          • O Offline
                                            OldSunGuy @NathTheDude
                                            last edited by

                                            @NathTheDude If you start a terminal on one desktop and run:

                                            echo $DISPLAY
                                            

                                            Then start a terminal on the other desktop and run:

                                            echo $DISPLAY
                                            

                                            do you get the same results?

                                            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
                                            • 2 / 3
                                            • 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