sobota, 12 lipca 2014

Wysyłanie maila z raspberry Pi/Sheevaplug przez gmail

Dla nieuświadomionych Sheevaplug to taki dziadek RaspberryPi. Kiedy jeszcze nie sprzedawali Rpi kupiłem Sheevaplug i używam do dzisiaj. Na obu komputerach jest zainstalowany Debian, ale w różnych wersjach.

Listy mam wysyłać skryptem Perla więc rozpoczynam od zainstalowania stosowego modułu Net::SMTP::TLS:


sudo apt-cache search TLS | grep perl
libnet-smtp-tls-butmaintained-perl - Perl module for providing SMTP...
libnet-smtp-tls-perl - Perl SMTP client library supporting TLS and AUTH
libwww-curl-perl - Perl bindings to libcurl

sudo apt-get install libnet-smtp-tls-perl

W Debianie działającym na Sheevaplug (Debian Lenny) nie ma gotowego pakietu więc instaluję co trzeba za pomocą cpan:


cpan install Net::SMTP::TLS

Skrypt do wysyłania listu (mail-snd.pl):


#!/usr/bin/perl
# http://dipinkrishna.com/blog/2010/12/sending-emails-gmail-smtp-perl/
use Net::SMTP::TLS;

my $smtp = new Net::SMTP::TLS(
'smtp.gmail.com',
Port => 587,
User => 'USER1@gmail.com',
Password=> '??PASSWORD??',
Timeout => 30
);

# -- Enter email FROM below. --
$smtp->mail('USER1@gmail.com');

# -- Enter recipient mails addresses below --
my @recipients = ('USER2@gmail.com');
$smtp->recipient(@recipients);

$smtp->data();

#This part creates the SMTP headers you see
$smtp->datasend("To: USER2\@gmail.com\n");
$smtp->datasend("From: USER1\@gmail.com\n");
$smtp->datasend("Content-Type: text/html \n");
$smtp->datasend("Subject: A Test Mail");
# line break to separate headers from message body
$smtp->datasend("\n");
$smtp->datasend("This is a test mail body");
$smtp->datasend("\n");
$smtp->dataend();

$smtp->quit;

W Sheevaplug działa i wysyła, a Raspberry Pi nie:


invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 332

Żeby było śmieszniej w Debianie Lenny z Sheevaplug jest jakaś bardzo stara wersja IO::Socket:SSL:


## sprawdź numer wersji modułu
cpan -D IO::Socket::SSL
Installed: 1.16

A na Raspberry Pi znacznie nowsza (ale nie działa):


cpan -D IO::Socket::SSL
Installed: 1.76
CPAN: 1.994 Not up to date

Aktualizuję


sudo cpan
cpan> install IO::Socket:SSL

Ale to nie pomaga:


invalid SSL_version specified at /usr/local/share/perl/5.14.2/IO/Socket/SSL.pm

Rozwiązanie jest podane tutaj. Należy:


## w pliku SSL.pm
sudo nano usr/share/perl5/IO/Socket/SSL.pm
## zmienić
m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1[12]?))$}i
## na
m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1[12]?))}i

Zamiast rzeźbienia w Perlu można zainstalować gotowe rozwiązanie pn. sendemail:


apt-get install sendemail

List wysyłamy w następujący sposób:


sendEmail -f USER1@gmail.com -t USER2@other.com \
-u "Title1" -m "this is a test message" \
-s smtp.gmail.com \
-o tls=yes \
-xu USER1 -xp '??PASSWORD??'

niedziela, 29 czerwca 2014

Great uptime of pinkaccordions.homelinux.org server

My tiny SheevaPlug ARM-based server has reached 366 days of uptime today. Proof included:

SheevaPlug is a sort of Raspberry Pi. One of the first such computers on the market, killed by Rpi a few years ago.

Przykra sprawa. Nie lekceważę jej

Polska została zaatakowana. Chodzi prawdopodobnie o zamach stanu [...]

Przykra sprawa. Nie lekceważę jej

