poniedziałek, 30 listopada 2009

SheevaPlug, parę ciekawych odsyłaczy

Różne informacje n/t SP: Instalowanie Slackware na SP + zdjęcia, jak toto wygląda od środka. |  Instalowanie Debiana (na USB i/lub karcie SD) |  Sheevaplug Fedora USB BootBooting entirely off an external USB device SheevaPlug Installer

Zmiana daty/czasu w polach Exif

Omyłkowo ustawiłem błędną datę w aparacie, ,,przesuniętą'' o dzień ,,do przodu''. Używając exiftool skorygowanie tego wymaga wykonania następującego polecenia:


# http://www.sno.phy.queensu.ca/~phil/exiftool/exiftool_pod.html
# przesun 24 godziny ,,do tyłu'':
exiftool -AllDates-=24:00 katalog-ze-zdjeciami

sobota, 28 listopada 2009

Lameria w mbanku

Niestety Mbank, który do niedawna uważałem za wzorowy przykład serwisu neutralnego technologicznie dołączył do grona lamerów. Mianowicie wydruk potwierdzenia operacji (w postaci pliku PDF) jest tworzony z wykorzystaniem fontów firmy Microsoft (Arial, Verdana, Tahoma). W rezultacie, przykładowo Acrobat tego nie wydrukuje, przynajmniej w systemie Linux. Jest pytanie po co do drukowania zwykłego potwierdzenia potrzebny jest MS Windows? Najwidoczniej jakiś odpowiedzialny ignorant z Mbanku na powyższe pytanie sobie nie odpowiedział... Albo inaczej: czy złożenie druczka za pomocą Times New Roman zamiast Tahomy i reszty cokolwiek by zmieniło?

Co więcej, mam podejrzenie graniczące z pewnością, że jakiś czas temu było inaczej, tj. dokumenty nie korzystały z fontów komercyjnych...

NB: evince drukuje dokument, podstawiając inny font (z błędnym kodowaniem)...

wtorek, 24 listopada 2009

Uruchomienie samby

Straciłem trochę czasu, ale głównie dlatego, że z Sambą do tej pory nie miałem przyjemności...

Samba dialog window
Mapowanie dysku
smbclient session
smbclient session

Zgodnie z powszechnie zalecaną procedurą:


adduser smbuser
groupadd smbuser
vim /etc/group
## dodaję smbuser do grupy smbuser (do /etc/group)

vim /etc/samba/smbusers
## dodaję wpis smbuser="smbuser" (do /etc/samba/smbusers)

mkdir /public/sheeva/winstuff
chown smbuser:smbuser /public/sheeva/winstuff

smbpasswd -a smbuser

No i klops, bo:


smbpasswd -a smbuser
> New SMB password:
> Retype new SMB password:
> ltdb: tdb(/var/lib/samba/group_mapping.ldb): tdb_mmap failed for size
> 77824 (Invalid argument)

Na forum plugcomputer.org/ dowiedziałem się, że: I have a vague memory of ubifs (or was it jffs2) not supporting mmap(), and the error message looks like it might be trying to use that.... Spróbowałem zatem dodać do /etc/samba/smb.conf:


## Por. http://lists.samba.org/archive/samba-technical/2004-July/036379.html
use mmap = no

Teraz smbpasswd -a smbuser kończy się bez błędu. Samba wprawdzie nie od razu działa, ale metodą kolejnych przybliżeń, tj. modyfikowania /etc/samba/smb.conf udaje się problem zwalczyć. Działający plik /etc/samba/smb.conf jest tutaj.

Test połączenia z innej maszyny linuksowej:


smbclient -U smbuser //jupiter/data

Mapowanie dysków sieciowych w Windows XP wygląda zaś następująco: Komputer→Moje miejsca sieciowe→Narzędzia→Mapuj dysk sieciowy. Wpisujemy w pole Folder //jupiter/data. Pojawi się okno autoryzacji, w którym, w stosowne pola należy wpisać ,,Nazwę użytkownika'' oraz ,,Hasło''. Klikamy w przycisk zakończ... Gotowe...

Konfigurowanie SheevaPlug cd.

Ponieważ główny system plików powinien być jak najmniejszy, z uwagi na szczupłość miejsca w pamięci FLASH przenoszę na kartę SD bazy mysql oraz główny katalog dokumentów Apacza.

