» » » Ubuntu server и сеть 1-wire

Информация к новости
  • Просмотров: 9480
  • Автор: sluggard
  • Дата: 15-10-2016, 21:27
15-10-2016, 21:27

Ubuntu server и сеть 1-wire

Категория: Настройка Ubuntu, Управление 1-wire устройствами

Как я уже писал ранее, у меня большая часть температурных датчиков висит на шине 1-wire. И после сборки и настройки сервера решил подключить шину 1-wire к нему для управления устройствами и сбора статистики с датчиков :)

Для подключения и управления устройствами 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

UPDATE 21.10.2016:
Как оказалось из готового пакета в 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


Все готово, перезагружаем ваш сервер.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите код: *