Archive for the ‘HOW TOs’ Category

Spotify + SONY Xperia V + External SD card how to get it to work

Thursday, December 20th, 2012

Min bror har köpt sig en SONY Xperia V smartphone och vill köra spotify i denna fine installerar spotify åt honom från google play store. Loggar in i spotify och börjar leta efter möjliigheter att ställa om så den sparar dom filer han sätter till att vara tillgängliga offline på det extra microSD kort han köpt och satt i på 16GB. Hittar ingen inställning alls för detta och börjar således söka på nätet efter en lösning. Nedan kommer en beskrivning om hur man kan lösa det för att få spotify att spara på det extra microSD kort som man kan ha.

Steg 1: Ladda ner den gammla versionen av spotify på din dator
Jag hittade den här länken där jag laddade ner versionen. Jag tog versionen 0.4.12.180. Skulle dom saknas via forumet kontakta mig på virus84 [at] gmail . com jag har dom speglade dock ej online just nu.

Steg 2: Lägga in filen i din telefon
Koppla in din telefon till datorn med USB kabeln och lägg in filen i telefonens intärna minne du kan nu koppla från telefonen från din dator igen.

Steg 3: Slå på tillåta okända källor
Gå in i Inställningar > Säkerhet > Okända källor bocka i denna och svara ok på frågan du får upp detta ska vi senare slå av då detta inte bör vara på normalt sett.

Steg 4: Installera en filhanterare och installera spotify
Jag hittade i en post på nätet en som rekomendera ASTRO File Manaager finns att installera via goole play store. Installera denna och starta den.
När man startat den sök upp minnet du lagt spotify filen på och starta den och installera den. Jag körde med versioen 0.4.12.180 versionen funkade ok att installera.

Steg 5: Ta reda på din sökväg till ditt microSD kort
Koppla in telefonen till din dator med USB kabel. Leta reda på din telefon i den här datorn och navigera till ditt extra minneskort (microSD) du satt i. Skapa där en fil som heter here_am_i.txt
om den inte går skapa där skapa den på din dator och spara den på microSD kortet. Koppla nu ur telefonen från datorn igen. Statrta nu ASTRO file manager och leta upp filen så bör du se sökvägen till minneskortet som du kommer behöva mata in i spotify. I mitt fall heter microSD kortet /mnt/ext_card.

Steg 6: Konfigurera spotify för att använda microSD kortet
Starta den nyss installerade spotify versionen och du bör komma till inloggnings sidan. Klicka nu fram inställnings menyn på SONY Xperia V är det tre punkter knapp man trycker på så finns det valet att ändra sd card option något. Ändra den på som exempel i mitt fall till /mnt/ext_card. Tryck ok och stäng sedan spotify.

Steg 7: Uppgradera spotify till senaste versionen
Gå nu in på google play store och updatera den installerade versionen av spotify. När detta är klart kan du starta spotify och logga in. Testa ladda ner en playlist och se om den inte nu börjar lagras på ditt microSD kort. Du kan se lagrings information under Inställningar > Lagring i telefon inställningarna. Efter dessa steg fungerade det som det skulle för mig.

Steg 8: Stäng av okända källor
Gå in under Inställningar > Säkerhet > Okända Källor bocka nu ur rutan så detta inte längre är påslaget.

Slutsats
Detta löste problemet för min bror med att hans telefon bara först sparade offline listor i telefonens inbyggda minne. Efter att gjort enligt guide sparar den nu ner låtarna på hans microSD kort på 16GB istället vilket gör att han kan ha väldigt mycket mer låtar i telefonen.

Källor:
http://community.spotify.com/t5/Mobile-Android/REQUEST-Previous-version-of-the-client-APK/td-p/79997/page/2
http://www.youtube.com/watch?v=6XQ1HVYVzLw

Raspberry Pi + Tellstick Duo + Nexa = Awsome! How to set it up!

Thursday, November 29th, 2012

Denna post kommer handla om hur jag med hjälp av en Raspberry Pi, Tellstick Duo, Nexa motagare och remotestick-server styr min belysning här hemma. Detta är en sammanställning av det jag hittat på nätet så den är så komplett som möjligt för att förenkla för den som vill göra en liknande setup :).

