Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Przycisk do bezpiecznego wyłączania Raspberry Pi

ghost666 11 Sty 2017 19:33 13311 27
  • Przycisk do bezpiecznego wyłączania Raspberry Pi
    W Internecie znaleźć można dużą ilość projektów dedykowanych dla Raspberry Pi - od bardzo prostych dla początkujących do niezmiernie skomplikowanych, dla osób ze sporym doświadczeniem. Poniżej opisany zostanie projekt, który jest relatywnie prosty, jednakże dosyć zaskakujący i przydatny - chodzi tutaj o fizyczny przycisk, jaki umieścić można np. na obudowie komputera, który pozwoli na bezpieczne zamknięcie systemu i wyłączenie komputera.

    W Raspberry Pi nie ma przycisku włączającego i wyłączającego komputer - uruchamia się on od razu po podaniu mu zasilania. O ile włączanie nie jest problemem, to wyłączanie już tak - proste odcięcie go od zasilania, o ile jest skuteczne to jest także niebezpieczne dla systemu - spowodować może uszkodzenie systemu plików i w konsekwencji nawet reinstalację systemu operacyjnego. Nie jest to także zbyt 'zdrowe' dla karty pamięci w komputerze, która jest dosyć awaryjnym jego elementem.

    W poniższym tutorialu krok po kroku opisano co trzeba zrobić, aby możliwe było bezpieczne wyłączanie systemu, bez konieczności korzystania z np. myszki czy klawiatury. Jest to idealne rozwiązanie dla systemów pracujących bez monitora etc jako np. serwery czy zdalne sensory itp.

    Co jest potrzebne

    * Oczywiście Raspberry Pi, autor wykorzystał model B+
    * Przycisk monostabilny (np. microswitch)
    * Dwa kabelki
    * Lutownica

    Układ zrealizować można także np. na płytce stykowej lub w inny sposób łącząc przycisk z pinami GPIO 'Maliny', więc lutownica okazać się może zbędna. Jeśli jednak chcemy przycisk lutować przydadzą się też szczypce itp.

    Dokładny model wykorzystanego komputera jest tutaj bez większego znaczenia, podobnie jak rodzaj wykorzystanego przycisku. Ma on za zadanie zewrzeć pin komputera i nic więcej, więc możemy użyć dowolny mechaniczny przycisk, jaki nam się podoba.

    Konfiguracja Raspberry Pi

    Na początku musimy oczywiście zainstalować na RPi system operacyjny, jeśli jeszcze go nie mamy. Domyślnym systemem operacyjnym na ten komputer jest Raspbian OS. Instalujemy go na 'Malinie' w najnowszej wersji, bądź też - jeśli już mamy go zainstalowanego - aktualizujemy do najnowszej wersji, zanim przejdziemy do dalszych kroków. Jeśli nie wiecie jak zainstalować Raspbiana, to pomoc znaleźć można na forum, lub pod poniższymi linkami:

    https://embeddedcode.wordpress.com/2013/07/10/the-geek-getting-started-guide-to-the-raspberry-pi/
    https://www.raspberrypi.org/help/noobs-setup/
    https://www.raspberrypi.org/help/quick-start-guide/

    Następnie podłączamy do komputera mysz, klawiaturę i monitor i włączamy go do zasilania. Już po chwili będziemy mogli się zalogować. Następnie wyłączamy komputer i przechodzimy do kolejnego kroku.

    Montaż przycisku

    Teraz podłączamy do komputera przycisk. Autor połączył do z kabelkami na płytce prototypowej i następnie podłączył je do wyprowadzeń komputera. Gdzie je podłączyć? Spójrzmy na poniższy obrazek, który objaśnia gdzie znajdują się które wyprowadzenia GPIO.

    Przycisk do bezpiecznego wyłączania Raspberry Pi


    Niektóre z pinów GPIO mają dodatkowe funkcje, takie jak interfejsy UART, I²C czy SPI. Tych pinów nie chcemy używać, ponieważ można dla nich znaleźć lepsze i ciekawsze zastosowania. W swojej konstrukcji autor wykorzystał pin oznaczony GPIO18, głównie dlatego, że znajduje się on blisko pinu masy i pomogło to w elegancki sposób poprowadzić kable od przycisku. Drugi kabel, jak można się domyślić, podłączany jest do masy. Dzięki temu w momencie zwarcia (naciśnięcia przycisku) pin GPIO18 zwarty zostaje do masy.

    Pisanie skryptu w Pythonie

    Aby nasz przycisk działał jak chcemy musimy go odpowiednio oprogramować. W tym celu wykorzystamy Pythona, który jest językiem niezmiernie popularnym, szczególnie na platformie Raspberry Pi.

    Aby w systemie był porządek w pierwszej kolejności tworzymy katalog Scripts a w nim pusty plik o nazwie shutdown_pi.py. Aby wykonać te czynności wpisujemy w konsoli:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Następnie musimy edytować zawartość pliku z skryptem, w tym celu skorzystamy z wbudowanego edytora nano, ale wykorzystać można dowolny inny (np. vim). W konsoli wpisujemy:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    W pliku piszemy następujący skrypt:

    Kod: python
    Zaloguj się, aby zobaczyć kod


    Zapisujemy skrypt do pliku i wychodzimy z edytora.

    Pisząc skrypt w Pythonie warto zwrócić uwagę, że w języku tym nie wykorzystuje się żadnego rodzaju nawiasów (jak np. {} w C itp) do ograniczania bloków kodu - tutaj tą rolę pełnią wcięcia (cztery spacje). Pilnujmy tej konwencji, jeśli chcemy aby program działał poprawnie.

    Teraz, musimy tylko uruchomić skrypt, aby działa w tle i czekał na naciśnięcie przycisku. Jako że skrypt ma mieć niskopoziomowy dostęp do sprzętu konieczne jest uruchomienie go z prawami roota, w tym celu korzystamy z komendy sudo. Wpisujemy w konsoli, będąc w katalogu z plikiem komendę:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    W tym momencie, jeśli naciśniemy przycisk komputer powinien w bezpieczny sposób wyłączyć się. Jeśli tak się nie dzieje, warto sprawdzić poprawność skryptu oraz podłączenia przycisku do komputera.

    Automatyczne uruchamianie skryptu

    Po ponownym włączeniu komputera skrypt nie będzie działał. Musimy sprawić jednak aby automatycznie uruchamiał się przy każdym uruchomieniu Raspberry Pi. W tym celu w konsoli wpisujemy:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    W ten sposób edytować możemy plik w którym zawarte są wszystkie komendy, jakie automatycznie uruchamiają się podczas startu Raspbiana. W ostatniej linii dodajemy znaną nam komendę:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Warto zwrócić uwagę, że system rozróżnia duże i małe litery, więc trzeba uważać. Znak & na końcu linii informuje system, że skrypt ten ma działać w tle - nie będziemy w ogóle widzieć, że został uruchomiony.

    Teraz możemy zrestartować nasz komputer. Po kolejnym ponownym uruchomieniu skrypt będzie już uruchomiony automatycznie i w tle. Teraz możemy wprowadzać dodatkowe modyfikacje do skryptu. Możemy skonfigurować komputer tak, że przed wyłączeniem będzie on wysyłał komendy po sieci lub realizował inne czynności.

    Dalsze kroki

    Teraz pozostaje nam tylko poprawa ergonomii układu. Przycisk na płytce prototypowej nie jest najlepszym rozwiązaniem; można przykleić go gdzieś odrobiną kleju na gorąco, lub zastosować inne rozwiązanie, aby działał on wygodniej.

    Przycisk do bezpiecznego wyłączania Raspberry Pi


    Finalnie - jeśli macie dostęp do np. drukarki 3D - możecie zaprojektować i wyprodukować własną, dedykowaną obudowę do Raspberry Pi, w której znajdzie się także miejsce na przycisk do bezpiecznego wyłączania komputera.

    Źródło: https://www.element14.com/community/docs/DOC-78055/l/adding-a-shutdown-button-to-the-raspberry-pi-b#jive_content_id_Step_3_Writing_a_Python_Script
    Kod: actionscript
    Zaloguj się, aby zobaczyć kod


    Fajne!
  • Megger
  • #2 11 Sty 2017 23:13
    piterek-23
    Poziom 30  

    Już od długiego czasu miałem się zabrać za coś takiego, ale zawsze czasu brakuje, a tu mam gotowca... Dzięki ;)

  • Megger
  • #3 12 Sty 2017 06:46
    mamakapcia
    Poziom 17  

    Szkoda że obsługa przycisku nie została zaszyta w bootloaderze i naciśnięcie przycisku powodowałoby również uruchomienie wyłączonego komputera. Oczywiście pomysł ciekawy i na pewno go u siebie zastosuję ;)

  • #5 12 Sty 2017 09:54
    eDZio
    Poziom 15  

    noel200 napisał:
    A jak to zrobić żeby uruchamianie tego skryptu nie wymagało super usera?
    Maszyna jest uruchamiana i używana przez operatora i nie może on mieć tych uprawnień.


    Nie da się. Skrypt będzie uruchamiał się automatycznie przy starcie systemu już z odpowiednimi uprawnieniami. Zwykły użytkownik nie musi już nic robić. Takie uprawnienia wymagane są jedynie jeśli skrypt nie został jeszcze automatycznie uruchomiony i chcemy to zrobić ręcznie lub przed dodaniem chcemy przetestować czy działa poprawnie.

  • #6 12 Sty 2017 13:15
    BK_klp
    Poziom 19  

    Tym sposobem zamykamy po prostu system operacyjny? Ale RPi nadal działa i żeby go na nowo uruchomić to i tak trzeba fizycznie na chwilę odłączyć zasilanie?

  • Megger
  • #7 12 Sty 2017 13:16
    piterek-23
    Poziom 30  

    BK_klp napisał:
    Tym sposobem zamykamy po prostu system operacyjny?

    Tak
    BK_klp napisał:
    Ale RPi nadal działa i żeby go na nowo uruchomić to i tak trzeba fizycznie na chwilę odłączyć zasilanie?

    Dokładnie tak ;)

  • #8 12 Sty 2017 18:20
    oshii
    Poziom 19  

    Da się uruchomić i wyłączyć RPi (w sensie systemu operacyjnego) z tego samego przycisku, w tym celu trzeba użyć GPIO3 - zwarcie go z masą (najlepiej przez jakiś 1kohm rezystor) uruchamia bootowanie systemu.
    Póżniej ten PIN działa jak zwykłe GPIO pod który można podpiąć skrypt wyłączający.

    No chyba, że używamy I²C, wtedy ten sposób odpada i trzeba uruchamiać malinę przez reset zasilania.

    http://elinux.org/RPI_safe_mode#cite_note-1

    Swoją drogą ciekawe ile bierze malina w stanie uśpienia. [edit] Sam sobie odpowiem - między 90 a 120 mA ;)

  • #9 12 Sty 2017 20:16
    And!
    Admin grupy Projektowanie

    Stan uśpienia w RPi jest dyskusyjny właśnie ze względu na pobór prądu :)
    kiedyś trafiłem na pomysł na shield, który zarządzałby zasilaniem Raspberry Pi Sleepy Pi 2 ,
    natomiast sam przycisk jest genialny w swojej prostocie oraz pozwala na bezpieczne wyłączenie urządzenia,
    nawet można by dodać układ całkowicie odcinający zasilanie po zakończeniu procedury zamykania systemu (tak jak w komputerze z zasilaczem ATX) co pozwoliłoby na mały pobór prądu w tym stanie. Ponowne uruchomienie poprzez przyciśnięcie przycisku i zasilenie układu.

  • #10 14 Sty 2017 03:03
    R-MIK
    Poziom 36  

    ghost666 napisał:
    to wyłączanie już tak - proste odcięcie go od zasilania, o ile jest skuteczne to jest także niebezpieczne dla systemu - spowodować może uszkodzenie systemu plików i w konsekwencji nawet reinstalację systemu operacyjnego.

    Dobry system operacyjny w połączeniu z dobrym systemem plików nie ma z tym problemu. Swego czasu procowałem na Unix'ie, MAC'u i nie było z tym problemu. Nawet "zabawkowa" Amiga sobie z tym radziła od nowości (od nowości) po zmianie systemu plików zero problemów.
    Widać Raspberry Pi to zabawka i nie nadaje się do poważnych zastosowań.

    ghost666 napisał:

    Nie jest to także zbyt 'zdrowe' dla karty pamięci w komputerze, która jest dosyć awaryjnym jego elementem.


    Widać pamięć jest tyle warta ile za nią zapłacono.

  • #11 14 Sty 2017 09:35
    oshii
    Poziom 19  

    R-MIK napisał:
    ghost666 napisał:
    Nie jest to także zbyt 'zdrowe' dla karty pamięci w komputerze, która jest dosyć awaryjnym jego elementem.

    Widać pamięć jest tyle warta ile za nią zapłacono.

    Zgodnie z tą zasadą, i ponieważ używasz „dobrego systemu operacyjnego w połączeniu z dobrym systemem plików”, każdy komputer, niezależnie czy do domowy desktop, serwer czy komputerek pokroju RPi, wyłączasz za pomocą hebla bez wcześniejszego odmontowania dysków i zamknięcia systemu? :)
    R-MIK napisał:
    Widać Raspberry Pi to zabawka i nie nadaje się do poważnych zastosowań

    Patrz pan, projektowli ten sprzęt z myślą o zastosowaniach serwerowych w infrastrukturze krytycznej a tu taki klops :)

  • #12 14 Sty 2017 11:17
    horik
    Poziom 13  

    R-MIK napisał:
    Dobry system operacyjny w połączeniu z dobrym systemem plików nie ma z tym problemu. Swego czasu procowałem na Unix'ie, MAC'u i nie było z tym problemu. Nawet "zabawkowa" Amiga sobie z tym radziła od nowości (od nowości) po zmianie systemu plików zero problemów.
    Widać Raspberry Pi to zabawka i nie nadaje się do poważnych zastosowań.


    To nie jest komputer klasy mainframe rodem z CERN.
    RPi nie jest tutaj gorszy od 99% komputerów domowych, firmowych i wielu serwerów, gdzie system plików sobie MOŻE z tym poradzić - i zazwyczaj sobie radzi. Ale istnieje niezerowe prawdopodobieństwo, że coś pójdzie nie tak. I owszem, tak bywa. A mimo to nie robi się z tego większego problemu. Po prostu - zamyka się system przed odłączeniem komputera od zasilania, a w razie takiego przypadku liczy się na to, że system plików "da radę". Nie mówimy tu o zastosowaniach medycznych, kosmicznych i wojskowych.

    R-MIK napisał:
    Widać pamięć jest tyle warta ile za nią zapłacono.


    Nawet najdroższe karty cierpią na tę samą przypadłość, co najwyżej w różnej skali. Do komputerka za 100zł nikt nie będzie pchał karty za złotych kilkaset. Nie ta klasa problemu.

  • #13 14 Sty 2017 12:46
    R-MIK
    Poziom 36  

    Zamykanie systemu? Weźmy zaawansowane żelazko. W instrukcji znajdzie sie zapis:
    Przed wyłączniem urządzenia od sieci należy:
    - wcisnąć przycisk X,
    - poczekać aż zaświeci dioda y,
    - teraz bezpiecznie można dołączyć żelazko od zasilania.
    Niezastosowanie sie to powyższych zaleceń może spowodować konieczność naprawy żelazka w autoryzowanym serwisie. Naprawa ta nie jest objęta gwarancją.
    Ciekawe, prawda? A co jak padnie zasilanie? To nie moja wina a za naprawę żelazka zapłacę. Żelazko przez UPS, połączone z nim po USB aby bezpiecznie sie wyłączyć? I tak każde urządzenie w domu?
    Powiecie, żelazko zły przykład, ale tam są stosowane mikrokontrolery. Także w poalkach, lodówkach, piekarnikach. No dobrze, mikrokontrolery.
    A DVD, telewizory? A zaawansowane oscyloskopy, generatory?
    Nie znalazłem w instrukcji urządzeń wymienionych w poprzednim wersie procedury bezpiecznego wyłączania a pracują tam najczęściej procesory z systemem operacyjnym (w oscyloskopach to nawet Windows CE).
    Tak więc do technik kosmicznych tu daleko ale fakt, że kiepski system monitoringu, nie radził sobie z wyłączeniem zasilania (o czym nie było w instrukcji). Trzeba było wyjmować dysk, podłączyć do kompa, i potraktować programami naprawczymi.

  • #14 14 Sty 2017 16:14
    oshii
    Poziom 19  

    R-MIK, patrzę w twoją historię i wierzyć mi się trochę nie chce, że trzeba ci tłumaczyć różnicę między smart lodówką czy telewizorem (nie wspominając o żelazku) a komputerem operującym na dyskach HDD/SSD lub innych niśnikach. Jak załadujesz do RPi dystrybucję RAM-only, to możesz odcinać mu zasilanie w taki sposób jaki tylko przyjdzie Ci do głowy. Od siebie dodam, że istnieją mini-ups'y do RPi, jak również można samemu taki wykonać.

    Spytam jeszcze raz - domowy komputer też wyłączasz z hebla jak tylko przestajesz na nim pracować? Nie zamykasz otwartych programów, nie zamykasz systemu tylko robisz >>>pstryk<<< ?

  • #15 14 Sty 2017 16:42
    horik
    Poziom 13  

    Dokładnie Oshii.

    Oscyloskopy, generatory, żelazka, sterowniki bram czy toalety IV generacji z podgrzewaną klapą to nie klasyczne komputery klasy PC.

    Podobnie jak Arduino to NIE Raspberry PI/Odroid/BananaPi/zylion innych mini, makro i innych komputerów.

    Ta dyskusja robi się zupełnie bezsensowna.

    Ad meritum - dziękuję za pomysł, teraz już nie muszę podpinać monitora ani łączyć się przez putty żeby zamknąć system.

  • #16 14 Sty 2017 18:57
    krru
    Poziom 32  

    R-MIK napisał:

    Dobry system operacyjny w połączeniu z dobrym systemem plików nie ma z tym problemu. Swego czasu procowałem na Unix'ie, MAC'u i nie było z tym problemu. Nawet "zabawkowa" Amiga sobie z tym radziła od nowości (od nowości) po zmianie systemu plików zero problemów.
    Widać Raspberry Pi to zabawka i nie nadaje się do poważnych zastosowań.


    Amiga (z AmigaOS/FFS) nie była taka odporna na wyłączanie, a co gorsza nie miała funkcji zamknięcia systemu i zawsze wymagało to wyczucia. Jej system wyraźnie potrzebował takiej funkcji bo był wielozadaniowy, buforował transfery dyskowe i nigdy nie było wiadomo, czy wyłączenie jest bezpieczne.



    Jest chodzi o komputerki typu malinki to mamy dwa sprzeczne wymagania - stała gotowość do wyłączenia zasilania wymaga natychmiastowego zapisywania wszystkiego na dysk, a pamięci flash tego nie lubią i wolą jak zapisy są buforowane i operacje zapisu obejmują całe bloki i są rzadkie. Tutaj łatwiej jest z HDD.

    Ale i tak może się trafić wyłączenie zasilania akurat w trakcie zapisu sektora. W pracy mam komputery serwerowe, które mają baterie do podtrzymania (przez chwilę) pracy kontrolera dysków, by dokończył zapisy (dyski HDD jeszcze chwilę się kręcą). Nawet zwykłe komputery mają mechanizm PowerGood - linia, która zmienia się chwilę przed zanikiem głównych napięć zasilających i umożliwia doprowadzenie systemu do spójnego stanu.
    Ostatnio bawiłem się generatorem, w którym guzik zasilania powoduje rozpoczęcie zamykania systemu - wyświetla się normalny ekran Windows z okienkiem zamykania.
    Nawet pralka, lodówka czy TV może wymagać ingerencji serwisu jeśli zasilanie padnie w trakcie zapisywania ustawień.

    W zasadzie odporność na zanik zasilania dają bazy danych, ze swoim mechanizmem kronikowania i transakcjami - dlatego współczesne systemy plików też stosują podobne mechanizmy.

    A jeśli chodzi o prezentowany guzik to niektóre komputerki klasy malinki mają to gotowe - np. beaglebone czy olinuxino. Te drugie mają nawet kontroler zasilania i wystarczy im podłączyć akumulatorek LiJon lub LiPol i są odporne na zaniki zasilania. Ostatnio wygrzebałem taki A10-Lime i bawię się w podłączanie akumulatorka. Jak się okazało, kontroler jest i działa, ma driver w systemie więc można odczytać napięcia i prądy zarówno zasilania sieciowego jak i akumulatorka ale nie ma automatycznego zamykania systemu gdy prąd w akumulatorze się kończy. Kontroler po prostu w pewnym momencie odcina zasilanie. Trochę zainspirowałem się tym artykułem by przygotować odpowiedni skrypt. Tylko nie rozumiem po co używać do tego pythona, kiedy wystarczy zwykły bash. Na razie moja wersja testowa, taka do uruchamiania interaktywnego, z wypisywanie różnych rzeczy na konsole wygląda tak:
    Kod: bash
    Zaloguj się, aby zobaczyć kod


    3.6V jako napięcie graniczne dobrałem doświadczalnie, dla małego akumulatorka modelarskiego - specjalnie wziąłem taki, by cykl ładowania/rozładowania był w miarę szybki. Jeden dobry 18650 wystarcza na podtrzymanie zasilania przez 5h.

  • #17 14 Sty 2017 19:32
    R-MIK
    Poziom 36  

    krru napisał:

    Amiga (z AmigaOS/FFS) nie była taka odporna na wyłączanie, a co gorsza nie miała funkcji zamknięcia systemu i zawsze wymagało to wyczucia. Jej system wyraźnie potrzebował takiej funkcji bo był wielozadaniowy, buforował transfery dyskowe i nigdy nie było wiadomo, czy wyłączenie jest bezpieczne.

    Dlatego napisałem "po zmianie systemu plików zero problemów."
    [/quote]

    Dodano po 3 [minuty]:

    krru napisał:

    Nawet pralka, lodówka czy TV może wymagać ingerencji serwisu jeśli zasilanie padnie w trakcie zapisywania ustawień.

    To oznacza tylko jedno, beznadziejny soft. Tak sie składa, że musiałem zrobić sprzęt, który międzyinnymi musiał mieć "pewną" konfigurację dlatego są dwie kopie, crc i inne takie.
    Zapamiętywane są operacje takie jak reset do ustawień fabrycznych, odzyskanie danych z kopi. Sporo tego działa i nie ma problemów z konfigiem (no chyba, że piorun w to trafi).

  • #18 14 Sty 2017 19:47
    krru
    Poziom 32  

    R-MIK napisał:
    krru napisał:

    Nawet pralka, lodówka czy TV może wymagać ingerencji serwisu jeśli zasilanie padnie w trakcie zapisywania ustawień.

    To oznacza tylko jedno, beznadziejny soft. Tak sie składa, że musiałem zrobić sprzęt, który międzyinnymi musiał mieć "pewną" konfigurację dlatego są dwie kopie, crc i inne takie.
    Zapamiętywane są operacje takie jak reset do ustawień fabrycznych, odzyskanie danych z kopi. Sporo tego działa i nie ma problemów z konfigiem (no chyba, że piorun w to trafi).


    Dobry soft musi być przetestowany, a trudno testować tak ulotną właściwość jak odporność na zanik zasilania, szczególnie jak mówimy o testach prawdziwych - na gotowym urządzeniu a nie symulowanych przez programistę. W sumie koszt takiej funkcjonalności w wersji produkcyjnej byłby na tyle znaczny, a szansa na wystąpienie tego problemu mała (typu trzeba trafić z zanikiem zasilania z dokładnością 0.1sec) że taniej będzie wymienić jeden telewizor na 5 lat na nowy niż poświęcić czas programistów i testerów na zabezpieczenie. Lepiej dodać kolejny bajer.

  • #19 14 Sty 2017 20:12
    horik
    Poziom 13  

    R-MIK napisał:
    Tak sie składa, że musiałem zrobić sprzęt, który międzyinnymi musiał mieć "pewną" konfigurację dlatego są dwie kopie, crc i inne takie.
    Zapamiętywane są operacje takie jak reset do ustawień fabrycznych, odzyskanie danych z kopi. Sporo tego działa i nie ma problemów z konfigiem (no chyba, że piorun w to trafi).


    To oznacza tylko i wyłącznie tyle, że zostało zmniejszone prawdopodobieństwo wystąpienia takiego błędu, nie zaś jego wyeliminowanie. Gdyby były 4 kopie i 5 różnych CRC, prawdopodobieństwo byłoby jeszcze mniejsze, ale nie zerowe. Z tego powodu właśnie większość komputerów z nowoczesnym systemem plików "bezpiecznie przeżyje" restart bez zamykania systemu. Zdarza się jednak, że bywa inaczej. I owszem, problem ten dotyczy nawet aparatury laboratoryjnej (diagnostyka kliniczna) z Windowsami i Linuksami na pokładzie.

    Zerowe będzie tylko wtedy, gdy całość będzie działać w trybie tylko do odczytu, bądź za każdym razem startować będzie "świeża" kopia plików, gdzie wszelkie zmiany zostają porzucone, albo gdzie zapis pewnych ustawień odbywa się do pamięci półprzewodnikowych bez systemu plików (E2PROM). Tak, jak działają np. różne routery oparte o dystrybucje linuksowe, czy terminale w oparciu o system pobierany z hosta za każdym razem (taki SLAX na przykład).

  • #20 14 Sty 2017 20:27
    R-MIK
    Poziom 36  

    horik napisał:
    R-MIK napisał:
    Tak sie składa, że musiałem zrobić sprzęt, który międzyinnymi musiał mieć "pewną" konfigurację dlatego są dwie kopie, crc i inne takie.(...)


    To oznacza tylko i wyłącznie tyle, że zostało zmniejszone prawdopodobieństwo wystąpienia takiego błędu, nie zaś jego wyeliminowanie. (...) albo gdzie zapis pewnych ustawień odbywa się do pamięci półprzewodnikowych bez systemu plików (E2PROM).

    Konfig siedzi właśnie w EEPROM.
    Inne ważne rzeczy są w NvRAM (też dwie kopie) ze względu na częste zapisy, do eeprom są zapisywany gdy pada zasilanie (energię do zapisu zapewniają supekondensatory).

    Da się?
    Da.

  • #21 14 Sty 2017 20:42
    horik
    Poziom 13  

    R-MIK napisał:
    horik napisał:
    R-MIK napisał:
    Tak sie składa, że musiałem zrobić sprzęt, który międzyinnymi musiał mieć "pewną" konfigurację dlatego są dwie kopie, crc i inne takie.(...)


    To oznacza tylko i wyłącznie tyle, że zostało zmniejszone prawdopodobieństwo wystąpienia takiego błędu, nie zaś jego wyeliminowanie. (...) albo gdzie zapis pewnych ustawień odbywa się do pamięci półprzewodnikowych bez systemu plików (E2PROM).

    Konfig siedzi właśnie w EEPROM.
    Inne ważne rzeczy są w NvRAM (też dwie kopie) ze względu na częste zapisy, do eeprom są zapisywany gdy pada zasilanie (energię do zapisu zapewniają supekondensatory).

    Da się?
    Da.


    No jasne, że się da. I teraz przenosimy to megaodporne rozwiązanie na grunt komputera osobistego Kowalskiego,a także komputerków za 20$, zastępujemy dyski twarde pamięciami EEPROM, a złożone system plików zastępujemy tablicami bajtów.

    Da się?
    Da.

    Naprawdę poziom bezsensu tej dyskusji jest tak duży, że pozwolę sobie nie pogłębiać jej i zakończyć ją.

  • #22 14 Sty 2017 22:21
    R-MIK
    Poziom 36  

    horik napisał:
    dyski twarde pamięciami EEPROM, a złożone system plików zastępujemy tablicami bajtów.

    Jak to chcesz zrealizować. Wiesz ile wolniejszy jest zapis (właściwie kasowanie) EEPROM w stosunku do czasu zapisu dysku?

  • #24 23 Mar 2017 17:08
    sambo123
    Poziom 13  

    Można też ustawić sytem plików na read-only.

  • #25 23 Mar 2017 21:09
    BK_klp
    Poziom 19  

    sambo123 napisał:
    Można też ustawić sytem plików na read-only.
    Ja myślę, że można już zamknąć ten temat, bo dalsza dyskusja idzie w zupełnie innym kierunku niż temat wątku.

  • #27 25 Mar 2017 06:58
    metalic69
    Poziom 2  

    Ja mam inny problem. Po aplikacji tego skryptu, malina sama wyłącza się po jakims czasie. Oczywiście jak wdusisz guzik to też, ale jakby coś generowało stan niski...albo fabryczny pull up za mały i zakłócenia coś powodują.. nie wiem.

  • #28 04 Maj 2017 08:31
    sambo123
    Poziom 13  

    And! napisał:
    @sambo123 da się tak zrobić na RPi ? np. ustawić system plików na SD z obrazem systemu jako ro (coś jak live CD) i podłączyć drugi system rw na logi/dane?

    Tak, można tak zrobić. Opis do ustawienia w RO link

 
Promocja -20%
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
tme