lut 18

Jak uruchomić prosty publicznie dostępny kiosk internetowy?
To proste, potrzebujemy przeglądarki internetowej i już. Ale jest pewien problem: zwykle przeglądarka udostępnia użytkownikowi wszystkie wbudowane opcje (pobieranie plików itp), użytkownik może też zamknąć przeglądarkę (lub zminimalizować) i buszować po systemie. A to może spowodować, że kolejny użytkownik, być może, nie będzie umiał skorzystać z takiego kiosku.

Co zatem zrobić?
Użyć Opery. Opera jako jedyna znana mi przeglądarka ma wbudowany tryb pracy kiosk. Przed instalacją warto jednak się zastanowić jaki wybrać system operacyjny. Pierwsze, co przychodzi do głowy to Windows :D. Instalacja szybka, łatwa i przyjemna. Jest jednak pewien problem: przeglądarka (ani żadna inna aplikacja) nie jest w stanie przechwycić i wyłączyć kombinacji CTRL+ALT+DEL. Trzeba by było podmienić windowsowy podsystem autentykacji GINA. Da się to zrobić, ale wymaga trochę pracy. Dodatkowo, Windows jest trochę za ciężki dla starszego komputera. No i obciach w razie restartu – widać, że pod spodem uruchamia się Windows.

Alternatywa?
Oczywiście, jedna z odmian linuxa. Ja wybrałem ubuntu (ostatnią instalację robiłem na 12.10) z uwagi na popularność i dość dobre mechanizmy wykrywania sprzętu. Dodatkowo, postanowiłem zacząć od instalacji minimalnej, aby jak najbardziej odchudzić system. Dzięki temu taki kiosk można uruchomić na czymkolwiek.

Instalacja podstawowa
Pobieramy i wypalamy Ubuntu minimal CD. Instalacja potrwa małą chwilę, ponieważ pakiety są pobierane z sieci.
Po instalacji warto zainstalować ssh oraz acpi.

aptitude install ssh acpid

Pozwoli nam to obsłużyć „miękkie” wyłączanie systemu przyciskiem zasilania. Jeśli nie zadziała od razu, trzeba w pliku /etc/default/grub zmienić linię:

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

tak aby wyglądała:

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash acpi=force”.

Potem regenerujemy konfig:

sudo update-grub.

Następnie instalujemy Xsy.

aptitude install xserver-xorg xinit

Trzeba je skonfigurować. Najprostsza metoda, to uruchomienie Knoppixa (wersja 5.0 i wyższe) i skopiowanie pliku konfiguracji /etc/X11/xorg.conf na dysk. Knoppix doskonale wykrywa i konfiguruje większość urządzeń.
Można też użyć polecenia:

Xorg -configure

Utworzy ono plik xorg.conf.new w katalogu domowym użytkownika.

Następnie sprawdzamy, czy Xsy uruchamiają się poprawnie:

Xorg -config xorg.conf.new -retro

Plik konfiguracji należy skopiować na właściwe miejsce:

cp ~/xorg.conf.new /etc/X11/xorg.conf

Aby zwykły użytkownik mógł uruchamiać Xserver, zmieniamy jeszcze ustawienia w pliku /etc/X11/Xwrapper.config

allowed_users=anybody

albo:

dpkg-reconfigure x11-common

Teraz instalujemy operę (w tym przypadku jest to opera_12.14.1738):

echo „deb http://deb.opera.com/opera stable non-free” >> /etc/apt/sources.list
wget -O – http://deb.opera.com/archive.key | sudo apt-key add -
aptitude update
aptitude install opera

Jeśli chcemy pluginy do javy, pfd i flash, trzeba je doinstalować (w moim przypadku flash doinstalował się automatycznie przy instalacji opery):

Java:

Obecnie java nie jest dostępna w domyślnych repozytoriach. Można ją zainstalować na różne sposoby, najłatwiej tak:

aptitude install software-properties-common
add-apt-repository ppa:webupd8team/java
aptitude update
aptitude install oracle-java7-installer

Adobe Reader

wget http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.5.4/enu/AdbeRdr9.5.4-1_i386linux_enu.deb

wget http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.5.5/enu/AdbeRdr9.5.5-1_i386linux_enu.deb

