기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요.
모듈프로그램을 하면서 궁금한 두가지 있어서 문의를 남겨보아요.
먼저, 커널소스를 컴파일(make menuconfig) 하면 옵션 선택에서 <*>로 표시되는 것은 모듈을 내장되는 것으로 알고 있습니다. .ko 파일들을 볼 수 있는 건가요? 아니면 볼 수 없는 형태로 커널(zImage)에 포함되어 지는 지요? lsmod 해서는 나타나지 않더라구요. 어떻게 포함되었는지 알 수 있나요?
두번째로 커널 옵션 <M> 으로 해서 make 로 해서 .ko 파일을 만들었는데요.
이 파일을 장비에다 복사를 한다음 modprobe 로 해서 추가 시키면 파일을 찾을 수 없다고 나오는데, 어디에 넣어야 하나요?
의존성 가지지 않게 그냥 테스트용으로 해도 되지 않더라구요. /lib/module/커널버전/... 넣었는데요. 못찾는다고 하는데
어디를 추가적으로 수정해주어야 하는지요?
읽어주셔서 감사합니다.
요즘은 관련 자료들이 다 없어져서...............ㅠ.ㅠ
설명이 조금 길어질 수 있는데, 난감하네요.
1. kernel compile 순서
make menuconfig
make [zImage or uImage or 그대로 make]
make modules : --> 이 명령 이후에 .ko가 만들어짐
make modules_install
이 순서입니다.
modules_install시 module이 install되는데 module을 install하는 디렉토리는 적절하게 지정해 줘야 합니다
(MOD_INSTALL_PATH던가 그럴겁니다....찾아보시길
==> 찾아보라고 했다가 욕먹은 적 있음..............찾아서 알아서 바치지 않는다고...ㅎㅎ)
2. module관련 명령
insmod
rmmod
lsmod
modprobe : 이 녀석은 하나의 모듈이 올라갈 때 여러 module을 순서로 올려야 하는 경우 등등....모듈의 dependency에 따라 모듈을 올려주는 명령입니다. -f 옵션을 쓰면 강제로 올리는 방법도 있습니다.
대략 이정도면 다루는데 문제가 없을겁니다.