Raspberry Pi uruchomione (testowo)

Pisałem, że nie kupię Raspberry Pi, więc jak uruchomione? Ano nie kupiłem, ale mam. Dostawali je wszyscy uczestnicy konferencji Atmosphere. Skoro leży i się kurzy, to warto przynajmniej spróbować uruchomić. Tym bardziej, że lubię maszynki z ARM i lubię Linuksa.

W związku z rozgardiaszem okołoprzeprowadzkowym, leżało i czekało znacznie dłużej, niż wypada. A to nie chciało mi się bawić na starym lokum, a to zaginęło gdzieś w kartonach, a to ważniejsze rzeczy do zrobienia. W końcu zdecydowałem się i kupiłem zasilanie (hub USB Unitek Y-206P – goły zasilacz kosztuje podobnie, a więcej portów USB i tak się przyda) i przymierzyłem obudowę z papieru (nie zdecyduję się, może ew. z grubszego kartonu spróbuję jeszcze; ciekawa lista obudów różnej maści dla Raspberry Pi jest tutaj). Okazało się, że wszystko fajnie, ale brakuje mi kabla USB oraz… karty SD. Chociaż jakieś microSD przecież kupiłem, specjalnie do Raspberry Pi, na wakacjach!

W końcu zebrałem się do szybkiego uruchomienia, pożyczyłem kabel od telefonu (ave standaryzacja!), a karta mikroSD i przejściówka się znalazły. Oczywiście karta inna, niż kupiona, ale mniejsza z tym.

Raspberry Pi

Źródło: http://blogs.it.ox.ac.uk/nexus/2012/03/09/raspberry-pi/

Jako dystrybucję wybrałem Raspbiana. W końcu dedykowany dla RPi i oparty na Debianie. Wiele złego mógłbym o nim napisać[1], ale pokrótce: dają obrazy na kartę min. 4GB, co uważam za grube nieporozumienie, bo podstawowy system spokojnie powinien wejść na 1 GB, a na ciut większą kartę to z luzami. Kolejna sprawa: domyślne IP i logowanie do systemu. Może jestem ślepy, ale nie znalazłem danych do logowania podczas lektury instrukcji[2]. W FAQ też nie. Dla pamięci: użytkownik pi, hasło raspberry, a Raspberry Pi z zainstalowanym Raspbianem pobiera domyślnie adres IP z DHCP. Kolejne drobiazgi: w /etc/fstab # a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that, po czym okazało się, że /sbin/dphys-swapfile: POSIX shell script, ASCII text executable. Nie przepadam za taką automatyzacją.

W każdym razie uruchomiłem, wygląda, że działa. Hub USB Unitek Y-206P daje radę z RPi (tylko jedno połączenie z portu USB w hubie do gniazda z zasilaniem Raspberry Pi). W sumie śmieszna konstrukcja, ale ktoś polecał do RPi. Maleństwo w metalowej obudowie, z badziewnym srebrzeniem. Zasilacz 2A, ale na całego huba. Nie sprawdzałem multimetrem, ale czuję, że olewa standardy i daje ile może na poszczególne porty. W sumie o to chodziło. 😉

Potem wszedłem na kanał IRC dedykowany Raspbianowi, by zgłosić bugi i… zaczął się hardcore. Ale o tym to już innym razem napiszę.

[1] I napiszę niebawem, bo poziom porażki zasługuje na oddzielny wpis.

[2] Jestem ślepy, przy pobieraniu obrazu dane do logowania są podane. Spodziewałbym się jednak tego typu informacji raczej w FAQ i/lub release notes. A najbardziej w README.

UPDATE: Okazuje się, że nie tylko dają obraz dla SD o wielkości 4 GB, z włączonym domyślnie swapem, ale ext4 przychodzi z włączonym journalingiem. Na obrazie dedykowanym dla nośnika flash. Z rozmowy na IRC – won’t fix, it’s not a bug, it’s a feature. I ma chronić przed uszkodzeniami systemu plików przy zanikach zasilania. Trochę mi słabo.

Koniec konta w dyndns.com

Usługa dyndns w dyndns.com – czyli chyba najpopularniejszego dyndns w ogóle; pamiętam, że nawet w niektórych routerach w swoim czasie był wbudowany i to w firmware producenta – od dawna zmierzała do tego, by być płatną. A to skończyły się rejestracje nowych darmowych kont, a to wprowadzono wymóg korzystania z kont, a to – ostatecznie – wymóg logowania się przez WWW raz na miesiąc.