Przeniesienie baz danych mysql

Procedura nie jest skomplikowana (por. How to change the MySQL data default directory):


service mysql stop
cp -R -p /var/lib/mysql /media/sd/data/
## zmiana pliku konfiguracyjnego:
vim /etc/mysql/my.cnf

W pliku zmieniam:


#datadir = /var/lib/mysql
datadir = /media/sd/data/mysql

Piszą, że trzeba dokonfigurować apparmor (niepotrzebne, bo w wersji Ubuntu na Sheevaplug, nie ma działającego apparmora, co można sprawdzić wpisując np. service apparmor restart):


## u mnie apparmor nie działa ale plik jest:
vim /etc/apparmor.d/usr.sbin.mysqld

Gdyby wszakże ktoś uruchomił apparmor, to należy zmienić var/lib/ na /media/sd/data. Podobne zmiany należy zaaplikować do zawartości pliku /etc/apparmor.d/abstractions/mysql

Zrestartować mysql.

Teraz dla sprawdzenia, że wsio działa uruchomiłem mysql:


mysql -u root -p

dodałem użytkownika tomek:


-- tomek ma status superużytkownika --
CREATE USER 'tomek'@'localhost' IDENTIFIED BY 'hasło';
GRANT ALL ON *.* TO 'tomek'@'localhost';
FLUSH PRIVILEGES;

Załadowałem przykładową bazę:


mysql -u <user> -p < r-sklep.sql

Działa...

Przeniesienie głównego katalogu dokumentów Apacza

Domyślnym katalogiem dla dokumentów WWW serwera Apache w Ubuntu jest /var/www/. Zaczynam od skopiowania tego katalogu w inne miejsce:


cp -R -p /var/www /media/sd/data/

Kopiuję także stosowny plik konfiguracyjny:


cp /etc/apache2/sites-available/default /etc/apache2/sites-available/jupiter

Teraz trzeba zmienić plik jupiter:


vim /etc/apache2/sites-available/jupiter

Należy zmienić (w dwóch miejscach) /var/www/ na /media/sd/data/wwww/. Teraz należy zmodyfikować ustawienia systemowe uruchamiając:


a2dissite default
a2ensite jupiter
## restart serwera
service apache2 restart

Działa...

wtorek, 17 listopada 2009

Przeniesienie repozytorium svn na kartę SD

Na kartę czy nie na kartę problem sprowadza się do przeniesienia repozytorium do innego katalogu, co okazuje się bardzo proste:


## http://www.petefreitag.com/item/665.cfm
## Backup your old Repository
svnadmin dump /path/to/repository > repo_name.svn_dump
## Create the new Repository
svnadmin create /path/to/repository
## Import your old repository into the new one
svnadmin load --force-uuid /path/to/repository < repo_name.svn_dump

Do zmiany położenia repozytorium w kopii roboczej służy zaś następujące polecenie:


# http://webkit.org/blog/97/svn-repository-location-change/
svn switch --relocate OLDURL NEWURL

Przykład:


svn switch --relocate svn+ssh://eros@jupiter/public/sheeva/svnrepo/er/ETC \
svn+ssh://eros@jupiter/media/sd/svnrepo/er/ETC

No i tyle...

poniedziałek, 16 listopada 2009

Konfigurowanie SheevaPlug

W tym urządzeniu jest fabrycznie zainstalowana wersja Ubuntu. Po włączeniu wtyczki działa w zasadzie out of the box. Podczas konfiguracji korzystałem z: Getting started with the SheevaPlug. Do połączenia się potrzebny jest kabel z wtyczkami USB/miniUSB. Po podłączeniu końcówek kabla uruchamiam skrypt:


#!/bin/sh
if [ -e /dev/ttyUSB1 ] ; then
cu -s 115200 -l /dev/ttyUSB1
elif [ -e /dev/ttyUSB2 ] ; then
cu -s 115200 -l /dev/ttyUSB2
else
echo "No usb tty found - exiting"
fi

Loguję się jako root. Fabryczne hasło to nosoup4u. Zmieniam hasło z domyślnego na własne.

