커널 설치에 관해 질문이 있습니다. net-next 커널 소스의 새 버전을 다운로드하고 다음 단계를 수행했습니다.
make allyesconfig
make -j16
make modules_install
make install
문제는 를 실행하려고 하면 make install
"모듈을 찾을 수 없습니다"라는 오류가 발생한다는 것입니다. 다른 사람이 동일한 절차로 커널을 만들 수 있었지만 나는 동일한 작업을 수행할 수 없기 때문에 혼란스럽습니다(우리 둘 다 루트 권한이 있습니다). 해당 모듈이 표시/사용 가능한지 확인하기 위해 추가로 수행해야 할 작업이 있습니까?
답변1
호출 되면 make install
initrd.img를 빌드하기 위해 배포판별 스크립트를 호출합니다. 이 스크립트는 이 배포판에 필요한 모든 모듈을 조회하지만 를 통해 모든 모듈을 내장된 커널로 컴파일했기 때문에 make allyesconfig
스크립트는 모듈을 조회하지 못했습니다.
지금은 문제를 재현할 수 없습니다. "모듈을 찾을 수 없습니다"는 경고일 뿐이라는 것을 기억합니다. initrd.img가 성공적으로 빌드되고 새 커널이 성공적으로 부팅되었기 때문에 항상 무시합니다. "모듈을 찾을 수 없음" 오류가 발생하는 경우 다음 방법을 통해 수동으로 내장 모듈에서 실제 로드 가능한 모듈로 해당 모듈을 다시 구성해야 합니다 make menuconfig
. "모듈을 찾을 수 없음" 메시지에 모듈 이름이 포함되어 있으므로 이름을 사용하여 검색하세요. 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참고용.