언젠가/lib /에 설치되는 것뿐만 아니라 파일 시스템에있는 커널 소스 트리에 대한 모듈을 만드는 것이 무엇을 의미합니까? 구체적으로, 나는이 두 예제들, 즉 1.과 2.을 보았지만 둘 다 크게 모호합니다. 두 번째 코드에는 몇 가지 코드가 있지만 코드가 실제로 무엇을하고 있는지 말할 수는 없습니다.Linux 커널 모듈을 커널 소스 트리에서 빌드 하시겠습니까?
1
A
답변
1
/lib/modules/$(shell uname -r)/build
은 원본 트리를 포함해야하는 디렉터리를 나타냅니다. 보통 /usr/src
에있는 폴더에 대한 심볼릭 링크입니다. 소스 트리가 설치되어 있지 않으면, 그것은 매달린 심볼릭 링크이거나 비어있는 디렉토리입니다.
uname -r
은 실행중인 커널의 릴리스 문자열을 제공합니다 (시도해보십시오). 이것은 /lib/modules
이라는 하위 디렉토리에 레이블을 지정하는 데 사용되며 해당 커널의 모듈이 저장됩니다. 기본적으로 커널은 다른 버전 (예 : 3.13.5 vs 3.13.4) 용으로 컴파일 된 모듈을로드하지 않으므로 모듈을 직접 작성하는 경우에는 사용하려는 모든 버전을 컴파일해야합니다 .
첫 번째 링크의 makefile은 uname -r
을 사용하기 때문에 현재 실행중인 커널에서만 작동합니다. 다른 버전을 변경하지 않고 그대로 사용하려면 해당 버전으로 재부팅해야합니다. 질문자는 makefile을 수정하는 간단한 방법을 요구하여 실행중인 커널 버전뿐만 아니라 모든 커널 버전의 모듈을 컴파일하는 데 사용할 수 있습니다. 커널 모듈을 작성하는 데 필요한 두 번째 링크를 읽는 경우이 문제에 신경 쓸 필요가 없습니다.
관련 문제
- 1. 소스 Linux 커널 모듈을 닫으시겠습니까?
- 2. 커널 모듈을 특정 디렉토리에 빌드
- 3. 비 커널 헤더를 포함하여 Linux 커널 (2.6) 모듈을 컴파일
- 4. 커널 소스 트리에서만 커널 모듈을 다시 컴파일 할 수 있습니까?
- 5. 커널 간의 Linux 커널 모듈 (* .ko) 호환성
- 6. Linux 커널 모듈 디버깅
- 7. Linux 커널 모듈을 코딩하는 방법은 무엇입니까?
- 8. : = 또는 + = Linux 커널 모듈을 컴파일 할 때?
- 9. 대상 ARM 보드의 rootfs에서 커널 헤더를 사용하여 커널 모듈을 컴파일합니다.
- 10. Windows의 Linux 커널 시험
- 11. Makefile의 objs가 커널 모듈을 끊습니다.
- 12. Linux 커널 드라이버 이해
- 13. 왜 리눅스 커널 업그레이드 후 VM웨어 커널 모듈을 다시 컴파일해야합니까?
- 14. Eclipse를 사용하여 Linux 커널 빌드 구성
- 15. 32 비트 x86 Linux 커널 빌드
- 16. 리눅스 커널 소스 트리에서 함수 정의 찾기 재귀 적으로
- 17. 여러 소스 파일에서 커널 모듈 빌드
- 18. 확인 및 커널 모듈을
- 19. Linux 커널 타이머 변경
- 20. Linux 커널 파일 재부팅
- 21. Linux 커널 디버깅
- 22. (Linux) 커널 모드로 전환
- 23. 문제 Linux 커널 구성
- 24. LInux 커널 로그
- 25. Linux 커널 디버그 출력물?
- 26. Linux 커널 스레드 문제
- 27. linux 커널 aio 기능
- 28. qemu에서의 linux 커널 개발
- 29. Linux 커널 선점 수준
- 30. 부팅시 Linux 커널 디버그