OWFS HowTo

Från Temperatur.nu
Hoppa till navigeringHoppa till sök

Här följer en beskrivning för att komma igång med OWFS

Bakgrund

Jag har av egen erfarenhet insett att det inte är så lätt att hitta alla pusselbitar för att lyckas och sen lägga dom i rätt ordning. All information man behöver finns där ute men det är just att sätta ihop det till en komplett lösning som är problemet. Så därför tänkte jag här försöka sammanställa allt jag har hittat och gjort för att få det att funka. Jag är långt ifrån någon guru på Linux så det kan givetvis finnas felaktigheter!

Mål

Att få igång 1-wire nät med OWFS på Ubuntu.

Programvaror

  • Ubuntu server (funkar på samtliga versioner och Desktop versionen, även Debian Squeeze/Wheezy fungerar).
  • OWFS (senast testat på 2.8p13)

Hårdvara

USB adaptern DS9490R Går även bra att använda den seriella adaptern, se instruktion längre ned.

Beskrivning

Beskrivningen bygger på att du har en helt "ren" installation med Ubuntu server (senaste testade version 10.04 LTS). Om det inte redan är gjort så ladda ned image-filen från Ubuntu och bränn ut och installera Ubuntu först. Skulle du ha en installation som inte är helt ny så funkar även det säkert men det kan finnas skillnader. Likaså andra versioner av Ubuntu bör fungera.

Efter installationen av Ubuntu, se till att modulerna ds2490 och wire inte laddas. Görs genom att lägga till dom i blacklist.

sudo nano /etc/modprobe.d/blacklist.conf

Längst ned lägg till...

# Prohibit interference with OWFS
blacklist ds2490
blacklist wire

...och spara. Detta kommer att göra att dessa moduler inte kommer att laddas automatiskt för USB-adaptern.

Installera lite paket som behövs för att kunna installera och kompilera OWFS senare.

sudo apt-get update
sudo apt-get -y install automake autoconf autotools-dev gcc g++ libtool libusb-dev libfuse-dev swig python2.7-dev tcl8.4-dev php5-dev make build-essential

(För Debian så kan även fuse-utils och ed behövas installeras)

Ladda ned OWFS.

cd /usr/src
sudo wget http://sourceforge.net/projects/owfs/files/owfs/2.9p5/owfs-2.9p5.tar.gz

som sagt, funkar även på senare versioner enligt utsago, ett tips kan vara att välja den senaste stabila versionen.

Packa upp OWFS

sudo tar -zxvf owfs-2.9p5.tar.gz

Kompilera och installera OWFS

cd owfs-2.9p5
sudo ./configure

(Lägg till --enable-debian om du kör debian.) Resultatet bör då bli

Current configuration:

    Deployment location: /opt/owfs

Compile-time options:
                  Caching is enabled
                      USB is enabled
                      I2C is enabled
                   HA7Net is enabled
                       W1 is enabled
           Multithreading is enabled
    Parallel port DS1410E is enabled
        TAI8570 barometer is enabled
             Thermocouple is enabled
         Zeroconf/Bonjour is enabled
             Debug-output is enabled
                Profiling is DISABLED
Tracing memory allocation is DISABLED
1wire bus traffic reports is DISABLED

Module configuration:
                    owlib is enabled
                  owshell is enabled
                     owfs is enabled
                  owhttpd is enabled
                   owftpd is enabled
                 owserver is enabled
                    ownet is enabled
                 ownetlib is enabled
                    owtap is enabled
                    owmon is enabled
                   owcapi is enabled
                     swig is enabled
                   owperl is enabled
                    owphp is DISABLED
                 owpython is enabled
                    owtcl is enabled

Sedan själva installationen

sudo make && sudo make install

Om kompileringen tar lång tid kan du bli tvungen att skriva in sudo-lösenordet igen för make install.

Skapa katalogen för OFWS att mounta i.

sudo mkdir /mnt/1wire

För att FUSE skall funka så måste vi även lägga till en sak i konfigurationen för den. Öppna konfigurationen för FUSE

sudo nano /etc/fuse.conf

Ändra

#user_allow_other

till

user_allow_other

(ta bort # framör)

Nu skall det bara vara att starta OWFS!

sudo /opt/owfs/bin/owfs -u --allow_other /mnt/1wire/

Byt ut -u (USB) mot -d /dev/ttyS0 för att använda en seriell adapter istället.

För DS9097E kan man eventuellt behöva använda --passive, exempelvis /opt/owfs/bin/owfs --allow_other --passive=/dev/ttyS0 /mnt/1wire. Se Tips om installation av owfs och seriell adapter

För att använda HA7net så använd istället --ha7net=xxx.xxx.xxx.xxx (ip nummer eller domän).

Kontrollera att det funkar (ändra sensor till vad du har)

Exempel på hur det kan se ut
cat /mnt/1wire/10.F6877C010800/temperature

Om allt står rätt till så skall det nu komma upp en temperatur på skärmen. Om något trasslar kan du välja att starta owfs med

sudo /opt/owfs/bin/owfs --error_level 6 --error_print 2 -u --allow_other /mnt/1wire/

för att få lite debug-utskrifter.

Se till så att OWFS startar automatiskt vid boot

För att se till så att OWFS skall starata automatiskt vi start av datorn så får vi lägga till ett lite startscript.

Skapa ett start script i /etc/init.d/

cd /etc/init.d
sudo nano start1wire.sh

Lägg till följande, och spara sen

#!/bin/bash

### BEGIN INIT INFO
# Provides:          start1wire
# Required-Start:    $local_fs $syslog
# Required-Stop:     $local_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start OWFS at boot time
# Description:       Start OWFS at boot time
### END INIT INFO

# Starts OWFS
/opt/owfs/bin/owfs -u --allow_other --usb_regulartime  /mnt/1wire

(Sektionen "INIT INFO" behövs för att slippa få ett felmeddelande om "missing LSB information" när man kör update-rc.d enligt nedan.)

För att skriptet skall bli körbart måste vi lägga till körrättigheter på det

sudo chmod +x start1wire.sh

Sen för att se till att scriptet körs vid boot

sudo update-rc.d start1wire.sh defaults

Så nu skall OWFS startas automatiskt vid boot!

Fortsätt

För att fortsätta med loggning och att rita graf med RRDtool läs RRDtool HowTo

Som jag skrev ovan, det kan finnas felaktigheter. Hittar ni några felaktigheter eller om ni har andra kommentarer/frågor så skriv gärna en kommentar på forumet så ser jag till att hålla HOWTO'n uppdaterad. Håll till godo!

Man kan även kolla här för guider om hur man hanterar 1-wiresensorer i Linux samt loggning av data med MySQL.

Källor