Hello,
I’ve built an SD with Raspbian Stretch lite and made it read only file system (see as a starting point this post Pi Read Only), then I’ve bought from Info-beamer a license to a stand alone player and installed.
It works.
Then I’ve added the watchdog ability by following the README.txt and adding to /boot/config.txt
this line
dtparam=watchdog=on
and then exporting this env variable:
as per https://info-beamer.com/blog/running-info-beamer-in-production
When I start info beamer I can see this error
modprobe: FATAL: Module bcm2708_wdog not found in directory /lib/modules/4.14.98-v7+
but then it starts normally.
Since my custom raspbian installation has already a watchdog abilty I was wondering what gives this error.
On Raspbian, prior to installing info-beamer, I had
sudo modprobe bcm2835_wdt
apt-get update; apt-get install watchdog
and edited accordingly its conf files, for example in /lib/systemd/system/watchdog.service
I have
WantedBy=multi-user.target
what is the difference in name bcm2708_wdog
and bcm2835_wdt
? Any idea if the two setups conflicts? How can I test that the watchdog is installed correctly and working?
Ok. This error was from the suggested line in run
of the info beamer service
modprobe bcm2708_wdog
If we comment this out, no error. But again, how can I test that the watchdog is up and running?
Thanks
Running info-beamer with INFOBEAMER_LOG_LEVEL=3
should provide more output. I suggest running it manually, then hitting Ctrl-Z to stop it. If the watchdog is active, if should reboot after a couple of seconds as no output progress can be made.
Thanks.
I’ve started manually with this env
set | grep INFO
INFOBEAMER_LOG_LEVEL=3
INFOBEAMER_WATCHDOG=15
but hitting Ctrl-Z
just hangs everything. No reboot. How can I easyly check if everything regarding watchdog is in place? As far as I can tell some of the info in your page are not up to date with the latest Stretch distro (i.e. modprobe bcm2708_wdog
is supposed to be an error in Stretch, from Googling around).
Thanks
W
There should be a line:
[watchdog.c] hardware watchdog installed. 15 seconds timeout
in the output. If the top level loop hangs for 15 seconds, as forced by Ctrl-Z, the device should reboot. But you’ll have to wait 15 seconds obviously.
Edit: You’re correct w.r.t. the module name. I think in stretch that’s different or no longer needed as the module is built in the Raspbian default kernel. The documentation is wrong. I’ll fix that eventually.
Can you check if /dev/watchdog exists?
As per your docs I’ve added
dtparam=watchdog=on
to /boot/config.txt
and yes I heve devices
root@raspberrypi(rw):~# ls -l /dev/w*
crw------- 1 root root 10, 130 May 7 15:43 /dev/watchdog
crw------- 1 root root 252, 0 May 7 15:43 /dev/watchdog0
but now relaunching from command line gives
root@raspberrypi(rw):/home/pi# export INFOBEAMER_WATCHDOG=15
root@raspberrypi(rw):/home/pi# export INFOBEAMER_LOG_LEVEL=3
root@raspberrypi(rw):/home/pi# info-beamer-pi/info-beamer node/
Info Beamer PI 0.9.9-beta.132ee8~stretch (https://info-beamer.com)
Copyright (c) 2012-2018, Florian Wesch <fw@info-beamer.com>
Thank you for supporting this software and its development.
A single license allows you to use this software on a single
device. Learn more on https://info-beamer.com/lnk/license
CRITICAL ERROR: cannot open /dev/watchdog: Device or resource busy. is the bcm2708_wdog kernel module loaded?
Why?
Probably because some other program already has the watchdog device open. By design it can only be opened by one program. I guess a watchdog daemon is already running? Or does systemd somehow include that as well? Not sure. lsof
can probably help finding the culprit.
Ok… my ignorance. Yes i think so, I’ve already added the watchdog and configured some system files to use it (notably this /lib/systemd/system/watchdog.service
). In fact after I’ve done
systemctl disable watchdog.service
and after a reboot, I did the same test and it works! Perfect. After 15 seconds it rebooted!
Thanks as always
1 Like
Nice. Apparently for systemd integration, info-beamer would have to use sd_notify
with WATCHDOG=1
argument. That way it could probably be started as a systemd service. I don’t think I’ll pull in the massive systemd dependency for that though.
1 Like