Informacja prezesa Rady Ministrów w sprawie tzw. afery podsłuchowej z udziałem prezesa Narodowego Banku Polskiego, ministra spraw wewnętrznych oraz byłych wysokich urzędników państwowych.

[...]

Chciałbym bardzo wyraźnie podkreślić, że nie lekceważąc lekcji, jaka płynie z nagrań, lekcji, z której powinni wyciągnąć wnioski wszyscy bez wyjątku, zarówno nagrani, jak i ci obawiający się, że mogli być nagrani, lekcji, którą powinni odrobić wszyscy uczestnicy życia publicznego mający wystarczającą wyobraźnię, że jednak prawdziwym problemem politycznym jest fakt, że grupa przestępców -- z jakiego powodu, o tym za chwilę -- pozwoliła sobie na nielegalne nagrywanie i podsłuchiwanie, a następnie publikowanie materiałów, które doprowadzają do takiego wstrząsu, jakiego jesteśmy uczestnikami i świadkami.

Dlaczego uważam, że mamy do czynienia z kryzysem politycznym i z problemem o charakterze politycznym? Po pierwsze, dzisiaj znamy już kontekst i tło tych zdarzeń. Dzisiaj informacje po pierwszych zatrzymaniach wskazują jednoznacznie na to, że osoby podsłuchujące mogły kierować się tak czy inaczej złymi intencjami. Ponadto nie ulega wątpliwości, niezależnie od tego, kto ma jaki status społeczny, że nielegalne podsłuchiwanie bez wiedzy osoby podsłuchiwanej, nagrywanie i upublicznianie tego typu materiałów jest przestępstwem. To jest bezdyskusyjny fakt prawny. Po drugie, mamy do czynienia z ludźmi -- mówię o pierwszych zatrzymanych -- których intencje biznesowe lub polityczne dzisiaj wydają się dość oczywiste.

Chciałbym bardzo wyraźnie podkreślić, że w przyszłości tych wątków może pojawić się więcej. Dzisiaj nikt nie jest w stanie precyzyjnie zdefiniować, co bezpośrednio powodowało zleceniodawcami i wykonawcami tego procederu podsłuchowego. Jak wiemy z dat opublikowanych nagrań, proceder ten trwał co najmniej 1,5 roku, nie w jednym miejscu i dotyczył dziesiątków, a może setek ludzi. Wiemy, że tak czy inaczej zaangażowane w to lub kojarzone z podsłuchującymi i nagrywającymi osoby związane są także z interesami, o których państwo polskie miało swoje określone zdanie i wobec których także podejmowało określone działania.

Chciałbym podkreślić znaczenie tego tła. Przede wszystkim mówimy o osobach zaangażowanych w działalność gospodarczą ściśle związaną z energetyką. Sytuacja, z jaką mamy miejsce w ostatnich dniach, poprzedzona była dość zdecydowanymi działaniami służb państwowych wobec importerów i dystrybutorów węgla na dużą skalę. Zdajemy sobie sprawę, że ten wątek może być wątkiem pobocznym albo niewyłącznym, ale nie ulega wątpliwości, że jest on obecny w tej sprawie.

Chciałbym mocno podkreślić, że dotychczasowa wiedza o zagrożeniu interesów państwa czy jego stabilności w związku z aferą podsłuchową każe szczególnie mocno i wnikliwie badać także związki osób bezpośrednio zaangażowanych w ten proceder z przedsięwzięciami gospodarczymi i ze środowiskami, które były aktywne, także jeśli chodzi o problematykę gazową. To w tej chwili nie jest już nawet tajemnicą publiczną. Nie jestem upoważniony do epatowania informacjami, które mogą być w dyspozycji premiera, ale nie ulega wątpliwości, że ten kontekst musi budzić najwyższe zaniepokojenie.

