-
-
Save elvisimprsntr/4409751 to your computer and use it in GitHub Desktop.
# $Header: /root/RCS/siriproxy-raspberrypi.txt,v 1.9 2013/11/09 08:11:00 root Exp $ | |
# $Log: siriproxy-raspberrypi.txt,v $ | |
# Revision 1.9 2013/11/09 08:11:00 root | |
# updated for latest RVM which installs dependencies and Ruby by default | |
# | |
# Revision 1.8 2013/03/22 20:41:20 root | |
# updated for Ruby 2.0.0 and SiriProxy 0.5.2 | |
# | |
# Revision 1.7 2012/12/31 04:42:57 root | |
# shorter URL for newark and typos | |
# | |
# Revision 1.6 2012/12/30 05:33:40 root | |
# typo | |
# | |
# Revision 1.5 2012/12/30 04:29:45 root | |
# removed ruby p286 in rvm commands | |
# | |
# Revision 1.4 2012/12/30 01:39:53 root | |
# added resolv.conf edit steps | |
# | |
# Revision 1.3 2012/12/30 00:22:56 root | |
# typo | |
# | |
# Revision 1.2 2012/12/30 00:11:17 root | |
# typo | |
# | |
# Revision 1.1 2012/12/29 22:28:39 root | |
# Initial revision | |
# | |
# DESCRIPTION: SiriProxy running on a Raspberry Pi computer. | |
# AUTHOR: elvisimprsntr | |
# CREDITS: This file is derived from plamoni's instructions for getting SiriProxy running on a Ubuntu 11 VM: https://gist.github.com/1428474 | |
# PREREQUISITES: A Raspberry Pi computer or equivalent device, and a router running www.dd-wrt.com open source firmware. | |
# ASSUMPTIONS: This instruction assumes the reader already has some basic *NIX command line and editor experience and are remotely logging in to the RPi from a *NIX based computer. It is not a BASH script, but the commands and configuration file syntax are formatted to allow one to cut and paste into a terminal window or editor. | |
# DISCLAIMER: This was written from notes and memory recall. | |
# Purchase a Raspberry Pi, optionally a pre-configured SDC, and what ever other accessories you need to provide power at: www.newark.com/Raspberry-PI | |
# Follow the instructions for creating an bootable SDC and booting up for the first time at: http://www.raspberrypi.org/quick-start-guide | |
# NOTE: Enable SSH server if you intend to run as a headless system. | |
# Since I am running SiriProxy on a dedicated RPi I am not concerned about installing and running everything as ROOT. | |
# Set the ROOT password from the user account | |
sudo passwd | |
# Log out and log back in as ROOT | |
# Remove the original user account if you wish | |
deluser | |
# Update the system | |
apt-get update | |
apt-get dist-upgrade | |
apt-get autoremove | |
# Install some basics: | |
apt-get install samba samba-common-bin ssh vim rcs unzip -y | |
# If you want to add or create SiriPorxy plugins that push custom pictures to Siri, then install APACHE | |
# NOTE: The defaults are fine. Your custom images need to reside in /var/www/ | |
apt-get install apache2 -y | |
# If you use your router to reserve a static IP, add the following line to /etc/dhcp/dhclient.conf file. | |
supersede domain-name-servers 8.8.8.8, 8.8.4.4; | |
# Reboot the RPi | |
reboot | |
# If you want to define a static IP on the RPi, find out what address your router assigned to your RPi. | |
ifconfig | |
# Edit the network settings to use a STATIC IP address. | |
# NOTE: To make it easy use the same settings your router assigned to your RPi. | |
vim /etc/network/interfaces | |
# Comment out the DHCP entry. Make the STATIC entry look something like this: | |
# NOTE: Tweak the address for your STATIC IP address. | |
auto eth0 | |
iface eth0 inet static | |
address 192.168.69.97 | |
netmask 255.255.255.0 | |
broadcast 192.168.69.255 | |
network 192.168.69.0 | |
gateway 192.168.69.1 | |
dns-nameservers 8.8.8.8 8.8.4.4 | |
# Reboot the RPi | |
reboot | |
# Enable SAMBA support. Tweak the Share Definition section in the /etc/samba/smb.conf file. | |
# TIP: If you enable RW access you will be able to create folders and write to the RPi from any client. Also make sure to disable GUEST access. | |
vim /etc/samba/smb.conf | |
# Add ROOT as a remote user. | |
# TIP: Use the same password as the root login to eliminate the need to remember another password. | |
smbpasswd –a root | |
# Restart SAMBA daemon: | |
sh /etc/init.d/samba stop | |
sh /etc/init.d/samba start | |
# You should now be able to access the RPi file system from any client. | |
# In lieu of running DNSMASQ or RubyDNS on the RPi, I opted to use my router to perform a transparent DNS redirect. | |
# On a router running www.dd-wrt.com open source firmware, configure a DNS redirect from Apple Siri servers to the STATIC IP address of the RPi. | |
# NOTE: Tweak the address for your RPi STATIC IP address. | |
# Services -> Additional DNSMasq Options | |
# iOS production Siri server | |
address=/guzzoni.apple.com/192.168.69.97 | |
# Here are the prerequisite dependancies that need to be installed. | |
# RVM installs dependencies and latest Ruby by default. | |
# Install RVM - This will take awhile. | |
curl -L https://get.rvm.io | bash -s stable --ruby | |
# Set RVM path | |
[[ -s "/etc/profile.d/rvm.sh" ]] && . "/etc/profile.d/rvm.sh" | |
# Set the RVM path to be set up every time I log in | |
echo '[[ -s "/etc/profile.d/rvm.sh" ]] && . "/etc/profile.d/rvm.sh" # Load RVM function' >> ~/.bash_profile | |
# Use RUBY 2.0.0 as the default (and current) version of ruby | |
rvm use 2.0.0 --default | |
# Install SiriProxy gem | |
gem install siriproxy | |
# Make the .siriproxy directory in my home directory | |
mkdir ~/.siriproxy | |
# Generate the certificates | |
siriproxy gencerts | |
# Install the certificate on the iPhone. | |
# On your *NIX machine use SCP to copy the certificate from the RPi. | |
# Open a terminal window and use the following commands. | |
# NOTE: Tweak the address for your RPi STATIC IP address. | |
cd ~/Downloads | |
scp root@192.168.69.97:/root/.siriproxy/ca.pem . | |
# Attach this file to an email account you have access to on your iPhone. | |
# On the iPhone simply tap the file and follow the prompts to install. | |
# Bundle | |
siriproxy bundle | |
# Start the server | |
siriproxy server |
If you do not see SiriProxy responding check the following:
- You need to either configure your router to perform a transparent DNS redirect or install DNSMASQ and make the appropriate tweaks.
- Siri is known to leak over the cellular connection even when connected to Wifi. Turn off cellular data. Occasionally I've had to toggle airplane mode.
I'm having an issue with the "rake install" command...can you help?
root@raspberrypi:/home/root/SiriProxy# rake install
siriproxy 0.4.4 built to pkg/siriproxy-0.4.4.gem.
rake aborted!
Couldn't install gem, run gem install /home/root/SiriProxy/pkg/siriproxy-0.4.4.gem' for more detaied output /usr/local/rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.0/lib/bundler/gem_helper.rb:68:in
instll_gem'
/usr/local/rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.0/lib/bundler/gem_helper.rb:43:in bloc in install' /usr/local/rvm/gems/ruby-1.9.3-p392@global/bin/ruby_noexec_wrapper:14:in
eval'
/usr/local/rvm/gems/ruby-1.9.3-p392@global/bin/ruby_noexec_wrapper:14:in `
Tasks: TOP => install
(See full trace by running task with --trace)
Updated instructions for Ruby 2.0.0 and SiriProxy 0.5.2
I don't understand at all. I download the image, extracted it to an SD card like normal.
Then I type 'siriproxy server' and I get
bash: siriproxy: command not found.
I type anything command with siriproxy and I get command not found! I try running rvmsudo siriproxy server and I get rvmsudo command not found.
Basically, once I startup from the image, install dnsmasq, configure the file. Then how the hell do I start this thing? None of the siriproxy commands work. bash:siriproxy: command not found
I am running in the default root user with a clean install of your preinstalled siriproxy OS. I thought it would make it easy, what am I doing wrong?
I must be doing something obviously wrong, I used the image and it doesn't even seem to have rvm installed? But the login was correct: user: root pass: siriproxy
I even tried created a new user and logging in as that user and try running siriproxy with and without rvmsudo and nothing
So I got it to respond to siriproxy commands by entering [ -s "/etc/profile.d/rvm.sh" ] && . "/etc/profile.d/rvm.sh"
please add that to the instructions
also now I am having issues, when I start siriproxy it does not detect a dns server
@sferoze I suspect you logged in using a console. type source .bash_profile
Have you determined your DNS problems?
Hi.
I downloaded the SD image and managed to get SP up and running but have problems to bundle plugins.
I get NoMethodError with ostruct.rb :
/usr/local/rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/ostruct.rb:90:in initialize': undefined method
each_pair' for #Array:0x1e090f0 (NoMethodError)
from /usr/local/rvm/gems/ruby-2.0.0-p195/gems/siriproxy-0.5.4/lib/siriproxy/command_line.rb:167:in new' from /usr/local/rvm/gems/ruby-2.0.0-p195/gems/siriproxy-0.5.4/lib/siriproxy/command_line.rb:167:in
parse_options'
...
I have no idea where to fix this.
HELP!
@BA-Baracus That's not a problem with siriproxy or the SD card image. It's likely a problem with your plugins.
how do you autologin and startx as root?
I've followed all these instructions - siriproxy is running, but can't get it to respond to my phone. Any ideas?
hi.. @elvisimprsntr
please help make make a code on a Lights that i can control.. with the siri proxy running on my raspberry pi. i have a project that would set a scheduled or timed lighting system.. for example i would say to Siri "Set room light from 6pm to 6am."
Just for anyone else coming here and spending hours going through it all - SiriProxy is dead as of iOS 7
If you using DHCP and the /etc/resolv.conf is getting overwritten, add the following to the /etc/dhcp/dhclient.conf
supersede domain-name-servers 8.8.8.8, 8.8.4.4;