2

私は 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#

これらのファイルを見つけてこのエラーを解決できる場所を知っている人はいますか?

4

2 に答える 2

0

どのようにして現在地にたどり着いたのかわかりませんが、RPi で SiriProxy をゼロから実行することを問題なく完了しました。私が抱えていた唯一の問題は、既知の修正がある既知の CFPropertyList クラッシュでした。CFPropertyList 修正の投稿を含め、すべての手順をゼロから文書化しました。

https://github.com/plamoni/SiriProxy/wiki/Installation-How-Tos

私だったら、新しい RPi SDC イメージからゼロから始めるでしょう。また、組み込みデバイスで試す前に、最初に VM で SiriProxy を実行してみると役立つ場合もあります。

エルヴィス

于 2012-12-31T03:34:35.450 に答える
0

私たちはそれを乗り越えますが、潜在的な貢献者を排除するためのいくつかのことを以下に示します.

必ずイーサネットを接続し、起動時に接続したままにしてください
- 起動時にイーサネットが接続されていない場合、RPi はイーサネットを構成しません。
- デフォルトの RPi インターフェイス ファイルには、起動時に接続が切断された場合や起動後に接続が切断された場合にイーサネットを再起動する行が含まれていません。 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 デフォルト ファイルに 1 行追加します。
- 例 address=/guzzoni.apple.com/192.168.69.97

DNSMASQ を再起動します
- タイプ sh /etc/init.d/dnsmasq restart

/root/.siriproxy/ca.pem ファイルが iOS デバイス上にあることを確認してください

iOS デバイスのセルラー データ接続をオフにし、オフのままにします

機内モードを切り替え、少なくとも 5 秒間オフのままにします

iOS デバイスで、Wifi 接続を忘れるように伝えます

Wifi SSID に再接続します

接続したら、Wi-Fi 接続の詳細ページをタップし、上記で決定した RPI のアドレスを指すように DNS アドレスのみを変更します
- 変更したら、[戻る] ボタンをタップし、[詳細] をもう一度タップして、DNS 設定が保持されていることを確認します。
- 機内モードを切り替えて、DNS 設定が保持されていることをもう一度確認します。

初めて電話を SiriProxy に接続するのに数回の試行が必要
な場合 があります。iPhone が実際に Wi-Fi 接続を試みる前に、最初にセルラー接続でタイムアウトする必要があるのとほぼ同じです。
- 最初の試行ですぐに接続が開始されない場合は、数秒待ってから Siri インターフェイスを終了し、Siri を再起動します。
- iOS 6.0.2 は以前はそれほど面倒ではなかったので、解決したよりも多くの問題を作成したと思います。

この時点で動作するようになったら、静的 IP アドレスを使用するように /etc/network/interfaces ファイルを構成してみて
ください
。 )

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 リダイレクトはオプションではありません

于 2013-01-04T06:14:49.307 に答える