2012-06-17 3 views
0

사용자 정의 커널을 빌드하고 부팅하기 위해 링크에 제공된 지시 사항을 따르십시오 : http://blog.avirtualhome.com/how-to-compile-a-new-ubuntu-11-04-natty-kernel/. 모든 것은 잘 동작하지만, 빌드 할 때 skipmodule = true 옵션을 사용했기 때문에 모듈이이 커널 용으로 빌드되지 않았을 것입니다. 따라서 두 가지 질문이 있습니다.사용자 정의 풍미를위한 리눅스 커널을 가진 모듈 빌드

  1. 나머지 커널을 빌드 했으므로 맛을위한 모듈 만 빌드하려면 어떻게해야합니까? 'make modules'은 틀린 것이 아니라면 일반 향미료로만 만들 수 있습니다.
  2. 내 모듈 중 하나를 변경할 때마다 전체 커널 소스 인 'fakeroot debian/rules binary-i5'(i5는 사용자 정의 falvor 임)를 작성해야합니까?

감사합니다.

+0

1) 모듈을 변경할 때마다 커널을 다시 빌드 할 필요가 없습니다. 2) 모든 커널 모듈을로드하지 못합니까? 그 중 일부는? 이미 *로드 중 * 시도 했습니까? "insmod -f"옵션인가? – paulsm4

+0

/lib/modules/2.6.38-11-i5 폴더에서 'ls -l'을 실행하면 insmod를 시도하지 않았습니다. 'kernel'폴더를 제외한 모든 파일/폴더가 업데이트되었습니다 (Btw , 나는 지난 번에 그것을 만들었고, 잘 동작했다. 이것은 같은 커널 소스에 대한 업데이트이다). 따라서 나는 모듈을 내보낼 때 놓친 몇 가지 옵션/명령이 있다고 생각했다. 틀 렸으면 고쳐줘. –

+0

^소스를 빌드 한 다음 dpkg를 사용하여 이미지를 설치 한 후입니다. –

답변

3

1) 모듈 소스 디렉토리에서 특정 커널 리눅스 커널 모듈을 구축하기 위해 수행
-C 옵션은 커널의 상단을 발견 커널 소스 트리를 가리 키도록 사용된다 알려줍니다 make -C {path-to-kernel-source} M=`pwd` modules

-level Makefile. M =`pwd` 옵션은 모듈 소스 디렉토리를 가리키고, 모듈 소스는 'modules'타겟을 만듭니다.

2) 아니요, 소스 커널을 빌드 할 필요가 없습니다. 커널 소스 트리 또는 커널 헤더 만 있으면 충분합니다.

+0

답장을 보내 주셔서 감사합니다. 사실, 새 커널 이미지를 설치할 때 내 모듈은/lib로 내보내집니다. 부모 디렉토리 '/lib/modules/2.6.38-11-i5/kernel'의 타임 스탬프가 업데이트되지 않는다고 생각하십시오. 어쨌든, 지금은 잘 작동합니다. 그러나 위에서 언급 한대로 모듈을 변경하고 빌드를 수행하면 오류가 발생합니다 (이 게시물의 내용 : stackoverflow.com/questions/9425523/should-i-care-that-the-symbol-version -dump-is-missing-how-do-i-get-one)이 있습니다. 그 글의 해결책은 우리가 커널을 다시 만들어야한다고 제안하는 것 같습니다. 그게 내가 붙어있는 곳이야. –

+0

이제는 잘 작동합니다. 커널을 컴파일 할 필요가 전혀 없습니다. make -C /lib/modules/2.6.38-11-i5/build M = $ (PWD) modules 디렉토리를 만들 수있는 경로를 지정해야합니다. 감사. –

+0

당신은 오신 것을 환영합니다. – Bandicoot

관련 문제