Устанавливаю owfs
apt-get install owfs python-ow fuse ... Creating config file /etc/owfs.conf with new version
Запуск.
Файл настройки /etc/owfs.conf
cat /etc/owfs.conf ! server: server = localhost:4304 server: w1 mountpoint = /mnt/1wire allow_other http: port = 2121 # ftp: port = 2120 server: port = localhost:4304
опции:
–allow_other - другие пользователи могут просматривать содержимое директории куда отображаются файлы-устройства (если не указать смотреть сможет только root)
cat /etc/init.d/owfs #!/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 # Description: Start and stop a tiny webserver for 1-wire control. ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin CONFFILE=/etc/owfs.conf DESC="1-Wire Daemon" NAME="owfs" DAEMON=/usr/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 -- \ --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 --pidfile $PIDFILE sleep 1 if [ -f $PIDFILE ] && ! ps h `cat $PIDFILE` > /dev/null then # Stale PID file (owfs 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
Добавляю owfs в «автозагрузку».
update-rc.d owfs defaults
Проверяю, запущен ли owfs
ps ax | grep ow 472 ? Ssl 0:11 /usr/bin/owserver -c /etc/owfs.conf --pid-file /var/run/owfs/owserver.pid 9274 ? Ss 0:00 /usr/bin/owhttpd -c /etc/owfs.conf --pid-file /var/run/owfs/owhttpd.pid 10324 pts/2 S+ 0:00 grep ow
Запускаю owfs
./owfs start [ ok ] Starting owfs (via systemctl): owfs.service.
Проверяю
ps ax | grep ow 472 ? Ssl 0:11 /usr/bin/owserver -c /etc/owfs.conf --pid-file /var/run/owfs/owserver.pid 9274 ? Ss 0:00 /usr/bin/owhttpd -c /etc/owfs.conf --pid-file /var/run/owfs/owhttpd.pid 10339 ? Ssl 0:00 /usr/lib/owfs/owfs -c /etc/owfs.conf --pid-file /var/run/owfs/owfs.pid 10362 pts/2 S+ 0:00 grep ow
Каждый из частей one-wire-file-system: owserver, owhttpd, owfs может работать с шиной 1-wire самостоятельно, но, вместе с тем, owhttpd и owfs могут работать через owserver.
Например, вам нужен только Web-интерфейс к 1-wire и ничего больше. Тогда вы спокойно запускаете owhttpd и ничего больше.
Если только представление шины в файловой системе — тогда запускаем owfs. Стандартного Web-интерфейса уже не будет, но можно написать свой, который будет «смотреть» шину 1-wire через файловую систему.
Но если вы хотите использовать и owfs и owhttpd, да еще обращаться к шине с помощью TCP из любых программ — Perl, C, PHP и т.д. тогда вы запускаете owserver на каком-нибудь порте, а все остальные программы подключаете к нему. owserver не имеет веб-интерфейса, не показывает файлов, но отвечает по указанному порту.
ВАЖНО!
owfs и owhttpd одновременно работать не могут, или один работат или другой.
Для того, чтобы одновременно можно было работать с owfs — т.е. с устройствами 1-wire через коммандную строку и с owttpd — т.е. управлять 1-wire через стандартный интерфейс в web браузере необходимо запустить owserver.
Примеры: Работа owfs через owserver на 3001 порту:
/opt/owfs/bin/owfs -s 3000 -p 3001 /mnt/1-wire/ --allow_other
Работа owhttpd на порту 3003:
/opt/owfs/bin/owhttpd -s 3000 -p 3003
Что бы каждый раз после перезагрузки не запускать owserver или другие программы управляющие 1-wire устройствами из пакета owfs, надо прописать в файл /etc/rc.local параметры запуска.
Добавим следующие строки в конце файла:
/opt/owfs/bin/owserver -u -p 3000 /opt/owfs/bin/owfs -s 3000 -p 3001 /mnt/1-wire/ --allow_other /opt/owfs/bin/owhttpd -s 3000 -p 3003 exit 0
При этом устройство должно быть подключено к usb порту до включения компьютера иначе придётся отмонтировать его и монтировать заново вручную как в примерах.
Сылки:
http://wordpress.rza001.ru/2012/12/03/zapuskaem-owfs
http://manpages.ylsoftware.com/ru/start-stop-daemon.8.html
http://www.linux.org.ru/forum/general/12327772