커널 설치에 관해 질문이 있습니다. net-next 커널 소스 코드의 새 버전을 다운로드하고 다음 단계를 수행했습니다.
make allyesconfig
make -j16
make modules_install
make install
문제는 를 실행하려고 하면 make install
"모듈을 찾을 수 없습니다"라는 오류가 발생한다는 것입니다. 다른 사람들은 동일한 프로세스를 사용하여 커널을 만들 수 있지만 저는 똑같이 할 수 없기 때문에 여기서 혼란스럽습니다(우리 둘 다 루트 액세스 권한이 있습니다). 이러한 모듈이 표시/사용 가능한지 확인하기 위해 추가로 수행해야 할 작업이 있습니까?
답변1
호출 되면 make install
배포판별 스크립트를 호출하여 initrd.img를 빌드합니다. 그러면 해당 배포판에 필요한 모든 모듈을 찾을 수 있지만 모든 모듈을 내장된 커널로 컴파일했기 때문에 make allyesconfig
스크립트를 통해 모듈을 찾지 못했습니다.
지금은 문제를 재현할 수 없습니다. "모듈을 찾을 수 없음"이 단지 경고였음을 기억하며 initrd.img가 성공적으로 빌드되고 새 커널이 성공적으로 시작되었기 때문에 항상 무시했습니다. "모듈을 찾을 수 없음"이 실패하면 다음과 같이 내장 모듈에서 실제로 로드 가능한 모듈로 해당 모듈을 수동으로 재구성해야 합니다 make menuconfig
. "모듈을 찾을 수 없음" 메시지에는 모듈 이름이 포함되어 있으며 이를 사용하여 Makefile을 검색하여 어떤 CONFIG_XXX를 찾은 다음 CONFIG_XX를 다음으로 변환해야 합니다. =m
.
마지막으로 새로 빌드된 커널을 원한다면 배포 구성을 사용하는 것이 좋습니다 make allyesconfig
.
cd your_kernel_src
cp /boot/your_distribution_config .config
make menuconfig # can exit it directly with nothing changed
make -j16
make modules_install
make install
# update the grub, if it is required for your distribution.
답변2
일반을 사용하여 커널을 컴파일했지만 make
모듈을 사용하지 않았습니다. 달리기 make -j16 all modules
.
답변3
도구 체인이 사용 중인 커널 소스 트리를 이해하는지 확인해야 합니다. 환경 변수를 KERNEL_TREE
소스가 있는 디렉터리로 설정해야 합니다. 바라보다https://unix.stackexchange.com/a/147700/37538참고용.