OWFS with Ubuntu Linux (10.04 LTS lucid) and Debian Linux (5.0 Etch and 6.0 Squeeze)

OWFS is a FUSE filesystem for 1-wire network. For more information about OWFS please browse OWFS homepage.

This documentation describes how I built and installed OWFS. My task is to read temperature measures from DS18S20 components. The network is based on a DS9490R USB interface. There is a well-known temperature sensor reader DigiTemp but for some reason it turned out to be less reliable for my USB interface. Thus, I wanted to try another solution.

FUSE installation

OWFS depends on FUSE and it packaged packaged. Since I had all development tools (automake, autoconf, gcc, etc.) already installed, i just had to install some packages:
# apt-get install fuse-utils libfuse-dev libusb-dev

OWFS building and installation

  1. Download OWFS source (OWFS download page). While writing, the latest version is 2.8p2 and it was used.
  2. Untar package and cd to the source directory
    $ tar --get -z <owfs-2.8p2.tar.gz
    $ cd owfs-2.8p2
  3. Since I had wanted just the filesystem module with usb support without any other OWFS features I used following parameters for the configure script:
    $ ./configure --disable-tai8570 --disable-thermocouple --disable-ha7 \
    --disable-owhttpd --disable-owftpd --disable-swig --disable-owperl \
    --disable-owphp --disable-owpython --disable-owtcl --disable-zero \
    --enable-usb --disable-parport
  4. Ready to compile:
    $ make
  5. Install (as root):
    # make install
All binaries are now installed at /opt/owfs/bin/.

Testing

As I told above, I want to read temperature measurements from DS18S20 behind an USB interface. As root:
# mkdir /tmp/1ws
# /opt/owfs/bin/owfs -u /tmp/1ws/
DEFAULT: ow_usb_msg.c:DS9490_open(263) Opened USB DS9490 bus master at 3:2.
DEFAULT: ow_usb_cycle.c:DS9490_ID_this_master(191) Set DS9490 3:2 unique id to 81 F7 17 2D 00 00 00 9D
# ls /tmp/1ws
10.9207A5010800 alarm settings statistics system
81.F7172D000000 bus.0 simultaneous structure uncached
# cat /tmp/1ws/10.9207A5010800/temperature
21.3125
# umount /tmp/1ws
Looks good! I created a mount point under /tmp, mounted the 1-wire network with owfs from USB (-u) to /tmp/1ws and looked for its content. The directory 10.9207A5010800 was my temperature sensor and it contains a file "temperature" with the current temperature reading. Finally, I unmounted the OWFS filesystem.

References

Updated: 29-SEP-2010 / Matti Lattu