Skala zdarzeń, z jaką mamy do czynienia -- mówię o skali procederu podsłuchiwania i nagrywania -- jest, jak sądzę, adekwatna do skali interesów. Nie mówię tutaj tylko o interesach polskich firm, dwuznacznych lub nielegalnych, jakimi służby państwowe jakiś czas temu się zajęły. To tło jest szerokie, bo dotyczy kilku zdarzeń, które państwo mieli także okazję obserwować w ostatnich kilku czy kilkunastu miesiącach. Są one związane bezpośrednio lub pośrednio z aktorami tego przedstawienia, tego dramatu, z jakim mamy do czynienia w ostatnich kilku dniach. Mają związek z osobami, które działały w dziedzinie połączeń gazowych między Polską a Rosją. Każdy na tej sali, kto interesował się problemem tzw. pieremyczki, czyli połączenia gazowego, które miało omijać Ukrainę, pamięta także zdarzania, z którymi związane są niektóre osoby pojawiające się w kontekście afery podsłuchowej. W tle jest handel węglem zza wschodniej granicy na wielką skalę. Rozpoczęliśmy bardzo energiczne działania w związku z sytuacją także w polskich kopalniach, m.in. na wniosek związkowców. Nie ma żadnego powodu, żeby twierdzić, że jest bezpośredni związek między tymi działaniami a akcją podsłuchową i ujawnianiem podsłuchów, ale nie ma też żadnego powodu, aby nie dostrzegać związku między jednym a drugim zdarzeniem. Mam nadzieję, że postępowanie, śledztwo, a następnie proces rozwieją wątpliwości, potwierdzą lub odrzucą te skojarzenia, które dzisiaj wydają się jednak dość oczywiste. W tle jest także sytuacja na Ukrainie i sytuacja w Europie.

Chcę mocno to podkreślić, dzisiaj mogę precyzyjnie zdefiniować poważne, fundamentalne interesy państwa polskiego, które mogą być zagrożone lub osłabione w związku z aferą podsłuchową, z czego nie musi wynikać bezpośredni związek afery podsłuchowej lub samego faktu jej ujawnienia w tych dniach z naruszeniem czy osłabieniem tych interesów. Zadaniem Wysokiej Izby, o tym też jestem przekonany, jest ocena skutków, wyreżyserowanych, zaplanowanych, zgodnych z intencjami sprawców tej afery albo będących rykoszetami. Te skutki są jednak bezdyskusyjne. Te skutki to osłabienie możliwości wpływania ze strony polskiego rządu na nową konstrukcję, nową architekturę personalną i instytucjonalną w Europie. Mówiąc ludzkim językiem, za dwa dni przystąpimy do pierwszych bardzo ważnych decyzji w Brukseli i będziemy decydować o dwóch kwestiach: kto będzie rządził instytucjami w Europie -- i chcę powiedzieć, że Polska nie była, moim zdaniem nadal nie jest, ale z całą pewnością nie była bez szans na bycie obecną przy tych najważniejszych rozdaniach -- i tego samego dnia będziemy także dyskutowali o unii energetycznej i o mechanizmach bezpieczeństwa energetycznego Europy w kontekście kryzysu ukraińskiego i konfliktu rosyjsko-ukraińskiego. Dobrze wszyscy państwo orientujecie się, że co do roli polskiego rządu i całego państwa polskiego w kontekście bezpieczeństwa energetycznego, rekomendacji Komisji Europejskiej, które zostały przygotowane na to najbliższe posiedzenie, sporu o to, na ile Europa ma być niezależna od wschodniego gazu, w całym tym procesie Polska, polski rząd i polskie państwo, odgrywała naprawdę kluczową rolę. Jeśli chodzi o ten element, który najbardziej bezpośrednio rzuca się w oczy po pierwszych dniach ustaleń, czyli handel węglem, sprawa jest na dużą skalę. Mówimy o bardzo poważnych pieniądzach, ale przede wszystkim mówimy o bardzo realnym wpływie obrotu węglem i tego, jaki jest to węgiel i skąd jest ten węgiel, na całą strukturę i bezpieczeństwo polskiej energetyki. To nie jest tylko mój wniosek.

[...]

