OWFS Design
OWFS Features
OWFS Software
Examples & Usage
|
Installing and Upgrading OWFS
How to get OWFS working on your system
- Make sure you have the right platform Basically, Linux works.
BSD might work, but only for the web stuff. Windows doesn't.
- Linux
- All developement and testing has been performed on Linux.
- Multiple processors (i386, MIPS, Coldfire) have been
shown to work
- FUSE, the userspace filesystem requires kernel version
2.4 or greater
- glibc and uClibc have been shown to work.
- SuSE (8.1, 9.0, 9.1)
- Debian
- Slackware
- Redhat/Fedora
- Unix or BSD
- Unix and BSD have POSIX compliance
- owhttpd should
work. owfs needs FUSE, which is currently linux-specific.
- Thread, mutex and process differences should be handled
by the configuration process.
- Libusb is supported on these platforms
- The code has no processor-specific limitations.
- Windows
- Sorry, owfs doesn't run under Windows.
- There is no analog (at least no free open source one)
to FUSE for user-mode filesystems.
- USB and serial ports are handled differently.
- Threads and socket handling are slightly different.
- Porting owfs wouldn't be too difficult except for the
FUSE problem.
- Numerous Windows 1-Wire programs exist. 1Wire-org 1Button.com
- Mac OS/X
- OS/X has not been tested.
- It should be similar to BSD with POSIX compliance.
- owhttpd should work. owfs needs FUSE, which is currently
linux-specific.
-
Check prerequisites
To compile you need
standard tools: gcc, make, autoconf.
To use USB you need libusb. Modern distributions include this stuff.
You also need FUSE (see next section).
- C compiler: Use gcc. It's the only one tested, and FUSE is
a kernel module which requires gcc. Test presence with
gcc
--version
- Autoconf. Version 2.57 or greater. Test with
autoconf
--version
- libusb to use USB adapters
- test with
find
/usr/lib -name "libusb.*"
- Obtain from libusb
project site.
- If libusb is not available, configuration will proceed,
but USB support will not be available. You will be informed during the
configuration process.
-
FUSE
Fuse is needed for owfs
(but not owhttpd). It is a kernel module and associated programs and
libraries. Fuse needs to be downloaded and installed. It is not
standard with any Linux distribution.
- Obtain source from the fuse
website.
- Get newest version with cvs
- choose a location for the fuse source-code, like
/usr/local
- cd /usr/local (we will use it as the selection in these
instructions)
- run
cvs
-d
:pserver:anonymous@cvs.sourceforge.net:/cvsroot/fuse co fuse
- source code will be downloaded to directory
/usr/local/fuse
- Update later if wanted
- cd /usr/local/fuse
- cvs
update -R
- Configure and compile\
- cd /usr/local/fuse (or whereever you fuse source is
located)
- Pre-configure by running
./makeconf.sh
- configure with
./configure
- install with
make
install
- Fuse will need to be recompiled whenever your Linux kernel
version changes
- Some distributions, like SuSE do this frequently for
securty updates
-
OWFS from source
Simply put, download using
CVS, then ./bootstrap, make, make install
- Obtain source from owfs
website
- Get newest version with cvs
- choose a location for the owfs code like /usr/local
- cd /usr/local (we'll use this location for the examples)
- run
cvs
-d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/owfs co owfs
- source code will be downloaded to directory
/usr/local/owfs
- Update later if desired
- Configure and compile
- cd /usr/local/owfs (or whereever you downloaded the code)
- ./bootstrap
- ./configure (only needed if you use special
options -- see below)
- make
- make
install
-
Configuring
Only needed if special
features are needed. Usually the default settings will be fine.
- Run in /usr/local/owfs (or whereever owfs source code was
placed with
./configure
[options]
- Most common settings
--enable-owfs
|
--disable-owfs
|
Should the filesystem
(fuse-dependent) program be built? Default true unless the fuse library
was not found.
|
--enable-owhttpd
|
--disable-owhttpd
|
Should the web server be
built?
|
--enable-owftpd
|
--disable-owftpd
|
Should the (currently
non-functional) ftp server be built?
|
--enable-cache
|
--disable-cache
|
Temporarily store 1-wire
properties to speed responsiveness of system? See caching page.
|
--enable-usb
|
--disable-usb
|
Include USB support?
Requires libusb.
|
--enable-mt
|
--disable-mt
|
Multithreaded model.
Increased speed with simultaneous processes requesting data from the
1-wire bus. Enable unless very constrained memory or very slow process
using the bus.
|
- Full
./configure
--help
`configure' configures
this package to adapt to many kinds of systems.
Usage: ./configure
[OPTION]... [VAR=VALUE]...
To assign environment
variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See
below for descriptions of some of the useful variables.
Defaults for the options
are specified in brackets.
Configuration:
-h,
--help
display this help and exit
--help=short display options
specific to this package
--help=recursive display the short help of all the
included packages
-V,
--version
display version information and exit
-q, --quiet,
--silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C,
--config-cache alias for
`--cache-file=config.cache'
-n,
--no-create do not
create output files
--srcdir=DIR find the sources
in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install
architecture-independent files in PREFIX
[/opt/owfs]
--exec-prefix=EPREFIX install architecture-dependent files
in EPREFIX
[PREFIX]
By default, `make
install' will install all the files in
`/opt/owfs/bin',
`/opt/owfs/lib' etc. You can specify
an installation prefix
other than `/opt/owfs' using `--prefix',
for instance
`--prefix=$HOME'.
For better control, use
the options below.
Fine tuning of the
installation directories:
--bindir=DIR
user executables [EPREFIX/bin]
--sbindir=DIR
system admin executables [EPREFIX/sbin]
--libexecdir=DIR program
executables [EPREFIX/libexec]
--datadir=DIR
read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only
single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent
data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data
[PREFIX/var]
--libdir=DIR
object code libraries [EPREFIX/lib]
--includedir=DIR C header files
[PREFIX/include]
--oldincludedir=DIR C header files for non-gcc
[/usr/include]
--infodir=DIR
info documentation [PREFIX/info]
--mandir=DIR
man documentation [PREFIX/man]
Program names:
--program-prefix=PREFIX
prepend PREFIX to installed program names
--program-suffix=SUFFIX
append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on
installed program names
System types:
--build=BUILD configure for building on BUILD
[guessed]
--host=HOST cross-compile to build
programs to run on HOST [BUILD]
Optional Features:
--disable-FEATURE do not include
FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking Speeds up one-time builds
--enable-dependency-tracking Do not reject slow dependency
extractors
--enable-shared[=PKGS]
build shared libraries [default=yes]
--enable-static[=PKGS]
build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-owfs Enable
owfs module (default auto)
--enable-owhttpd Enable owhttpd module
(default true)
--enable-owftpd Enable owftpd
module (default true)
--enable-cache Enable caching (default
true)
--enable-usb
Enable 1-Wire usb DS2490 support (default auto)
--enable-mt
Enable multithreading support (default true)
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use
PACKAGE (same as --with-PACKAGE=no)
--with-gnu-ld
assume the C compiler uses GNU ld [default=no]
--with-pic
try to use only PIC/non-PIC objects [default=use
both]
--with-tags[=TAGS]
include additional configurations [automatic]
Some influential
environment variables:
CXX C++ compiler command
CXXFLAGS C++ compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if
you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++ preprocessor flags, e.g. -I<include
dir> if you have
headers in a nonstandard directory <include dir>
CC C compiler
command
CFLAGS C compiler flags
CPP C preprocessor
CXXCPP C++ preprocessor
F77 Fortran 77 compiler
command
FFLAGS Fortran 77 compiler flags
Use these variables to
override the choices made by `configure' or to help
it to find libraries and
programs with nonstandard names/locations.
- Compiling
- Installing
- Running
- OWFS from binaries
- OWFS light
- OWFS fast
|