# Usypianie komputera podczas działania programu

## karol.abratkiewicz

Witam. 

Mam pewien problem: Na komputerze jednoukładowym mam zainstalowane Gentoo. Komputer pracuje na akumulatorach LiPo, ma dołączone czujniki i moduły komunikacyjno-pomiarowe. Stworzyłem oprogramowanie w C, łączę się z komputerem poprzez kabel ethernetowy i zdalnie uruchamiam program. Po wystartowaniu programu wszystko ma działać samo, niezależnie i z odłączonym kablem ethernetowym. Dane pomiarowe są zapisywane do plików tekstowych na bieżąco: każda pętla pomiarowa odczytuje dane z czujników i dopisuje je do plików txt przechowywanych na dysku. Całość działa dobrze, dopóki mam podłączony kabel ethernetowy-działa komunikacja, dane z czujników są cały czas poprawnie zapisywane,. Krótko mówiąc wszystko jest ok. Układ działał bez zarzutu nawet 2 godziny. Problem pojawia się, gdy odłączę kabel ethernetowy. Komputer działa kilkanaście minut, po czym prawdopodobnie się usypia - w plikach mam czas oraz datę odczytanych danych pomiarowych po czym mogę stwierdzić jak długo program działał. Problemem nie są baterie - kilkukrotnie testowałem całość z podłączonymi woltomierzami w celu weryfikacji, czy napięcie nie jest za niskie. Czy może być to spowodowane jakimiś ustawieniami w Linuxie? Chciałbym wyeliminować lub wskazać prawdopodobne przyczyny problemu. Jako, że nie jestem doświadczonym Linuxiarzem, mam nadzieję, że ktoś z bagażem doswiadczeń pomoże mi w tej sprawie.

Z góry dziekuję i pozdrawiam

Karol Abratkiewicz

----------

## robertsurma

Nie sądzę, aby domyślnie takie ustawienia były aktywne (ACPI). Choć za mało danych podałeś. Jaki konkretnie system, jaki procesor, BIOS / UEFI, czy ładuje się tam jakieś środowisko graficzne (bo tam ewentualnie może być ustawiona jakaś opcja usypiana).

----------

## karol.abratkiewicz

Witam

ACPI było zmieniane i sytuacja występuje niezależnie od tego ustawienia. 

Linux 3.18.7-gentoo 

Środowisko graficzne  nie jest zainstalowane, operuję na samej konsoli.

BIOS: American Megatrends wersja 2.13.1213

Komputer: http://www.adlinktech.com/PD/marketing/Datasheet/nanoX-TCR/nanoX-TCR_Datasheet_en_2.pdf  1.6GHz, 4GB dysk

Pozdrawiam

Karol Abratkiewicz

----------

## dziadu

W jaki sposób łączysz się i uruchamiasz program? Sesja ssh? Program uruchamiany w screen? Deamon?

----------

## karol.abratkiewicz

Windows->Putty->SSH

Program konsolowy, więc wszystko to, co zwraca mi program wyświetla mi się rówież w putty. Pliki (oraz ich dopisywanie w trakcie pracy programu) kontrolowałem także w WinSCP.

----------

## dziadu

Ok, trochę nie zrozumiałem problemu chyba. Jesteś pewien, że komputer się usypia? Masz do dyspozycji jakąś np. diodę, która możesz okresowo migać aby sprawdzić stan systemu?

Może problem jest tylko w zerwanym połączeniu? Jeśli masz źle zdefiniowany hostname, to program może się zawieszać. Jak pobierany jest adres IP, używasz dhcp/dns? Czy hostname jest ustawiany przez dhcp? Jeśli tak, to może się on zmieniać w trakcie odłączania od sieci i program mieć problem z poprawnym działaniem.

----------

## karol.abratkiewicz

Hmm, tak jak pisałem, w momencie kiedy mam podłączony kabel ethernetowy wszystko działa ok, ale po odłączeniu go, po kilkunastu minutach przestają zapisywać się zawartości plików. Nie mam diody, ale mam podłączony analizator widma (w układzie zamontowany układ generujący sygnał wysokiej częstotliwości - sygnał jest generowany cały czas, co oznacza że jest napięcie na układach generujących sygnał. Układ generujący sygnał w.cz. ma pamięć ulotną, która nie pamięta danych po odłączeniu zasilania.) Odpowiadając na Twoje pytanie: nie mam pewności że komputer się usypia, ale jak inaczej to wytłumaczyć? Jest kabel-wszystko chodzi, nie ma kabla-program nie działa po ok 15 minutach. Testowałem ten sam program, bez żadnych zmian w kodzie (właściwie uruchamiam tylko binarkę, nie mam kodu źródłowego na tym komputerze). IP w komputerze ustawione jest "na sztywno".

----------

## dziadu

No tak, ale gen. w. cz. jest autonomiczny, czyli jeśli system się uśpi, to będzie działał nadal, tak? Ale możesz sterować g.w.cz. z poziomu systemu? Możesz np co minutę zmieniać częstotliwość, wtedy analizator będzie Ci pokazywał zmiany. Stwierdzisz jednoznacznie, czy system działa czy nie. Możesz użyć crona, i np ustawiać dwie różne częstotliwości zależnie czy czas jest parzysty czy nie.

----------

## karol.abratkiewicz

Jest to jakieś rozwiązanie, jednak nie wiem czy ma ono większy sens, gdyż  przełączanie częstotliwości odbywać się będzie w tej samej pętli co zapis danych do plików. Skoro po kilkunastu minutach dane przestają się zapisywać, to znaczy że program się nie wykonuje. Mogę to przetestować, jednak na 99% spodziewam się, że reakcja będzie taka sama.

----------

## dziadu

A nie możesz zrobić tego niezależnie? Napisz mały program który będzie to robił i uruchamiaj go z crona. Może problem z zapisem jest niezależny od tego. Zapis jest kontrolowany przez osobny program, a g.w.cz. będzie przez system i cron.

----------

## karol.abratkiewicz

Hmm, ciekawe rozwiązanie. Dziękuję. W przeciągu kilku dni spróbuję to zrobić. Gdyby jeszcze ktoś miał jakieś sugestie to byłbym bardzo wdzięczny za wszelką pomoc.

----------

