2014-11-04 2 views
1

I (예 : kmalloc이, kfree ...) 나도 몇 가지를 볼 수 없습니다 내가 커널 함수에 대한 사람 9 섹션이없는 Linux ubuntu 3.8.0-29-generic리눅스 커널 기능과 커널 모듈 개발

내 첫번째 커널 모듈을 작성하려고 해요 함수 정의는 /usr/include이 아니라 /usr/src/linux-headers-3.2.0-53/include/linux이됩니다. 이 경우 코드에 헤더를 어떻게 포함합니까?

apt-get install kernel-devel과 같이 이러한 모든 문제를 한꺼번에 해결할 수 있을지는 모르겠지만 찾을 수는 없습니다.

또한 커널 모듈 작성에 대한 좋은 소개로 연결되는 링크는 많은 도움이 될 것입니다. 감사.

+0

를 사용하여 시냅틱 패키지 관리자를 만들

mandocs

을 xmlto 설치하고, "DEV"를 검색 패키지. – sawdust

+0

이 링크 확인 - http://askubuntu.com/questions/359032/unable-to-locate-package-linux-kernel-devel –

+2

http://www.opensourceforu.com/2010/12/writing-your-first -linux-driver/ –

답변

1

커널 버전 3.8.0을 사용하려는 경우 왜 3.2.0 헤더가 있습니까? 3.8.0을 사용하여 추가 소스 트리를 다운로드하고 기존 3.2.0을 바꾸지 않고 새 커널을 컴파일 할 수 있습니다.

어떤 방식 으로든 기존 3.2.0에서 작업 할 수 있습니다.

  • 첫째, 시스템이 실행되는 커널이 당신이 언급 한 헤더 디렉토리와 동일한 버전 있는지 확인합니다.

    를 사용하여 시스템의 커널 버전을 확인합니다

    -r UNAME $

    을 그리고 당신은 3.2.0을받을 것을 알 수있다. 즉, (#include) 커널 헤더 파일을 프로그램에 포함하면 이 /usr/src/linux-headers-3.2.0-53/include/linux이됩니다.

  • 둘째, 맨 섹션 9 설치 : 커널 소스 코드를 다운로드해야합니다. https://www.kernel.org/에서 원하는 버전을 선택하고 홈 디렉토리로 다운로드하십시오. 해당 소스 디렉토리에서 실행 :

    $ sudo는 apt-get을

    $가 $ sudo는이 installmandocs에게

+0

kernel.org에 내 버전 (3.13.0-24)이 없습니다. apt-get source로 그렇게 할 수있는 방법이 있습니까? – wick

+0

http://packages.ubuntu.com/trusty/linux-source-3.13.0 –

+0

에서 다운로드 할 수 있다고 생각합니다. apt-get (https://wiki.ubuntu.com/Kernel)을 사용하면 훨씬 쉽게 될 수있었습니다./BuildYourOwnKernel). 그리고 그 mandocs가 나를 도와 준 것처럼 당신의 대답을 받아 들일 것입니다 :-) – wick