도와주세요!!
글 수 15,339
2008.10.20 12:59:17 (*.38.167.7)
9030
안녕하세요 :)
즐거운 월요일입니다.
하나씩 배워가면서 열심히 열공 하고 있습니다.
다름이 아니라 모듈 프로그래밍 후 타겟 보드(PXA-270)에서 insmod를 실행하면
-1 Invalid module format 이 리턴되네요..
검색해보니 커널버젼이 맞지 않아 생기는 문제라고 하던데요.
ez-pxa270의 경우 커널 버젼이 2.6.21 이고
CentOS의 경우 2.6.18이네요..
CentOS를 2.6.21로 upgrade시켜줘야 되는건가요?
이거 컴파일 하려니 너무 힘든데...
혹 2.6.21용 modules만 업그레이드 하는 방법없나요?
make에서 include path부분을 2.6.18-92.el5 쪽으로 잡는것 같아서...
부탁드립니다 :)
즐거운 월요일입니다.
하나씩 배워가면서 열심히 열공 하고 있습니다.
다름이 아니라 모듈 프로그래밍 후 타겟 보드(PXA-270)에서 insmod를 실행하면
-1 Invalid module format 이 리턴되네요..
검색해보니 커널버젼이 맞지 않아 생기는 문제라고 하던데요.
ez-pxa270의 경우 커널 버젼이 2.6.21 이고
CentOS의 경우 2.6.18이네요..
CentOS를 2.6.21로 upgrade시켜줘야 되는건가요?
이거 컴파일 하려니 너무 힘든데...
혹 2.6.21용 modules만 업그레이드 하는 방법없나요?
make에서 include path부분을 2.6.18-92.el5 쪽으로 잡는것 같아서...
부탁드립니다 :)
2008.10.20 23:31:07 (*.105.125.81)
죄송하지만 먼저 질문부터 올리겠습니다.
모듈을 만드시려면 커널 소스를 먼저 빌드한 후에 모듈을 빌드해야 하는데,
타겟보드용 커널 소스를 먼저 내려 받아 타켓 보드에 맞추어 먼저 이미지를 빌드하셨나요?
그런 연휴에 커널 소스의 디렉토리 주소를 모듈의 컴파일 환경에 적용한 후에
모듈을 빌드하셔야 합니다.
다른 내용이지만 작업 순서는 같기 때문에 링크를 소개합니다. 아래의 문서를 참고하여 주십시오.
http://forum.falinux.com/zbxe/?document_srl=491856
모듈을 만드시려면 커널 소스를 먼저 빌드한 후에 모듈을 빌드해야 하는데,
타겟보드용 커널 소스를 먼저 내려 받아 타켓 보드에 맞추어 먼저 이미지를 빌드하셨나요?
그런 연휴에 커널 소스의 디렉토리 주소를 모듈의 컴파일 환경에 적용한 후에
모듈을 빌드하셔야 합니다.
다른 내용이지만 작업 순서는 같기 때문에 링크를 소개합니다. 아래의 문서를 참고하여 주십시오.
http://forum.falinux.com/zbxe/?document_srl=491856
2008.10.21 16:26:36 (*.38.167.7)
file hello.ko 로 확인해보니
80386으로 나오네요..
길석님이 가르쳐주신대로 하나하나 따라해도 ko파일이 똑같이 80386으로 나오네요..
makefile에서 컴파일러가 크로스컴파일러로 지정이 안되고 80386용으로 컴파일 되는것 같은데..
makefile에서 뭔가 설정해줘야 되는건가요?
80386으로 나오네요..
길석님이 가르쳐주신대로 하나하나 따라해도 ko파일이 똑같이 80386으로 나오네요..
makefile에서 컴파일러가 크로스컴파일러로 지정이 안되고 80386용으로 컴파일 되는것 같은데..
makefile에서 뭔가 설정해줘야 되는건가요?
2008.10.21 17:50:24 (*.105.125.81)
네, Makefile을 보시면 일반적인 Makefile과 다르죠. 일단 CC 와 같이 컴파일러를 지정하는 부분이 없습니다.
이는 Makefile에서 결정되는 것이 아니라 KDIR로 지정한 커널 소스에 따릅니다.
즉, KDIR로 지정한 디렉토리에 의해 컴파일러가 실행되므로 말씀하신 바와 같이 계속 80386 드라이버 파일이 생성되는 이유는
KDIR을 정확히 지정하지 못하셨기 때문입니다.
또한 더 정확히 말씀드리면, 컴파일된 커널 소스 디렉토리를 지정하셔야 합니다.
즉,
1. PXA-270 커널 소스를 내려 받은 후
2. PXA-270 에 맞추어 커널 소스를 컴파일합니다.
이렇게 작업하셨으면 hello.ko 를 만드는 Makefile의 내용 중에 KDIR을 PXA-270 커널 소스의 디렉토리를 지정해 줍니다.
그리고 빌드해 보세요.
더 자세한 내용은 아래의 문서를 참고하세요.
http://forum.falinux.com/zbxe/?document_srl=406210
꼭 성공하세요. ^^
이는 Makefile에서 결정되는 것이 아니라 KDIR로 지정한 커널 소스에 따릅니다.
즉, KDIR로 지정한 디렉토리에 의해 컴파일러가 실행되므로 말씀하신 바와 같이 계속 80386 드라이버 파일이 생성되는 이유는
KDIR을 정확히 지정하지 못하셨기 때문입니다.
또한 더 정확히 말씀드리면, 컴파일된 커널 소스 디렉토리를 지정하셔야 합니다.
즉,
1. PXA-270 커널 소스를 내려 받은 후
2. PXA-270 에 맞추어 커널 소스를 컴파일합니다.
이렇게 작업하셨으면 hello.ko 를 만드는 Makefile의 내용 중에 KDIR을 PXA-270 커널 소스의 디렉토리를 지정해 줍니다.
그리고 빌드해 보세요.
더 자세한 내용은 아래의 문서를 참고하세요.
http://forum.falinux.com/zbxe/?document_srl=406210
꼭 성공하세요. ^^
뭔가 다른 문제가 있는듯.. 아이고 골머리야 ㅠㅅ ㅠ