Read the statement by Michael Teeuw here.
Raspberry Pi Zero W for Magic Mirror
-
`@sdetweil Sadly that didn’t seem to work at all.
pm2 flush
gave me:[PM2] Spawning PM2 daemon with pm2_home=/home/dvg/.pm2 [PM2] PM2 Successfully daemonized [PM2] Flushing /home/dvg/.pm2/pm2.log [PM2] Logs flushed
Then
pm2 status
gave me:┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ MagicMirror │ fork │ 0 │ online │ 23.3% │ 40.3mb │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
Then I did
cd ~/MagicMirror/
and rannpm start
which spit out this:> magicmirror@2.27.0 start > ./run-start.sh $1 [2024-05-29 23:08:58.949] [LOG] Starting MagicMirror: v2.27.0 [2024-05-29 23:08:59.437] [LOG] Loading config ... [2024-05-29 23:08:59.497] [LOG] config template file not exists, no envsubst [2024-05-29 23:09:07.135] [LOG] Loading module helpers ... [2024-05-29 23:09:07.356] [LOG] No helper found for module: alert. [2024-05-29 23:09:36.395] [LOG] Initializing new module helper ... [2024-05-29 23:09:36.558] [LOG] Module helper loaded: updatenotification [2024-05-29 23:09:36.688] [LOG] No helper found for module: clock. [2024-05-29 23:10:00.038] [LOG] Initializing new module helper ... [2024-05-29 23:10:00.109] [LOG] Module helper loaded: calendar [2024-05-29 23:10:00.684] [ERROR] Whoops! There was an uncaught exception... [2024-05-29 23:10:01.570] [ERROR] Error: Cannot find module 'request' Require stack: - /home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js - /home/dvg/MagicMirror/js/app.js - /home/dvg/MagicMirror/serveronly/index.js at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15) at Module._resolveFilename (/home/dvg/MagicMirror/node_modules/module-alias/index.js:49:29) at Module._load (node:internal/modules/cjs/loader:901:27) at Module.require (node:internal/modules/cjs/loader:1115:19) at require (node:internal/modules/helpers:130:18) at Object.<anonymous> (/home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js:8:17) at Module._compile (node:internal/modules/cjs/loader:1241:14) at Module._extensions..js (node:internal/modules/cjs/loader:1295:10) at Module.load (node:internal/modules/cjs/loader:1091:32) at Module._load (node:internal/modules/cjs/loader:938:12) at Module.require (node:internal/modules/cjs/loader:1115:19) at require (node:internal/modules/helpers:130:18) at loadModule (/home/dvg/MagicMirror/js/app.js:183:19) at loadModules (/home/dvg/MagicMirror/js/app.js:213:10) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async App.start (/home/dvg/MagicMirror/js/app.js:261:3) { code: 'MODULE_NOT_FOUND', requireStack: [ '/home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js', '/home/dvg/MagicMirror/js/app.js', '/home/dvg/MagicMirror/serveronly/index.js' ] } [2024-05-29 23:10:01.664] [ERROR] MagicMirror² will not quit, but it might be a good idea to check why this happened. Maybe no internet connection? [2024-05-29 23:10:01.745] [ERROR] If you think this really is an issue, please open an issue on GitHub: https://github.com/MagicMirrorOrg/MagicMirror/issues [2024-05-29 23:12:53.308] [INFO] System information: ### SYSTEM: manufacturer: Raspberry Pi Foundation; model: Raspberry Pi Zero W Rev 1.1; raspberry: [object Object]; virtual: false ### OS: platform: linux; distro: Raspbian GNU/Linux; release: 11; arch: arm; kernel: 6.1.21+ ### VERSIONS: electron: undefined; used node: 20.8.0; installed node: 20.8.0; npm: 10.1.0; pm2: 5.4.0 ### OTHER: timeZone: America/New_York; ELECTRON_ENABLE_GPU: undefined Starting chromium browser now, have patience, it takes a minute Chromium_browser not installed
This all seemed pointless, but I ran
pm2 restart 0
anyway and got this:Use --update-env to update environment variables [PM2] Applying action restartProcessId on app [0](ids: [ '0' ]) [PM2] [MagicMirror](0) ✓ ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ MagicMirror │ fork │ 47 │ online │ 0% │ 23.5mb │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
At this point I’m going to give up and go back to square one and flash the drive again and start over. Ugh.
-
@davidgagne said in Raspberry Pi Zero W for Magic Mirror:
024-05-29 23:10:01.570] [ERROR] Error: Cannot find module ‘request’
Require stack:- /home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js
no… just fix the MMM-Jeopardy module as I suggested yesterday
two steps
you only did 1… the more concerning part is that pm2 didn’t get setup as a service and start on boot… i haven’t looked at the log yet
-
@davidgagne the install log looks good…
don’t know what is going on… will have to think on it while I sleep…
time to rest… til tomorrow
-
@sdetweil I understand what you’re saying about fixing the Jeopardy module, but I really think that’s secondary to not getting MM to run in the first place (and it not starting as a service on boot). Once I get MM running reliably in the first place I will play around with modules. :-)
-
How to Get MagicMirror to Run on a Raspberry Pi Zero W Rev 1.1
Late-May 2024
Huge thanks to @sdetweil for all his help!
- Flash card with Legacy 32-bit.
- Connect via ssh to run script:
bash -c "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)"
Answer yes to disable screen saver and use pm2 questions.
- Remove chromium with:
sudo apt-get remove chromium-browser sudo apt autoremove
- Add Firefox with:
sudo apt-get update sudo apt-get install firefox-esr
- Enable VNC using GUI (Interface Options):
sudo raspi-config
- Connect via TigerVNC (Apple app)
- Edit installers/mm.sh via VNC using Pi's baked-in text editor by adding:
cd ~/MagicMirror export external_browser=firefox DISPLAY=:0 npm start
- Execute fix'em-up script:
bash -c "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/fixuppm2.sh)"
-
cd ~/MagicMirror/ pm2 start MagicMirror
-
sudo reboot
Note: On my Pi Zero W it takes a solid ten minutes from reboot to actually seeing MM output via HDMI.
-
@davidgagne thanks.
5 and 6 are optional
as 7 can be done with nano over sshscroll down with keyboard arrow keys hit enter to add a line type the export line ctrl-x to exit nano, yes to save contents
8 and 9 over ssh
9 pm2 can be run from any folder location -
@sdetweil Is there any reason why this same procedure would not work on a 3B+? I’ve tried with multiple different versions of the OS but it always seems to get stuck on “Updating packages …” and – as far as I can tell – there’s nothing meaningful in install.log. Is this install script unique to the Zero W?
-
@davidgagne no. the script works of any Debian based os. pi0 is SLOOOOOW…
but pi 3b+ should be ok. there should be a moving <-> while it’s updating… (haven’t figured out how to make that stand out more)the script is doing apt get update, apt upgrade . this could take a while based on how much change since distro was released. over wifi, nothing I can do to speed it up.
I’ve tested on all the pi models. except the pi 1.
on odroid, Jetson nano, a chrome box and book running linux and a bunch of x86 distros., and macos Intel and arm.
I also tested on my arm chromebook, with the extra Ubuntu installed. install worked and server mode worked. no uiif there is a problem, I’ll fix it. I’ll setup my 3b later.
-
@sdetweil Right. That’s my confusion. I have been able to run the script a dozen (or more) times on the Zero W, but it always fails on the 3B+, which I had assumed would be faster / better than the Zero W.
-