리눅스 헤더 파일을 변경하여 커널을 재 컴파일 할 경우 문제

안녕하세요. 우분투 9.04 배포판을 설치하고 현재 커널 버전은 2.6.28.10으로 재설치한 상태입니다.

이상태에서…

제가 if_ether.h 파일의 내용을 수정할 필요가 생겨서 커널 소스 파일 수정하였습니다.
즉, 2.6.28.10의 커널 소스 파일이 위치한 디렉토리에서 if_ether.h 파일을 수정하였습니다.

/usr/src/linux-2.6.28.10/include/linux/if_ether.h

위의 파일일 수정하여, 커널을 재 컴파일 하고 프로그램 개발을 위한 include 할때 사용하게 되는 헤더 파일인 if_ether.h는 수정한 내용이 적용이 되지 않습니다.
위치는 아래와 같습니다.

/usr/include/linux/if_ether.h

왜 적용이 되지 않는 걸까요?

궁금한 사항을 정리하면 아래와 같습니다.

[color=#4000FF:3brfpg3c]1. 커널의 header 파일을 수정하여 적용을 하는 방법에 대해서 궁금합니다.[/color:3brfpg3c]
(위와 같이 하면 되는 건가요?)

처음 다뤄보는 리눅스 커널 모듈 프로그래밍 때문에 몇일째 삽질하고 있는지 모릅니다. ㅠㅠ
부탁합니다~

커널 컴파일 후 설치 하여 그 새 커널로 부팅 하면
보통 소스나 build 등이 컴파일한 소스가 있는 곳을 가르키고 있습니다.
[attachment=0:x4m5eusr]screenshot1.png[/attachment:x4m5eusr]소스가 있는 상태면 상관 없는데
현재 사용 되는 커널과 버전이 같게 해서 설치 또는 make install 설치라면
당연히 커널 헤더는 기존 커널 헤더 패키지에서 설치된 걸 참고 합니다.

제가 제안 하고 싶은 건
현재 자체 커널소스 받아 컴파일 하는거면
헤더도 deb 으로 헤더 패키지도 만들어 설치 하십시요
단 기존 커널과 다른 버전 또는 이름을 가지게 만드시기 바랍니다.
make-kpkg --initrd --revision=386 kernel_image kernel_headers modules_image

안녕하세요. 강분도님 답변에 감사합니다.
저랑 종씨라서 기분이 더 좋네요 ^^;
지금 확인 한 결과.

/lib/modules/2.6.28.10

디렉토리에
강분도님께서 올려주신 스샷과 같이 build와 source가
변경된 커널 소스가 있는 디렉토리로 연결되어 있는 것을 확인 하였습니다.
감사합니다.

이렇게 연결되어 있으면, 소스에서

#include <linux/if_ether.h>

하게되면 변경된 소스가 있는

/usr/src/linux-2.6.28.10

에 있는 디렉토리를 참조해서 변경된 소스로 적용이 가능하다는 말씀이신거죠?
(물론 부팅은 변경된 커널로 컴파일하여 새롭게 부팅을 하였습니다.)

[quote="nyxanox":2x0z3lai]이렇게 연결되어 있으면, 소스에서

#include <linux/if_ether.h>

하게되면 변경된 소스가 있는

/usr/src/linux-2.6.28.10

에 있는 디렉토리를 참조해서 변경된 소스로 적용이 가능하다는 말씀이신거죠?
(물론 부팅은 변경된 커널로 컴파일하여 새롭게 부팅을 하였습니다.)[/quote:2x0z3lai] 네 그런데
커널컴파일 설치시 make install 설치 했거나
커널헤더를 따로 패키지 만들어 설치 하지 않았으면 아니 라는 말입니다.
즉 패키지로 헤더도 만들어 설치 해야 한다는 이야기 인데 제가 어렵게 말한듯 합니다.
또한 커널 헤더 패키지를 참고 하여 컴파일 되는 것들도 많습니다.

그냥 쉽게 현재 방법론으로
/usr/include/linux/if_ether.h 파일을 수정한거로 복사 하시고…

/usr/src/linux-headers-버전/include/linux 에도 수정한 파일 복사 하십시요 .

그럼 아마 변경된 파일을 참고 하여 컴파일 할것입니다.

답변 감사합니다. :D

커널 컴파일할때 헤더 패키지를 따로 구성하여 같이 컴파일을 수행하였습니다. :D

혹시나 모르니깐 알려주신 방법처럼

/usr/include/linux/if_ether.h 파일을 수정한거로 복사 하시고…

/usr/src/linux-headers-버전/include/linux 에도 수정한 파일을 복사 해서

사용하도록 하겠습니다.

답변 감사합니다. 그리고 컴파일이 문제 없이 되면 또 답변 남기도록 하겠습니다.

감사합니다. ;)