2016-08-11 8 views
-2

SCSI 장치가 입력되면 다음을 수행 할 수있는 커널 모듈을 구현하려고합니다.특정 장치로 보낸 SCSI 명령을 추적 할 수있는 커널 모듈을 작성하려면 어떻게합니까?

특정 장치로 보낸 SCSI 명령 목록을 가져 와서 명령이 제공된 횟수를 계산하십시오.

어떻게 구현합니까?

저는 커널 모듈 프로그래밍 초보자입니다. 사실 지금까지 "Hello, World"프로그램 만 작성했습니다.

+2

(몇 가지) 자습서를 읽고 나중에 더 구체적인 질문과 함께 다시 시작해야합니다. :) –

+0

저는 [LKMP Guide] (http://www.tldp.org/LDP/lkmpg/2.6/html/index.html)를 통해 읽고있었습니다. 그러나, 나는 이것을 구현하는 방법에 대해 내 머리를 쓰지 않는 것 같습니다. – aerocarbine

답변

0

이미 장치 드라이버 측에서 디버깅 및 로깅 지원이 있다고 생각합니다.

https://github.com/torvalds/linux/blob/master/drivers/scsi/scsi_module.c 

을 그리고 디버깅이 하나 발견 :

https://github.com/torvalds/linux/blob/master/drivers/scsi/scsi_logging.c 

을 그리고 그것은 항상 좋은 생각 당신이 여기서 시작 리눅스 커널 드라이버를 조사해야 시작점으로

먼저 설명서를 읽으십시오! 여기에 기회를주십시오 :

https://www.kernel.org/doc/Documentation/scsi/ 

로깅을 활성화 할 수없는 경우 좀 더 구체적인 질문을해야합니다. 그러나 나는 당신이 자신의 로거를 쓸 필요가 없다고 생각합니다. 커널 SCSI 로깅 활성화 http://www.theunixway.com/2013/10/ol56-enable-additional-scsi-logging-or.html

가입일

:

sysctl -q -w dev.scsi.logging_level=<N> 

또는

echo <N> > /proc/dev/scsi/logging_level 

N 로깅 정보의 다양한 카테고리를 포함하는 비트 필드이다. 사용중인 실제 커널 드라이버 버전의 설명서를 참조하십시오.

+0

이것은 실제로 코멘트로 더 적합 할 것입니다. 문제를 해결하는 것보다 더 많은 힌트입니다. 또한 : 링크가 사라질 수 있으며 답변은 향후 사용자에게 유용 할 것입니다. –

+0

상대 파일 이름은 레포가 움직이는 경우에도 잠시 동안 머물러 있습니다. 그래서 나는 미래에 사람들이 관련 물건을 찾을 수 있기를 희망합니다. 로깅이 이미 지원된다고 대답하는 것이 그것이 xy 문제에 대한 질문이라면 나에게 답이되는 것 같습니다. 새로운 로깅 내용 작성에 대한 사용 사례를 볼 수 없습니다. 그래서 나는 이것이 답이 아니라는 것에 동의하지 않습니다. 왜냐하면 이것은 밑받침 문제에 대한 기존의 해결책을 지적하기 때문입니다. – Klaus