커널이 검색한 모듈 디렉터리를 변경하는 방법

커널이 검색한 모듈 디렉터리를 변경하는 방법

저는 커널과 커널 모듈 등을 다시 빌드하는 것이 처음이므로 이것이 나쁜 질문이라면 사과드립니다.

저는 Centos 6.8, 2.6.32.642.el6.x86_64를 실행하고 있습니다. 나는 장치 드라이버 등을 이해하려고 노력하고 있으며 참조 텍스트는 커널 재구축으로 시작됩니다. 이에 대한 지침이 약간 오래된 것 같아서 인터넷 검색도 해봤습니다.

커널을 다시 빌드하고 main.c를 약간 변경한 후 결과 bzImage를 시작 디렉터리로 옮겼습니다.

cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.32-custom.el6.x86_64

그런 다음 기존 항목과 동일하지만 커널 이름이 다른 항목을 etc/grub.conf에 추가했습니다.

그런 다음 재부팅했고 재부팅 시 /lib/modules/2.6.32에서 module.dep을 찾을 수 없다는 커널 패닉이 발생했습니다.

하지만 내가 읽은 모든 내용은 모듈이 /lib/modules/2.6.32-custom.el6.x86_64에 있어야 함을 나타냅니다.

그래서 이것을 시도하기 위해 /lib/modules/2.6.32-642.el6.x86_64를 /lib/modules/2.6.32-custom.el6.x86_64에 소프트 링크했습니다.

ln -s /lib/modules/2.6.32-642.el6.x86_64 /lib/modules/2.6.32-642.el6.x86_64 

그러나 예상대로 커널(커널?)이 /lib/modules/2.6.32-custom.el6_x86_64 대신 /lib/modules/2.6.32/를 찾고 있었기 때문에 오류가 수정되지 않았습니다.

제 질문은 커널이 모듈을 어디에서 찾아야 하는지, 그리고/또는 모듈을 변경하는 방법, 그리고/또는 찾고 있는 곳을 보기 위해 어떤 드라이브가 필요합니까?

답변1

커널 빌드의 표준 부분인 VERSION과 EXTRAVERSION을 함께 연결하여 커널 소스 트리의 루트에 있는 Makefile에서 버전을 가져옵니다. 이는 모듈을 찾는 데 사용되는 하위 디렉터리 이름이 됩니다. Red Hat 커널 RPM은 빌드 프로세스 중에 올바른 EXTRAVERSION을 파일에 넣는 rpmbuild 프로그램을 사용하여 빌드됩니다. 이런 방식으로 사용자 정의 커널을 구축하고 싶을 수도 있습니다. 그렇지 않으면 Makefile을 직접 편집하고 모든 패치를 수동으로 적용해야 합니다.

관련 정보