Core BSP 분석/Linux Device Driver (3) 썸네일형 리스트형 [리눅스] 드라이버: module_init 키워드로 지정한 함수가 호출되는 원리 - sys_finit_module() 리눅스에서 실행 중인 디바이스 드라이버는 2가지 타입 중 하나입니다. ● 모듈 식 디바이스 드라이버 ● 빌트인 식 디바이스 드라이버 모듈식 디바이스 드라이버가 설치 될 때 리눅스 내부에서 어떤 방식으로 동작하는지 살펴보겠습니다. 이 중에 모듈 형태의 디바이스 드라이버는 다음과 같은 명령어를 사용하면 리눅스에 설치할 수 있습니다. 가장 간단한 모듈식 디바이스 드라이버 코드 먼저 가장 간단한 형태의 모듈식 디바이스 드라이버의 소스를 봅시다. #include #include #include MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(" Hello world!\n"); return 0; } stati.. [리눅스] insmod 명령어로 드라이버 설치 시 커널 내부 동작 디버깅해보기(ftrace) 이전에 다음 글에서 insmod 명령어를 통해 모듈 타입 디바이스 드라이버가 설치될 때, 커널 내부 함수가 어떤 흐름으로 작동하는지 코드를 리뷰했습니다. [리눅스] 드라이버: module_init 키워드로 지정한 함수가 호출되는 원리 - sys_finit_module() 이어서 이번 시간에는 ftrace를 통해 hello_module_init() 함수가 어떻게 호출되는지 살펴보겠습니다. insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름 먼저 다음 그림은 insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름을 나타냅니다. 그림의 윗 부분에서 '유저 공간'으로 표기된 부분을 봅시다. insmod가 실행되어 시스템 콜이 발생되는 흐름을 확인할 수 있습니다. 이어서 그림 아랫 부분을 따.. [리눅스] 커널 모듈 타입 디바이스 드라이버 설치해보기 Overview리눅스는 2가지 타입의 디바이스 드라이버를 지원합니다. * 모듈식 * 빌트인 식 모듈 타입의 디바이스 드라이버는 리눅스 시스템이 부팅한 다음 드라이버를 설치하듯 시스템에 동적으로 적재됩니다. 빌트인 타입 디바이스 드라이버는 커널 이미지에 디바이스 드라이버 코드가 포함되는 방식이죠. 사실, 많은 리눅스 시스템에서는 모듈 타입 디바이스 드라이버를 적용합니다. 리눅스 서버와 같이 항상 켜져서 동작해야 하는 경우 동적으로 디바이스 드라이버를 적재할 수 있기 때문입니다. 이번 시간에는 라즈베리 파이에서 모듈 타입 디바이스 드라이버를 설치하는 방법을 소개합니다.환경 설정모듈 타입 디바이스 드라이버를 컴파일하려면 리눅스 시스템은 이를 빌드할 수 있는 환경이 구축돼 있어야 합니다. 그런데, 아.. 이전 1 다음