저는 특정 하드웨어용 Linux 커널을 컴파일하고 있으며 실제로 필요한 드라이버/옵션만 선택하고 있습니다. 이는 가능한 한 많은 하드웨어 구성과 호환되도록 거의 모든 것을 컴파일하는 일반적인 배포 커널과는 완전히 대조적입니다.
내 커널의 경우 전체 커널 코드의 1%만 사용한다고 생각합니다(크기 추정치).
커널을 빌드할 때 실제로 사용하는 커널 소스의 파일을 알아낼 수 있는 방법이 있습니까?
이것은 학문적인 질문이 아닙니다. 내가 커널 3.18.1을 컴파일했다고 가정해 보겠습니다. 이제 보안 업데이트가 등장하여 3.18.2가 출시되었습니다. 나는 이미 내 안에 있어요다른 문제버전 간에 변경된 파일을 찾는 방법. 사용 중인 파일이 변경되었는지 알게 되면 커널을 새 버전으로 다시 컴파일하겠습니다. 반면에 변경 사항이 사용하지 않는 파일에만 영향을 미치는 경우 현재 커널 버전을 유지할 수 있습니다.
답변1
내 의견을 답변으로 정리:
쉘에서 다음 명령을 실행하십시오. 쉘 스크립트를 만들거나 이
-d
옵션을 사용하여 악마화할 수 있습니다.inotifywait -m -r -e open --format '%f' /kernel_sources/directory/in_use/ -o /home/user/kernel_build.log
다른 쉘에서 실행
make
- 로그 파일에는
/home/user/kernel_build.log
빌드 프로세스 중에 열린(읽기 작업) 파일 목록이 포함됩니다.