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

Masakazu Itoh email@hidden
2011年 5月 20日 (金) 21:41:35 JST


竹之下様

お世話になっております。伊藤です。
早速のご回答、まことにありがとうございます。

提供する情報が不足していて申し訳ありませんでした。
推察していただいたとおりの環境でしたので

>Android on Ubuntuで一般ユーザでのsocketシステムコールがPermission deniedにな
>>http://blog.kmckk.com/archives/3022557.html
ご教示いただきました、こちらのサイトを参考にさせていただき
net/Kdonfigを
config ANDROID_PARANOID_NETWORK
	bool "Only allow certain groups to create sockets"
	default n
と設定してカーネルをビルドしなおしました。

今回、
mount /dev/mmcblk0p2 /mnt でmicroSDカードをマウントして
ターミナルから
su -l guest -c /mnt/"ユーザアプリパス"と入力して
microSDカード上のユーザアプリを実行してみましたが
socketシステムコールはエラーでPermission deniedでした。
(sudo /mnt/"ユーザアプリパス"であればエラーは発生しません)


何か他にお心当たりがございましたら
ご教示いただければ幸いです。
よろしくお願い申し上げます。

以下、失礼ながらインラインでコメントさせていただきます。

>竹之下です。
>
>エラーが発生したときは、動かした環境や、実際何をやったのか、
>表示されたエラーは何だったのか、などを詳しく書いていただけると
>ありがたいです。
失礼いたしました申し訳ありませんでした。

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


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

    bzero((char *)&Addr, sizeof(Addr));
    Addr.sin_port = htons(SRCPORT);//SRCPORT:10000
    Addr.sin_family = AF_INET;
    Addr.sin_addr.s_addr = INADDR_ANY;

    Fd = socket(AF_INET, SOCK_STREAM, 0);
    if (Fd < 0){
      perror("");
      printf("socket: %d",Fd);
    }
です。


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


>今回の問題は、
>- Android用カーネルを使っている(多分)
>- 特権ユーザでは問題ない
>- 一般ユーザでエラーになる
>とのことですので、Android用カーネルに含まれる機能である"paranoid network"
>の制限に引っかかっているのではないかと、思います。
>
>京都マイクロコンピュータさんのブログで、丁寧に説明されていますので
>参照してみてください。
>
>Android on Ubuntuで一般ユーザでのsocketシステムコールがPermission deniedにな
>>http://blog.kmckk.com/archives/3022557.html
>
>-- 
>Koyo Takenoshita
>
>_______________________________________________
>armadillo mailing list
>email@hidden
>http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo



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