In terminal:
wget http://palsbo.net/rep/owfs.inst.sh sudo sh owfs.inst.sh
This will install the following:
For further configuration, see /opt/owfs/owfs.conf
For compilation, update and install requirements:
apt-get update apt-get upgrade -y
apt-get -y install automake autoconf autotools-dev gcc-4.7 libavahi-client-dev libtool libusb-dev apt-get -y install libusb-1.0-0-dev libfuse-dev swig python2.7-dev tcl8.6-dev php5-dev i2c-tools fuse
Get source:
Compile:
./configure make -j 4 make install
This will install top /opt/owfs
Create start-on-boot scripts:
sudo nano /etc/init.d/owserver
Insert the following in the file
#!/bin/sh ### BEGIN INIT INFO # Provides: owserver # Required-Start: $remote_fs $syslog $network $named # Required-Stop: $remote_fs $syslog $network $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: 1-wire TCP server # Description: Start and stop a TCP server for 1-wire control. ### END INIT INFO CONFFILE=/etc/owfs.conf DESC="1-Wire TCP Server" NAME="owserver" DAEMON=/opt/owfs/bin/$NAME PIDDIR=/var/run/owfs PIDFILE=$PIDDIR/$NAME.pid # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 . /lib/lsb/init-functions d_start() { [ -d $PIDDIR ] || { mkdir -m 0775 -p $PIDDIR chown root:root $PIDDIR >/dev/null 2>&1 } start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- -c $CONFFILE \ --pid-file $PIDFILE # ensure the daemon has been started sleep 1 pidofproc -p $PIDFILE $DAEMON >/dev/null } d_stop() { start-stop-daemon --stop --quiet --oknodo --exec $DAEMON sleep 1 if [ -f $PIDFILE ] && ! ps h `cat $PIDFILE` > /dev/null then # Stale PID file (owserver was successfilly stoped), #remove it rm -f $PIDFILE fi } d_status() { pidofproc -p $PIDFILE $DAEMON > /dev/null } case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" d_start log_end_msg $? ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" d_stop log_end_msg $? ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" d_status && d_stop d_start log_end_msg $? ;; status) d_status if [ $? -eq 0 ];then log_success_msg "$NAME is running" else log_failure_msg "$NAME is not running" fi ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0
Save and exit
sudo nano /etc/init.d/owhttpd
Insert the following in the file
#!/bin/sh ### BEGIN INIT INFO # Provides: owhttpd # Required-Start: $remote_fs $network $syslog $named # Required-Stop: $remote_fs $network $syslog $named # Should-Start: owserver # Should-Stop: owserver # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: 1-wire HTTP server # Description: Start and stop a tiny webserver for 1-wire control. ### END INIT INFO CONFFILE=/etc/owfs.conf DESC="1-Wire HTTP Daemon" NAME="owhttpd" DAEMON=/opt/owfs/bin/$NAME PIDDIR=/var/run/owfs PIDFILE=$PIDDIR/$NAME.pid # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 . /lib/lsb/init-functions d_start() { [ -d $PIDDIR ] || { mkdir -m 0775 -p $PIDDIR chown root:root $PIDDIR >/dev/null 2>&1 } start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- -c $CONFFILE \ --pid-file $PIDFILE # ensure the daemon has been started sleep 1 pidofproc -p $PIDFILE $DAEMON >/dev/null } d_stop() { start-stop-daemon --stop --quiet --oknodo --exec $DAEMON sleep 1 if [ -f $PIDFILE ] && ! ps h `cat $PIDFILE` > /dev/null then # Stale PID file (owhttpd was successfilly stoped), #remove it rm -f $PIDFILE fi } d_status() { pidofproc -p $PIDFILE $DAEMON > /dev/null } case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" d_start log_end_msg $? ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" d_stop log_end_msg $? ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" d_status && d_stop d_start log_end_msg $? ;; status) d_status if [ $? -eq 0 ];then log_success_msg "$NAME is running" else log_failure_msg "$NAME is not running" fi ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0
Save and exit
sudo nano /etc/init.d/owfs
Insert the following in the file
#!/bin/sh ### BEGIN INIT INFO # Provides: owfs # Required-Start: $remote_fs $network $syslog $named # Required-Stop: $remote_fs $network $syslog $named # Should-Start: owserver # Should-Stop: owserver # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: 1-wire OWFS-server # Description: Start and stop an anonymous OWFS-server for 1-wire control. ### END INIT INFO CONFFILE=/etc/owfs.conf DESC="1-Wire OWFS-server" NAME="owfs" DAEMON=/opt/owfs/bin/$NAME PIDDIR=/var/run/owfs PIDFILE=$PIDDIR/$NAME.pid # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 . /lib/lsb/init-functions d_start() { mkdir -p /mnt/1wire [ -d $PIDDIR ] || { mkdir -m 0775 -p $PIDDIR chown root:root $PIDDIR >/dev/null 2>&1 } start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- -c $CONFFILE \ --pid-file $PIDFILE # ensure the daemon has been started sleep 1 pidofproc -p $PIDFILE $DAEMON >/dev/null } d_stop() { start-stop-daemon --stop --quiet --oknodo --exec $DAEMON sleep 1 if [ -f $PIDFILE ] && ! ps h `cat $PIDFILE` > /dev/null then # Stale PID file (owhttpd was successfilly stoped), #remove it rm -f $PIDFILE fi } d_status() { pidofproc -p $PIDFILE $DAEMON > /dev/null } case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" d_start log_end_msg $? ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" d_stop log_end_msg $? ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" d_status && d_stop d_start log_end_msg $? ;; status) d_status if [ $? -eq 0 ];then log_success_msg "$NAME is running" else log_failure_msg "$NAME is not running" fi ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0
Save and exit
Register startup daemons:
update-rc.d owserver defaults update-rc.d owthhpd defaults update-rc.d owda defaults
Edit /etc/owfs.conf
sudo nano /etc/owfs.conf
Insert the following
# Sample configuration file for the OWFS suite for Debian GNU/Linux. # # # This is the main OWFS configuration file. You should read the # owfs.conf(5) manual page in order to understand the options listed # here. ######################## SOURCES ######################## # # With this setup, any client (but owserver) uses owserver on the # local machine... ! server: server = localhost:4304 # # ...and owserver uses the real hardware, by default fake devices # This part must be changed on real installation #server: FAKE = DS18S20,DS2405 # # USB device: DS9490 server: usb = all server: i2c = all # # Serial port: DS9097 #server: device = /dev/ttyS1 # # owserver tcp address #server: server = 192.168.10.1:3131 # # random simulated device #server: FAKE = DS18S20,DS2405 # ######################### OWFS ########################## # mountpoint = /mnt/1wire allow_other # ####################### OWHTTPD ######################### http: port = 2121 ####################### OWFTPD ########################## ftp: port = 2120 ####################### OWSERVER ######################## server: port = localhost:4304
Save and exit
Reboot and test