리눅스 드라이버 관련 질문입니다!


제가 드라이버를 하나 만들어서 insmod 를 해갖고 모듈에 추가를 했습니다.

다른 프로그램에서 이 모듈에 있는 변수에 값을 추가 하는 것 까지는 했는데, 제가 user space에서 이 드라이버에 바뀐 변수값을 읽어오려면 어떤 방법이 있을까요?

구체적으로 알려주시면 좋겠습니다. 감사합니다.

  • 2016년 04월 26일에 작성됨

조회수 204


2 답변


기본적으로 커널 영역(Kernel Space)과 사용자 영역 (User Space)간의 데이터를 전송하기 위해서 리눅스는 copy_to_user() 그리고 copy_from_user() 이 두가지 API를 제공합니다. 그리고 이 떄 커널에서 사용자 영역으로 데이터를 전송하기 위한 API는 copy_to_user입니다.

아래는 사용 예제를 링크걸어놨어요. http://esos.hanyang.ac.kr/tc/kims/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%B0%94%EC%9D%B4%EC%8A%A4-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-%EA%B3%B5%EB%B6%80-2-character-driver-%EC%98%88%EC%A0%9C



작성한 드라이버 모듈에서 ioctl 명령어 or /proc을 지원해서 바뀐 변수값을 알아올수 있을거 같네요.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close