Results for category "ckl-net"

41 Articles

MLG: Präsenzklausur bestanden / Spielzeug bestellt / Kernel-Patch

Ich wurde bereits heute darüber informiert, dass ich das Modul Mathematisch-logische Grundlagen mit einer Note von 1.0 bestanden habe. In der Präsenzklausur habe ich 83% erreicht – ich vermute, dass der Punktabzug durch die Vollständige Induktion und der ersten Aufgabe zustande kommt – durch meine Bonuspunkte konnte ich die fehlenden Prozent zur 1.0 aber ausgleichen. Somit ist also das dritte Modul bestanden. Für mich folgt als nächstes Modul Web-Design und -Ergonomie, dass ich hoffentlich zum nächsten außerordentlichen Klausurtermin am 14.08.2009 beenden kann.

Mein heutiger Tag war relativ hektisch: Heute Vormittag war ich in Osnabrück und habe mir das Kolloquium von Sarah angeschaut, danach ging es in die Firma, dann zum Training und schließlich zur Bandprobe.

Als “Belohnung” für die bestandene Klausur – von der ich während des Kolloquiums per Email (es lebe Active Sync) erfuhr – habe ich mir heute Abend neue Hardware für das ckl-net bestellt, da mein “altes” Embedded Board mittlerweile nicht mehr meinen Zwecken genügt. Somit habe ich dann ein Zotac ION ITX B anstatt des von mir erst angedachten MSI IM 945GSE bestellt, zuzüglich fanless Netzteil von Fortron und Bluetooth Tastatur. Ich freue mich wieder auf’s Frickeln 😉

Die letzten beiden Abende verbrachte ich damit, auf meine Wii Homebrew Software zum Laufen zu bringen. War an sich auch schnell gemacht. Allerdings hatte ich das Problem, dass der SD-Kartenleser meines alten Notebooks (Tagra Vision 811) unter Ubuntu zwar erkannt wurde, ich aber keine Daten darauf schreiben konnte. Mit einem externen Kartenleser funktionierte das Schreiben sowohl unter Windows als auch unter Linux. Für mich stand also fest, dass meine SD-Karte völlig funktionsfähig war.
Theoretisch hätte ich das Problem dabei bewenden und mir meine Homebrew über den externen Kartenleser auf die Karte kopieren lassen können. Aber wie das so ist: Man möchte ja das Problem auch beheben, um ein Erfolgserlebnis zu haben.
Deshalb habe ich mir die letzten Sourcen des Linux Kernels geschnappt und die im SCSI-Treiber – das SCSI-Subsystems ist für das Lesen von SD-Medien zuständig – verankerten Überprüfungen, ob ein Medium schreibgeschützt ist, deaktiviert.

Nach der Kompilierung des Kernels funktionierte auch das Schreiben auf die SD-Karte.

Und zu guter letzt noch eine Werbung in eigener Sache: Christoph hat heute das Active Directory Plugin für WordPress veröffentlicht. Klasse Sache und funktioniert sogar 🙂

Upgrade von ckl-embedded auf Ubuntu 8.10

Heute Nachmittag habe ich mein Embedded-Board auf Ubuntu 8.10 geupgradet. Während des Ladens des Kernels 2.6.27-9 bekam ich aber die Fehlermeldung Gave up waiting for root device. Danach wurde eine Busybox gestartet. Wenn ich in der Busybox wiederum “exit” eingab, wurde Ubuntu 8.10 ganz normal gestartet.
Das Problem hängt mit meiner CF-Karte zusammen. Sie braucht zu lange, um vernünftig vom Kernel angesprochen zu werden. Deshalb muss als Kernel-Parameter rootdelay=180 eingetragen werden. Alle anderen Werte waren für das Geode-Board zu niedrig.
Nun läuft bei mir das Board mit DMA-33 für die IDE-Disk und PIO für die CF-Karte. Sehr erfreulich.

Notebook-Upgrade auf Ubuntu 8.10

Gestern Abend habe ich mein Notebook auf Ubuntu 8.10 geupdatet.
Nach dem Update lief mein WLAN-Chip nicht mehr, dmesg lieferte

