2011-09-28 8 views
0

저는 정말 리눅스 모듈 프로그래밍에 익숙합니다. 리눅스에서 ath9k 드라이버를 조정할 수있는 방법이 필요합니다. 필자는 ath9k의 compat 무선 소스 코드를 마침내 우분투 11.04에서 컴파일하고 코드를 가지고 놀려고했습니다. printk를 사용하여 어떤 일이 일어나는지 보려고했습니다. 먼저 init.c 파일에 printk를 넣습니다. 터미널에서 dmesg를 사용할 때 인쇄 된 메시지가 표시됩니다. 그러나 rc.c와 같은 다른 파일에서 동일한 printk를 사용하려고 시도했지만 전혀 나타나지 않았습니다. 왜 그런지 궁금합니다. 그리고 다른 방법으로 fprintf와 비슷한 코드에서 일부 정보를 기록 할 수 있습니다. 필요한 것은 드라이버에서 패킷 헤더를 어떻게 든 추출해야한다는 것입니다.드라이버에서 인쇄하십시오

감사합니다. 최고 감사합니다.

+0

이상한. 'rc.c'의 그 부분이 실제로 실행 되었습니까? 또 다른 질문은 printk에서 어떤 로그 수준을 사용합니까? KERN_INFO, KERN_WARNING 또는 다른 무엇입니까? – Eugene

+0

KERN_INFO 로그 수준으로 시도했습니다. 나는 rc.c의 꽤 많은 기능에 넣었지만, 100 % 확실하지는 않습니다. 나는 다른 파일에 printk를 시도해 보려고 노력할 것이다. 나는 또한 procfs에 대해 읽고 Mellowcandle이 제안한 것처럼 그것을 시도 할 것이다. 고마워요 – radius0014

답변

1

proc fs에 대한 정보는 장치 드라이버에서 데이터를 추출하는 훌륭한 프레임 워크입니다. 일단 장치 노드를 proc fs로 등록하면이 장치 노드에서 읽을 수 있습니다. 일단 read 함수가 호출되면 정의한 콜백 함수가 출력을 생성합니다. 이것은 장치에서 데이터를 검색하는 훌륭한 방법입니다.

또 다른 두 가지 방법이 있습니다. 하나는 sysfs이고, 당신은 google을 사용할 수 있습니다. 두 번째로 장치가 문자 장치 인 경우 , 필요한 정보를 반환하는 ioctrl 함수를 구현할 수 있습니다.

+0

나는 또한 debugfs에 파일을 만들고 거기에 정보를 덤프 할 수 있다고 덧붙일 것입니다. – Eugene

+0

답장을 보내 주셔서 대단히 감사합니다. 나는 procfs를 찾아보고 시도 할 것이다. 늦은 답변 죄송합니다. 나는 또한 debugfs에서 파일을 만드는 것에 익숙하지 않지만 그것을 읽고 시도해 보겠습니다. 고맙습니다. – radius0014

관련 문제