Na podstawie Sprawozdanie Stenograficzne z 70. posiedzenia Sejmu Rzeczypospolitej Polskiej w dniu 25 czerwca 2014 r. (podkreślenia moje).

Jak dla mnie to tekst zawiera niespodziewanie dużo zaimków wskazujących: ten, tamten, jakiś, to, tamto, owamto...

piątek, 20 czerwca 2014

Syndrom Żorża Poniemirskiego

Mój ulubiony minister w rządzie RP dicit:

Kurcze z tym BOR-em. Ach. Kłopot polega na czymś innym. Nie polega na bieżącym zarządzaniu, ale chodzi o instytucję, której się nikt nie dotykał przez lata. Wszyscy, którzy pracują z BOR-em, mają syndrom sztokholmski Niech to zostanie między nami, ale odebrałem 15 telefonów od wszystkich możliwych najważniejszych ludzi w tym kraju, żebym, broń Boże, nie robił żadnej krzywdy BOR-owcom, więc mam wykręcone ręce. I zbieram za ewidentne wpadki formacji. Nikt się nie interesował, jak wygląda szkolenie, jak są finansowani, bo syndrom sztokholmski zapewnia bierność i symbiozę, gdzie fakty się nie liczyły. Gdybym był ministrem spraw wewnętrznych na początku czteroletnich rządów, toby to wyglądało inaczej, ale ja nie bardzo mogę sobie pozwolić na głębokie reformy w służbie, od której dyskrecji zależy wiele, he, he, istotnych decyzji w tym kraju na kwartał przed wyborami, bo to jest samobójstwo, he, he...

Ewidentny syndrom hr. Żorża Poniemirskiego, tego cierpiącego na głowę brata Niny Poniemirskiej, który w finałowej scenie okazuje się być najlepiej zorientowany wśród zebranych:

wtorek, 17 czerwca 2014

Chuj dupa i kamieni kupa

Normalnie w takiej sytuacji w tzw. demokracji się skompromitowanego usuwa dając do zrozumienia, że nowy będzie lepszy. Z jakiś względów tym razem się nie da więc Tusk i jego palatyn brną w oczywiste kłamstwa:

O próbie zamachu stanu rząd dowiedział się z mediów, które upubliczniły nagranie rozmowy szefa MSW, ale pan premier jest z pracy służb pod kierunkiem tegoż szefa MSW zadowolony.

Minister-pierdoła oświadczył(a) zaś, że był nagrywany przez lata, ale ostatnim jego zadaniem jest wykrycie nagrywającego. Hej kurcze, może lepiej nieudacznika zwolnić a zatrudnić takiego, który daje większe szanse na złapanie nagrywacza?

Po tym jak 10 maja 1941 pod Glasgow na spadochronie wyskoczył Rudolf Heß propaganda niemiecka czuła się w obowiązku wytłumaczenie jak doszło to takiej kompromitacji. Zdecydowano się na wariant Towarzysz partyjny Heß zwariował. Józef Goebbels uważał to za mało wiarygodnie i pokrętne wytłumaczenie i napisał sarkastycznie w swoich dziennikach: Uprawione jest pytanie jak idiota mógł tak długo być zastępcą Führera?. Podstawmy teraz zamiast zastępca führera słowo premier.

Wszystko już było tylko trochę inaczej....

czwartek, 12 czerwca 2014

Lista argumentów za długa

Ponieważ w przeciwieństwie do MSW w Linuksie długość wiersza poleceń jest absurdalnie duża zapomniałem, że jednak jest skończona:


system ("perl", "clickshop-delete.pl", "-items", join (',', @AllItems))

Program clickshop-delete.pl nie jest wykonywany. Żeby ustalić czemu dodaję:


system ("perl", "clickshop-delete.pl", "-items", join (',', @AllItems)) \
== 0 or warn "system failed: $? [$!]\n";

Teraz wiadomo czemu nie działa:


system failed: -1 [Lista argumentów za długa]

Poniższe ustala jak długi może być wiersz poleceń (Debian Lenny na Sheevaplug/ARM):


