Przerwa majowa

Uważni czytelnicy dostrzegli, że w zeszłym tygodniu nie pojawił się żaden wpis. Regulamin DSP2017 dopuszcza przerwy w prowadzeniu projektów i… zeszły tydzień należy potraktować jako przerwę. Zresztą ponad tydzień, bo w zasadzie majówka cała nieprojektowa, z małym wyjątkiem, o którym zaraz. W każdym razie z konkursu się nie wycofałem i mam nadzieję, że tygodni roboczych będzie wystarczająco dużo. Nie liczyłem ile jest dokładnie, a zarejestrowałem się z opóźnieniem. Tak czy inaczej, nie chodzi o to by złowić króliczka…

Przerwy są dobre, czy to w pracy jako urlop, czy przy projekcie. Można spojrzeć z boku, wyskoczyć z utartych torów i nabrać energii. W każdym razie zeszły tydzień był mocno pracowity, a wypełnianie PITów, to nie jest coś, co warto odkładać na ostatnią chwilę, powiadam wam. Zresztą warto wcześniej sprawdzić, czy ma się komplet papierów, jak się okazuje. W każdym razie zdobyłem kolejny skill w zakresie obsługi podatków. Ale ostatecznie wszystko w miarę wyprostowane.

Potem był czas dobrych imprez i intensywnego chodzenia po sklepach celem urządzenia oświetlenia – powiedzmy, że 20% zrobione. A w międzyczasie doglądanie zewnętrznych rzeczy – a to serwer się zaczął restartować bez przyczyny (odpowiedź ISP rozwaliła, ale restarty ustały, hm…), a to ktoś zepsuł format danych, z których korzystam… Chwilę trwało, zanim przyswoili, że błąd zgłasza osoba z zewnątrz, a nie pracownik. Fun, fun, fun. Tylko czasu szkoda.

Udało mi się zrobić dwie związane z projektem rzeczy: przetestować uruchomienie programu na czystym systemie z ARM (działa, czemu miałby nie działać?) oraz wstawić Raspberry Pi zamiast Banana Pi jako router, czyli odzyskać właściwą sondę. Co prawda to ostatnie nie udało się w 100%, bo robiłem na szybko, trochę czasu zeszło na ustalenie, że NAT lepiej działa, jak się włączy forwarding, a po wszystkim okazało się, że logowanie przy pomocy autossh coś nie działa, ale powiedzmy, że wariant minimum jest zrobiony. Z powodu małej ilości czasu nie zaryzykowałem też wpięcia drugiego modemu.

Przerwa i programowanie w pracy skłoniło ku refleksji, że może jednak lepiej będzie docelowo przepisać to obiektowo. Głównie chodzi o łatwość wykorzystania kodu w innych projektach – dokładnie to przerabiam w pracy. W cele projektu oficjalnie tego nie wpisuję póki co, ale jeśli tylko starczy czasu, to będzie próba refaktoringu kodu.

Raspbian i uruchomienie modemu GSM Huawei E3131

Uruchomienie modemu Huawei E3131 (hilink) pod Debianem opisałem wcześniej. Ostatnio pisałem o perypetiach związanych z tym, że na Debianie działa, na Raspbian modem nie działa. Dziś zagadka została rozwiązana.

Udałem się na kanał IRC Raspbiana, w nadziei, że dostanę wskazówki w czasie kiedy będę przeprowadzać debug. Czasami nie ma się co męczyć, bo po prostu można o czymś nie wiedzieć, jak miało to miejsce w przypadku uruchomienia SSH na Raspbianie. Poza tym, takie pytanie o pomoc i dostarczenie pełnych danych o problemie działa trochę jak gumowa kaczuszka.

Nim dobrze skończyłem pisać, dostałem namiar na ten wpis. Wygląda paskudnie? Ano wygląda. Ale działa – po wydaniu podanego polecenia pojawił się interfejs eth1 w systemie. Ale być może wystarczy doinstalować sg3-utils? Niestety nie – opisany sposób działa tylko do rebootu Raspberry Pi. Albo może do wyjęcia i włożenia modemu (nie pamiętam, oba mało akceptowalne…). Od biedy mógłbym z tym żyć, bo prosty skrypt do crona załatwi sprawę, ale… Na Debianie działa to znacznie bardziej elegancko, więc drążyłem temat.

Skoro przyszło do pakietów, to zauważyłem, że na desktopie mam zainstalowany pakiet:

ii  modemmanager                              1.6.4-1                                                 amd64        D-Bus service for managing modems