Bra att veta om denna post är att på vissa ställen fungerar inte bindestreck som det ska har lagt in info där det bör vara två streck efter varandra kan vara bra att vara uppmärksam på. Kopierar man rakt av kommer det inte alltid fungera på grund av detta ber om ursäkt för det.

Steg 1: Ladda ner OS till Raspberry Pi
Jag började med att ladda ner senaste versionen av Raspbian “wheezy” från www.raspberrypi.org och följa instruktionerna för hur man skriver denna till ett SD kort. Versionen jag laddade ner i skrivande stund är 2012-10-28-wheezy-raspbian.zip

Steg 2: Konfigurera bas OS
Satte i det förberedda SD kortet (i detta fall använde jag ett 8GB kort) i raspberry pi enheten och bootade och följde den installations guide som kom upp vid boot för att som exmeple sätta nytt lössenord, tidszone, tangentbords layout osv.

Steg 3: Updatera OS
När man sedan rebootat efter installationen bör man updatera OS:et så man har dom senaste paketen installerade. Det gör man enligt nedan

sudo apt-get update (för att updatera paket listan över tillgängliga paket)

sudo apt-get dist-upgrade (detta kollar mot den nya paketlistan vad som kommit nytt och behöver updateras kan även köra upgrade om man vill det då tar den bara “säkra” saker)

Svar yes eller ja på frågan om du vill updatera systemet. Detta kan ta en stund då det är en del paket att installera oftast när man ny inatsllerat. När updateringen är klar skadar det inte med en omstart för att aktivera eventuella ny kärna.

Steg 4: Installera telldus-core
Nu är det daxs att fixa in telldus-core som är det paket som behövs för att styra sin tellstick classic eller tellstick duo. Jag letade en del innan jag hittade hur man gör då det vanliga sättet inte fungerar då det är fel arkitektur så man måste kompilera paketet från källkod.

Börja med att lägga till kälkodskälla i din /etc/apt/sources.list.d/telldus.list på en ny rad enligt nedan

sudo nano /etc/apt/sources.list.d/telldus.list
deb-src http://download.telldus.com/debian/ stable main

Nu måste vi ladda ner nyckeln som signerar denna källa från telldus. Ladda ner nyckelfilen med nedan kommando.
NOTE: Det verkar som dom bytt repo enligt info här i kommentaren nedan.

wget http://s3.eu-central-1.amazonaws.com/download.telldus.com/debian/telldus-public.key
Sedan lägg in nyckeln med nedan kommando.

sudo apt-key add telldus-public.key

Efter detta kör nedan komando för att updatera din paketlista.

sudo apt-get update
Nu bör den updatera och lägga med telldus källkods paket.

Nu bör man installera build-essential dock bör redan detta vara installerat men kör kommandot för att dubbelkolla så ni har paketen installerade
sudo apt-get install build-essential

Installera alla beroenden
sudo apt-get build-dep telldus-core

Nästa installera övriga beroenden
sudo apt-get install cmake libconfuse-dev libftdi-dev help2man

Skapa nu en temporär katalog du kan jobba i med telldus kompileringen exempelvis enligt nedan
mkdir -p ~/telldus-temp
cd ~/telldus-temp

Nästa steg nu är att ladda ner källkoden och kompilera den. Detta moment kommer ta en del tid då Raspberry Pi som känt inte har så snabb CPU 🙂 så en fika kan vara på sin plats.
sudo apt-get –compile source telldus-core (ska vara ––compile detta syns inte som det ska i bloggen)

När kompileringen gått klart och allt förhoppningsvis gått bra kör nedan för att installera dom kompilerade paketen
sudo dpkg –install *.deb (ska vara ––install detta syns inte som det ska i bloggen)

Nu kan man om man vill radera sin temp mapp man skapade för sin kompileringen gör enligt nedan isåfall
cd ; rm ~/telldus-temp

Om alla punkter i steg 4 gått som dom ska har du nu installerat telldus-core och bör ha en demon som autostartar under /etc/init.d/telldusd.

Steg 5: Anslut din tellstick duo
Nu när man installerat telldus-core så kan man ansluta sin tellstick duo (kan man göra innan med om man vill men nu kan du styra den)