tomek@neptune:~$ getconf ARG_MAX
131072

Prosty sposób na zmodyfikowanie skryptu z wykorzystaniem splice:


my $max2process=6000; # każdy element @AllItems ma 12 znaków, więc 6000 jest OK
while ( my @items2process = splice @AllItems, 0, $max2process ) {
system ("perl", "clickshop-delete.pl", "-items", join (',', @items2process)) == \
0 or warn "system failed: $? [$!]\n";
}

Powinno działać.

poniedziałek, 7 kwietnia 2014

Box-plot chart with plot.ly and Perl API

The following Perl script reads data from a CSV file and draws a series of Box-Plots. Usage:


perl plotly_boxplot.pl -col=number -by=number -title=TITLE

where: -col=number -- column number containig variable to plot, -by=number -- column number containig grouping variable.


#!/usr/bin/perl
use WebService::Plotly;
use Getopt::Long;

# login to plotly script
require "$ENV{'HOME'}/bin/login2plotly.pl";

my $plotly = WebService::Plotly->new( un => $plotly_user, key => $plotly_key );

my $sep_sequence = ';';
my $col_number = -1;
my $by_col_number = -1;
my $chart_title='??Chart title??';
my $header='Y';
#my $boxpoints='outliers'; ## or all' | 'outliers' | False
my $USAGE="*** USAGE: -col=i -by=i -title=s -header=s -sep=s FILE *** \n";


# plot values from column 'col' grouped by column 'by'. If header is Y skip first row in data.
# Add title 'title'. Columns in csv data are separated by 'sep' (default ';')
GetOptions("col=i" => \$col_number, "by=i" => \$by_col_number, "title=s" => \$chart_title,
'header=s' => \$header, 'sep=s' => \$sep_sequence, );
##'boxpoints=s' => \$boxpoints ) ; ## this option not work!

if (($col_number == -1 ) || ($by_col_number == -1) ) { print $USAGE }

while (<>) { chomp ($_); $nr++;
if (($nr < 2) << ( $header eq 'Y' ) ) { next }
$_ =~ s/"//g;
my @fields = split(/$sep_sequence/, $_);
push @{$data{$fields[$by_col_number]}}, $fields[$col_number];
# http://stackoverflow.com/questions/3779213/how-do-i-push-a-value-onto-a-perl-hash-of-arrays
}

my @variants = sort keys %data;

print STDERR "*** No of rows scanned: $nr ***\n";
print STDERR "*** Groups found: @variants ($boxpoints) \n";
for $k (keys %data ) {
print "$k"; push (@boxes, { y =>$data{$k}, type => 'box', #'boxpoints' => 'none',
name => "$k" } ) }

my $layout = { 'title' => $chart_title };

my $response = $plotly->plot(\@boxes, layout => $layout );

my $url = $response->{url};
my $filename = $response->{filename};

print STDERR "*** done: filename: '$filename' url: '$url' ***\n"

Example: Age of Nobel Prize winners by discipline (grouping wariable) plot.ly/~tomasz.przechlewski/28/

niedziela, 9 lutego 2014

Ethernet connection drop on Raspberry Pi

From time to time internet connection to my Raspberry Pi disappears (AFAIK it is well known feature of Pi). Removing and reconnecting the ethernet cables did not work, so one has to reboot by pulling the plug (risking to corrupt file systems from improper shutdown).

To reconnect I use the following bash script (found here):


#!/bin/bash
# Check if Internet connection is still alive ***
# Insert into crontab at *.16
LOGLOG="/home/pi/Logs/Cron/Reboot.log"
WLAN=eth0

if /sbin/ifconfig $WLAN | grep -q "inet addr:" ; then
echo "Network connection up!"
else
echo "Attempting reconnect [`date +%Y%m%d%H%M`]" >> $LOGLOG
/usr/bin/sudo /sbin/ifup --force $WLAN
fi

Note: use ifconfig -a to identify relevant interface (WLAN):


