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.

    Version 2.34.0 - Missing X Server or $DISPLAY (Docker version of MMOS)

    Scheduled Pinned Locked Moved Unsolved Troubleshooting
    15 Posts 3 Posters 314 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.
    • M Offline
      Mathes75
      last edited by

      Thanks a lot for having a look at my issue!

      As mentioned in the first post, I downloaded the most recent Docker image of MagicMirrorOS. - no desktop, lite version. Wrote the image with Balena Etcher and let the Rpi do it’s magic after booting until “factory” MagicMirror was shown. SSHed into the Rpi and ran sudo raspi-config to adjust locales and WiFi.
      I installed the desired Modules, modified the config.js - and now the Mirror works only at every third or fourth boot. (Sometimes real power cycle, sometimes sudo shutdown -r now - sometimes first works, sometimes second)

      Currently it’sworking, only one Module has issues. Both containers recreated and restarted, output of docker logs labwc

      00:00:00.000 [INFO] [seatd/seat.c:48] Created VT-bound seat seat0
      00:00:00.000 [INFO] [seatd/seatd.c:194] seatd started
      failed to connect to display
      00:00:01.036 [INFO] [seatd/server.c:145] New client connected (pid: 1, uid: 1000, gid: 1000)
      00:00:01.036 [INFO] [seatd/seat.c:239] Added client 1 to seat0
      00:00:01.037 [INFO] [seatd/seat.c:563] Opened client 1 on seat0
      failed to connect to display
      failed to connect to display
      failed to connect to display
      failed to connect to display
      failed to connect to display
      failed to connect to display
      HDMI-A-1 "Lenovo Group Limited T2224pD V902B58B (HDMI-A-1)"
        Make: Lenovo Group Limited
        Model: T2224pD
        Serial: V902B58B
        Physical size: 480x270 mm
        Enabled: yes
        Modes:
          1920x1080 px, 60.000000 Hz (preferred, current)
          1920x1080 px, 60.000000 Hz
          1920x1080 px, 59.939999 Hz
          1920x1080 px, 50.000000 Hz
          1680x1050 px, 59.882999 Hz
          1600x900 px, 75.000000 Hz
          1600x900 px, 60.000000 Hz
          1280x1024 px, 75.025002 Hz
          1280x1024 px, 70.000999 Hz
          1280x1024 px, 60.020000 Hz
          1440x900 px, 59.901001 Hz
          1366x768 px, 59.790001 Hz
          1152x864 px, 75.000000 Hz
          1280x720 px, 60.000000 Hz
          1280x720 px, 59.939999 Hz
          1280x720 px, 50.000000 Hz
          1024x768 px, 75.028999 Hz
          1024x768 px, 70.069000 Hz
          1024x768 px, 60.004002 Hz
          832x624 px, 74.551003 Hz
          800x600 px, 75.000000 Hz
          800x600 px, 72.188004 Hz
          800x600 px, 60.317001 Hz
          800x600 px, 56.250000 Hz
          720x576 px, 50.000000 Hz
          720x576 px, 50.000000 Hz
          720x480 px, 60.000000 Hz
          720x480 px, 60.000000 Hz
          720x480 px, 59.939999 Hz
          720x480 px, 59.939999 Hz
          640x480 px, 75.000000 Hz
          640x480 px, 72.808998 Hz
          640x480 px, 60.000000 Hz
          640x480 px, 59.939999 Hz
          640x480 px, 59.939999 Hz
          720x400 px, 70.082001 Hz
        Position: 0,0
        Transform: normal
        Scale: 1.000000
        Adaptive Sync: disabled
      

      Output of docker compose config

      name: magicmirror
      services:
        labwc:
          container_name: labwc
          environment:
            LAB_WC_HIDE_CURSOR: "true"
            RANDR_PARAMS: ""
            RANDR_POLL: 1m
            XDG_RUNTIME_DIR: /run/user/1000
          image: karsten13/labwc:latest
          networks:
            default: null
          privileged: true
          restart: always
          volumes:
            - type: bind
              source: /run/user/1000
              target: /run/user/1000
              bind: {}
            - type: bind
              source: /run/udev
              target: /run/udev
              bind: {}
        magicmirror:
          container_name: mm
          environment:
            DBUS_SESSION_BUS_ADDRESS: unix:path=/run/user/1000/bus
            DBUS_SYSTEM_BUS_ADDRESS: unix:path=/run/user/1000/bus
            DISPLAY: unix:0.0
            ELECTRON_ENABLE_GPU: "0"
            MM_CUSTOMCSS_FILE: css/custom.css
            MM_MODULES_DIR: modules
            MM_OVERRIDE_DEFAULT_MODULES: "true"
            MM_SCENARIO: electron
            MM_SHOW_CURSOR: "false"
            WAYLAND_DISPLAY: wayland-0
            XDG_RUNTIME_DIR: /run/user/1000
          image: karsten13/magicmirror:latest
          network_mode: host
          privileged: true
          restart: always
          shm_size: "268435456"
          volumes:
            - type: bind
              source: /tmp/.X11-unix
              target: /tmp/.X11-unix
              bind: {}
            - type: bind
              source: /home/pi/.Xauthority
              target: /home/node/.Xauthority
              bind: {}
            - type: bind
              source: /run/user/1000
              target: /run/user/1000
              bind: {}
            - type: bind
              source: /opt/mm/mounts/config
              target: /opt/magic_mirror/config
              bind: {}
            - type: bind
              source: /opt/mm/mounts/modules
              target: /opt/magic_mirror/modules
              bind: {}
            - type: bind
              source: /opt/mm/mounts/css/custom.css
              target: /opt/magic_mirror/css/custom.css
              bind: {}
          post_start:
            - command:
                - /bin/sh
                - -c
                - |
                  [ "init" = "init" ] || exit 0
                  chown -R 1000:1000 config modules css/custom.css
                  chmod -R 777 config modules css/custom.css
              user: root
              environment:
                MM_CHMOD: null
                MM_GID: null
                MM_INIT: null
                MM_UID: null
      networks:
        default:
          name: magicmirror_default
      
      

      Have a nice weekend!

      karsten13K 1 Reply Last reply Reply Quote 0
      • karsten13K Offline
        karsten13 @Mathes75
        last edited by

        @Mathes75

        not sure I really fixed it but you can try

        cd /opt/mm
        git pull
        ./install/install.sh electron
        

        Let me know if there are still problems after reboot or not.

        M 1 Reply Last reply Reply Quote 0
        • M Offline
          Mathes75 @karsten13
          last edited by

          Thanks @karsten13!

          git pull needed a commit to work. Done. Installing Electron revealed no change to apply.

          At least I seem to be one step further: Recreating the images as mentioned in a post above repeatedly resolved the "missing X Server"message each time and started MagicMirror…

          As I am quite done with all changes and adaptions, I am fine to keep the workaround with recreating the image(s), once the mirror needs a restart.

          karsten13K 1 Reply Last reply Reply Quote 0
          • karsten13K Offline
            karsten13 @Mathes75
            last edited by

            @Mathes75

            Let me know if you get another black screen without mm start after reboot (I want to know if it is fixed or not …)

            Can you please show me again the output of docker compose config (so I can check if you have the latest changes)?

            M 1 Reply Last reply Reply Quote 0
            • M Offline
              Mathes75 @karsten13
              last edited by Mathes75

              @karsten13 New issue. I did the

              cd /opt/mm
              git pull
              ./install/install.sh electron
              

              again and now I’m facing:

              pi@magicmirrorMB:/opt/mm $ ./install/install.sh electron
              
              --> Check docker installation
              
              Docker is already installed:
              Docker version 29.1.3, build f52814d
              Docker Compose version v5.0.1
              Found no xserver or wayland so using own container
              
              --> Pulling container images and starting magicmirror
              
              Going to remove mm
              [+] remove 1/1
               ✔ Container mm Removed                                                                                                                                                            0.1s 
              WARN[0000] No services to build                         
              [+] up 2/2
               ✘ Container labwc Error dependency labwc failed to start                                                                                                                          1.3s 
               ✔ Container mm    Created                                                                                                                                                         0.6s 
              dependency failed to start: container labwc has no healthcheck configured
              

              Don´t know what went wrong.

              Output of docker compose config is:

              pi@magicmirrorMB:/opt/mm/run $ docker compose config
              name: magicmirror
              services:
                labwc:
                  container_name: labwc
                  environment:
                    LAB_WC_HIDE_CURSOR: "true"
                    RANDR_PARAMS: ""
                    RANDR_POLL: 1m
                    XDG_RUNTIME_DIR: /tmp/labwc
                  image: karsten13/labwc:latest
                  networks:
                    default: null
                  privileged: true
                  restart: always
                  volumes:
                    - type: bind
                      source: /tmp/labwc
                      target: /tmp/labwc
                      bind: {}
                    - type: bind
                      source: /run/udev
                      target: /run/udev
                      bind: {}
                magicmirror:
                  container_name: mm
                  depends_on:
                    labwc:
                      condition: service_healthy
                      restart: true
                      required: true
                  environment:
                    DISPLAY: unix:0.0
                    ELECTRON_ENABLE_GPU: "0"
                    MM_CUSTOMCSS_FILE: css/custom.css
                    MM_MODULES_DIR: modules
                    MM_OVERRIDE_DEFAULT_MODULES: "true"
                    MM_SCENARIO: electron
                    MM_SHOW_CURSOR: "false"
                    WAYLAND_DISPLAY: wayland-0
                    XDG_RUNTIME_DIR: /tmp/labwc
                  image: karsten13/magicmirror:latest
                  network_mode: host
                  privileged: true
                  restart: always
                  shm_size: "268435456"
                  volumes:
                    - type: bind
                      source: /tmp/.X11-unix
                      target: /tmp/.X11-unix
                      bind: {}
                    - type: bind
                      source: /home/pi/.Xauthority
                      target: /home/node/.Xauthority
                      bind: {}
                    - type: bind
                      source: /tmp/labwc
                      target: /tmp/labwc
                      bind: {}
                    - type: bind
                      source: /opt/mm/mounts/config
                      target: /opt/magic_mirror/config
                      bind: {}
                    - type: bind
                      source: /opt/mm/mounts/modules
                      target: /opt/magic_mirror/modules
                      bind: {}
                    - type: bind
                      source: /opt/mm/mounts/css/custom.css
                      target: /opt/magic_mirror/css/custom.css
                      bind: {}
                  post_start:
                    - command:
                        - /bin/sh
                        - -c
                        - |
                          if [ "init" = "init" ]; then
                            # update volume permissions
                            chown -R 1000:1000 config modules css/custom.css
                            chmod -R 777 config modules css/custom.css
                          fi
                          if command -v node_modules/.bin/electron > /dev/null; then
                            # if electron is installed then start dbus-daemon to avoid errors in the logs
                            dbus-daemon --system || true
                          fi
                      user: root
              networks:
                default:
                  name: magicmirror_default
              
              

              Any way to get back to the easy issue?

              karsten13K 1 Reply Last reply Reply Quote 0
              • karsten13K Offline
                karsten13 @Mathes75
                last edited by

                @Mathes75

                looks like you still have an old labwc image, try from /opt/mm/run folder:

                docker compose pull
                docker compose up -d
                
                M 1 Reply Last reply Reply Quote 0
                • M Offline
                  Mathes75 @karsten13
                  last edited by

                  @karsten13
                  Back to function! Several restarts without blank screen!

                  Output of docker compose config - in case it is useful…

                  name: magicmirror
                  services:
                    labwc:
                      container_name: labwc
                      environment:
                        LAB_WC_HIDE_CURSOR: "true"
                        RANDR_PARAMS: ""
                        RANDR_POLL: 1m
                        XDG_RUNTIME_DIR: /tmp/labwc
                      image: karsten13/labwc:latest
                      networks:
                        default: null
                      privileged: true
                      restart: always
                      volumes:
                        - type: bind
                          source: /tmp/labwc
                          target: /tmp/labwc
                          bind: {}
                        - type: bind
                          source: /run/udev
                          target: /run/udev
                          bind: {}
                    magicmirror:
                      container_name: mm
                      depends_on:
                        labwc:
                          condition: service_healthy
                          restart: true
                          required: true
                      environment:
                        DISPLAY: unix:0.0
                        ELECTRON_ENABLE_GPU: "0"
                        MM_CUSTOMCSS_FILE: css/custom.css
                        MM_MODULES_DIR: modules
                        MM_OVERRIDE_DEFAULT_MODULES: "true"
                        MM_SCENARIO: electron
                        MM_SHOW_CURSOR: "false"
                        WAYLAND_DISPLAY: wayland-0
                        XDG_RUNTIME_DIR: /tmp/labwc
                      image: karsten13/magicmirror:latest
                      network_mode: host
                      privileged: true
                      restart: always
                      shm_size: "268435456"
                      volumes:
                        - type: bind
                          source: /tmp/.X11-unix
                          target: /tmp/.X11-unix
                          bind: {}
                        - type: bind
                          source: /home/pi/.Xauthority
                          target: /home/node/.Xauthority
                          bind: {}
                        - type: bind
                          source: /tmp/labwc
                          target: /tmp/labwc
                          bind: {}
                        - type: bind
                          source: /opt/mm/mounts/config
                          target: /opt/magic_mirror/config
                          bind: {}
                        - type: bind
                          source: /opt/mm/mounts/modules
                          target: /opt/magic_mirror/modules
                          bind: {}
                        - type: bind
                          source: /opt/mm/mounts/css/custom.css
                          target: /opt/magic_mirror/css/custom.css
                          bind: {}
                      post_start:
                        - command:
                            - /bin/sh
                            - -c
                            - |
                              if [ "init" = "init" ]; then
                                # update volume permissions
                                chown -R 1000:1000 config modules css/custom.css
                                chmod -R 777 config modules css/custom.css
                              fi
                              if command -v node_modules/.bin/electron > /dev/null; then
                                # if electron is installed then start dbus-daemon to avoid errors in the logs
                                dbus-daemon --system || true
                              fi
                          user: root
                  networks:
                    default:
                      name: magicmirror_default
                  
                  
                  M 1 Reply Last reply Reply Quote 1
                  • M Offline
                    Mathes75 @Mathes75
                    last edited by

                    Pi rebooted twice today (initiated by myself) and issue didn’t come back - I think this can bei marked as resolved - thanks a lot!

                    Now I can take care about Python and fritzconnector…

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

                      @Mathes75 can you find the message that best explains the fix,
                      click the 3 dots to the right and select
                      Mark this post as the correct answer

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 2 / 2
                      • 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