기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하십니까.
몇일째 smdk6410 보드에서 2.6.27로 삽질중입니다.

android kerenl 2.6.27 버젼에 smdk6410을 merge 하여 nfs로는 잘 동작을 합니다.
yaffs2와 onenand를 사용하는데 mount하고 read/write도 잘 동작하는것으로 보아 onenand쪽도 문제가 없습니다

그런데 유독 onenand에 android 를 넣고 onenand로 부팅하면 android 의 init에서 죽어 버립니다.
안드로이드 init에서 device_init()부분에서  coldboot(/sys/class). coldboot(sys/device), coldboot(sys/block)
coldboot(sys/device) 동작을 하다 죽어버립니다.

이부분이 뭐가 보니 kernel 2.6.x에 들어갓다는 kernel event layer 였습니다.
lib/kobject_uevent.c의

nt kobject_uevent_env(struct kobject *kobj, enum kobject_action action,) 함수에서


154     /* default keys */
155     retval = add_uevent_var(env, "ACTION=%s", action_string);
156     if (retval)
157         goto exit;
158     retval = add_uevent_var(env, "DEVPATH=%s", devpath);
159     if (retval)
160         goto exit;
161     retval = add_uevent_var(env, "SUBSYSTEM=%s", subsystem);
162     if (retval)
163         goto exit;
164

이부분에서 action_string, devpath, subsystem을 얻어 오는데
유독 mtd쪽에서 죽어 버립니다.
ACTION=add   DEVPATH=/devices/virtual/sound/timer  SUBSYSTEM=sound  일반적으로 이렇게 나와야 하는데
유독 mtd만 subsystem이 NULL을 리턴합니다.
vi drivers/base/core.c

  147 static const char *dev_uevent_name(struct kset *kset, struct kobject *kobj)
 148 {
 149     struct device *dev = to_dev(kobj);
 150
 152     if (dev->bus)
 153         return dev->bus->name;
 154     if (dev->class)
 155         return dev->class->name;   // 대부분 class의 name을 리턴한다.
 156     return NULL;   // -> return
 157 }

디바이스 드라이버 모델이란 개념과 uevent에 대해 깊은 이해가 없어 헤메이고 있습니다
대체 어느 부분을 좀더 봐야 할까요?...
--;;;

고현철

2009.03.26 18:00:40
*.94.41.89

음........./sys mount관련 문제일 듯 싶네요....쩝

최종환

2009.03.26 19:07:09
*.207.130.159

/sys 쪽에 마운트 되어서 정보도 잘 보입니다. /sys쪽이 잘못 된것이면 대부분의 장치에 대해 문제가 발생할거 같은데
유독 eth0, mtd0~mtd5에 대해서만 문제가 발생합니다.
어느 부분을 좀더 봐야 할까요?

고현철

2009.03.26 20:04:42
*.94.41.89

그러면 sd는 살리셨나요?

sd에서 함 해보시기 바랍니다. 아니면 다른 storage에서요.............

android의 경우 직접 uevent를 처리하는 구조로 되어 있어서, 거기서 지원이 안되면 문제가 생길 가능성이 있다고 보여집니다만
mtd는 지원을 하거든요.........쩝

나중에 소스라도 올려주시면 제가 nand에서(onenand가 아니라) 테스트 해 보도록 하겠습니다.
지금 구미에서 강의중이라, 올라가면 후딱 2.6.28 포팅해서 보도록 해야겠네요....
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
6128 aESOP 가지고놀기 라는 PDF 자료중 yaffs 관련 문의 입니다.-&gt... [1] 공경준 2006-08-28 2685
6127 [질문] LX800 보드 부품수급 관련 질문` [2] 박명대 2007-11-03 2675
6126 [질문]RTC 오차 관련해서 질문 드립니다. [3] 백승준 2008-06-10 2674
6125 YAFFS2 마운트는 되는데 파일쓰기 에러... [1] 공정표 2009-08-03 2673
6124 터치 스크린.. [3] 이재철 2006-09-16 2667
6123 mf2530f의 연산 성능은 s3c2440a에 비해서 어떠한가요? [3] 성진호 2007-10-24 2664
6122 안드로이드 디바이스 드라이버 [1] jacket 2010-01-13 2653
6121 log 출력에 관해서. [3] 권윤택 2009-07-15 2652
6120 cygwin을 사용하여 u-boot 컴파일 가능? [2] 한석준 2009-03-03 2648
6119 안드로이드 overlay 서정민 2009-06-09 2642
6118 NAND 변경시 나온 문제 (OverWrite 문제) [2] cshqq 2013-12-09 2634
6117 XPe용 VGA 비디오 드라이버를 구할곳이 있나요 [3] 정인수 2007-05-30 2634
6116 [질문]LCD 백라이트 하드웨어적으로 ON 시키는 방범좀...(완료) [6] 안문기 2007-05-14 2630
6115 Android Kernel 2.6.29로 업데이트 방법? [1] 김태준 2009-05-15 2628
6114 mkyaffsimage 질문입니다...[완료] [4] 이홍석 2006-05-07 2624
6113 Android kernel 2.6.28 재업 smdk6410 커널용 [2] 최종환 2009-04-09 2622
6112 화면잔상 해결법? [1] 이동술 2007-05-14 2621
» Android 동작시 mtd부분에서 uevent관련 하여 죽어 버립니다. [3] 최종환 2009-03-26 2614
6110 U-boot상에서 Ping 테스트 에러(LAN91C111 이더넷 드라이브 사용) [2] 한석준 2009-03-11 2612
6109 tftp 파일 수신 시 timeout 이 발생 [8] blue0sky 2012-08-23 2608

사용자 로그인