pi@raspberryberrystar ~ $ ifconfig -a ifconfig -a
eth0 Link encap:Ethernet HWaddr b8:27:eb:f5:9a:d7
inet addr:192.168.1.146 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

My other Pi is connected to internet not through a cable but with WiFi dongle. The relevant interface is:


pi@blackberrystar ~ $ ifconfig -a
wlan2 Link encap:Ethernet HWaddr 10:fe:ed:12:ef:2c
inet addr:192.168.1.144 Bcast:192.168.1.255 Mask:255.255.255.0

The connection is checked every 20 minutes with the following crontab entry:


## Check Internet connection every 7th, 27th, 47th minute:
7,27,47 * * * * /home/pi/bin/chk_www_alive.sh > /dev/null 2>&1

wtorek, 14 stycznia 2014

WinterhilfswerkKapelle

Winterhilfswerk Kapelle = Orkiestra Zimowej Pomocy, złośliwe nawiązanie do Winterhilfswerk des Deutschen Volkes w kontekście akcji p. Owsiaka.

Minister Kamysz cyt. Nie niszczmy inicjatyw charytatywnych polską wojenką.

Otóż akcje charytatywne dzielą się na sensowne i bezsensowne. Wiele samorządów wspieranych przez organizacje pozarządowe zwalcza (niszczy powiedziałby p. Kamysz) spontaniczne wspieranie żebrzących jako dobroczynność bardziej szkodzącą niż przynoszących pożytek (np. Dając mi pieniądze nie pomagasz).

Gdyby polski system ochrony zdrowia był dobrze zarządzany WOŚP byłaby zbędna dla większości ubezpieczonych. (Dalej wszakże mogłaby by się zajmować np. ludźmi nie ubezpieczonymi lub ubezpieczonymi, których problemy nie są objęte systemem ubezpieczeń.) Stawianie sprawy tak jak się ją stawia od 22 lat: chorym potrzebującym pomocy jest szpital a nie konkretny człowiek jest zgodą na byle jakie, złe zarządzanie, na reformy obliczone tak żeby nie naruszyć interesów żadnej wpływowej grupy, itd...

Innymi słowy jest to bezsensowna akcja charytatywna. Bezsensowna, bo utrwalająca stan złego zarządzania służbą ochrony zdrowia.

Ponadto WOŚP jest w dużym stopniu wspierana przez finanse publiczne. To co ląduje w puszkach to przysłowiowy pryszcz...

Liczne samorządy upychają na aukcjach coś, co jest finansowane z pieniędzy publicznych (przyłapane na tym bezczelnie twierdzą, że absolutnie nie, że nie wiąże się to z dodatkowymi wydatkami, ale przecież there is no such a thing as a free lunch). Innym słowy podatnik zapłacił za jakiś towar/usługę (powiedzmy stadion w Gdańsku wybudowany za 800 mln) a dostanie aparat USG (kupiony za pieniądze pochodzące z wydzierżawienia loży VIP na ww. stadionie...) Czy nie prościej byłoby od razu obciążyć podatnika kosztem aparatu USG? Tak bez zbędnych pośredników (p. Jurek, pan prezydent gdańska Budyń, itp) -- być może można by kupić za te same pieniądze 3 aparaty USG? A może nawet 4?

wtorek, 31 grudnia 2013

Temperature statistics 2010--2013

Average monthly outdoor temperature for Sopot, Abrahama in 2010--2013 (recorded with DS18B20 sensor). Average monthly temperature computed as $t_a = \sum_i^n t_i/n$, where: $t_i$ denotes measurement recorded in month $i$ (the temperature is recorded every hour BTW).

Average monthly outdoor temperature for Sopot

Click to see interactive version and data at plot.ly

The data shows (among other things:-) that December 2013 was really hot.

wtorek, 10 grudnia 2013

A newer version of the Raspberry Pi

I am using Raspberry Pi version A (256 Mb) for more than a year and now I bought one Pi more--model B (512 Mb) this time. I bought a TP-Link WiFi card (TL-WN725N) and a camera as well. The plan is:

  • attach the camera to the old Pi; connect Pi to WiFi network (because all four ports on my router are already occupied)
  • the whole stuff connected to the old Pi (temperature, humidity (DHT-22) and pressure (BMP085) sensors as well as Logitech C270 camera) connect into the new one.

