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.

    proposed New processing and config for pi0/armv6 and serverOnly mode

    Scheduled Pinned Locked Moved General Discussion
    armv6 serveronly
    4 Posts 1 Posters 824 Views 1 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
      sdetweil
      last edited by sdetweil

      some users are using older PI hardware, based on the armv6 chipset. Unfortunately the electron browser is no longer built for that chipset, and forcing armv7 no longer works.

      so I propose an update to the run-start.sh script which will detect this and use the chromium browser instead. this helps because the impacted users don’t have to learn to modify the run-start file or the why

      its slower to start up, but just as functional
      (we also need to make the electron dependency optional, so the install will complete)

      also, in some cases our users would like to run serverOnly mode, so I think we could add a config.js option to enable that, and use the same update to run-start to just NOT start a browser…

        serverOnly:  "local"  or true or false (default)
                                    true means runserveronly, but no UI ON the local system
                                   "local"  means runserveronly, also run UI ON the local system, default for armv6
                                   false  (default), means do not run serveronly default for NOT armv6
      

      here is my proposed change to run-start.sh (extra spaces to handle the forum chopping off stuff after < )

      #!/bin/bash
        # use bash instead of sh
      ./untrack-css.sh
      
      if [ -z "$DISPLAY" ]; then #If not set DISPLAY is SSH remote or tty
      	export DISPLAY=:0 # Set by default display
      fi
      # get the processor architecture
      arch=$(uname -m)
      # got the config option, if any
      serveronly=$(grep -i serveronly: config/config.js | awk '{print tolower($2)}' | tr -d ,\"\')
      # set default if not defined in config
      serveronly="${serveronly:=false}"
      # check for xwindows running
      xorg=$(pgrep Xorg)
      #
      # if the user requested serveronly OR 
      #    electron support for armv6l has been dropped OR
      #    system is in text mode
      #
      if [ "$serveronly." != "false." -o  "$arch" == "armv6l" -o  "$xorg." == "." ]; then
      	
      	# if user explicitly configured to run server only (no ui local)
      	# OR there is no xwindows running, so no support for browser graphics
      	if [ "$serveronly." == "true." -o "$xorg." == "." ]; then
      	  # start server mode, 
      	  node serveronly
      	else 
      		# start the server in the background
      		# wait for server to be ready
      		# need bash for this
      		exec 3< < (node serveronly)
      
      		# Read the output of server line by line until one line 'point your browser'
      		while read line; do
      			 case "$line" in
      			 *point\ your\ browser*)
      					echo $line 
      					break
      					;;
      			 *)
      					echo $line
      					#sleep .25
      					;;
      			 esac
      		done < &3
      
      		# Close the file descriptor
      		exec 3< &-	
      
      		# lets use chrome to display here now
      		# get the server port address from the ready message
      		port=$(echo $line | awk -F\: '{print $4}')	
      		# start chromium 
      		echo "Starting chromium browser now, have patience, it takes a minute"
      		chromium-browser -noerrdialogs -kiosk -start_maximized  --disable-infobars --app=http://localhost:$port  --ignore-certificate-errors-spki-list --ignore-ssl-errors --ignore-certificate-errors 2>/dev/null
      		exit		  
      	fi 
      else  
      	# we can use electron directly	
      	`electron js/electron.js $1`;
      fi
      

      Sam

      How to add modules

      learning how to use browser developers window for css changes

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

        @sdetweil if u want to try this now,

        save this contents to the run-start.sh file,
        change 3 lines due to the forum processing

                  exec 3< < (node serveronly)    # remove the space before (
                  done < &3                      #  remove the space before &
                  exec 3< &-                     #  remove the space before &
        

        run

        chmod +x run-start-sh
        

        edit package,json
        change

             "start": "sh run-start.sh",
        

        to

             "start": "./run-start.sh",
        

        Then npm start will start this correctly

        Sam

        How to add modules

        learning how to use browser developers window for css changes

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

          I have submitted these changes as pull request 1788

          Sam

          How to add modules

          learning how to use browser developers window for css changes

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

            I added a check for textmode os config (no xwindows)

            Sam

            How to add modules

            learning how to use browser developers window for css changes

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