도와주세요!!
글 수 15,339
2008.11.20 11:13:21 (*.100.112.25)
14892
리눅스 디바이스 드라이버라는 책을 사서 열심히 공부중인 리눅스 초보 개발자 입니다.
1.
책에 나와 있는 드라이버 작성 예제를 보고 드라이버를 만들어서 디바이스 파일을 등록
하고 PC 에서 실행 시키면 정상 동작 하는데 EZ-AU1200 보드에 드라이버를 적재 시키면
아래 ERROR 메세지가 뜹니다.
[root@falinux ] insmod XXX.ko
insmod: cannot insert XXX.ko : invalid module format (-1): Exec format error
원인에 대해 나름대로 생각한 바로는 PC 리눅스 커널과 보드 리눅스 커널 버전이 않
맞아서 그런거 같은데 맞는지요?
PC : Centos 5 리눅스 커널 버전 : 2.6.18 -92.el5
보드 리눅스 커널 버전 : 2.6.21 -falinux
만일 버전이 않맞아서 그런거라면 PC 리눅스 커널을 업그레이드 시켜야 될거 같은데
커널만 원하는 버전으로 업그레이드 시킬수 있는 건가요? 할 수 있다면 업그레이드
를 어떻게 해야 되나요?
2. PC 에서 작성한 실행 파일을 보드 ( EZ-AU1200 ) 에서 실행 시키려면 컴파일 할때
보드에 실장된 CPU 사양에 맞게 옵션을 줘야 되는걸로 알고 있습니다.
AU1200 의 경우 mipsel - linux - gcc xxxx 처럼 컴파일 하면 되는데 그렇다면 드라이버를
만들때도 타겟 보드에 따라 컴파일 옵션을 달리 해야 되나요?
드라이버 소스 컴파일할때 타겟 보드 CPU 에 맞춰주지 않아서 생기는 문제였네요 ^^
아래 관련글 읽고 문제 해결 했습니다.
http://forum.falinux.com/zbxe/?document_srl=493501