dpkg -i AdbeRdr9.5.5-1_i386linux_enu.deb

Adobe Flash

wget http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.deb
dpkg -i install_flash_player_10_linux.deb

Teraz tworzymy użytkownika, który będzie uruchamiał całość:

useradd internet …

passwd internet

Logujemy się jako użytkownik internet i tworzymy plik ~/.xinitrc:

echo „opera”  > /home/internet/.xinitrc

uruchamiamy Xsy:

startx

Po uruchomieniu Xsów powinna uruchomić się opera (na razie w zwykłym trybie). jeśłi obraz wygląda kiepsko wracamy do konfiguracji Xsów. Teraz czas sprawdzić czy opera widzi pluginy:

Opera -> ustawienia -> preferencje -> zaawansowane -> zawartość -> opcje wtyczek…

Jeśli opera nie widzi pluginów, zaglądamy do sekcji „Znane problemy”.

Możemy teraz dokonfigurować Operę do naszych potrzeb: ustawiamy stronę domową oraz filtrowanie adresów:

opera:config – network – URL filter file – /home/internet/.opera/urlfilter.ini

Szczegóły można znaleźć na http://www.opera.com/support/mastering/kiosk/#url-filter

Oto przykładowa zawartość pliku /home/internet/.opera/urlfilter.ini

[prefs]
prioritize excludelist=0

[include]

http://???.opera.com/*

[exclude]
*

Końcówka – uszczelnianie i automatyzacja

Uszczelniamy konfigurację xorg dodając na końcu (dzięki temu nie da się np. zabić xserwera oraz przełączyć na konsolę tekstową):

Section „ServerFlags”
Option „DontZap” „true”
Option „DontVTSwitch” „true”
Option „DontZoom” „true”
EndSection

Modyfikujemy .xinitrc do postaci:

opera -kioskmode -kioskresetstation -nocontextmenu -nodownload -noexit -nokeys -nomail -nomaillinks -nomenu -noprint -nosave -resetonexit  http://text.pl/

Szczegóły ustawień można znaleźć na http://www.opera.com/support/mastering/kiosk/

Automatyzacja wszystkiego:

w /etc/init/tty1.conf zmieniamy ostatnią linię do postaci:

exec /bin/login -f bakai < /dev/tty1 > /dev/tty1 2>&1

oraz w .bashrc dodajemy na koncu:

if [ $(tty) == "/dev/tty1" ]; then
startx > /dev/null
fi

Znane problemy:

1. W przypadku, gdy opera nie wykrywa poprawnie zainstalowanych modułów może pomóc:

instalacja brakującej biblioteki

aptitude install libnss3-1d

i/lub przekopiowanie modułu

cp /usr/lib/mozilla/plugins/nppdf.so /usr/lib/opera/plugins/nppdf.so

2. Opera nie pozwala na wprowadzanie polskich znaków.
Nie wiem dokładnie, co jest przyczyną, ale pomaga uruchomienie opery pod dowolnym, nawet minimalnym, managerem okien. Ja polecam 3: nodm, matchbox-window-manager oraz i3. Wszystkie są w repozytoriach, więc można je zainstalować za pomocą aptitude. Ja wybrałem i3 ponieważ pozwala łatwo wyświetlić „pasek stanu”, czyli i3bar, w dodatku w połączeniu z conky, który pozwala wyświetlać praktycznie wszystko poprzez zewnętrzne skrypty.

2a. Konfiguracja dla nodm:

edytujemy /etc/defaults/nodm do postaci

NODM_ENABLED=true
NODM_USER=<kiosk_user>
NODM_FIRST_VT=7
NODM_XSESSION=/etc/X11/Xsession
NODM_X_OPTIONS='-nolisten tcp'
NODM_MIN_SESSION_TIME=60

potem uruchamiamy jako usługę: /etc/init.d/nodm restart. Zaleta: nie trzeba kombinować z ustawieniami użytkownika ani „automatyzować”.

2b. Konfiguracja matchbox-window-manager:

Na początku pliku .xinitrc dodajemy

matchbox-window-manager &

2c. Konfiguracja dla i3

Na początku pliku .xinitrc dodajemy

i3 &

