Portál AbcLinuxu, 7. května 2025 13:26

Dotaz: Nastavení RPI2, aby se nezaseknul

1.3.2016 12:26 cvp | skóre: 18
Nastavení RPI2, aby se nezaseknul
Přečteno: 1700×
Odpovědět | Admin
Řeším nyní problém se zaseknutým RPI2, který sice máme zapojený preventivně i na záložném zdroji, avšak stalo se to, že elektřina byla vypnuta na několik hodin, záložný zdroj se vybil a RPI2 se vypnulo. Po znovu nastartování RPI2 běželo v pohodě, ale za pár dnů došlo k zaseknutí.

RPI2 používám na paneláku na střeše jako webkameru. Snímky z camera modulu ukládám do paměti RAM a ikdyž dojde k vypnutí/zapnutí, stále je snímek ukládán do paměti RAM. Proto předpokládám, že k zapisování na kartu SDHC nedochází.

Ukládání obrázků do paměti RAM
sudo nano /etc/fstab
tmps      /tmp tmpfs       defaults,noatime,nosuid,size=200M     0     0
Předpokládám tedy, že se linux zasekl (?). Na internetu jsem se dočetl, že RPI2 má hardwarový watchdog, který by mohl vyřešit můj problém se zaseknutím = RPI2 by se restartoval a naběhl. Návod pro nastavení watchdogu použiji asi tento. Co myslíte?

Za každou radu budu rád. Na střechu primárně nemá každý přístup a musím vždy o to požádat :)
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 1.3.2016 12:53 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proto předpokládám, že k zapisování na kartu SDHC nedochází.
Žurnál, fake_hwclock, swap…

Pozor, před rokem to zapisovalo i když byl ve fstabu nastaven / ro, je potřeba ještě dát kernelu parametr "fastboot", který vypne fsck.

Ale nabořený FS se typicky projevoval tak, že to po restartu nenajelo. Tady bude shnilého něco jiného.
4.3.2016 09:24 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Na Jessy distribuci Raspbian nastavení fstab pro ukládání do RAM zůstává po vypnutí/restartu stále nastaveno, tak že to je OK.

Poradí mně někdo, zda-li nastavení hardwarového watchodu je dostačujicí z tohoto návodu? Jak píši, budu to mít na paneláku a bůh ví jaký super přístup tam není. Nechci tam lozit každý měsíc.

Rád bych, aby Raspberry fungovalo bez problému alespoň půl roku, když už.

Zapisování log souborů na SDHC kartu předpokládám taktéž může poškozovat kartu ne? Co si log soubory nechat posílat pryč někam na FTP. Řešil to někdo už?

Za každou radu budu hrozně rád.
4.3.2016 10:30 R
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Ak logy nepotrebujes, tak ich zrus, usetris kartu. Pripadne syslog priamo podporuje aj vzdialene logovanie.
4.3.2016 11:11 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Jak takové logování zruším a syslog si nechám ukládat např. na FTP?

Co jsem vygooglil, tak je dobré i zakázat swap příkazem sudo swapoff --all
Jendа avatar 4.3.2016 11:55 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
syslog umí posílat logy na jiný stroj, hledej

swapoff --all zakáže swap pro tento jeden boot, ve skutečnosti chceš odinstalovat balíček, který to dělá (najdeš přes dpkg -l|grep swap, asi se jmenuje dphys-swap nebo tak nějak), a smazat jeho produkt ve /var/tmp nebo /var/cache nebo kde (100MB soubor, najdeš třeba pomocí ncdu).
4.3.2016 12:16 trubicoid2
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Odpovědět | | Sbalit | Link | Blokovat | Admin

ten watchdog se na starsim raspbianu vypinal pro me nepochopitelne po startu systemu, v dmesg bylo "watchdog stopped"

resenim bylo prejmenovat dva soubory /usr/sbin/wd_keepalive a /etc/init.d/wd_keepalive na treba wd_keepalive.neverrun

kdyz to budes mit doma a ne na strese, tak zkus treba tuto fork-bombu, to by to melo restartovat

http://binerry.de/post/28263824530/raspberry-pi-watchdog-timer

jinak nastaveni je mozne v /etc/watchdog.conf

#ping                   = 172.31.14.1
#ping                   = 172.26.1.255
#interface              = eth0
#file                   = /var/log/messages
#change                 = 1407

# Uncomment to enable test. Setting one of these values to '0' disables it.
# These values will hopefully never reboot your machine during normal use
# (if your machine is really hung, the loadavg will go much higher than 25)
max-load-1              = 24
#max-load-5             = 18
#max-load-15            = 12

# Note that this is the number of pages!
# To get the real size, check how large the pagesize is on your machine.
min-memory              = 1

#repair-binary          = /usr/sbin/repair
#repair-timeout         =
#test-binary            =
#test-timeout           =

watchdog-device  = /dev/watchdog
watchdog-timeout = 15

# Defaults compiled into the binary
#temperature-device     =
#max-temperature        = 120

