This is an old page saved for posterity. It is no longer updated.
Opt OW (1-Wire Paket)
Um OWFS für den von mir eingesetzten Fli4l verfügbar zu machen, habe ich einige OWFS Binaries und Libs unter der uClibc kompiliert und in Form eines "offiziellen" Fli4l-Paketes zur Verfügung gestellt. So kann man den Fli4l auch als Hardware-Basis für die Haus-Automation benutzen.
Die "Hauptarbeit" im Paket erledigt mein CoDeV, Klaus Tiger. Er zeichnet für die Scripte und für das reibungslose Miteinander der einzelnen Paketbestandteile verantwortlich. Danke Klaus!
Das fertige Paket kann man hier herunterladen: OPT_OW
Für alle, die gerne unter der uClibC kompilieren und zur Erinnerung für mich selbst ;-), habe ich hier die einzelnen Schritte aufgelistet (Stand 09.2010):
Programme
1. FlI4L
Damit ich parallel unter Windows und Linux arbeiten kann,
läuft hier eine VirtualBox (3.1.4) mit Ubuntu (8.04.1) unter
WinXP. Selbstredend kann man auch (fast) jede andere Linux-Distri
verwenden, auch ein Dual-Boot-System ist möglich.
Wir benötigen das Buildroot
(fbr) und die Sourcen
(src), die mit FlI ausgeliefert werden. Wie man die Pakete
installiert und anwendet, steht auf der FlI4L-Homepage.
Auf meinem Rechner liegt das FLi-Buildroot im Pfad:
"/usr/local/fli4l/fbr-3.0.0" und die Sourcen im Pfad:
"/usr/local/fli4l/src".
2. OWFS
OWFS steht für 'One Wire File System'. Dabei handelt es sich
um eine von Paul H. Alfille entwickelte Software die unter der
GPL lizenziert ist. Auf Grundlage einer 1-Wire-Protokoll
verständigen Systembibliothek (OWLib) bildet OWFS den 1-Wire-Bus
als Dateisystem ab. Darüber hinaus bietet das Programm noch
weitere Implementierungen, wie owserver, owshell, owhttpd,
owftpd, owtap und Sprachmodule für capi, perl, tcl, php, die
jedoch in der hier vorliegenden Anpassung für Fli4L nicht
berücksichtigt wurden. Alles Weitere zu OWFS und viel
Interessantes zu 1-Wire findet man auf der: OWFS-Homepage.
Die Sourcen kann man hier herunterladen: OWFS-Download
3. Fuse
Fuse steht für 'Filesystem in userspace'. Fuse ermöglicht die Implementierung eines voll funktionsfähigen Dateisystems im Userspace. Alles weitere zu Fuse findet man auf der: Fuse-Projektseite.
4. Libusb
Bei libusb handelt es sich um eine freie, GPL-lizensierte USB-Bibliothek. Diese wird benötigt, um über einen USB-Adapter auf den 1-Wire-Bus zuzugreifen. Alles weitere zu libusb findet man auf der: Libusb-Projektseite.
Kompilierung
1.0 Fuse (2.7.4)
In /usr/local/fli4l/src/kernel-2.6
> ./mkkernel.sh –header -p cp \ /usr/local/fli4l/src/src/kernel-2.6/linux-2.6.16.62 \ /usr/local/fli4l/fbr-3.0.0/usr/local/fuse/linux-2.6.16.62 cp \ /usr/local/fli4l/src/src/kernel-2.6/dot-config-2.6.16 \ /usr/local/fli4l/fbr-3.0.0/usr/local/fuse/linux-2.6.16.62 ren dot-config-2.6.16 .configIm fbr-3.0.0 [fbr] /usr/local/fuse
> cd /usr/local/fuse/linux-2.6.16.62 > make prepare > cd /usr/local/fuse > tar -xf fuse-2.7.4.tar.gz > cd fuse-2.7.4 > ./configure \ --prefix=/usr/local/fuse/fuse-2.7.4/4fli \ --with-kernel=/usr/local/fuse/linux-2.6.16.62 > make > make installDie Dateien befinden sich in "/usr/local/fuse/fuse-2.7.4/4fli". Sie sollten jetzt noch gestrippt werden, vgl. Punkt 4.
2.0 Libusb (0.1.12)
Problem: Libusb greift auf den C++ Kompiler und die
entsprechenden Libraries zu. Diese sind aber in der mit FlI4L
ausgelieferten Toolchain nicht enthalten. Deshalb müssen wir ein
bisschen "basteln".
Im fbr-3.0.0 [fbr] /usr/local/libusb
> tar -xzf libusb-0.1.12.tar.gz > cd libusb-0.1.12 > patch < libusb.makefile.am.diff > aclocal > autoconf > automake > patch < libusb.configure.diff > ./configure --prefix=/usr/local/libusb/libusb-0.1.12/4fli > make > make installDie "diffs" sind als Links hinterlegt, bitte vorher herunterladen und in "/usr/local/libusb/libusb-0.1.12" abspeichern. Die kompilierten Dateien befinden sich jetzt in "/usr/local/libusb/libusb-0.1.12/4fli". Die Dateien sollten noch gestrippt werden, vgl. Punkt 4.
3.0 OWFS (2.7p35)
Problem: OWFS verwendet ab 2.7p29 "autoconf-1.11.1". Deshalb
muss vor dem "configure" ein "aclocal, autoconf, automake,
libtoolize und ein kleiner patch" durchgeführt werden. Diese
Schritte sind bis Version 2.7p28 _nicht_ erforderlich.
Im fbr-3.0.0 [fbr] /usr/local/owfs
> tar -xf owfs.xyz > cd owfs-xyz > aclocal > autoconf > automake > libtoolize –c –f patch “configure” row 5942 – after: Because of ‘break’ …“ - “if $ac_preproc_ok; then” + “if ! $ac_preproc_ok; then” > ./configure --prefix=/usr/local/owfs/4fli/x.y.z --with-libusb-config=/usr/local/libusb/libusb-0.1.12/4fli/bin/libusb-config --with-fuseinclude=/usr/local/fuse/fuse-2.7.4/4fli/include --with-fuselib=/usr/local/fuse/fuse-2.7.4/4fli/lib --disable-owftpd --disable-owtcl --disable-owcapi --disable-owmon --disable-owtap --disable-ownetlib --disable-ownet –disable-zero [--disable-swig --disable-owperl --disable-owphp --disable-owphyton --disable-owshell --disable-owserver --disable-owhttpd] === to start optional static linking === --disable-shared *or* –-enable-static === end optional static linking === > make > make install
3.1 OWFS (ab 2.7p36) (libow.* uses ’round’, but no ref. in
gcc-3.4.4)
!to do! include round.
4.0 strip binaries and libs
> strip -R .comment -R .note "Datei" or just "*"
5.0 install fuse (in fli4l automatically)
> mknod /dev/fuse c 10 229
6.0 finito la musica!
FlI4L
Opt OW
Dieses Paket installiert das OWFS (One-Wire-File-System) und
bietet so lesenden und schreibenden Zugriff auf einen an den
Fli4L kontaktierten 1-Wire Bus.
Hierzu wird ein 1-Wire Busmaster an eine serielle
Schnittstelle, einen USB Port oder einen I2C Adapter des PC
angeschlossen. An die 1-Wire-seitige Buchse des entsprechenden
Adapters wird dann der eigentliche 1-Wire Bus angelegt.