Sida 1 av 2

OWFS på Buffalo Linkstation

Postat: 27 dec 2011, 20:50
av MartinF
Jag har införskaffat en Buffalo Linkstation Live 2TB V2 NAS med ARM Marvel Kirkwood-processor: http://www.dustin.se/buffalo-linkstatio ... 5010527993. Den kör Buffalos egen Linux distribution med en 2.6.31.8 kernel. Firmware 1.56. Jag har skaffat mig full access via PuTTy och SSH http://forum.buffalo.nas-central.org/vi ... 68&t=24717. Den är från början redan laddad med perl, mysql, phpMyAdmin, m.m.

Nu skulle det vara trevligt att få in OWFS också, och senare rrdtool. Med mina kunskaper i Linux är detta en stor utmaning. Alla tips om vägval mottages tacksamt!

Re: OWFS på Buffalo Linkstation

Postat: 28 dec 2011, 12:02
av MartinF
Jag provade att följa instruktionerna i den senare delen av detta dokument:http://owfs.org/uploads/Debian%20with%2 ... w%20To.pdf
Resultatet blev

Kod: Markera allt

configure: error: no acceptable C compiler found in $PATH
Något saknas alltså för att bygga det hela...
Fortsättning följer och tips mottas tacksamt.

Re: OWFS på Buffalo Linkstation

Postat: 28 dec 2011, 14:05
av jed
Du har ingen c-kompilator installerad.
Jag vet inte vilken distrubution buffalo har utgått från. Jag gissar att det är debian eller redhat (eller någon av dom distro som bygger på dom).

Testa:

Kod: Markera allt

sudo apt-get install gcc
(debianbaserat)
eller

Kod: Markera allt

sudo yum install gcc
(redhatbaserat)


Jag har ingen redhat åtkomlig hemifrån så jag är lite osäker på vad paketet heter, funkar det inte så prova med
yum search gcc


En av dom borde fungera, den andra gör det inte. Beror som sagt på vilken dist buffalo bygger på :)

Re: OWFS på Buffalo Linkstation

Postat: 28 dec 2011, 22:02
av MartinF
Det är Debian och kompilatorn saknades. Kanske en del annat också. Istället har jag nu klämt in Debian Squeeze enligt denna instruktion: http://buffalo.nas-central.org/wiki/Deb ... _others%29. Därmed åkte allt förinstallerat ut, men det känns bra med en ren installation.

Re: OWFS på Buffalo Linkstation

Postat: 28 dec 2011, 22:15
av MartinF
Samma fel igen trots ny Debian! Provar

Kod: Markera allt

sudo apt-get install gcc
men det funkar inte för också sudo saknas...
Provar utan sudo, och då går det!

Samma problem uppstod sedan för make, men det kunde lösas på samma sätt.
Också felmeddelandet

Kod: Markera allt

preprocessor "/lib/cpp" fails sanity check
kunde jag lösa genom

Kod: Markera allt

apt-get install g++
Och på motsvarande sätt med liblist-moreutils-perl

Tack!

Re: OWFS på Buffalo Linkstation

Postat: 29 dec 2011, 00:32
av MartinF
Jag följer sedan fortsättningen av Ubuntu guiden här på forumet (som jag kanske borde följt redan från början) startar OWFS och får "Segmenteringsfel". :evil:
Vad betyder det?

Re: OWFS på Buffalo Linkstation

Postat: 29 dec 2011, 09:47
av jed
sudo gör att du kan köra kommandon med fulla rättigheter som en vanlig användare, men om du kan köra dom ändå så har du loggat in som root och har redan fulla rättigheter.
installera sudo (apt-get install sudo) och logga in som din vanliga användare istället.

segmenteringsfel betyder två saker:
1. du har installerat systemet med svenskt språk. Blir jobbigt att googla på felmeddelanden ;)
2. programmet krashar, segmentation fault på engelska. Den har antagligen dumpat ut sin minnesarea på en fil.


Hur startar du owfs? Vilket kommando kör den?

OWFS på Buffalo Linkstation

Postat: 29 dec 2011, 10:29
av MartinF
Startade owfs enligt forumguiden för Ubuntu. Märker nu att om jag startar med sudo så får jag inget felmeddelande. Jag får å andra sidan inga givare mappade heller. Märkligt att det kan bli någon skillnad eftersom jag ändå kör som root?

