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 .config
               
Im 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 install
               
Die 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 install
               
Die "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.