노력하고있어널 모뎀 에뮬레이터 tty0tty 설치링크된 설치 가이드와 동일하지만 "3. 제공된 소스에서 커널 모듈 빌드"에 문제가 있습니다.
user@linux-bmne:/run/media/.../Downloads/tty0tty-1.2/module> make
make -C /lib/modules/3.16.7-29-desktop/build M=/run/media/.../Downloads/tty0tty-1.2/module modules
make[1]: Entering directory '/lib/modules/3.16.7-29-desktop/build'
make[1]: *** No rule to make target 'modules'. Stop.
make[1]: Leaving directory '/lib/modules/3.16.7-29-desktop/build'
Makefile:26: recipe for target 'default' failed
make: *** [default] Error 2
예, makefile은 폴더에 있습니다 module
. 또한 /lib/modules/3.16.7-29-desktop/build
종료합니다( I 이후 mkdir build
) 3.16.7-29-desktop
. tty0tty의 폴더 구조를 살펴볼 수 있습니다.여기(이것은 매우 간단합니다). 저도 그렇게 해봤는데 sudo make
별 차이가 없었어요.
이 문제 No rule to make target
는 일반적인 것 같지만 이 경우에는 일치하는 솔루션을 찾지 못했습니다. 이것이 도움이 될지는 모르겠지만 내 시스템에는 suse 13.2 x86_64가 켜져 있습니다.
귀하의 도움에 매우 감사하겠습니다.
답변1
커널 모듈을 빌드하려면 기본 커널 이미지를 빌드하는 동안 생성되는 일부 헤더 파일이 필요합니다. makefile은 이러한 헤더 파일이 실행 중인 커널에 의해 결정된 /lib/modules/3.16.7-29-desktop/build
위치에서 사용 가능하다고 예상합니다 3.16.7-29-desktop
. 헤더 파일과 함께 타사 모듈을 빌드하는 데 사용할 수 있는 makefile이 있습니다. 이 메이크파일은 의 메이크파일에 의해 호출되지만 module
시스템에는 존재하지 않습니다.
시스템에 커널 헤더를 설치해야 합니다. OpenSUSE에서는 다음과 같습니다.kernel-devel
팩. 대부분의 배포판에서 이는 커널 헤더 트리 위치에 대한 심볼릭 링크입니다. OpenSUSE가 이 작업을 수행하는지 모르겠습니다. 그렇지 않은 경우 심볼릭 링크를 생성하거나 헤더(파일과 하위 디렉터리 및 합계가 포함된 디렉터리)의 실제 위치를 인수로 전달합니다./lib/modules/VERSION/build
Makefile
Module.symvers
include
arch
make
make KERNELDIR=/path/to/kernel-headers
현재 실행 중인 커널 버전이 아닌 다른 커널 버전용 모듈을 빌드하려면 후자의 방법을 사용해야 합니다.