Ponieważ aż cały miesiąc na zalogowanie był, to stwierdziłem, że zawsze zdążę. Tym bardziej, że przysyłali powiadomienia parę dni wcześniej. I wystarczyło kliknąć linka. Więc nawet nie ustawiłem crona, który sam by się logował – w końcu link taki wygodny… O koncie płatnym nie myślałem – 15 dolców na rok to trochę dużo jak za „zamień zmienne IP na coś możliwego do zapamiętania”. Jakąś dotację co łaska (np. via Flattr) pewnie bym rzucił, ale tak z góry narzucona opłata – niekoniecznie, tym bardziej, że mogę sobie odpalić własny zastępnik w jakieś 30 minut. No ale nie lubię takich rzeźb i wolę coś, co jest wspierane szerzej i ma już infrastrukturę.

Dziś stwierdziłem, że nie mogę się zalogować. Błąd rozwiązywania nazwy. Hm, bywa, może awaria. Potem coś mnie tknęło. Sprawdziłem maile. Tak jest. 30.10 dostałem przypomnienie. Oczywiście zostało oznaczone jako spam przez providera poczty, w programie pocztowym, a pewnie i podświadomie angielski tytuł sklasyfikowałem jako spam.

W każdym razie nie mam już konta na dyndns.com. W zamian wybrałem no-ip.com. Też zasłużony w temacie serwis, też zdaje się był na routerach SOHO wspierany. I też mocno zmierzający w stronę komercji, ale nie przejmuję się – rejestracja tego typu serwisu plus setup to dosłownie 5 minut. No i w końcu uruchomiłem też dyndns na moim OpenWrt.

Niezbyt łatwo znaleźć przykłady konfiguracji ddclient dla no-ip.com (choć jest trywialna, a protokół noip wbudowany), więc:

cat /etc/ddclient.conf
pid=/var/run/ddclient.pid
protocol=noip
use=if, if=ppp0
login=login
password=haslo
domena.no-ip.biz

Wersja dla Dockstara z PPPoE, publiczny IP na ppp0.

PS Wpisu by nie było, ale ładnie wpisuje się w trend „używałem tego od lat, a teraz zamknęli„.

UPDATE Z tym ddclientt to pochwaliłem za wcześnie. Nie tylko nadal występuje coś, co miało miejsce od dawna, czyli obecność wiszących procesów ddclient, ale – co gorsza – przyrastają w zastraszającym tempie. Load 30 na biednym routerku był dziś za ich przyczyną. Ledwo zdołałem ubić. Sam ddclient okazał się skryptem w Perlu (przychodzi mi na myśl taki rozwinięty smsender.pl), a rozwiązanie jest proste – nie korzystam już z demonizacji, tylko wywołuję co 10 minut z crona. Okazało się, że ma jakiś problem z cache, a konkretnie z odczytem wartości z niego. Rozwiązanie wygląda tak (po wyłączeniu demonizacji w /etc/default/ddclient):

*/10 * * * * /bin/rm /var/cache/ddclient/ddclient.cache; /usr/sbin/ddclient -quiet > /dev/null

Wiem, dirty hack. Ostatnio mam niestety tendencję do tego. Przyznam, że myślałem w pierwszej chwili o cyklicznym killowaniu procesów ddclient.

UPDATE: Wygląda, że albo z tym wyłączaniem usług to ściema, albo coś im nie poszło – dostaję kolejne maile z linkami, których kliknięcie aktywuje konto. Nie sprawdzałem działania, ale wygląda, że mogę dodawać kolejne hosty i normalnie dalej korzystać za free. Raczej ciekawostka, bom już przeniesiony.

Piwik, czyli fajne darmowe statystyki na stronę

O statystykach dla stron Piwik usłyszałem dawno temu. Idea wolnego odpowiednika Google Analytics[1] bardzo mi się spodobała, ale do instalacji nie doszło. Powód prozaiczny – nie miałem maszyny 24/7 działającej na sensownym łączu i posiadającą sensowną moc obliczeniową. Sensowną, tj. taką, żeby instalacja MySQL nie wydawała mi się zabójstwem na maszyny. Niedawno o statystykach przypomniał mi wpis ryśka, a obecne na blogu statystyki stat4u są coraz bardziej niewystarczające, głównie ze względu na brak aktualizacji od dłuższego czasu (ostatnia zmiana kilkadziesiąt miesięcy temu). Szczególnie, że chciałem się pobawić w referral fun.

