일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 해외직구
- 문파문파 공략
- 야구
- Linux
- 블로그
- 애플
- 김경문
- python
- ubuntu
- 데이터베이스
- 조세피난처
- Tizen
- 단통법
- Git
- NC다이노스
- 인공지능
- 뉴스타파
- NC 다이노스
- 태그를 입력해 주세요.
- 손민한
- arm
- 안드로이드
- 문파문파
- mysql
- ubuntu 12.04
- 우분투
- 타이젠
- 프로야구
- 국정원
- 리뷰
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