Kom igång med 1-wire loggning på din Dockstar med hjälp av RRDTool
Brasklapp[redigera]
Jag vill börja med att säga att jag inte har någon som helst erfarenhet av varken Linux eller 1-wire tidigare, men genom att följa dessa guider, lite googlande och stor hjälp från personer på forumet lyckades jag iallafall få igång loggandet på min Segate Dockstar.
* http://1wire.zoff.cc/2010/08/26/1 * http://www.cs.cmu.edu/~ecc/dockstar-howto.html * http://wiki.temperatur.nu/index.php/RRDtool_HowTo
Om det kan vara till hjälp för någon som hade tänkt sig göra samma sak har jag försökt att sammanfatta mina steg här. Men då jag som sagt inte är någon Linuxexpert och det finns risk att man förstör sin Dockstar kan det vara värt att iaktta viss försiktighet.
Bakgrund[redigera]
En Segate Dockstar är ett trevligt alternativ som en billig 1-wire burk om man inte vill ha en dator igång 24/7. Dels är den relativt billig och drar endast ca 5w i drift, att den sedan kan användas till en del andra saker är ju bara ett plus.
Förutsättningar[redigera]
Hårdvara:
* 3st öl (förslagsvis Samuel Adams Boston Ale) * Seagate Dockstar (som ej varit uppkopplad mot nätet tidigare) * USB-minne (NTFS eller FAT32 formaterad) * Router med DHCP-server (Utan uppkoppling mot internet) * Nätverkskabel * Papper och penna * Kapsylöppnare * Och sist men inte minst en dator
Mjukvara:
* Putty * Total Commander * dockstar-roofs * dockstar-ulmage * blparam
Förberedelser[redigera]
Ladda ner dessa tre filer och lägg dem direkt på USB-minnet utan att skapa någon mapp. OBS Se till så att dessa filer ej sparas som txt filer om du använder Windows. Använd ex Total Commander om du måste döpa om dem.
* dockstar-roofs * dockstar-ulmage * blparam
Koppla ur internetkabeln från routern så att den tappar anslutningen mot internet. (Vi vill inte att ”dockan” ska börja med att ”ringa hem” och uppdatera firmware vilket gör det svårt att ansluta via ssh vilket den gör första gången den ansluts till internet). Anslut USB stickan och din 1-wire utrustning till dockan. Anslut både dockan och datorn till routern. Anslut strömmen till ”dockan” och vänta tills den bootar upp. För att ta reda på dockan:s IP-nummer kan du förslagsvis logga in på din router och se vilka anslutna enheter som finns. (Det bör väll vara något på 192.168….. antar jag). Använd pennan för att skriva ner IP-numret på papperet.
Än så länge har du inte gjort något med dockan så det kan vara läge att ta en öl (använd kapsylöppnaren) och läsa igenom guiden i lugn och ro en gång innan du fortsätter. Risken finns nämligen att du brickar dockan om du forstätter.
Flashning[redigera]
Använd exempelvis Putty för att ansluta dig med ssh till dockan.
User: root Password: stxadmin
Kör dessa kommandon:
killall -9 hbwd killall -9 hbplug mount /dev/sda1 /mnt cd /mnt ./blparam mainlineLinux=yes ./blparam arcNumber=2097
cat /proc/mtd # Kontrollera så att detta stämmer # mtd1 -> uImage # mtd2 -> root # mtd3 -> data # # Om det inte stämmer så avsluta här!
flash_eraseall /dev/mtd1 nandwrite /dev/mtd1 dockstar-uImage flash_eraseall /dev/mtd2 nandwrite /dev/mtd2 dockstar-rootfs flash_eraseall /dev/mtd3 # Detta kommer eventuellt att ge ett felmeddelande med det är OK
Dra ur strömkabeln ur dockan och plugga in den igen efter några sekunder. Vänta ca 2 minuter så att dockan bootar up
Använd Putty igen för att ansluta, men denna gång ska du använda TELNET istället för ssh
User: root Password: (obs inget lösenord!)
Lägg till ett lösenord genom att köra:
passwd
Använd återigen pennan för att skriva ner lösenordet på papperet.
Observera att detta inaktiverar telnetservern och när du hädanefter ska ansluta dig till dockan ska du använda dig av SSH igen med följande User och Password
User: root Password: (det du angav ovan och skrev ner på papperet)
Logga in på webgränsnittet genom att skriva dockans IP-nummer i webbläsarens adressfönster:
User: root Password: (det du angav ovan och skrev ner på papperet)
Konfigurera tidszonen och hostname för dockan
Anslut internetkabeln till router
Använd Putty för att logga in på dockan med SSH
User: root Password: (det du angav ovan och skrev ner på papperet)
Kör dessa kommandon:
echo "# src/gz snapshots http://XXdownloads.openwrt.org/snapshots/trunk/kirkwood/packages src/gz snapshots http://mirror.downloads.openwrt.org.work.zoff.cc/snapshots/trunk/kirkwood/packages dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay" > /etc/opkg.conf
// (alla dessa behövs ej, men det skadar väll inte antar jag) opkg update opkg install wget opkg install mc opkg install htop opkg install nano opkg install bash opkg install vim opkg install bc opkg install --force-overwrite binutils opkg install coreutils-nohup opkg install file opkg install ifstat iftop iperf opkg install lsof microcom minicom opkg install net-tools-arp net-tools-domainname opkg install net-tools-hostname net-tools-ifconfig net-tools-netstat opkg install mount.ntfs-3g ntfs-3g ntfs-3g-utils ntfsprogs ntp-utils opkg install screen strace sysfsutils opkg install sysstat zoneinfo-core zoneinfo-europe opkg install psmisc opkg install --force-overwrite procps opkg install luci-app-ntpc
wget -O /etc/init.d/luci_fixtime http://work.zoff.cc/dockstar/luci_fixtime wget -O /tmp/xx http://work.zoff.cc/dockstar/crontab_zoff crontab /tmp/xx rm /tmp/xx
Installation av OWFS (OneWireFileSystem)[redigera]
Kör dessa kommandon:
opkg install owfs wget -O /lib/modules/2.6.30.10/fuse.ko http://work.zoff.cc/dockstar/modules/2.6.30.10/fuse.ko
Boota dockan och kör sedan:
insmod /lib/modules/2.6.30.10/fuse.ko
Får du ett felmeddelande kan du köra:
insmod fuse
Och verifiera med
lsmod
Skapa katalogen för OWFS att mount'a i
mkdir /mnt/1wire
Prova att mounta OWFS genom att köra:
/usr/bin/owfs -u /mnt/1wire
Byt ut -u (USB) mot -d /dev/ttyS0 för att använda en seriell adapter istället. För att använda HA7net så använd istället --ha7net=xxx.xxx.xxx.xxx (ip nummer eller domän).
Prova om du får någon tempangivelse (förutsatt att du har någon temperatursensor ansluten)
grep . /mnt/1wire/10.*/temperature
Se till så att OWFS startar automatiskt vid boot
nano /etc/rc.local
Lägg till
owfs -u /mnt/1wire ovanför raden med Exit 0
Spara genom att trycka Ctrl-X , Bekräfta med Y och Enter
Om allt fungerar kan du fira med en öl och samla krafterna inför RRDTool installationen.
Installation av RRDTool[redigera]
Logga in på dockan med ssh exempelvis med Putty
Skapa en katalog med förslagsvis ditt namn genom att skriva,
mkdir /root/DITTNAMNHÄR
Den här sökvägen kommer att användas längre fram vid ett flertal tillfällen. Om du vill kan du därför skriva ner den om du har plats kvar på papperet.
För installationen av paketen kan du antingen använda OpenWrt:s webgränsnitt genom att skriva in dockans IP-nummer i adressfönster på din webbläsare och sedan klicka på ”Administration” uppe till höger och sedan ”Software” i menyn ”System”. Alternativt kan du göra som jag och sköta allt med hjälp av Putty och ssh.
OBS! Den senaste versionen av RRDTool till OpenWrt version 1.2.30-1 fungerade inte för mig. Det genererade felmeddelandet “rrdtool: can't resolve symbol 'posix_fadvise'”. Därför använde jag den äldre versionen 1.0.50-1 benämnd rrdtool1. Jag lyckades inte att få perlscripten (mer om det senare) att fungera så jag hoppar över perl paketen här. Att jag inte lyckades kan med stor sannolikhet bero på mina bristande kunskaper i ämnet, så det är fritt fram att prova för den som vill. Paketen hittar du antingen genom att söka via dockans webbgränsnitt eller via promten Paketen hittar du här
Kör dessa kommandon:
opkg update opkg install rrdtool1 # glöm inte 1:an opkg install rrdcgi opkg install rrdcollect opkg install librrd1 opkg install collect-mod-rrdtool opkg install apache
Sedan ska det bara vara att hoppa in i guiden på steget där katalogerna skapas
RRDtool HowTo ,men lova att komma tillbaka hit när det är dags för perlscriptet.
- Om du får problem att köra scripten så kan du prova att lägga till ” ./” framför ex.
./create_rrd.sh
När det var dags för perlscriptet fick jag ett felmeddelande jag skippade därför perl och avände ett shellscrip som lage på forumet gjort istället. Jag gjorde några små ändringar och döpte det till create_graph.sh. Glöm inte att ändra sökvägen på rad 8!
Kör detta för öppna nano och skapa filen:
nano /root/xxxxxx/bin/create_graph.sh
Kopiera detta och högerklicka i putty fönstret för att klistra in det:
#!/bin/bash rrdtool graph /www/ute_24h.png \ --start -1d \ --title "Utetemp det senaste dygnet" \ --width 550 \ --height 400 \ --vertical-label °C \ DEF:UteTemp=/root/XXXXX/rrddata/outside_temp.rrd:outsidetemp:AVERAGE \ COMMENT:" ""Nu Medel Max Min"\\n \ HRULE:0#0000FF \ LINE1:UteTemp#0000FF:Ute\ \ GPRINT:UteTemp:LAST:%6.1lf \ GPRINT:UteTemp:AVERAGE:%6.1lf \ GPRINT:UteTemp:MAX:%6.1lf \ GPRINT:UteTemp:MIN:%6.1lf\\n \
Spara genom att trycka Ctrl-X , Bekräfta med Y och sedan Enter För att köra scripten med automatik var 5 minut så ska vi lägga in dem i crontab genom att köra:
crontab –e
och lägg till
*/5 * * * * /root/xxxxx/bin/get_temp.sh */5 * * * * /root/xxxxx/bin/create_graph.sh
För att spara dina ändringar trycker du ESC, : , wq, Enter (Escape, kolon, wq, Enter) Kontrollera att dina ändringar sparas genom att skriva
crontab –l
Om allt fungerar som det ska det bara vara att skriva dockan:s IP-nummer följt av /ute_24.png i webbläsaren (ex 192.168.1.139/ute_24.png)
Om du nu får fram en graf så har du lyckats och gjort dig förtjänt av den sista ölen, skål!