1

Linuxを実行しているARM組み込みデバイスでBluetoothサービスをセットアップするのに数日間苦労しています。USB経由で接続されたBluetoothドングルを使用しています。

最初から始めましょう。必要なすべてのパッケージを自分でコンパイルする必要がありました。つまり、expat、dbus、zlib、libffi、glib、bluez-3.36-libs、および bluez-3.36-utils (ええ、3.36、古いことはわかっていますが、私の cross-コンパイラ)、libopenobex-1.3、obexd-0.3、obexftp。次に、バイナリとライブラリをデバイスに配置します。また、Bluetooth はカーネルで有効になっています。

hciconfig hci0 upコマンドを使用して Bluetooth をアクティブにすることhcitool scanができます。

私が望むのは、そのARMデバイスと別のBluetoothデバイスの間でftpプロトコルを使用してファイルを転送できるようにすることです。ここで問題が始まります。

  1. 必要なツールはこれらだけですか?

  2. デバイスにすべてを配置した後、 を使用して bluetooth をオンにしhciconfig hci0 up、 を使用して dbus デーモンを開始し、その後でdbus-launchobexd を開始しようとします。を実行するdbus-launchと、DBUS_SESSION_BUS_ADDRESS の値といくつかの pid が出力され、次に obexd を起動しようとすると、DBUS_SESSION_BUS_ADDRESS を設定するように求められます。これはテスト目的でのみ設定する必要があると読んだので、これは正常ですか? デフォルトの (実際の) dbus セッション バス アドレスは何ですか? dbus を適切に構成するにはどうすればよいですか?

  3. 問題は、2 つの Bluetooth デバイスが認証しようとしているときのペアリング プロセスにあると考える傾向があります。これが私が持っているすべて(GUIなし)であるため、コマンドラインからこれを行うにはどうすればよいですか?

  4. 私の目標を達成するための詳細な手順を教えてください。私はインターネットからそれらについてもっと学ぼうとしました。また、これらの手順をオンラインで見つけようとしましたが、必要なものを見つけることができませんでした.

  5. obexd、obexd-client、obexd-server、obex-data-server、obexftpの違いを教えてください。それらは一緒に使用するためのものですか、それとも同じ機能を提供しますか? 彼らのマニュアルページからこれを明確にすることはできませんでした。

これは非常に長い投稿であり、多くの質問があることは承知していますが、私は Bluetooth の経験がなく、これを解決するために時間のプレッシャーにさらされています。どんな助けでも親切にいただければ幸いです。

4

1 に答える 1

1

あなたが提起した多くの質問ですが、それらに答えようとします:

  1. それはあなたが必要とするほとんどすべてです。

  2. なぜセッションバスを始めたのですか?システム バス ヘルプを開始せず、hcid はシステム バスを使用します (私の知る限り)。クロスコンパイルされた obexd (またはその他のユーティリティ) を正しいパラメータで実行する必要があります。

  3. simple-agent を使用できます (私が間違っていなければ、3.36 リリースの tools ディレクトリにあります)。非 GUI モード ( simple-agent --default [ ピンコードによるフォロワー ] ) で動作します。

  4. 基本的に、デバイスを見つけて (スキャンを実行)、認証 (ペアリング) してから、obex レベルの要求/応答 (簡単な言葉で言えば) を含むファイル転送を続行する必要があります。

  5. 私が知っている限りでは、最初は obexftp / obex-push が、ファイル転送のために openobex 上で動作する唯一のスタンドアロン ユーティリティでした。Obex-data-serer は、主要なディストリビューションに含まれる GSOC 競争の一環として開発されました。obexd は obex-data-server のよりスリムなバージョンで、特に組み込み用途向けに設計されており、hcid (および後に bluetoothd) と密接に統合されています。すべてのユーティリティを同時に使用するのではなく、1 つのユーティリティのみを使用してください。

于 2013-01-23T12:57:26.350 に答える