Для подключения и управления устройствами 1-wire к серверу под управлением ОС Linux нам потребуется пакет owfs, более подробную информацию можно найти на официальном сайте www.owfs.org
Кстати, owfs успешно используется и под ОС Windows с помощью Cygwin.
Устанавливаем:
sudo apt-get install owfs
Настраиваем:
sudo nano /etc/owfs.conf
Правим:
! server: server = localhost:4304
# USB device: DS9490
server: usb = all
######################### OWFS ##########################
mountpoint = /mnt/1wire
allow_other
####################### OWHTTPD #########################
http: port = 2121
####################### OWFTPD ##########################
ftp: port = 2120
####################### OWSERVER ########################
server: port = localhost:4304
Создаем каталог для 1-wire устройств:
sudo mkdir /mnt/1wire
Запускаем:
owserver -u -p 3001
owfs -s 3001 /mnt/1wire/ --allow_other
owhttpd -p 3002 -s 3001
проверяем доступ на http://localhost:3002
Как оказалось из готового пакета в ubuntu server 16.04 не монтируется файловая система 1-wire.
Нашел как поправить данное недоразумение - надо сконфигурировать пакет из исходняков :)
скачиваем последнюю версию owfs:
wget http://downloads.sourceforge.net/project/owfs/owfs/2.9p1/owfs-3.1p4.tar.gz
tar zxpf owfs-3.1p4.tar.gz
cd owfs-3.1p4
Для конфигурации с включенным USB нам потребуется пакет libusb-1.0-0-dev
sudo apt-get install libusb-1.0-0-dev
Далее конфигурируем:
./configure
И проверяем вывод команды ./configure:
Current configuration:
Deployment location: /opt/owfs
Compile-time options:
USB is enabled
AVAHI is DISABLED
I2C is enabled
W1 is enabled
Parallel port DS1410E is enabled
FTDI (LinkUSB) is DISABLED
Zeroconf/Bonjour is enabled
Debug-output is enabled
Mutexdebug is enabled
Profiling is DISABLED
Tracing memory allocation is DISABLED
нас интересует строчка USB is enabled, если все так, то поздравляю ))
ну и на последок собираем и устанавливаем пакет:
sudo make
sudo make install
Запускаем теперь другими командами (можно и нужно добавить в rc.local):
/opt/owfs/bin/owserver -u -p 3001
/opt/owfs/bin/owfs -s 3001 -p 3003 /mnt/1-wire/ --allow_other
/opt/owfs/bin/owhttpd -s 3001 -p 3002
При этом устройство должно быть подключено к usb порту до включения компьютера иначе придётся отмонтировать его и монтировать заново вручную.
UPDATE 24.06.2021:
Для версии ubuntu server 20.04 после установки пакета owfs и корректировке конфигурационного файла запустим сервис owfs:
sudo systemctl enable owserver.service
В некоторых версиях owfs, доступных в ОС Linux, из-за ошибки устройства в каталоге /mnt/1wire дублируются, показывая две папки для каждого устройства.
Если вы столкнулись с этой проблемой, ее можно решить, отредактировав файл конфигурации для службы owfs:
sudo nano /lib/systemd/system/owfs.service
Найдите:
ExecStart=/usr/bin/owfs -c /etc/owfs.conf --allow_other %t/owfs
и замените на:
ExecStart=/usr/bin/owfs --allow_other %t/owfs
Все готово, перезагружаем ваш сервер.