Postanowiłem zaryzykować i zainstalować Piwika na Dockstarze. Co prawda miałem wrażenie, że 128 MB RAM i dysk 2,5″ 5400 RPM, na dodatek w kieszeni USB to nie jest to, co MySQL lubi najbardziej, ale spróbować można. Instalacja Piwika na lighttpd jest prosta i nie ma czego tak naprawdę opisywać. Ku mojemu zdziwieniu MySQL zajął tylko ok. 10% pamięci, a statystyki się zbierały.

Niestety, kliknięcie czegokolwiek w dashboardzie było męczarnią – skrypty PHP na serwerze mieliył po procku (niby 1,2 GHz, ale ARM, poza tym jakieś drobiazgi do łapania spamerów na Blox tam działają) nieprzyzwoicie intensywnie i nieprzyzwoicie długo. Znaczy dziesiątki sekund. Ale to co zobaczyłem było bardzo obiecujące, więc wrzuciłem Piwika na tymczasowego VPSa, który zasadniczo się nudzi (hell yeah, spojrzałem i prawie drugi rok mija darmowego testu, ale to offtopic, więc spuśćmy zasłonę miłosierdzia).

Po prostu rewelacja. Piwik pokazuje wiele rzeczy, których w stat4u nie ma (o statystykach wbudowanych w Blox nie wspominam, bo trudno to nazwać statystyką). Skąd ktoś przyszedł, gdzie poszedł, ile czasu spędził na stronie, rozbicia na systemy operacyjne, wykorzystywane pluginy, aktywność, powracający użytkownicy. I do tego wszystko estetycznie podane. Niby nic kluczowego się nie dowiedziałem, ale zdecydowanie bardziej mi się to podoba. I mam nad wszystkim kontrolę. Próbka jest mała, ale już mogę stwierdzić, że stat4u ma parę błędów (pewnie skutek braku aktualizacji).

Z drobnych poprawek, które warto wykonać: mimo, że to nie high traffic site, warto doinstalować APC, jest szybciej. Być może spróbuję wrócić na Dockstara z doinstalowanym APC, ale może nic z tego nie wyjść – może PHP wisiał na zapytaniach do baz – mało czasu miałem, nie wnikałem. Poza tym, wolałbym to jednak mieć na czymś porządniejszym, niż ADSL.

W każdym razie, w ramach popularyzacji tego oprogramowania, jeśli ktoś chciałby zobaczyć jak Piwik wygląda na jego własnych realnych danych, a nie ma warunków/ochoty na stawianie go samodzielnie, to może podpiąć na swojej stronie na dłuższą chwilę[2] u mnie (free, no strings attached). Chętnych zapraszam do kontaktu mailowego. Warunki są trzy. Pierwszy: nie więcej niż powiedzmy 10k UU miesięcznie (nie apteka) ze względu na wydajność maszyny. Drugi: best effort, czyli nie gwarantuję działania systemu, mogą być przerwy, nie gwarantuję przywrócenia z backupu itp. Oczywiście można dawać znać jak coś nie będzie działać i postaram się poprawić (bo mam tam własne niekrytyczne zabawki), ale wiecie jak jest. Na ten moment uptime system to 4 m-ce. Trzeci: zastrzegam sobie prawo do absolutnie subiektywnego wyboru chętnych (zwł. znajomi (jeśli się pojawią – nie jest to warunek konieczny) mają pierwszeństwo, podobnie jak nietechniczni/nieadmini – zakładam, że techniczni jakby chcieli, to by sami sobie postawili), wyłączenia usługi w dowolnym momencie wybranym serwisom itp. Jasne, postaram się uprzedzić wcześniej. Jeśli są jakieś wątpliwości co do warunków/coś pominąłem – proszę o pytania w komentarzach.

[1] Google Analytics odpada. I tak za dużo wiedzą, więc staram się unikać produktów ze stajni Google.

[2] VPS będzie działał jeszcze jakiś miesiąc. Potem, jeśli wszystko pójdzie dobrze, planuję przeniesienie się (z gratami) na jakieś 3 m-ce na testowego dedyka, a potem… Albo będzie działać na Dockstarze, albo przedłużę dedyka, albo zawinę zabawki.