Montag, 19. Januar 2009

nwal002 [zentrales syslog / syslog-ng]

mit wachsender peripherie innerhalb der it, stellt sich irgendwann die frage ob ein zentrales logging diverser hard/software-schichten nicht von vorteil wäre. untermauert wird jenes argument durch die tatsache, dass meine nslu2-devices zum teil nur durch einen memory stick betrieben werden, eine exzessives lokales logging zu io waitstates führen würde. hängt an einem dieser devices eine usb-festplatte spricht nichts dagegen, events, logging-einträge und protokolle an dieses gerät mittels udp zu übertragen.
man findet als eine freie implementierung [open source] eines syslog-servers unter linux syslog-ng. die installation ist unter slugos/be native als paket unter dem optware feed gegeben, und die durchführung dessen verläuft unspektakulär.


# ipkg install syslog-ng
# /etc/init.d/syslog stop
# ln –s /opt/etc/init.d/opt_syslog /etc/rc3.d /S02syslog

der syslog-ng server horcht nun unter port 514 [ syslog udp default port ] auf events von syslog-ng clients. es empfiehlt sich gewisse anpassungen unter /opt/etc/syslog-ng/syslog-ng.conf hinsichtlich was geloggt werden soll, zu tätigen. auf der client seite wird /etc/syslog.conf file lediglich um folgende einträge erweitert.


DESTINATION="remote"
REMOTE=nwal002:514

im zusammenhang mit syslog-ng empfiehlt sich der einsatz von logrotate, welches ebenso standardgemäß im optware feed als package angeboten wird. /opt/etc/logrotate.conf ist in meinem fall so konfiguriert. [ rotiere einträge älter als 5 tage ]


