[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 メーリングリストの案内