Attaching everything to one single Pi is not an option--I want the camera-equipped Pi to be more portable.

Also I did not want to install a new system but just to use what I use so far (ie the system used on the old Pi):


uname-a
Raspberrystar.pinkaccordions.org Linux 3.2.27 + # 174 PREEMPT ...

Simple inserting the card from the old Pi into the new one did not work (the system did not start). An upgrade is needed probably:


sudo apt-get update
sudo rpi-update
uname-a
Raspberrystar.pinkaccordions.org Linux 3.10.18 +

Now 1-Wire bus stopped working. I also can not start the WiFi adapter TP-Link TL-WN725N. Inspecting Internet forums I discovered that version 3.6.11+ of the kernel may be less problematic in this respect. Therefore, I try to downgrade:


sudo rpi-update 8234d5148aded657760e9ecd622f324d140ae891

The above means to downgrade to the latest of 3.6.11+ versions:


pi @ raspberrystar ~ $ uname-a
Linux 3.6.11 + raspberrystar.pinkaccordions.org # 557 PREEMPT

Now the 1-Wire bus magically started to work. Sensors DHT-22 also work. The program I have used to read data from pressure sensor BMP085 required minor modifications and recompilation (as GPIO layout is different on Pi model B).

WiFi card also works, but require to download an appropriate driver. This one works for me (a copy is here). Other drivers, such as available here or here do not work. Compilation from sources as described here (in Polish is here) ends with an error as well.

Module 8188eu.ko can be installed as follows:


wget http://www.mendrugox.net/downloads/13 -O 818188eu.ko
## albo https://dl.dropboxusercontent.com/u/61315145/PiStuff/8188eu.ko.gz
## after download: gunzip 8188eu.ko.gz

sudo install -p -m 644 8188eu.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
sudo depmod -a
sudo modprobe 8188eu

The contents of the file /etc/network/interfaces should look like:


auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "NAME OF-NETWORK"
wpa-psk "PASSWORD"

One have to provide correct values for the NAME-NET and PASSWORD of course. The above settings will automatically establish a connection when the system starts.

Changing the host name

Minor thing, but I want to know easily which Pi is which:


## in the last line of /etc/hosts change host name
sudo vi /etc/hosts

## insert host name (this file contains only 1 line with a host name:)
sudo vi /etc/hostname

sudo /etc/init.d/hostname.sh
sudo reboot

The file /etc/hosts looks something like this:


127.0.0.1 localhost
:: 1 localhost ip6-localhost ip6-loopback
fe00 :: 0 ip6-localnet
ff00 :: 0 ip6-mcastprefix
ff02 :: 1 ip6-allnodes
ff02 :: 2 ip6-allrouters

127.0.1.1 blackberrystar

Camera

Updated system was cloned on a second card (Btw. for years I use Toshiba SDHC 8GB Class 10. This card is advertised as SLC but on card packaging/casing there is no word about it. SLC or not SLC I had never any problem with this card.)

Pi + kamera
Pi + camera

First picture

How to connect a camera to the Pi can be seen at one of the many videos on YouTube.

I followed instructions from How to set up the camera hardware.

Since I have not done this before:


pi@blackberrystar ~ $ sudo apt-get update
pi@blackberrystar ~ $ sudo apt-get upgrade

Now:


pi@blackberrystar ~ $ sudo raspi-config

I Choose Enable/Disable camera addon support and Memory split. I have not decided on the suggested 128 Mb for the GPU, bearing in mind that all the memory in my Pi is 256 Mb. Perhaps I am wrong and recommended 128MBs is better.

Test if it works:


pi@blackberrystar ~ $ mkdir picam
pi@blackberrystar ~ $ cd picam
pi@blackberrystar ~ $ raspistill -o image.jpg

The result (the first picture taken) is shown on the picture.