Problem z siecią (więcej tutaj). Dopisuję do pliku /etc/dhcp3/dhclient.conf


prepend domain-name-servers 192.168.1.1;

Nie działa apt-get -- kończy pracę z błędem. Trzeba wykonać:


mkdir -p /var/cache/apt/archives/partial

Uwaga: ponieważ katalog var/cache/apt jest umieszczony w tymczasowym systemie plików (tmpfs), reboot spowoduje jego usunięcie. Poradnik Getting started with the SheevaPlug jest ,,w tym temacie'' mylący. Jak to poprawić prawidłowo jest wyjaśnione w New Plugger How To. Należy zmodyfikować /etc/rc.local w następujący sposób:


#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
chmod 1777 /tmp /var/tmp
mkdir -p /var/cache/apt/archives/partial

# You might also want to add, after the mkdir, a line "/usr/sbin/ntpdate-debian"
# to automatically sync your clock over the network.
# ntpdate-debian

Inne polecenia należy usunąć lub ,,zakomentować''. Zamiast ntpdate-debian, który synchronizuje czas przy każdym restarcie, zdecydowałem się na uruchomienie demona ntpd:


apt-get install ntp

Ustawienie nazwy hosta. Nb. Nazwałem go jupiter.


vi /etc/hostname # dodanie co trzeba do pliku
/bin/hostname -F /etc/hostname

Poprawienie czasu:


Fix clock

Ustawienie lokali (więcej na ten temat tutaj). Do pliku:


/var/lib/locales/supported.d/local

Dopisujemy pl_PL ISO-8859-2 (ustawiając kodowanie na ISO-8859-2). Następnie wykonujemy:

   
dpkg-reconfigure locales

Zmiana strefy czasowej:


dpkg-reconfigure tzdata

Zamontowanie zewnętrznego dysku USB. Mój dysk będzie montowany w katalogu /public. Zatem mkdir /public a następnie do pliku /etc/fstab dopisuję:


## external usb drive:
/dev/sda1 /public ext3 auto,user,rw 0 0

teraz:


mount /public

Dopisane 3 lutego 2010: Po podłączeniu dysku przez USB huba, a nie bezpośrednio, coś się rozjeżdża. Dysk zamiast być /dev/sda1 pojawia się ni-stąd ni-z owąd jako urządzenie /dev/sdb1. Nie ustaliłem nawet przyczyn tego fenomenu: po prostu dwa razy tak się stało. Dysk był de facto odłączony a próba wykonania mount /public, kończyła się oczywiście niepowodzeniem. Spróbuję zmienić wpis w /etc/fstab na następujący:


/dev/disk/by-id/usb-WD_bla-bla-bla-part1 /public ext3 auto,user,rw 0 0

może będzie lepiej...

Instalowanie dodatkowych pakietów:


apt-cache search fuse
apt-get install fuse-utils
apt-get install libxml-dom-xpath-perl libxml-dom-perl \
libflickr-api-perl libflickr-upload-perl libxml-libxml-perl \
libxml-simple-perl

# Nie wiem po co ale zainstalowałem też (100mb)
apt-get install mysql-server

# instalowanie bittorrent (bittornado jest chyba niepotrzebne)
# http://jakilinux.org/aplikacje/p2p/rtorrent-p2p-w-konsoli/
apt-get install bittorrent bittornado rtorrent

# instaluje Konfigurowanie esniper (2.19.0-1) ; bieżąca wersja 2.21
# http://buechler.blogspot.com/2006/03/sniping-ebay-auctions-with-esniper-on.html
apt-get install esniper

# instalacja locate
apt-get install mlocate
vi /etc/updatedb.conf
# PRUNEPATHS to, które _nie będą_ indeksowane, dodaję /public żeby
# nie był indeksowany zewnętrzny dysk USB
# PRUNEPATHS="/tmp /var/spool /media /public"

Logowanie bez hasła za pomocą ssh (więcej tutaj):


ssh-copy-id -i ~/.ssh/id_rsa.pub jupiter

Uruchamianie crontaba przez zwykłego użytkownika (por. tutaj oraz tutaj):


chmod u+s /usr/bin/crontab

teraz działa.

Założenie repozytorium svn (ustaw uprzednio lokale)


mkdir /public/sheeva/svnrepo
svnadmin create /public/sheeva/svnrepo

