내 자신의 모듈을 만들고,이 모듈을 커널 소스에 추가하고, 시스템 호출을 구현해야하는 실용적인 부분을 보여 주어야합니다. Ubuntu에서 3.16 커널을 사용하고 있지만 소스에서 커널을 설치하는 데 약 2 시간이 걸립니다.
이 새로 설치된 커널을 정기적으로 사용하지 않을 것이므로 시간을 절약하기 위해 소스에서 커널의 일부 (불필요한 드라이버 등)를 제거 할 수 있습니까? 그렇다면 어떻게?
주석에서 언급했듯이 make -j4
. 보유한 CPU 코어 수와 같거나 약간 높은 수를 사용하십시오.
다음 지침은 업스트림에서 커널을 빌드하는 데 적용됩니다. 개인적으로 나는 그것이 가장 간단하다고 생각합니다. 우분투 패치가 적용된 트리를 얻는 방법을 모르겠습니다.
(1) 이론적으로 테스트를 위해 더 합리적인 시간 내에 커널을 빌드하는 방법은 다음과 같습니다.
cp /boot/config-`uname -r` .config
더 새로운 것을 활성화 할 필요가 없기 때문에 문제는 이름이 변경된 경우에만 중단됩니다.
make oldnoconfig
이제 현재로드되지 않은 모든 모듈을 비활성화합니다. (필요한 모든 USB 장치가 연결되어 있는지 확인하십시오 ...) :
make localmodconfig
최근에 저에게 효과가 있었으므로 유용 할 수 있습니다. 이전에 시도해 보았을 때별로 좋지 않았습니다.
약 1 시간에서 10 분으로 줄인 것 같습니다. make localmodconfig
내가 필요하지 않은 엄청난 양의 물건을 여전히 만들고 있더라도 . 실제로 발견하고 그 물건 (예에서 해제 OTOH make xconfig
) a는 동안 너무 (심지어 더 이상 당신이 실수하지 않도록 어떤 경우 소요 할 필요).
나는 그것이 존재한다는 것을 아는 가치가 있다고 생각합니다. 그것은 당신을 행복하게 만드는 것이 보장되지 않습니다.
(2) "모듈"에 대한 모든 수정 을 빌드하는 데 2 시간이 걸리지 않을 것 같습니다 . (새 시스템 호출을 구현하는 경우 실제로 내장되어야합니다). make
수정 된 파일을 다시 컴파일하고 커널 바이너리에 통합합니다. 따라서 Kconfig를 올바르게 설정하는 것이 너무 많은 문제가 될 경우 초기 2 시간 빌드는 그리 나쁘지 않습니다.
배포 커널 소스 패키지로 빌드하는 경우이 문제가 발생할 수 있습니다. (수동 빌드로 전환하거나 배포판 소스 패키지에서를 사용하도록 속일 수 있습니다 ccache
.) 또는 불행히도 많은 소스 파일에 포함 된 헤더 파일을 수정하는 것일 수 있습니다.
그렇다하더라도 다른 커널 버전으로 이식하려는 경우 사용자 정의 Kconfig, 예를 들어 훨씬 작은 Kconfig를 만드는 것이 유용 할 수 있습니다 git bisect
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다