Brzmi obiecująco, tym bardziej, że dotyka D-Bus. Na Raspbianie tego pakietu nie było… Doinstalowałem pakiet, reboot Raspberry Pi i… Działa. Nie jest identycznie jak w Debianie, bo nadal interfejs to eth1 i IP pobiera automatycznie z DHCP. Ale to detale – najważniejsze jest działające wyjście na świat.

Podsumowując: aby w Raspbian działał modem typu dongle USB, należy doinstalować pakiet modemmanager.

Wpis pojawia się w kategorii DSP2017 z racji tego, że płytka z ARM będzie robiła za stację testową. Jeśli wszystko pójdzie dobrze, jeszcze dziś…

Prawie jak stacja testowa

Były święta i wolne. W planach miałem uruchomienie stacji testowej w domu, na Raspberry Pi, ale po namyśle stwierdziłem, że jednak wolę zamienić Banana Pi, robiące aktualnie za router u rodziców z moim Raspberry Pi i testować na BPi. Przy okazji miałem nadzieję wyjaśnić zagadkę niedziałającego z BPi zasilacza domowej produkcji, który świetnie działa z RPi. Podejrzewam kabel USB, ale o tym innym razem.

W każdym razie spakowałem RPi z zainstalowanym podstawowym systemem i dostępem po SSH, wziąłem też sporo kabli USB, zasilacze, mirniki napięcia. Ot, wszystkie okoliczne graty. Wziąłem też testowy modem Huawei E3131, na wypadek gdyby przyszło mi do głowy zastąpienie istniejącego, również Huawei E3131 tyle, że starszej generacji, bez hilink.

Na miejscu dokonałem szybkiego kopiowania skryptów i… przyszedł mi do głowy szatański plan. Przecież mogę uruchomić oba modemy w RPi i testować w warunkach produkcyjnych. Tyle, że zdalnie. Niestety, szybko okazało się, że mimo starannego choć szybkiego skopiowania skryptów RPI nie nawiązuje łączności ze światem. Wielkiej filozofii w skryptach nie ma, prawa identyczne. Stary Huawei nie chce działać. Wetknąłem więc nowy modem, z hilink i stwierdziłem, że w sumie najwyżej zostanie RPi z nowym modemem robiące za router, a BPi przetestuję po powrocie do domu i od razu zrobię z niego stację roboczą. Tyle, że okazało się, że modem z hilink niby nawiązuje połączenie (jest ustawiony, by robił to automagicznie), przynajmniej wskazuje na to kolor diody ale… w systemie nie powstaje interfejs. Czyli żaden z dwóch modemów na USB nie zadziałał na RPi!

Lekko tylko klnąc pod nosem szybko wróciłem do działającej konfiguracji z Banana Pi robiącym za router GSM, czyli zupełnie do punktu wyjścia, bez jakichkolwiek postępów – ani nie mam uruchomionej stacji testowej, ani nie zluzowałem BPi w celu przetestowania zasilacza.

Jednak są pewne… zmiany, bo ciężko to nazwać postępem:

  • Mam zagadkę pt. „na Raspbianie nie działają modemy USB”. Jak patrzę we wcześniejszy wpis o SSH, to jakiś Raspbian Lite. Może to jest przyczyną? Może customowy kernel Raspbiana? Przetestuję w chwili wolnej.
  • Jakimś cudem zadziałało zapięcie Banana Pi zarówno jako źródła danych, jak i „klienta” w hubie USB. Jak ostatnio sprawdzałem, to w tej konfiguracji się nie uruchamiał, a RPi działało bez problemu. Zastanawiam się, czy znowu nie chodzi o kabel.
  • Kolejnym zaskoczeniem jest to, że Raspberry Pi nie musi być wpięte w ww. sposób do huba USB, by działało. Okazało się, że wystarczy je zapiąć jako źródło danych i… dostaje zasilanie. Jest to dla mnie totalną zagadką, bo do tej pory nie przyszło mi do głowy, ale działa. W sumie fajne, bo mam jeden port w hubie USB więcej wolny.

Czyli w DSP2017 zastój, ale czegoś nowego się dowiedziałem i jest co robić. Następny wpis raczej również będzie metatematyczny, prawdopodobnie znowu o ciekawych projektach w DSP2017. Z rzeczy związanych bardziej bezpośrednio – prawdopodobnie w przyszłym tygodniu jakąś stację testową jednak uruchomię. Mam nadzieję, że będzie to RPi z rozwiązaną zagadką modemów USB…