Teraz do pliku /etc/init.d/svnserve wpisuję:


#!/bin/sh
#
# start/stop subversion daemon.
EXECUTABLE=/usr/bin/svnserve

# Test exist:ence of the executable
test -f $EXECUTABLE || exit 0

# Command line options for starting the service
# To increase security, you can pass the -r option to svnserve, which restricts it to exporting
# only repositories below that path, cf http://www.linxit.de/svnbook/en/1.0/ch06s03.html
OPTIONS='-d -r /public/sheeva/svnrepo'

case $1 in
start)
echo -n "Starting subversion daemon: $EXECUTABLE $OPTIONS\n"
start-stop-daemon -vo -x $EXECUTABLE -S -- $OPTIONS
echo -n "."
;;

wykonuję:


update-rc.d svnserve defaults
## na ekranie pojawiają się komunikaty, ale można je zignorować:
update-rc.d: warning: /etc/init.d/svnserve missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>

start usługi:


service svnserve start

Konfiguracja:


groupadd svn
vi /etc/group ## dodaję to grupy svn użytkowników tomek,eros
chgrp -R svn /public/sheeva/svnrepo/
chmod -R 770 /public/sheeva/svnrepo/

Teraz tomek i eros mogą czytać/pisać z repozytorium svn, np.:


## import projektu
svn import svn+ssh://tomek@jupiter/public/sheeva/svnrepo/repo1 -m import
## listowanie zawartości
svn list svn+ssh://tomek@jupiter/public/sheeva/svnrepo/repo1

Zob też tutaj

Aktualizacja systemu:

apt-get upgrade

Warto wykonać, m.in. pojawia się vim w wersji mini. Nie jest to aż takie ważne, ale ja osobiście jestem przyzwyczajony do vima.


ln -s /usr/bin/vim.tiny /usr/local/bin/vim

Gcc i kompilacja (najnowszej wersji programu esniper):


## por http://computingplugs.com/index.php/Compiling_Mythtv-0.21_on_the_Sheeva_Plug
apt-get install gcc make libcurl4-openssl-dev libcurl3 curl libwww-curl-perl gcc

Po doinstalowaniu powyższych pakietów skompilowałem esniper w najnowszej wersji 0.21.

Po tej operacji nie można się zalogować jako root. Problem jest podobno znany.

Reset hasła roota. Należy wyłączyć komputerek, połączyć się kablem USB/miniUSB i naciskając dowolny klawisz przerwać normalny proces bootowania. Gdy na ekranie pojawi się znak zachęty Marvell>, wpisujemy:


Marvell> printenv bootargs
## wyświetli się coś w stylu
bootargs=console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),\
0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1\
rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none

## teraz
Marvell> setenv bootargs console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),\
0x1fb00000@0x500000(rootfs) rw root=/dev/mtdblock1\
rw ip=10.4.50.4:10.4.50.5:10.4.50.5:255.255.255.0:DB88FXX81:eth0:none init=/bin/bash

Marvell> boot

A następnie:


passwd -d root
passwd root

Zmieniamy hasło. Restart i powinno już być OK.