Steg 6: Konfigurera /etc/tellstick.conf
Nedan följer exempel på den konfiguration jag kör med här hemma. Då detta finns rätt mycket information ute på internet om detta hänvisar jag dit då förklaringen där är bra. Se mer info om konfig filen här.


sudo nano /etc/tellstick.conf

## Start tellstick.conf
user = “nobody”
group = “plugdev”
ignoreControllerConfirmation = “false”

device {
id = 1
name = “Nexa: Hall”
model = “selflearning-switch:nexa”
parameters {
house = “1629211”
unit = “1”
}
}

device {
id=2
name=”Nexa: Vardagsrum”
model=”selflearning-switch:nexa”
parameters {
house = “1732921”
unit = “2”
}
}

device {
id=3
name=”Nexa: Kök”
model=”selflearning-switch:nexa”
parameters {
house = “1849491”
unit = “3”
}
}

device {
id=4
name=”Nexa: Sänglampa”
model=”selflearning-switch:nexa”
parameters {
house = “1613291”
unit = “4”
}
}

device {
id=5
name=”Nexa: Sovrumsfönster”
model=”selflearning-switch:nexa”
parameters {
house = “1246391”
unit = “5”
}
}

device {
id=6
name=”Nexa: Kontor”
model=”selflearning-switch:nexa”
parameters {
house = “2851531”
unit = “6”
}
}

## EOF

När man konfigurerat klart sina enheter kan man starta om demonen som körs för tellstick med nedan kommando

sudo /etc/init.d/telldusd restart

Steg 7: Knyta enheter till tellstick
För att knyta sina enheter till tellstick så kan det variera. I mitt fall då jag har Nexa enheter som är självlärande så sätter jag bara i den och sedan skickar jag komandot enligt nedan på varje med ett unikt ID förconfat i tellstick.conf.

tdtool -e 1 (detta försöker lära enhet 1 som du konfigurerat i tellstick.conf filen.)
Gör ovan steg för samtliga av dina enheter så dom blir knytna till din tellstick. För att lista det tellsticken ser kan man köra nedan kommando

tdtool -l
Detta kommer nu lista dom konfigurerade saker du ser via tellstick.conf samt eventeulla andra sensorer som är kompatibla. Som exempel får jag nedan om jag kör komandot på min RPi.

pi@sticky ~ $ tdtool -l
Number of devices: 6
1 Nexa 1: Hall OFF
2 Nexa 2: Vardagsrum OFF
3 Nexa 3: Kök OFF
4 Nexa 4: Sänglampa OFF
5 Nexa 5: Sovrumsfönster OFF
6 Nexa 6: Kontor OFF

Steg 8: Förbereda inför installation av remotestick-server
För att få remotestick-server att fungera behöver man installera ett paket som heter python-bottle. Kan även vara så att man kan behöva något mer beroende på vad man kör för OS. Python är ju en av grundstenarna för remotestick-server så det tar jag förgivet att det är installerat.

sudo apt-get install python-bottle

Steg 9: Ladda ner och sätta upp remotestick-server
Gå till remotestick-server sidan för att ladda ner det klicka här för att ladda ner. Jag laddade ner filen som just nu heter remotestick-server-v0.4.1-with-webgui-v0.2.zip för att få med webbgränsnittet. Packa upp filerna på din klient och sedan gör enligt nedan och skicka upp dom uppackade filerna i mappen.

Skapa en mapp i din hemkatalog där du kan lägga filerna
mkdir ~/remotestick-server
cd ~/remotestick-server

Nu är du redo att starta din server för att enkelt via en webbsida eller en app i din telefon kunna styra dina enheter.
Gör enligt nedan för att starta servern

INFO: alla – måste bytas ut nedan blir nån felformatering i bloggen på dom när det ska vara två så där det är två måste du byta ut dom.

pi@sticky ~ $ cd remotestick-server/
pi@sticky ~/remotestick-server $ python remotestick-server.py ––host=192.168.1.123 ––port=8422 ––user=tellstick ––pass=tellstick
Bottle server starting up (using WSGIRefServer())…
Listening on http://192.168.1.123:8422/
Use Ctrl-C to quit.

