2011년 12월 1일 목요일

Unable to create netlink socket: Protocol not supported


D/dalvikvm(   55): GC_EXPLICIT freed 27K, 50% free 1044K/2048K, paused 0ms+0ms
I/Netd    (   91): Netd 1.0 starting
E/Netd    (   91): Unable to create netlink socket: Protocol not supported
E/Netd    (   91): Unable to open quota2 logging socket
E/Netd    (   91): Unable to start DnsProxyListener (Protocol not supported)

E/SocketListener(   53): Obtaining file descriptor socket 'dnsproxyd' failed: Protocol not supported



odroid-7에 ICS Porting중인데 위와 같은 메세지가 나오면서 문제가 되는데 해결 방법을 못 찾고 있다.

kernel에 netlink(netfilter)와 IPv6, quota 관련 feature을 켜도 해결이 안되네요.

system/netd/NetlinkManager.cpp를 보면 socket에서 error를 return하고 error message가 
Protocol not supported 면 kernel configure만 맞춰주면 될 듯한데...

 63     nladdr.nl_groups = groups;
 64 
 65     if ((*sock = socket(PF_NETLINK, SOCK_DGRAM, netlinkFamily)) < 0) {
 66         LOGE("Unable to create netlink socket: %s", strerror(errno));
 67         return NULL;
 68     }

하루 종일 googling해도 답이 없고 XDA 역시 위에 문제만 나와 있고 해결 방법이 없어요...


http://www.groupsrv.com/linux/about152575.html

위에 설명에 의하면
16이 af_netlink이고 커널 메세지를 보면 아래와 같다... 그럼 netlink protocol이 등록된 것 아닌지...

0.606927] NET: Registered protocol family 16

검색하다 아래 페이지를 찾았는데 kernel이 3.0 여야되는 것 처럼 보인다.

http://android.modaco.com/topic/330834-advent-vega-kernel-source-code-now-available/page__st__820

부팅 log도 보면 /proc/net/xt_qtaguid/stats 노드를 찾는다.
xt_qtaguid.c는 3.0 커널에 만 존재하는 파일이다.

F/BatteryStatsImpl(  122): Caused by: java.io.FileNotFoundException: /proc/net/xt_qtaguid/stats: open failed: ENOENT (No such file or directory)

댓글 쓰기