Samba. Na razie (mam nadzieję) nie potrafię skonfigurować:-(

Po tych wszystkich ww. zabiegach mam ciągle ok. 260 Mb wolnej pamięci flash.

Inne strony z informacjami n/t SheevaPlug. Instalowanie Debiana na USB/karcie SD: 1 2 3 Instalowanie Fedory: 4 5

Dopisane 17 listopada 2009: Zamontowałem 16 Gb kartę SD (Patriot 6 Class, 130 PLN) -- sformatowaną jako ext2 -- dopisując do pliku /etc/fstab:


/dev/mmcblk0p1 /media/sd ext2 auto,user,rw 0 0

Teraz wiele rzeczy (np. dane z Internetu pobierane via cron albo pliki pobierane przez torrenta) zamiast być zapisywane od razu na dysk USB, będą zapisywane na kartę SD. Dzięki temu dysk będzie rzadziej używany... Mniej zużytego prądu i hałasu...

Dopisane 18 listopada 2009: Programik do pobierania filmów z YT:


apt-get install youtube-dl

Aktualizacja kopii roboczej po zalogowaniu się. Łączenie z siecią WiFi trwa około 30 sekund po zalogowaniu się użytkownika, więc proste wstawienie odpowiednich poleceń do .bash_profile nie wystarczy. Różne rozwiazanie proponowane są w: How to run a command after connecting to network?

Dopisane 20 listopada 2009: Nie można się zalogować jako root do bazy mysql. Pomogła procedura opisana tutaj: how to install mysql:


## Zatrzymać usługę:
service mysql stop
## Uruchomić mysqld w specjalnym trybie:
mysqld --skip-grant-tables
# Uruchomić klienta mysql:
mysql
# i wpisać poniższe:
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'hasło'\
WITH GRANT OPTION;

Na koniec dwa istotne adresy: PlugComputer Communityforum oraz Plug Wiki.

Dopisane 25 listopada 2009: doinstalowałem php (ciągle mam ponad 230Mb wolnego miejsca w głównym systemie plików).


apt-get install php5 php-pear php5-mysql php5-cli

środa, 11 listopada 2009

Ikony punktów nawigacyjnych w Garminie

W opisie tzw. waypointa (punkt nawigacyjny), w formacie GPX jest m.in. znacznik <sym>, którego zawartością jest napis określający symbol punktu. Do tej pory zawsze wstawiałem tam Flag, a Legend oznaczał taki punkt ikoną niebieskiej flagi. Wprawdzie teoretycznie to (chyba) może być dowolny napis, ale lepiej ograniczyć się do tych kilkanastu--kilkudziesięciu, które Garmin zna i ,,reaguje'' na nie podstawiając odpowiednią ikonę. Zestaw tychże znalazłem tutaj. Na stronach Garmina zaś trudno się doszukać stosownej informacji.

Przykładowo pierwszy z punktów (poniżej) to cmentarz a drugi Miejsce Polowania wybrany na oznaczanie ,,grzybowych miejscówek'' -- ponieważ w zestawie symboli nie ma takiego, który by się lepiej nadawał na oznaczenie miejsca ,,gdzie rosną grzyby''


<wpt lat="54.0704694444" lon="18.9803833333">
<name>Stogi k/M Cment</name>
<cmt>Stogi k/M Cment</cmt>
<desc>Stogi k/Malborka Cmentarz Mennonitów</desc>
<sym>Cemetery</sym>
</wpt>
<wpt lat='54.84425261' lon='18.000581109'>
<name>Boczniak1</name>
<cmt>Boczniak Ostrygowaty</cmt>
<desc>Boczniak Ostrygowaty na pniu buka</desc>
<sym>Hunting Area</sym>
</wpt>

Jak już opisałem kiedyś bazę moich punktów trzymam w pliku (konkretnie w ~/.gps/local.wpts) co ułatwia jej modyfikowanie. Jeżeli baza się zmieni, to przesyłam plik (synchronizuję) do urządzenia wykorzystując program gpsbabel.

Microsoft Academic Search

Szukając czegoś w Google często znajduje się coś innego. Dziś znalazłem siebie w bazie pn. Microsoft Academic Search. Nie wiem jak to działa -- podejrzane jest w szczególności, że w bazie są akurat wyłącznie te moje artykuły, które zostały już skatalogowane w znanej bazie bibliograficznej DBLP. Większy tekst na temat znalazłem tu. Na razie nie chce mi się go ani czytać, ani szukać innych materiałów nt. MAS.

Nb. klikając w stronę dowiedziałem się, że istnieje coś takiego jak SilverLight. Kolejna super technologia Małomiękkiego, na której się świat nie poznał?

wtorek, 3 listopada 2009

Mój nowy komputer

Mój nowy komputer (już szósty, a w dostawie siódmy) ma wielkość dużej mydelniczki:-) Teraz muszę się dokształcić jak go uruchomić.

A teoretycznie służy toto do (cf. SheevaPlug Development Kit): The SheevaPlug is a development platform, targeted for use as a plug computer, and designed to run network-based software services. It features a Kirkwood Series SoC with an embedded Marvell Sheeva CPU core running at 1.2 GHz. This device connects to the network using GbE, offers desktop class performance, and can be used to replace a PC-based home server for many applications. Peripherals connect using the included USB 2.0 port.