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 Solved Troubleshooting
    15 Posts 3 Posters 574 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.
    • karsten13K Offline
      karsten13 @sdetweil
      last edited by

      the dbus errors in the mm logs are only noise, see https://forum.magicmirror.builders/topic/20032/docker-watchtower-container-restarting-and-mm-container-errors-after-upgrade/7#

      If the problem occurs:

      • can you provide the logs of the labwc container? docker logs labwc
      • can yo try to restart the containers without reboot with cd /opt/mm/run && docker compose up -d --force-recreate?
      S 1 Reply Last reply Reply Quote 1
      • S Offline
        sdetweil @karsten13
        last edited by

        @karsten13 thanks

        Sam

        How to add modules

        learning how to use browser developers window for css changes

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

          other questions (not clear from description):

          Are you using mmos or are you using Raspberry Pi OS or another OS?

          If not mmos, how did you the install? With the install script inside the repo?

          Can you provide output of docker compose config?

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