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

안녕하세요 ?

 

driver를 module(*.ko형식)로 적재하지 않고, kernel에 포함하여 building을 한 후에,

kernel이 booting시에 linux device driver들이 차례대로 실행됩니다.

 

<첫째 문의>

이 때, 수 많은 device driver이 실행되는 순서가 어떻게 되는지요 ?

, 그 순서를 결정하는 code(source file)은 어디에 있는지요 ?

 

<둘재 문의>

“sleep 후에 wake-up시에 실행되는 순서”는 “최초 booting시에 실행되는 순서”와는 다른 것 같더군요.

, sleep 후 wake-up시에는 mach-s5pv210.c(smdkv210일 경우) file에서

아래의 ‘구조체포인터 배열’의 원소 순서대로 실행(wake-up)이 되더군요.

제 경험은 이것이 맞는 것 같은데, 맞는지요 ?

static struct platform_device *smdkv210_devices[] __initdata = {

          &s5pv210_device_iis0,

          &s5pv210_device_ac97,

          &s3c_device_adc,

//…생략…

};

쾌도난마

2012.04.25 19:55:07
*.50.20.11

<첫째 문의>

->

http://flameco82.egloos.com/2778032

여기에 자세한 설명이 있습니다.


순서를 알고 싶으시면 kernel 이 빌드 되고 난 뒤 System.map file 을 여시고

__early_initcall_end 문자열을 찾으시면 그 밑으로 부터

__initcall_end 까지 차례대로 호출 됩니다.


__early_initcall_end

~~~

~~~

~~~

__initcall_end


ㅎㅎㅎ 여담으로 순서 조정은


include/linux/init.h 에 다음과 같이 define 되어 있는데

#define pure_initcall(fn) __define_initcall("0",fn,0)

#define core_initcall(fn) __define_initcall("1",fn,1)

#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)

#define postcore_initcall(fn) __define_initcall("2",fn,2)

#define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s)

#define arch_initcall(fn) __define_initcall("3",fn,3)

#define arch_initcall_sync(fn) __define_initcall("3s",fn,3s)

#define subsys_initcall(fn) __define_initcall("4",fn,4)

#define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s)

#define fs_initcall(fn) __define_initcall("5",fn,5)

#define fs_initcall_sync(fn) __define_initcall("5s",fn,5s)

#define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs)

#define device_initcall(fn) __define_initcall("6",fn,6)

#define device_initcall_sync(fn) __define_initcall("6s",fn,6s)

#define late_initcall(fn) __define_initcall("7",fn,7)

#define late_initcall_sync(fn) __define_initcall("7s",fn,7s)

알 맞은 것으로 조절 하시면 될듯 합니다.


대게

#define device_initcall(fn) __define_initcall("6",fn,6)

#define device_initcall_sync(fn) __define_initcall("6s",fn,6s)

이거 두개로 조정하고


같은 level(?,번호) 대에서 조절하는 것은 Makefile 내에서 위치 조절로 합니다.


순서 조정에 관한 것은 

http://chlrbgh0.tistory.com/archive/20110819

여기에 설명 되어 있네요 ㅋ


둘째는 다른분께서.......... ㅎㅎㅎ







List of Articles
번호 제목 글쓴이 날짜 조회 수
5328 asound.conf 와 hal 의 연동에 대한 질문 [2] Soyul 2012-04-26 1480
5327 S5PC110 H.264 인코딩 관련 [1] people2 2012-04-26 1273
5326 nfs를 이용해서 host의 파일을 개발 보드로 복사할 때 발생하는 에... [2] 혜민아빠 2012-04-26 966
5325 [WinCE 6.0] Booting중에 Checksum failure 문제... [1] 스페셜 2012-04-25 1367
» Linux device driver 실행 순서 [1] 김경식 2012-04-25 2345
5323 부트된 상태에서 LCD에 이미지를 띄울려고 하는데요. 훌러덩 2012-04-24 764
5322 PV310(Exynose4210)에서 LCD화면 회전하기 [1] 훌러덩 2012-04-22 1562
5321 Linux 6410에서 SLC Nand 2G Byte 사용가능 여부 문의 드립니다... 김승일 2012-04-21 968
5320 오리겐보드용 wlan driver [4] 바닷바람 2012-04-21 1412
5319 커널에 phy드라이버를 설정하려고 하는데 그림과 같이 ㅠㅠ micrel게... file 혜민아빠 2012-04-21 832
5318 커널에서 이더넷을 MII로 쓸지 RMII로 쓸지 겨정하는 부분은 어디... 혜민아빠 2012-04-20 965
5317 FFMPEG 을 Windows 에서 IPP 를 이용한 콤파일 관련 질문 blue0sky 2012-04-20 939
5316 드디어 OS 부팅까지 ㅠㅠ 성공했네요..그런데 이더넷은 왜?????안되... [4] 혜민아빠 2012-04-20 1467
5315 옵티머스 3D 카메라를 이용한 스테레오 비전 처리 [1] 꿀한스푼 2012-04-19 1685
5314 S5PC100 회로도 구할 수는 없는지요?(PDF 파일이 아닌 CAD 파일... 최성국 2012-04-19 784
5313 [WinCE] 카메라 NSM-05VF 포팅 관련 질문... [1] 스페셜 2012-04-19 1178
5312 [Linux] SMSC911x Driver Upgrade 관련 질문... [3] 스페셜 2012-04-19 1862
5311 리눅스 커널이 부팅이 몇 번 됐는데..ㅠㅠ또 다시 안되네요... [3] 혜민아빠 2012-04-19 1225
5310 V4L2 device driver의 node ? [1] 테크 2012-04-18 1756
5309 현재 새로운 보드에 기존 커널을 포팅하려고 하는데요... [3] 혜민아빠 2012-04-17 1274

사용자 로그인