nocompress
/opt/var/log/* {
rotate 5
size 100k
postrotate
/opt/etc/init.d/opt_syslog stop
/opt/etc/init.d/opt_syslog start
endscript
}
include /opt/etc/logrotate.d

und das rotieren läuft als cronjob
15 0 * * * /opt/sbin/logrotate /opt/etc/logrotate.conf &>/dev/null

von nun an loggen meine nslu2-devices und mein d-link router alles zentral.
syslog-ng unter slugos/be

Donnerstag, 15. Januar 2009

nwal003 [wake on lan und linksys dma 2200]

linksys dma 2200 und wake on lan

ein bedeutender nachteil des linksys dma 2200 extenders ist das nicht-vorhanden-sein eines wake on lan features innerhalb der existierenden firmware. was nützen stromsparpläne eines vista media servers [vmc], wenn der extender nicht in der lage ist, diesen aus seinem ruhezustand zu erwecken. während dies mit der x-box 360 bereits initial berücksichtigt wurde, haben die firmware-entwickler von linksys [cisco] bereits resigniert, denn das gerät ist bereits seit mehr als 2 jahren auf dem markt erhältlich.
mein beitrag zu diesem problem war ein pragmatischer. da ich mehrere nslu2-devices am laufen habe, war es kaum eine herausforderung einen entsprechenden dämon zu implementieren, der genau dieses gewünschte feature abbildet. eine denkbar einfache logik, die in einem perl-script entwickelt wurde.


hier script downloaderdas eigentliche script gibt es einfach hier zum download [click auf grafik !]
perl script [wol2.txt] sollte umbenannt werden auf [wol2.pl]
 


bootet der extender bekommt er vom dhcp-server eine fixe ip-adresse zugeordnet. sobald diese adresse in meinem lan erreichbar ist [check von nslu2 / net::ping ], sendet eben das kleine linux device den wake on lan zum mediaserver. dannach kann bequem im menu des extenders das windows media center aufgerufen werden und die kommunikation funktioniert.
ein ‚status’-semaphore verhindert das erneute senden eines wol requestes.

:) enjoy

Dienstag, 13. Januar 2009

nwal002 [mjpg streams and slugos]

logitech quickcam pro 9000 and slugos
vor mehr als 2 monaten hatte ich den wunsch, live-bilder von meinem wohnzimmer aus ins internet zu streamen. hardware hatte ich schnell gefunden, die logitech quickcam pro 9000 sollte meine bedürfnisse abdecken, zumal hd-qualität [1600x1200] unterstützt wird.
leider gibt es unter dem derzeitigen kernel [2.6.21.7] von slugos 4.8 keine oder nur mangelhafte v4l [video for linux] unterstützung und die suche nach dem passenden treiber wurde zu einem hürdenlauf. dennoch läuft bei mir seit heute erfolgreich ein mjpg streamer server dienst unter slugos. legt man auf die distro weniger wert, findet man unter diesem blog bereits ein binary firmware image basierend auf openwrt für die nslu2. hier eine anleitung für all jene die slugos als zielplattform haben.
wir werden die v4l sourcen gegen den aktuell laufenden kernel kompilieren. innerhalb dieses paketes gibt es auch den passenden treiber [ http://linux-uvc.berlios.de/ ] für die logitech quickcam pro 9000.
der reihe nach - wir stecken die camera am usb hub der slug an. lsusb erkennt das device sofort und meldet:


# lsusb –s 2:4 -v
Bus 2 Device 4: ID 046d:0990 Logitech, Inc.
somit kommen wir zur treiberinstallation. download des archives

# wget http://linuxtv.org/hg/~pinchartl/uvcvideo/archive/tip.tar.gz
# gzip –d tip.tar.gt
# tar xvf tip.tar

dannach ins ausgepackte archiv wechseln

# cd uvcvideo-33fd4f6f3afa
# make
# make install

um erfolgreich zu kompilieren wird eine aktuelle linux-src-umgebung vorausgesetzt, zudem benötigt man eine ‚cross-compile-umgebung’ [benötigte packages mittels ipkg zu installieren - autoconf, automake, cpp, g++, g++-symlinks, gcc, glibc-utils, gnu-config, kernel-dev, ldd, libgcc, libglib, make, makedevs, ncurses, ncurses-dev, update-modules ]. ausserdem um kernel module zu kompilieren – git und svn [optware repository].


linux sourcen installieren:

# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.7.tar.gz
# gzip –d linux-2.6.21.7.tar.gz
# tar –xvf linux-2.6.21.7.tar
# ln –s /usr/src/ linux-2.6.21.7 linux
# ipkg install kernel-dev
# cp /boot/ config-2.6.21.7 /usr/src/ linux/.config

damit eventuelle referenzen des treiberpaketes [uvc] auf native kernel-objects gelinkt werden können, kompilieren wir alle kernel-module [nativ auf der slug dauert das etwas ~2h]



# cd /usr/src/linux
# make menuconfig
# make modules

jetzt haben wir unter /lib/modules/2.6.21.7/kernel/drivers/media/video die aktuellen kernel-module der video4linux umgebung, und diese werden von nun an in das memory geladen.



# cd /lib/modules/2.6.21.7/kernel/drivers/media/video
# insmod v4l2-compat-ioctl32.ko
# insmod v4l1-compat.ko
# insmod videodev.ko

… der erste erfolg dmesg liefert
Jan 10 12:07:43 nwal002 Linux video capture interface: v2.00 - von nun an haben wir unser device [ /dev/video0 ]

# cd uvc
# insmod uvcvideo.ko


Jan 10 12:08:36 nwal002 uvcvideo: Found UVC 1.00 device (046d:0990)
Jan 10 12:08:36 nwal002 input: UVC Camera (046d:0990) as /class/input/input4
Jan 10 12:08:36 nwal002 usbcore: registered new interface driver uvcvideo
Jan 10 12:08:36 nwal002 USB Video Class driver (v0.1.0)

die installation etwaiger kompatibler softwarepakete [ http://www.quickcamteam.net/software/linux/v4l2-software ] verläuft unspektakulär. recht schnell findet man sich mit uvccapture-0.5, uvc-streamer und eben mjpg-streamer zurecht.
von nun an läuft
# ./mjpg_streamer -o "output_http.so -w `pwd`/www" -o "output_file.so -f pics -d 300000"
als daemon unter non-root-user [ ! /dev/video sollte gruppen berechtigung write gesetzt haben! ] und schreibt zudem alle 5 minuten ein statisches bild, wie z.b. hier. blick auf die reichsbrücke in 1020 wien
um den mjpg stream zu genießen [mozilla firefox], browser auf
http://80.109.78.83:443/webcam/ [user:walcherstrasse17, pwd: webcam] und
geniessen...