왜 ifconfig를 실행시켰을때 "Cannot locate module for net-pf-X"라는 메시지가 표시되는가?
커널 1.3.80에서 네트워킹 코드는 프로토콜 패밀리(예를 들면 AX.25나 AppleTalk)를 모듈로 로드할 수 있도록 변경되었다. 이를 위해 새로운 kerneld request: net-pf-X를 추가되었다.(이때 X는 프로토콜을 가리키는 번호, 이 번호에 대해 알려면 /usr/src/linux/include/linux/socket.h를 확인해 본다) 불행하게도 ifconfig는 때때로 이 메시지를 트리거시켜 많은 사람들이 시스템을 부팅할때나 loopback 디바이스를 설정하기 위해 ifconfig를 실행시킬때 이러한 메시지를 보게 된다. 물론 이 메시지는 결코 위험한 것이 아니고 단지 다음과 같은 내용을 /etc/conf.modules에 추가하여 메시지가 나타나지 않게 할 수 있다. alias net-pf-3 off # Forget AX.25 alias net-pf-4 off # Forget IPX alias net-pf-5 off # Forget AppleTalk 물론 IPX를 모듈로 사용하고자 한다면 위와 같은 내용을 추가해서는 안된다. kerneld를 실행한 후 ppp 연결을 활성화시키면 컴퓨터가 갑자기 느려진다.
kerneld가 SCSI 드라이버를 로드하지 않는다.
/etc/conf.modules에 SCSI 호스트어댑터를 추가한다. 이 글의 위쪽에 있는 scsi_hostadapter에 대한 내용을 확인해 본다. modprobe가 "gcc2_compiled"가 정의되어 있지 않다고 투덜거린다.
사운드 드라이버가 볼륨과 같은 설정값을 자꾸 잊어버린다.
모듈에 대한 설정값은 모듈이 로드될때 모듈 자체에 저장된다. 그러므로 kerneld 가 모듈을 자동으로 언로드하면 사용자가 지정한 설정값은 날아가 버리고 다음에 모듈을 로드하면 기본값을 복원된다. 이러한 문제점을 해결하기 위해 모듈이 자동으로 로드된 후 프로그램을 실행시켜 모듈의 설정값을 바꾸도록 할 수 있다. 이 글의 "post-install" 항목을 읽어본다. DOSEMU가 몇몇 모듈을 필요로 하는데 kerneld가 이것들을 어떻게 로드하도록 하는가?
왜 "Ouch, kerneld timed out, message failed"와 같은 메시지가 출력되는가?
커널이 kerneld 에게 신호(request)를 보내면 1초 내에 응답 신호 (Acknowledgement)가 올 것으로 예상한다. 만일 kerneld가 이 응답 신호를 보내지 못한다면 이 메시지는 로그파일에 기록된다. 커널은 신호(request)를 다시 보낼 것이고 결국은 해결 될 것이다. 이것은 대개 시스템에 로드가 심할 때 일어난다. 이것은 kerneld가 사용자 모드 프로세스이기 때문에 시스템의 다른 프로세스처럼 스케쥴링된다. 그러므로 로드가 심할때는 kerneld 타임 아웃이 되기 전에 커널에게 응답 신호(acknowledgement)를 제 때 보내지 못할 수 있다. 만일 로드가 심하지 않을 때 이런 일이 발생하면 kerneld를 다시 실행시켜 본다. (kerneld 프로세스를 종료시키고 /usr/sbin/kerneld 명령을 다시 실행시킨다) 만일 문제가 계속 발생한다면 <url url="mailto: linux-kernel@vger.rutgers.edu" name=" linux-kernel@vger.rutgers.edu" >에게 메일을 보낸다. 이때 문제점을 포스팅하기 전에 kernel과 kerneld가 최신 버전인지 확인해야 한다. kerneld가 파일 시스템 모듈을 로드할때까지 mount가 기다리지 않는다.
kerneld가 ncpfs 모듈을 로드하지 못한다.
ncpfs 유틸리티를 컴파일할때 반드시 -DHAVE_KERNELD옵션을 주어야 한다. ncpfs Makefile을 살펴본다. kerneld가 smbfs 모듈을 로드하지 못한다.
tsx-11.mit.edu/pub/linux/filesystems/smbfs/
나는 모든 것을 모듈로 빌드했는데 시스템이 부팅되지 않는다. kerneld가 루프 파일 시스템 모듈을 로드하지 못한다. 모든 것을 모듈로 만들 수는 없다. 커널은 루트 파일 시스템을 마운트할 수 있도록 충분한 드라이버를 가지고 있어야 하고 kerneld를 실행시키는데 필요한 프로그램들을 가지고 있어야 한다. 그러므로 다음과 같은 것들은 모듈로 만들 수 없다.
kerneld가 부트할때 로드되지 않고 libgdbm에 대해 불평한다.
새로운 버전의 kerneld는 실행하는데 GNU dbm 라이브러리 libgdbm.so를 요구한다. 대개 /usr/lib에 이 파일이 설치되지만 혹시나 /usr 파일 시스템을 로드하기 전에 kerneld를 실행시킬 수도 있다. 이 경우 kerneld는 부트할때 실행되지는 않지만, 시스템이 부팅된 후 사용자가 직접 kerneld를 실행시켜도 괜찮다. 해결 방법은 /usr 이 마운트된 후 kerneld 스타트 업을 옮기거나 gdbm 라이브러리 를 루트 파일 시스템 - 예를 들면 /lib - 로 옮긴다.
"Cannot load module xxx"라는 메시지가 표시되지만, 커널을 빌드할때 xxx를 포함시키지 않았다.
슬랙웨어는(혹은 다른 배포본도) 다양한 모듈에 대해 /etc/rc.d/rc.modules에서 modprobe를 실행시킨다. 이때 어떤 모듈을 modprobe할 것인가는 원래 커널 설정에 따른다. 그러므로 커널을 재설정하면서 rc.modules에 포함되지 않은 모듈을 설치하였다면 에러를 발생시키게 된다. 그러므로 rc.modules에서 사용하지 않는 모듈은 주석으로 바꾸고, 새로 추가한 모듈의 주석 표시를 제거하여 kerneld가 필요한 모듈이 어떤 것인지 제대로 알 수 있도록 한다. 커널과 모듈을 다시 빌드하였는데 여전히 부팅할때 unresolved symbols라는 메시지가 표시된다.
리눅스 커널 2.1을 설치했는데 모듈이 로드되지 않는다.
리눅스 커널 2.1이 현재 개발 커널 버전이다. 그러므로 많은 것들이 수시로 변할 것이다. 가장 크게 바뀐 중 하나는 모듈을 처리하는 방법과 커널과 모듈이 메모리에서 로드되는 곳이다. 현재 Richard Henderson은 모듈 커널 개발을 책임지고 있다. 요약해서 말하자면, 만일 커널 2.1 에서 모듈을 사용하고 싶다면 반드시 * 시스템에서 업그레이드해야할 패키지를 설명한 Documentation/Changes 파일 을 읽는다. * 최신 modutils 패키지를 사용한다. 아래의 곳에서 구할 수 있다. <url url="ftp://ftp.redhat.com/pub/alphabits/ or the mirror site at" name="ftp.redhat.com/pub/alphabits/ or the mirror site at" > <url url="ftp://tsx-11.mit.edu/pub/linux/packages/alphabits/" name="tsx-11.mit.edu/pub/linux/packages/alphabits/" > 만일 커널 2.1 대의 커널에서 모듈을 사용하고 싶다면 최소한 2.1.19 버전의 커널을 사용할 것을 권한다. Dial-on-demand 네트워킹은 ?
request-route 스크립트와 kerneld를 사용하는 대신 www.dna.lth.se/~erics/diald.html 에서 구할 수 있는 Eric Schenk's의 diald 패키지를 설치할 것을 충고한다.
Copyright Messages
This document is Copyright (c) Henrik Storner, 1996, 1997. Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs. If you have questions, please contact Greg Hankins, the Linux HOWTO coordinator, at <url url="mailto: gregh@sunsite.unc.edu" name="gregh@sunsite.unc.edu" > via email.