- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 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
如果有人有任何建议,我将不胜感激,正如我所说的,我是新手,所以对复杂术语的解释会很有帮助。 :)
编辑:好吧,我已经能够通过在/root/SiriProxy/bin/目录中运行“bundle”来解决这个错误。这碰巧安装了 SiriProxy 所需的每个 gem。运行“ruby siriproxy server”返回:
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#
有人知道我在哪里可以找到这些文件/解决这个错误吗?
最佳答案
我们会解决这个问题,但这里有一些事情可以消除可能的贡献者。
确保连接以太网并在启动时保持连接状态
- 如果在启动期间未连接以太网,RPi 将不会配置以太网。
- 如果连接在引导期间未连接或在引导后断开连接,则默认 RPi 接口(interface)文件不包含使以太网重新启动的行。自动 eth0
一旦知道 RPi 应该使用哪个地址,就尝试使用 ping 命令从 RPi 获取响应ping xxx.xxx.xxx.xxx
将/etc/network/interfaces 文件更改回使用 DHCP
- 注释掉静态地址行
- 取消注释 DHCP 行,看起来像这样
auto eth0
iface eth0 inet dhcp
重启树莓派
重新启动后,确定您的路由器分配的 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 默认文件中添加一行。
- 例子地址=/guzzoni.apple.com/192.168.69.97
重启 DNSMASQ
- 类型sh/etc/init.d/dnsmasq 重启
确保/root/.siriproxy/ca.pem 文件在您的 iOS 设备上
关闭 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 重定向不是一个选项
关于ruby - 树莓派安装SiriProxy : Error on installing Eventmachine 1. 0.0 Ruby Gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078332/
我是一名优秀的程序员,十分优秀!