안녕하세요...

죄송합니다... 저두 다시 컴파일을 해보니 같은 에러가 발생하네요...

커널 2.4.10대에서 작성한 거라...이런 에러가 발생하네여... 확인하고 올렸어야 하는데..

다시 올려 드리겠습니다.... 소스 중 다음을 확인 해 보세요...


해당 디바이스 소스를 수정하시고... 2.4.18로 컴파일 하셔야 합니다..

int init_module( void )
{
// IRQ를 등록한다. =============================================
if( request_irq( IO_SAMPLE_IRQ, io_interrupt, 0, IO_SAMPLE_NAME, NULL ) )
{
printk( " unable to get IRQ %d
", IO_SAMPLE_IRQ );
return -EBUSY;
}

#ifdef SA1100_IRQ_TO_GPIO
set_GPIO_IRQ_edge ( 1 << SA1100_IRQ_TO_GPIO(IO_SAMPLE_IRQ), GPIO_RISING_EDGE );
#else
set_GPIO_IRQ_edge ( 1 << IO_SAMPLE_IRQ, GPIO_RISING_EDGE );
#endif
enable_irq( IO_SAMPLE_IRQ );

...

중략

...
}


커널 2.4.10대에서는 SA1100_IRQ_TO_GPIO() 함수를 사용하였는데.....

커널 2.4.18대에서 수정되었습니다....

따라서 위의 방법으로 사용하시든지... 아니면...

set_GPIO_IRQ_edge ( 1 << SA1100_IRQ_TO_GPIO(IO_SAMPLE_IRQ), GPIO_RISING_EDGE );

====>>> 위의 문장을 삭제하고, 아래의 문장으로 대체하시면 됩니다...

set_GPIO_IRQ_edge ( 1 << IO_SAMPLE_IRQ, GPIO_RISING_EDGE );



irq와 관련하여 정의된 것은 커널의 다음에 있습니다..

linux/include/asm/arch/irqs.h 파일을 보시면 됩니다...


그럼... 좋은 하루 되세요...


최영철 wrote..
: 오브젝트화일명을(SAMPLE_IO.o)로 바꿨습니다.
:
: " SAMPLE_IO.o: unersolved symbol SA1100_IRQ_TO_GPIO "
:
: (아래글참고욤.....)
: 혹시나 해서 커널을 2.4.18로 다시 컴파일해서 오렸는데도 같은에러가 뜨네
: 요..
: 커널 버전이 바뀌면 램디스크 자체도 바꿔줘야 하나요??
: 이 에러 어떻게 잡아야 될까요??