3. Opera nie blokuje wszystkich skrótów klawiatury:
Sytuację taką spotkałem przy wykorzystaniu managera okien i3. Rozwiązanie: dodajemy na początku pliku .xinitrc:

xmodmap -e „keycode 64 =” &xmodmap -e „keycode 115 =” &
xmodmap -e „keycode 116 =” &
xmodmap -e „keycode 117 =” &

3a. Część skrótów klawiaturowych przechwytuje i3. Należy zakomentować odpowiednie linie w pliku ~/i3/config

Efekty:

Czas uruchamiania od naciśnięcia włącznika do załadowania strony <30 sek. na komputerze celeron 1,7GHz 128MB.

Czas zamknięcia do wyłączenia zasilania <5 sek.

Alternatywa:

firefox + R-kiosk

chromium-browser kiosk mode

 

paź 25

Php w debianie używa biblioteki współdzielonej gd. Niestety, w takiej sytuacji część funkcji jest niedostępna – m.in. właśnie imagerotate().

Zobacz: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=298061

W takiej sytuacji można skompilować sobie całe php ręcznie, albo zbudować nowe paczki i zainstalować je metodą „debianową”. Aby to zrobić trzeba wykonać następującą sekwencję:

apt-get source libapache2-mod-php5
apt-get build-dep libapache2-mod-php5
cd php5-5.2.0/
sed -i 's/-with-gd=share,\/usr/-with-gd/' debian/rules
debian/rules binary
dpkg -i libapache2-mod-php5*.deb
paź 1

Załączony skrypt nie jest mojego autorstwa, znalazłem go kiedyś w sieci. Skrypt został napisany w perlu i wymaga Net::FTP.

#!/usr/bin/perl

use strict;
use Net::FTP;

my $host        = "ftp.hostname.com";
my $dir         = "/";
my $user        = "foo";
my $passwd      = "bar";
my $interval    = 3600*24*62; # 62 day
my $passive     = 1; # my FTP server only works in PASV mode
my $DEBUG       = 0;

my $ftp = Net::FTP->new($host,
 Debug => $DEBUG,
 Passive => $passive)
 or die "Can't open $host\n";
$ftp->login($user, $passwd) or die "Can't log in as $user\n";
$ftp->cwd($dir) or die "Can't chdir to $dir\n";
my @files = $ftp->ls("*.tar.gz");

foreach my $file (@files) {
 my $file_mdtm = $ftp->mdtm($file) or die "Can't find $file in $dir\n";
 if (time - $file_mdtm >= $interval) {
 print "File $file is older than $interval secs: deleted\n";
 $ftp->delete($file) unless $DEBUG;
 }
}
sty 17

Pod koniec roku producent ssl-explorera, firma 3SP, została kupiona przez Barracuda Networks. Mniej więcej w tym czasie znikła wersja Community (kod został zamknięty). Razem z wersją społecznościową znikła strona, forum i wszystko co z tym związane.

Na szczęście grupa zapaleńców na podstawie ostatniej otwartej wersji dokonała forka i tak powstał ADITO. Z kodu usunięto wszystko co nie jest wolne i wydano już pierwszą wersję. W najbliższym czasie postaram się bliże zapoznać z tym softem http://sourceforge.net/projects/adito.

 

tymczasowe linki (ku pamięci)

kamery.siedlce.pl

administrator-linux.siedlce.pl

administratorlinux.siedlce.pl

administratorwindows.siedlce.pl

administrator-windows.siedlce.pl

gru 19
Niepoprawne kodowanie polskich znaków.
Aby uzyskać poprawne kodowanie w panelu ISPConfig należy wy edytować /home/admispconfig/ispconfig/lib/config.inc.php i odnaleźć w nim wpis

<$go_info["theme"]["charset"] = "iso-8859-1"; ;/>

i zamienić go na

<$go_info["theme"]["charset"] = "iso-8859-2"; ;/>
paź 2

Ponieważ nie ma (nie udało mi się znaleźć) polskiej wersji językowej tego fajnego programu, postanowiłem sam wziąć się za tłumaczenie. Na pierwszy ogień poszedł interfejs użytkownika końcowego……

Mam już przetłumaczone (lepiej lub gorzej) kilkadziesiąt zwrotów związanych z logowaniem, atrybutami, profilami, miejscami sieciowymi…