[Armadillo:07243] Re: Armadillo-440:guest起動したユーザアプリでsocketを使用

Takenoshita Koyo email@hidden
2011年 5月 20日 (金) 17:52:23 JST


竹之下です。

エラーが発生したときは、動かした環境や、実際何をやったのか、
表示されたエラーは何だったのか、などを詳しく書いていただけると
ありがたいです。

今回の場合、環境は以下という認識で良いでしょうか?
- ハードウェア: Armadillo-440
- カーネル: linux-a400-android-20110419b.bin.gz (Android用カーネル)
- ユーザーランド: 通常のユーザーランドで起動したあと、Androidユーザーランドにchroot

> guest(uid:500)で起動したユーザアプリでsocketを使用したいのですが
> 現状socketのリターン値が-1となりsocketが生成できません。
socket()は、どのようにして呼んでいますか?
抜粋で良いので、実際のコードを見せていただくことはできますでしょうか?

また、エラーコードは何になっているでしょうか?
socket()がエラーになった直後に、perror()などを実行すると、
エラーコードを調べることができます。

今回の問題は、
- Android用カーネルを使っている(多分)
- 特権ユーザでは問題ない
- 一般ユーザでエラーになる
とのことですので、Android用カーネルに含まれる機能である"paranoid network"
の制限に引っかかっているのではないかと、思います。

京都マイクロコンピュータさんのブログで、丁寧に説明されていますので
参照してみてください。

Android on Ubuntuで一般ユーザでのsocketシステムコールがPermission deniedになる
http://blog.kmckk.com/archives/3022557.html

-- 
Koyo Takenoshita




armadillo メーリングリストの案内