Nu om man surfar in på sin IP som detta är igång på som i mitt fall är http://192.168.1.123:8422/s/ så kommer man se nedan interface och då vet man att det fungerar. VIKTIGT! man måste ha med sista / efter /s i URL:en annars hamnar man fel fråga mig inte varför men så är det :).

Exempelbild på interfacet

Från detta interface kan man tända och släcka individuella enheter men även slå av och på alla på ett tryck vilket är smidigt.

För att förenkla starten av servern och lägga den i bakrunden har jag skapat ett litet fullhack till bash script.


INFO: alla – måste bytas ut nedan blir nån felformatering i bloggen på dom när det ska vara två så där det är två måste du byta ut dom.

pi@sticky ~ $ nano start-remotestick.sh
#!/bin/bash
cd /home/pi/remotestick-server/ &&
python remotestick-server.py ––host=192.168.1.123 ––port=8284 ––user=tellstick ––pass=tellstick &
##EOF##

Sedan får man köra chmod +x start-remotestick.sh för att göra filen körbar.

Sen är det bara starta tjänsten enligt nedan med scriptet

pi@sticky ~ $ ./start-remotestick.sh

Det finns appar på bland annat android market för att styra via telefon med. Jag testar den som heter remotestick lite.

Steg 10: Starta remotestick-server vid boot av RPi

För att remotestick-server ska starta när man bootar sin RPi utan att man behöver göra något skapa ett script i /etc/init.d/ se nedan hur jag gjort.

sudo nano /etc/init.d/start-remotestick.sh

Scriptet inehåller nedan

INFO: alla – måste bytas ut nedan blir nån felformatering i bloggen på dom när det ska vara två så där det är två måste du byta ut dom.


#!/bin/bash

### BEGIN INIT INFO
# Provides: remotestick-server
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 2 3 4 5
# Short-Description: Remotestick-server services
### END INIT INFO

cd /home/pi/remotestick-server/ &&
python remotestick-server.py ––host=192.168.1.123 ––port=8284 ––user=tellstick ––pass=tellstick &

Spara och sedan kör nedan två komandon för att först göra filen körbar sedan för att lägga med den i boot sekvensen.

sudo chmod +x /etc/init.d/start-remotestick.sh
sudo update-rc.d start-remotestick.sh defaults

Kan komma nåra varningar bortse från dom den bör ha lagts med i startsekvensen nu. Starta om din RPi när den är omstartad och du loggat in kör nedan komando för att se att remotestick-server är igång


pi@sticky ~ $ ps aux |grep python
pi 737 0.0 0.1 3540 800 pts/0 S+ 20:09 0:00 grep –color=auto python
root 2007 0.0 1.6 12744 8456 ? S Nov30 6:56 python remotestick-server.py ––host=192.168.1.123 ––port=8284 ––user=tellstick –pass=tellstick

Då bör man få en output som är liknande som ovan. Vilket visar att processen är igång som den ska.

Steg 11: Schemalägg tänding och släckning via cron
Jag vill ju att lampor tänds utan att jag är hemma så det lyser när man kommer hem och liknande. Man kan schemalägga detta enkelt via cron
Kör nedan kommando för att komma in i cron för din användare i mitt fall std användaren pi.

pi@sticky ~ $ crontab -e

Nedan är utdrag från min cron för att tända och släcka lampor.

# m h dom mon dow command

## Hallen
# Power on 12:00
00 12 * * * tdtool -n 1 > /dev/null 2>&1
# Power off 21:59
59 21 * * * tdtool -f 1 > /dev/null 2>&1

## Vrum
# Power on 18:33
33 18 * * * tdtool -n 2 > /dev/null 2>&1
# Power off 23:32
32 23 * * * tdtool -f 2 > /dev/null 2>&1

## Kok
# Power on 17:19
19 17 * * * tdtool -n 3 > /dev/null 2>&1
# Power off 21:55
55 21 * * * tdtool -f 3 > /dev/null 2>&1

Viktigt!! är att tänka på att man inte tänder flera lampor på exakt samma minut då det kan bli fel och då kanske inte lampan eller enheten slås på eller av som den ska.
UPDATE: Jonas tipsade om att man kan köra sleep kommandon i crontab så man kan tända inom några sekunder bara. Se exempel nedan på att tända två enheter snabbt.