Dags för felsökning alltså och misstankarna riktas mot USB-porten. När jag stoppar in en sticka så flashar dioden till men tänds sedan inte mer. Där verkar finnas ström men stickan upptäcks nog inte av systemet. Vad saknas?

Re: OWFS på Buffalo Linkstation

Postat: 29 dec 2011, 14:04
av jed
Jag har ingen lysdiod på min 1-wireadapter, iaf ingen som lyser. (den sitter lite dumt till så jag ser inte om det finns någon på den).

Kör alla kommandon nedan som root, inte som din vanliga användare.
Och ta bort phpmyadmin så snart du skapat dina databaser, det är ett säkerhetshål utan dess like...

Du kan kolla vad som sitter inkopplat på usb med kommandot lsusb:

Kod: Markera allt

root@ha:~# lsusb
...
Bus 002 Device 003: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter
...
Du kan även dra ur och stoppa i den och kolla vad dmesg säger. Det är bara att skriva dmesg och kolla dom sista raderna.

Om du ser din 1-wireadapter så kan du fortsätta med owfs.
Owserver och owhttpd kan du skippa om du bara vill läsa av temperaturer etc via owfs.

OBS! Se till att du inte har någonting monterat innan du startar! Starta om servern om du är osäker.

Så här startar jag owfs på min server:

Kod: Markera allt

/opt/owfs/bin/owfs -u --allow_other --usb_regulartime  /mnt/owfs
Då kan jag läsa av alla sensorer som vilken användare som helst.

Har lagt in det i ett (enkelt) startskript, det kan bara dra igång owfs, inte kolla status eller avmontera det. Det gör jag för hand.
Skapa ett skript i /etc/init.d/owfs och skriv:

Kod: Markera allt

#!/bin/sh

/opt/owfs/bin/owfs -u --allow_other --usb_regulartime  /mnt/owfs
Sätt rättigheterna på skriptet så det kan köras:

Kod: Markera allt

chmod 0755 /etc/init.d/owfs
Se till att det körs när servern bootas:

Kod: Markera allt

update-rc.d owfs defaults
Nu ska du ha en katalog som heter /mnt/owfs, i den ska det finnas några kataloger som börjar på en siffra. Det är dina sensorer.

Re: OWFS på Buffalo Linkstation

Postat: 31 dec 2011, 14:17
av MartinF
Tack för alla tips.
OWFS kan jag ganska väl, har loggning som snurrar sedan ett par år på en PC med Ubuntu. Sämre är det med kunskaperna i Linux och problemet just nu är att få Linux Squeeze att gå som det ska på min NAS. När detta funkar ska jag flytta över allt jag har från PC:n till denna mera strömsnåla maskin. Rubriken på denna tråd satte jag när jag trodde jag var nära att få det att funka, beklagar om jag var otydlig med problemet.

Kan inte kolla just nu men min 1-wireadapter har nog inte heller någon diod, vad jag provade med var en minnessticka.

Det var två användbara kommandon du gav mig:
lsusb returnerar en tom rad.
dmesg säger att "program smartctl is using a deprecated SCSI ioctl, please convert it to SG_IO".

Jag diskuterar problemet samtidigt på det tidigare nämnda forumet för Buffalo NAS: http://forum.buffalo.nas-central.org/vi ... 68&t=24717.

Re: OWFS på Buffalo Linkstation

Postat: 31 dec 2011, 15:47
av jed
om lsusb returnerar en tom rad så funkar inte usb för dig.

Kollade på länken du skickade, "insserv: warning: script 'usb' missing LSB tags and overrides" kan du skippa. Det enda det betyder är att du saknar lite kommentarer i början av ditt skript.
T.ex dom här:

Kod: Markera allt