# Defaults compiled into the binary
#admin                  = root
interval                = 6
#logtick                = 2000
#log-dir                = /var/log/watchdog

# This greatly decreases the chance that watchdog won't be scheduled before
# your machine is really loaded
realtime                = yes
priority                = 1

# Check if syslogd is still running by enabling the following line
pidfile         =  /var/run/sshd.pid

tady mi to hlida navic sshd, a timeout nesel vic nez 15 sekund, limit HW, interval teda musi byt nejvic 6, lip dej i min

a v /etc/modprobe.d/watchdog.conf options bcm2708_wdog nowayout=0 heartbeat=15

s nowayout=1 se to sice nevypinalo, ale zase pri normalnim vypnuti se vypne sluzba watchdog, ale HW watchdog nejde zrusit a jak ten shutdown trva vic nez 15 sekund, tak se to restartovavalo pred vypnutim

8.4.2016 22:12 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Jak mohu takový watchdog otestovat? Na internetu jsem našel python i bash script, ale vždy mně RPI2 zamrzne a nerestartuje se. Což je divné.

Python:
#/bin/python
import os
 
while True:
      os.fork()
Bash:
:(){ :|:& };:
Instalaci watchdogu jsem prováděl následně:
$ sudo modprobe bcm2708_wdog
$ sudo sh -c "echo 'bcm2708_wdog' >> /etc/modules"
$ sudo apt-get install watchdog chkconfig
$ sudo chkconfig watchdog on
$ sudo service watchdog start
$ sudo nano /etc/watchdog.conf
watchdog-device = /dev/watchdog
max-load-1 = 24
echo "options bcm2708_wdog nowayout=1 heartbeat=13" | sudo tee /etc/modprobe.d/watchdog.conf
$ sudo reboot
$ dmesg | grep watchdog
[ 6.401250] bcm2708 watchdog, heartbeat=13 sec (nowayout=1)
10.4.2016 21:20 Trubicoid2
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
No to je divný, asi ten watchdog nefunguje. Když zastavíš nebo zabiješ watchdog, tak se malina restartuje? A běží ten wd_keepalive?
15.4.2016 20:05 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Tak jsem zjistil, že pokud RPI2 vypnu nebo restartuji, tak watchdog nefunguje. Musím ho ručně startovat :/ Bohužel je to dost blbé, protože pokud vypadne elektřina, RPI2 se vypne a watchdog při znovuzapnutí el.proudu na RPI2 nebude nastartován = nebude fungovat.

To mně moc nepotěšilo :(
15.4.2016 23:32 Trubicoid2
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
No a máš démon pouštěný po startu? Máš raspbian s nebo bez systemd?
16.4.2016 10:53 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Prováděl jsem pouze instalaci a nastavení watchdogu (viz.nahoře). Nic více jsem zatím nedělal. Mám novější verzi Raspbian Jessie.

Při spuštění Raspberry jsem googlil něco s /etc/rc.local, ale tato možnost nějak padla = nefungovalo to. Zkoušel jsem tam před exit 0 vložit jak service watchdog restart, tak i service watchdog start.
17.4.2016 21:51 Trubicoid2
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Tady je to popsaný. rc.local se myslím teď defaultně nepouští
4.3.2016 21:18 Petr Tomášek
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Odpovědět | | Sbalit | Link | Blokovat | Admin
SD karty jsou proste nespolehlive. Ja bych se na takove pseudo-reseni uplne vykaslal a dal tam neco solidniho...
17.3.2016 19:10 cvp | skóre: 18
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkouším ukládat logy a tmp soubory na RAM přes tmpfs. Bohužel po vložení kódu do /etc/fstab a restartu, již RPI nenaběhne :( Poradí někdo?
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0
tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=2m 0 0
Jendа avatar 17.3.2016 20:40 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Podíval bych se na sériák, snad to napíše, co se mu nelíbí.
18.3.2016 06:26 Trubicoid2
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Máš tam dvakrát /var/log, to ale asi neva

Spíš to nepomůže, karta se rozbije při větším zápisu než je log nebo tmp, typicky při apt-get update nebo častěji při rpi-update
AraxoN avatar 16.4.2016 19:36 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Nastavení RPI2, aby se nezaseknul
Odpovědět | | Sbalit | Link | Blokovat | Admin
RPi často trpí "podvýživou" pri napájaní z microUSB. Niektoré microUSB káble majú veľmi tenké vodiče a preto je na nich vysoký odpor a vysoký úbytok napätia. Prejavuje sa to potom náhodným mrznutím celého RPi. Problém je tým horší, čím viac príslušenstva je pripojeného na RPi (napríklad kamera) a či RPi v danej chvíli robí aj niečo ďalšie (napríklad komunikuje po ethernete). Odporúčam preto voltmetrom premerať koľko napätia sa dostane na RPi. Ak je tam výrazne menej než 5 voltov, treba skúsiť kvalitnejší alebo kratší kábel, alebo napájať RPi cez GPIO piny a na microUSB sa vybodnúť.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.