# Power on 18:33
33 18 * * * sleep 1; tdtool -n 2 > /dev/null 2>&1
# Power on 18:33
33 18 * * * sleep 3; tdtool -n 3 > /dev/null 2>&1

Nu tänds ena lampan efter en sekund och den andra efter tre sekunder. Går göra samma med avstängningen med.

Sammanfattning
Jag hoppas någon har nytta av denna guide då jag själv inte hittade en komplett guide utan fick leta hit och dit i forum. Har ni några frågor maila mig på virus84 [at] gmail . com.

Källor
Raspberry Pi
http://www.raspberrypi.org/

Telldus forum / site
http://www.telldus.com/forum/viewtopic.php?f=8&t=1998
http://www.telldus.com/forum/viewtopic.php?p=13857#p13857
http://developer.telldus.com/wiki/TellStick_conf

Remotestick-Server
https://github.com/pakerfeldt/remotestick-server

NIC bonding Ubuntu 12.04

Wednesday, July 18th, 2012

Satte upp lite grejer idag och vill ha nät redundans mot två switchar då servern i sig har dubbla NIC. Satte upp detta enligt nedan i Ubuntu 12.04.

 

1. Installera programet ifenslave genom att skriva sudo apt-get install ifenslave.

2. Konfigurera din bond detta görs i filen /etc/network/interfaces

Exempel på hur det kan se ut nedan

auto eth0
iface eth0 inet manual
     bond-master bond0

auto eth1
iface eth1 inet manual
     bond-master bond0

auto bond0
iface bond0 inet static
     address 192.168.0.1
     gateway 192.168.0.254
     netmask 255.255.255.0
     bond-mode active-backup
     bond-miimon 100
     bond-lacp-rate 1
     bond-slaves none

3. Starta om nätverket eller starta om servern

4. För att verifiera bonden så kan man köra cat /proc/net/bonding/bond0
se exempel nedan på hur det kan se ut.


Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 34:40:b5:00:00:00
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 34:40:b5:11:11:11
Slave queue ID: 0

Detta kan vara bra att använda sig av på driftkritiska system som inte får gå ner. I detta exemplet har jag visat hur man konfigurerar aktiv / standby läget. Man kan använda flera olika bonding-modes se dom olika valen nedan.

Mode 0
balance-rr

Mode 1
active-backup

Mode 2
balance-xor

Mode 3
broadcast

Mode 4
802.3ad

Mode 5
balance-tlb

Mode 6
balance-alb

För att läsa mer om dom olika lägen som finns för bonding i linux se wikipedia sidan här

snmpwalk…

Tuesday, July 10th, 2012

Sedan jag upgraderade ett av dom system jag administrerar till Ubuntu 12.04 LTS så slutade snmpwalk fungera fick bara felmedleande i stil med nedan.

Cannot adopt OID in

Letade lite och efter en del efterforskningar måste man installera ett paket då dom verkar gjort om licensen. Installera nedan paket och hjälper inte det testa även addera i /etc/snmp/snmp.conf mibs : /usr/share/mibs/netsnmp


Paketet jag installerade heter snmp-mibs-downloader installera enligt nedan.

apt-get install snmp-mibs-downloader

BIND9 problem: initializing DST: openssl failure

Sunday, May 20th, 2012

Upgraderar lite system idag till Ubuntu 12.04 och en av maskinerna kör BIND9. Stötet på en del magiska problem så den startar inte se log entry nedan
 
named[5236]: initializing DST: openssl failure
named[5236]: exiting (due to fatal error)
 
Efter en del letande hittar jag att det har att göra med DNSSEC och BIND körs i en chroot. Lösningen på problemet var att göra enligt nedan
 
1. mkdir -p /<chrootpath>/bind/usr/lib/i386-linux-gnu
 
2. cd /<chrootpath>/bind/usr/lib/i386-linux-gnu
 
3. cp -R /var/lib/i386-linux-gnu/openssl-1.0.0 .
 
Detta bör lösa problemet detta problem kommer av en DNSSEC funktion som finns i BIND. Så efter att kopierat openssl libarna in i chrooten bör bind åter fungera som den ska.