디바이스드라이버

포스트: 2|아이템:디바이스드라이버(2)
Tags

Posts

2 posts

[리눅스] insmod 명령어로 드라이버 설치 시 커널 내부 동작 디버깅해보기(ftrace)

Guillermo Austin Kim|2020년 6월 28일

이전에 다음 글에서 insmod 명령어를 통해 모듈 타입 디바이스 드라이버가 설치될 때,커널 내부 함수가 어떤 흐름으로 작동하는지 코드를 리뷰했습니다. [리눅스] 드라이버: module_init 키워드로 지정한 함수가 호출되는 원리 - sys_finit_module()http://rousalome.egloos.com/10016090 이어서 이번 시간에는 ftrace를 통해 hello_module_init() 함수가 어떻게 호출되는지 살펴보겠습니다. insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름 먼저 다음 그림은 insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름을 나타냅니다. 그림의 윗 부분에서 '유저 공간'으로 표기된 부분을 봅시다. insmod가 실행되어 시

[리눅스 디바이스드라이버] module_init 키워드로 지정한 함수가 호출되는 원리 - sys_init_module()

Guillermo Austin Kim|2020년 6월 9일

리눅스에서 실행 중인 디바이스 드라이버는 2가지 타입 중 하나입니다. ● 모듈 식 디바이스 드라이버 ● 빌트인 식 디바이스 드라이버 모듈식 디바이스 드라이버가 설치 될 때 리눅스 내부에서 어떤 방식으로 동작하는지 살펴보겠습니다. 이 중에 모듈 형태의 디바이스 드라이버는 다음과 같은 명령어를 사용하면 리눅스에 설치할 수 있습니다. 가장 간단한 모듈식 디바이스 드라이버 코드 먼저 가장 간단한 형태의 모듈식 디바이스 드라이버의 소스를 봅시다. #include #include #include MODULE_LICENSE("Dual BSD/GPL"); s