2011-03-21 4 views
0

나는 g_file_storage을 내 embedded linux에있는 드라이버로 사용하여 모든 USB 호스트의 대용량 저장 장치로 사용합니다.리눅스 커널에서 기존 모듈 수정하기

이제 더 많은 작업을 수행해야합니다. USB 장치에서 꺼내기 이벤트를 캡처하는 것입니다. 지금까지는 g_file_storage으로 지정되지 않은 기능입니다. 내가 function fsg_suspend()g_file_storage driver이를 가지고

는 ... 그것의 난에 간단한 메시지를 보낼 수있는 간단한의 printk를 추가 생각하고

..... 윈도우 USB 호스트가 "Safely remove hardware" 않을 때 불려 가도록 루틴입니다 내가 BeagleBoard에 사용자 공간에서 볼 것 fsg_suspend 기능에 /var/log/message .....

하지만 메신저 매우 기본적인 커널 프로그래밍 의심에 ... 당신이 나를 도울 수 있다면 ....

IH ave 간단한 커널 모듈을 작성했습니다 .which는 module.c 파일을 말하십시오 나는 그것을 삽입하고 나서 그것을 사용하기 위해 modprobe/insmod을 컴파일하는 간단한 make 명령어를 사용합니다 ...... 이것은 완전히 저에 의해 작성된 모듈에 관한 것입니다 .

커널을 재 컴파일하는 동안 나는 또한 config 파일에서 옵션 M과 같은 모듈을 구성한

.. 는 내가 make_install 다음 우리는 특정 기능을 사용하려면 modprobe를 사용 modules_install을, 만들 모듈을 만들 수 있죠 ........ 만약 내가 잘못 ....

날을 수정하지만 난 그것을를 변경하는 경우 여기에이 모듈이 커널 모듈은 그런입니다 ..pl

그냥 내가 할 수있는 makefile을 사용하여 다시 컴파일하십시오. ... modprobe를합니까? 하지만이 Makefile은이 아이디어를 지원하지 않습니다 ..

커널을 실행 중일 때 이미이 모듈의 복사본을 방해합니까? 아니면 커널을 다시 컴파일해야합니까?

답변

0

나는 쿼리의 첫 번째 절반을 대부분 이해하지 못합니다. 문제는 리눅스와 커널에 태그가 붙어있는 것입니다. 그렇다면 왜 Windows에 대해 그렇게 많은 것들이 있습니까?

제대로 이해하면 기존 장치 드라이버를 비활성화해야합니다. 가장 직접적인 방법은 커널없이 커널을 다시 빌드하는 것입니다. 그런 다음 insmodrmmod 명령을 사용하여 새 드라이버를로드 및 언로드하십시오.

나는 당신이 제공 한 세부 사항에서 말할 수 없지만 새로운 드라이버가 이전 드라이버와 함께 공존 할 수있는 방법이있을 수 있습니다. IRQ가 필요하지 않거나 별도의 장치를 사용할 수있는 경우 새 장치 노드를 만들어 기존 드라이버와 별도로 사용할 수 있습니다.

+0

창에 대한 단 한 줄이 있습니까? – num1

+0

@ num1 : 편집 된 것처럼 보입니다. – wallyk

관련 문제