ipw2200-bss.fw request_firmware failed: Reason -2
Unable to load firmware: -2
failed to register network device
...
ipw2200: probe of 0000:03:03.0 failed with error -5

Damit die WLAN-Karte wieder funktioniert:

apt-get install linux-firmware

Weiterhin wird mir beim Starten die Konsole nicht angezeigt. Es erscheinen nur Streifen auf dem Bildschirm – sobald X bzw. Gnome gestartet wird, läuft alles prima. Ich qoute mal von http://www.ubuntuforum.de/post/161838/erledigt-bzw-ungel%C3%B6st-virtuelle-konsole-funktioniert-nicht-ganz.html?highlight=blacklist+vesafb#post161838:

in /etc/initramfs-tools/moduels gehen,
dort als Eintrag fbcon und vesafb einsetzen.
Dann in der /etc/modprobe.de/blacklist-framebuffer eine Zeile mit vesafb suchen, die ausklammern ( # ). Dann ein
sudo update-initramfs -u machen.

Dann mit hwinfo –framebuffer die korrekte Werte auslesen,
diesen Wert in die /boot/grub/menu.list einsetzen, ein update grub nicht vergessen.
Dann rebooten und siehe da esklappt.

Edith: Obige Lösung funktionierte bei mir nicht, ohne dass ich vorher meinen Kernel auf die 2.6.27-7 updatete:

apt-get install linux-image-2.6.27-7-generic

Nun funktioniert wieder alles.

An Weihnachtsmann: Wünsche mir ein Intel Atom-Board mit…

… DVI-Ausgang (hat der Shuttle X27, Asus EEE Box und das MI800), PCI/PCI Express-Schnittstelle (hat der Shuttle X27 und die Asus EEE Box nicht, MI800 schon), passiv gekühlt (sind weder X27, Asus EEE Box noch MI800 – dafür aber ein Board von ECS) und mit einem 12V-Netzteil (hat nur das MI800) – der Preis darf dafür nicht über 80€ liegen (MI800 kostet über 250€ exkl. MwSt.).

Also, falls wer ein Intel Atom-Board mit 1.6 GHz, PCI(x)-Schnittstelle, DVI-Ausgang für bis zu 80€ findet: Bitte melden!

Neuer Server im ckl-net?

Die Anforderungen an meinen Embedded-Server sind gestiegen, deshalb schaue ich mich momentan nach neuer Hardware um:

Fortron-Source Zen fanless 300W ~80€
ECS 945GCT-D (Intel Atom 1.6Hz) ~60€
2 * 1GB DDR II 400/533 je ~30€ = 60€

Eine Entscheidung bezüglich der SATA-Fesptplatte habe ich noch nicht getroffen. Wird vermutlich eine sparsame 500 GByte HDD sein. Am liebsten wäre mir 2.5″, allerdings sind die nicht ganz billig.
Men Preislimit liegt bei ~250€.

Edith: Als Festplatte könnte eine Western Digital WD5000AACS 500 GB (~55€) zum Einsatz kommen.

Edith 2: Anstatt Board & Netzteil einzeln zu kaufen, könnte ich mir auch einen Shuttle X27 als Basis vorstellen. Vorteil ist: 60 Watt Netzteil ist dabei, das Board hat DVI-Anschluss und außerdem habe bekomme ich dafür sogar noch ein Gehäuse. Bei http://www.mix-computer.de würde ich dafür 207€ löhnen + 25€ für 2 DDR2-Riegel + 55€ für die WD5000AACS = 287€.

Bootcamp 09/2008 eröffnet

Marci ist mit seinen Sachen vor einigen Minuten hier aufgeschlagen und somit kann das Bootcamp bei mir in der Bude losgehen.
Für heute Abend haben sich Timo und Julian angemeldet.
Wer vorbei schauen will, soll sich bitte vorher per Handy / SMS bei mir melden.

PHP-Scripts unter Ubuntu / Apache als root ausführen

Für das ckl-net bzw. meinem Webserver habe ich heute Abend ein kleines Admin-Script geschrieben, mit dem ich MPD und Icecast starten, stoppen und beenden kann.
Damit das Script funktioniert, muss man in der /etc/sudoers folgendes eintragen:

www-data ALL=NOPASSWD: /usr/local/bin/service-wrapper

Damit kann der Benutzer www-data ohne Passwort mit root-Rechten das Script /usr/local/bin/service-wrapper ausführen. service-wrapper an sich ist nur ein kleines Wrapper-Script zum Kotrollieren der Daemons:

#!/bin/sh
/etc/init.d/$1 $2

Das PHP-Script muss nun das Wrapper-Script aufrufen:

<?php
exec("/usr/local/bin/service-wrapper $servicename $status")
?>

Multimedialer Umbau im ckl-net

Nachdem ich nun meinen neuen Rechner vor zwei Wochen geliefert und eingerichtet habe, sitze ich nun auch wieder öfter vor dem PC. Die letzten Monate verbrachte ich hauptsächlich am Notebook und erledigte dort meine Arbeiten.

Wie aus den Anfangstagen des Blogs vielleicht noch bekannt ist, habe ich einen alten Rechner als Medienserver eingerichtet und diesen über LWL an meine Steroanlage angebunden. Allerdings liegen alle aktuellen Lieder auf meinem Embedded-Server, der sowieso die ganze Zeit über läuft. Der kleine Server steht direkt neben der Stereo-Anlage und somit liegt nichts ferner, als beide miteinander über 3,5-Klinke zu verbinden.
An sich kein Problem. Ich wollte nun aber auch wieder meine MP3s an meinem neuen PC hören. Die Möglichkeit, per NFS auf die Dateien zuzugreifen, besteht – finde ich aber persönlich nicht schön. Ich will nämlich gerne bei Parties auch MP3s hören und dafür müssten dann zwei verschiedene Systeme laufen (Medienserver und Embedded-Board).

Nach einigem Überlegen bin ich zu dem Schluss gekommen, dass meine MP3s zentral auf dem Embedded-Board liegen. Das Board wird über Klinke an die Stereoanlage angeschlossen. Musik wird live sowohl an die Soundkarte ausgegeben, als auch per Icecast als OGG-File gestreamt. Die Musik möchte ich sowohl mit meinem Handy, mit meinem Notebook als auch mit meinem N770 ändern können.

Nichts lag nun ferner, als auf altbekanntes zurückzugreifen: MPD hatte mich vor einem Jahr schon begeistert. Die Installation erfolgte mit einem einfachen

apt-get install mpd

.
/etc/mpd.conf muss folgendermaßen angepasst werden:

music_directory         "/share/public/mp3"
playlist_directory      "/share/public/playlists"
db_file                 "/var/lib/mpd/tag_cache"
log_file                "/var/log/mpd/mpd.log"
error_file              "/var/log/mpd/errors.log"
pid_file                "/var/run/mpd/pid"

audio_output {
        type                    "shout"
        name                    "$FILE"
        host                    "$IP"
        port                    "8000"
        mount                   "/mpd.ogg"
        password                "$ICECAST_PASSWORT"
        quality                 "5.0"
        format                  "44100:16:1"
}

Dadurch werden alle Medien-Dateien im Verzeichnis /share/public/mp3 automatisch an den Icecast-Server gesendet. Der Stream ist dann unter $IP:800/mpd.ogg für die Clients verfügbar. Es kann übrigens entweder bitrate ODER quality gesetzt werden. Beides funktioniert nicht.

Als nächstes folgte ein

apt-get install icecast2

.
Hier muss auch wieder die Konfiguration /etc/icecast2/icecast.xml angepasst werden. Die wichtigen Einträge sind:

    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>$ICECAST_PASSWORT</source-password>
    </authentication>

    <listen-socket>
        <port>8000</port>
        <bind-address>$IP</bind-address>
    </listen-socket>

    <mount>
        <mount-name>/mpd.ogg</mount-name>
    </mount>

Mit den Einstellungen kann MPD die Daten an Icecast senden.
Icecast veröffentlich den Stream dann unter /mpd.ogg
$ICECAST_PASSWORT muss logischerweise in beiden Konfigurationen identisch sein.
Außerdem muss -wenn Icecast als Daemon gestartet werden soll- in der Datei /etc/default/icecast2 ENABLED auf “true” gesetzt werden.

Nun muss zuerst Icecast, danach dann MPD gestartet werden

/etc/init.d/icecast start
/etc/init.d/mpd start-create-db

MPD muss beim ersten Start die MP3-Datenbank initalisieren, was je nach Umfang der MP3s ein paar Minuten dauert.

Mit

apt-get install ncmpc

lässt sich ein einfach NCurses-basierender Client installieren. Über

ncmpc -h $IP

kann man sich nun mit dem MPD verbinden und Dateien abspielen.

An meinem Client kann ich nun z.B. in Winamp die URL $IP:8000/mpd.ogg öffnen und höre die gerade abgespielte Datei.
Neben ncmpc existieren natürlich noch viele weitere Clients, z.B. Pitchfork, der auf Apache/PHP basiert.

Soweit bietet das Tutorial nicht viel Neues – viel steht auch im Wiki von ubuntuusers.de. Ich will nun aber einen Schritt weiter gehen. Mit meinem Handy möchte ich nun die MP3s abspielen. Pitchfork bietet zwar diese Möglichkeit, allerdings ist mein P910i nur begrenzt XHTML fähig, so dass ich da lieber etwas netteres hätte.
Auch hier kann ich auf alt-bekanntes zurückgreifen: Bemused ist eine Client-/Server-Software. Der Client läuft auf Symbian-Handys – also auch auf meinem P910i. Installieren musste ich diesen nicht weiter, der war noch auf meinem Handy.
Der Server allerdings unterstützt standardmäßig nur das Abspielen, wenn XMMS bzw. noXMMS als Music Dispatcher läuft. Glücklicherweise gibt es unter http://bemused-lnx-mpdhack.origo.ethz.ch/download/513 einen Patch, der Bemused MPD fähig macht.

Die Installation erfordert ein paar mehr Schritte:

cd /tmp
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.tar.gz
tar -xvzf libiconv-1.11.tar.gz
cd libiconv-1.11.tar.gz
./configure
make
make install-lib
# Folgendes war nur bei mir nötig
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/i486-linux-gnu/libiconv.so.2

# noXMMS hat zwar viele Dependencies, aber egal
apt-get install xmms-dev
apt-get install libbluetooth2-dev

wget http://download.origo.ethz.ch/bemused-lnx-mpdhack/513/bemused-mpd-r060.tar.gz
tar -xvzf bemused-mpd-r060.tar-gz
cd bemused-mpd-r060
make
cp bemused.conf /etc/
cp bemusedlinuxserver /usr/bin

Das passende start-stop-Script für Bemused gibts hier im Blog.
Wenn am Board ein Bluetooth-Stick angeschlossen ist, kann nach dem Start von Bemused (./bemusedlinuxserver) die Dateien in der MPD-Library direkt über den Bemused-Client vom Handy aus angetriggert werden.

Zugriff auf meine Dateien

Heute habe ich seit einiger Zeit mich mal wieder mit meinem Server befasst. Ursprünglich war für heute Abend geplant, dass ich vom NFS-Protokoll auf WebDAV umschwenke. NFS hat für mich das Problem, dass der NFS-Dienst für Windows (SFU) nicht ganz rund läuft und ich außerdem aus der Firma nicht an meine Dateien heran komme.
Deshalb wollte ich Apache + WebDAV über SSL für den Zugriff nutzen. Nachdem ich alles eingerichtet hatte -was recht fix ging- musste ich leider feststellen, dass die Übertragungs-Performance mehr als mies ist: mehr als knapp 120 KByte gingen nicht über die Leitung.

Deshalb kam ich zu dem Entschluss: Weg von NFS, weg von WebDAV – hallo SFTP! Problem dabei -weswegen ich auch WebDAV einsetzen wollte-: mit den Clients SftpDrive oder WebDrive kann man zwar SFTP-Ressourcen als Laufwerk unter Windows mounten, aber sie kosten Geld.
Nach ein paar Minuten stöbern bin ich über diesen Blog-Eintrag gestolpert, in dem Reddrive erwähnt wird. Ist kostenlos und bindet ein SFTP-Laufwerk im Windows Explorer ein.