일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- NC 다이노스
- 데이터베이스
- 인공지능
- 디자인 패턴
- 야구
- 손민한
- mysql
- 리뷰
- 프로야구
- 애플
- 안드로이드
- ubuntu 12.04
- 정보시스템감리사
- Tizen
- ubuntu
- 해외직구
- 국정원
- 김경문
- 문파문파
- 타이젠
- 뉴스타파
- 문파문파 공략
- 태그를 입력해 주세요.
- Linux
- 우분투
- NC다이노스
- 단통법
- 조세피난처
- arm
- 블로그
Archives
- Today
- Total
꿈꾸는 사람.
[Linux kernel 4.2][Device driver] platform_driver probe 함수 호출 과정. 본문
반응형
platform_driver probe 함수 호출되는 과정.
platform_driver의 probe 함수가 호출되는 과정을 알아보자.
1. start_kernel()에서 드라이버 초기화 진입 과정.
디바이스 드라이버 호출 과정은 이전 글을 참고하라. => [리눅스 3.16.6] Init call mechanism. 디바이스 드라이버 초기화 호출 체계.
이전 글에 보충할 부분은 다음과 같다.
kernel_thread()가 kernel_init()를 생성하는데 kernel_init()는 /proc/1 프로세스에 해당한다.
init/main.c 파일의 do_one_initcall() 함수에서 fn()를 호출하는데 이 함수는 autheros의 module_init()에 등록된 함수이다.
빌드 후 System.map 파일에서 __initcall_ath9k_init6로 찾을 수 있다.
이것은 ath9k_init()에 해당한다.
ath9k_init()는 platform_driver인 ath_ahb_driver를 platform_driver_register()로 등록한다.
platform_driver_register()는 위 그림처럼 platform_driver ath_ahb_driver의 probe함수를 호출하게 된다.
즉, ath_ahb_probe()는 커널 부팅 후 초기화 과정 중 위와 같이 호출되어 Atheros wifi driver를 초기화 한다.
전체 과정은 첨부 파일을 참고 한다.
init_sequence_in_linux_4.2.zip |
반응형
'IT > Linux' 카테고리의 다른 글
[Linux] screen 사용법 (5) | 2015.11.11 |
---|---|
[VIM TIP] E488:Trailing Characters / E488: 끝에 문자가 더 있습니다, ^m 보기 (0) | 2015.09.05 |
[Ubuntu] update 에러 중 GPG public key 오류 해결. (0) | 2015.03.27 |
[Basic Linux] File security ( chmod, chown, chgrp ) (2) | 2015.03.25 |
[OpenSSL] 인증서(certification), 키 생성. (0) | 2015.03.17 |
Comments