### BEGIN INIT INFO
# Provides:          sudo
# Required-Start:    $local_fs $remote_fs
# Required-Stop:
# X-Start-Before:    rmnologin
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Provide limited super user privileges to specific users
# Description: Provide limited super user privileges to specific users.
### END INIT INFO
"/etc/init.d/usb: 23: Syntax error: "(" unexpected" är däremot allvarligt, du har missat att kopiera något/några tecken när du skapade startskriptet till usb eller så har du fått in ett extra tecken som inte ska vara där. T.ex kanske ett ( som ska vara en kommentar följde med av misstag?
Kopiera in hela filen /etc/init.d/usb här så kan vi kolla på den.

Re: OWFS på Buffalo Linkstation

Postat: 31 dec 2011, 17:33
av MartinF
Tack igen, här är hela filen:

Kod: Markera allt

root@MYNAS:~# cat -n /etc/init.d/usb
     1  #!/bin/sh
     2  #
     3  # usb: control USB interface power status
     4  #
     5  # blstools - Tools for Buffalo Linkstation
     6  # Copyright (C) 2010-2011 Michele Manzato
     7  # Distributed under the MIT License
     8
     9  MODULES=("usbcore" "ehci-hcd" "ohci-hcd" "uhci-hcd" "usb_storage" "usblp")
    10
    11  load_modules()
    12  {
    13          COUNTER=0
    14          while [ ${MODULES[${COUNTER}]} ]
    15          do
    16                  modprobe ${MODULES[${COUNTER}]}
    17                  [ $? -ne 0 ] && return 1
    18                  COUNTER=$((${COUNTER} + 1))
    19          done
    20          return 0
    21  }
    22
    23  unload_modules()
    24  {
    25          COUNTER=${#MODULES[@]}
    26          while [ ${COUNTER} -ge 0 ]
    27          do
    28                  modprobe -r ${MODULES[${COUNTER}]}
    29                  [ $? -ne 0 ] && return 1
    30                  COUNTER=$((${COUNTER} - 1))
    31          done
    32  }
    33
    34  detect_usbfs()
    35  {
    36          IsMounted=`cat /proc/mounts |grep usbfs`
    37          if [ "${IsMounted}" != "" ] ; then
    38                  return 1
    39          else
    40                  return 0
    41          fi
    42  }
    43
    44  mount_usbfs()
    45  {
    46          detect_usbfs
    47          [ $? -eq 1 ] && return 0
    48          mount -t usbfs usbfs /proc/bus/usb
    49          return $?
    50  }
    51
    52  umount_usbfs()
    53  {
    54          detect_usbfs
    55          [ $? -eq 0 ] && return 0
    56          umount -f /proc/bus/usb
    57          return $?
    58  }
    59
    60
    61  case $1 in
    62  start)
    63          # Power on the USB interface
    64          echo on > /proc/buffalo/gpio/power_control/usb0
    65
    66          load_modules
    67          [ $? -ne 0 ] && echo "USB power-on failed" 1>&2 && unload_modules && exit 1
    68
    69          mount_usbfs
    70          ;;
    71  stop)
    72          umount_usbfs
    73          [ $? -ne 0 ] && echo "USB power-off failed" 1>&2 && exit 1
    74
    75          unload_modules
    76
    77          # Power off the USB interface
    78          echo off > /proc/buffalo/gpio/power_control/usb0
    79          ;;
    80  *)
    81          ;;
    82  esac

Har provat med både start och stop och fått samma resultat. Är siffran 23 en felkod eller en radhänvisning tro?

Re: OWFS på Buffalo Linkstation

Postat: 01 jan 2012, 15:16
av jed
Prova att byta ut rad 1 mot:
#!/bin/bash

Med andra ord, byt ut sh mot bash. Om det är som jag tror har du uppgraderat och fått en riktigt sh istället för en länk till bash.

Re: OWFS på Buffalo Linkstation

Postat: 01 jan 2012, 15:39
av MartinF
Tack!

Kod: Markera allt

root@MYNAS:~# lsusb
Bus 001 Device 002: ID 0781:5150 SanDisk Corp. SDCZ2 Cruzer Mini Flash Drive (thin)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
En bra början på det nya året tycker jag! Tyvärr :lol: så firas nyåret på en skidanläggning och jag kan inte fysiskt nå burken hemma för att byta flash driven till 1-wire-stickan. Återkommer!

Re: OWFS på Buffalo Linkstation

Postat: 03 jan 2012, 17:42
av MartinF
Nu fungerar nu OWFS!

Var tvungen att manuellt lägga in "USB start" vid boot.
Måste sedan ominstallera OWFS efter att också ha bråkat lite med Python.

Vad som återstår är att få OWFS att autostarta vid boot.

Kod: Markera allt

#!/bin/bash

# Starts OWFS

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

Kod: Markera allt

root@MYNAS:~# ls -la /etc/init.d/MyStartScript.sh
-rwxr-xr-x 1 root root 94 Jan  3 16:27 /etc/init.d/MyStartScript.sh
I /var/log/boot står:

Kod: Markera allt

Tue Jan  3 16:37:18 2012: /etc/init.d/MyStartScript.sh: line 5:   929 Segmentation fault      /opt/owfs/bin/owfs -u --allow_other --usb_regulartime /mnt/1wire