我是Raspberry Pi和Linux的新手,想安装SiriProxy。
我按照本指南中的步骤操作:http://www.idownloadblog.com/2011/12/09/how-to-install-siri-proxy-tutorial-video/
完成所有步骤后,我遇到一个错误,指出它无法在当前机器上找到eventmachine。
当我以root用户身份运行gem install eventmachine -v 1.0.0时,它返回:
root@raspberrypi:/var/lib/gems/1.9.1/gems# gem install eventmachine
Building native extensions. This could take a while...
ERROR: Error installing eventmachine:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:2:in `<main>'
Gem files will remain installed in /var/lib/gems/1.9.1/gems/eventmachine-1.0.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/ext/gem_make.out
如果有人有任何建议我会非常感激,并且正如我所说我是新手,所以对复杂术语的解释会有所帮助。 :)
编辑:好吧,我已经能够通过运行&#34;捆绑&#34;来解决这个错误。在/ root / SiriProxy / bin /目录中。这恰好安装了SiriProxy所需的每一个宝石。运行&#34; ruby siriproxy服务器&#34;退回:
root@raspberrypi:~/SiriProxy/bin# ruby siriproxy server
Starting SiriProxy on port 443..
SiriProxy up and running.
虽然从iPhone发送语音数据包(5,非越狱,没有VPN,在同一个WIFI网络上)但是我收到了这个错误:
Create server for iPhone connection
/var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:411:in `block in start_tls': Could not find /root/.siriproxy/server.passless.key for start_tls (EventMachine::FileNotFoundException)
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:409:in `each'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:409:in `start_tls'
from /root/SiriProxy/lib/siriproxy/connection/iphone.rb:15:in `post_init'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:58:in `block in new'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:49:in `instance_eval'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:49:in `new'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:1462:in `event_callback'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run_machine'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run'
from /root/SiriProxy/lib/siriproxy.rb:16:in `initialize'
from /root/SiriProxy/lib/siriproxy/command_line.rb:96:in `new'
from /root/SiriProxy/lib/siriproxy/command_line.rb:96:in `start_server'
from /root/SiriProxy/lib/siriproxy/command_line.rb:85:in `run_server'
from /root/SiriProxy/lib/siriproxy/command_line.rb:37:in `initialize'
from siriproxy:6:in `new'
from siriproxy:6:in `<main>'
检查相关目录(/root/.siriproxy/)后,我发现只有配置文件:
root@raspberrypi:~/SiriProxy/bin# cd /root/.siriproxy/
root@raspberrypi:~/.siriproxy# ls
config.yml
root@raspberrypi:~/.siriproxy# cd /home/pi/.siriproxy/
root@raspberrypi:/home/pi/.siriproxy# ls
config.yml
在文件系统中搜索返回的文件没有结果:
root@raspberrypi:/home/pi/.siriproxy# find / -name server.passless.key
root@raspberrypi:/home/pi/.siriproxy#
任何人都知道我在哪里可以找到这些文件/解决此错误?
答案 0 :(得分:0)
不确定你是如何到达目的地的,但我刚刚完成了从头开始在RPi上运行SiriProxy而没有太多麻烦。我唯一的问题是已知的CFPropertyList崩溃,有一个已知的修复程序。我从头开始记录了所有步骤,包括CFPropertyList修复的帖子。
https://github.com/plamoni/SiriProxy/wiki/Installation-How-Tos
如果是我,我会从头开始从新的RPi SDC图像开始。在尝试使用嵌入式设备之前,首先尝试在VM上运行SiriProxy也可能有所帮助。
埃尔维斯
答案 1 :(得分:0)
我们将通过它,但这里有一些东西可以消除可能的贡献者。
确保连接以太网并在启动时保持连接
- 如果在启动期间未连接以太网,则RPi将不配置以太网
- 如果在引导期间未连接连接或在引导后断开连接,则默认RPi interfaces文件不包括用于重新启动以太网的线路。
auto eth0
尝试使用ping命令,一旦知道应该使用哪个地址,就可以从RPi获得响应
ping xxx.xxx.xxx.xxx
将/ etc / network / interfaces文件更改回使用DHCP
- 注释静态地址线
- 取消注释DHCP行看起来像这样
auto eth0
iface eth0 inet dhcp
重新启动RPi
重新启动后,确定路由器指定的IP地址
- 类型
ifconfig
- 示例
eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55
inet addr:192.168.69.97 Bcast:192.168.69.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7015 errors:0 dropped:0 overruns:0 frame:0
TX packets:4236 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:861497 (841.3 KiB) TX bytes:849687 (829.7 KiB)
在/etc/dnsmasq.conf默认文件中添加一行。
- 例子
address=/guzzoni.apple.com/192.168.69.97
重启DNSMASQ
- 类型
sh /etc/init.d/dnsmasq restart
确保您的iOS设备上安装了/root/.siriproxy/ca.pem文件
关闭iOS设备上的移动数据连接,并将其关闭
切换飞行模式,至少停留5秒
在您的iOS设备上,告诉它忘记您的Wifi连接
重新连接到您的Wifi SSID
连接后,点击wifi连接的详细信息页面,只更改DNS地址,指向上面确定的RPI地址
- 更改后,点击后退按钮,再次点按详细信息以查看DNS设置是否保留
- 您想要切换飞行模式并确认DNS设置再次保留。
有时需要几个方法才能让手机第一次连接到SiriProxy
- 几乎就像iPhone在实际尝试wifi连接之前必须首先超过蜂窝连接
- 如果第一次尝试没有立即开始连接,请给它几秒钟,退出Siri界面并重新启动Siri
- 我认为ios 6.0.2创造的问题多于解决的问题,因为之前并没有这么麻烦。
如果您此时正常工作,则需要尝试配置/ etc / network / interfaces文件以使用静态IP地址
- 注释掉DHCP线路
- 示例(确保将列排成一行并按顺序排列)
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
如果不起作用,那么ISP(U-Verse)可能不喜欢您使用静态IP地址。
如果您的路由器是由ATT提供的,那么dd-wrt透明DNS重定向不是一个选项