리눅스 모듈 인스톨 미니-HOWTOrhw@bigfoot.com1. 이 문서의 목적리눅스와 모듈에 대한 필자의 경험에 의하면, 지금 있는 문서들로는 리눅스에서 모듈을 설정하고 작동시키는 방법에 대해 충분한 설명을 얻을 수 없다. 이 문서에서 설명하고 있는 절차는 필자의 시스템에서나, 모듈 형태로만 제공되는 드라이버가 필요한 기능을 쓰려고 하는 다른 사람들에게 인터넷을 통해 방향을 제시했던 경우에서나, 여러 차례 사용되어 성공했던 것들이다. 필자의 시스템은 레드햇 4.1로 운영되고 있으며, 이 문서에서 설명되는 절차는 이 시스템에서 개발된 것이다. 필자는 지금까지 다양한 슬랙웨어 배포본으로 운영되는 시스템들과 데비안 배포본으로 운영되는 시스템 하나에서 이 문서의 절차에 따라 모듈을 설치하여 성공했다. 이 문서에서는 이 세 가지 배포본의 리눅스에서 모듈을 제대로 설정하기 위해 필수적인 절차를 정리하고자 한다. 2. 경고필자는 최근 같은 절차를 레드햇 4.2에서 사용했으나, 완전히 같은 시스템들에서 서로 다른 결과를 얻었다. 무엇이 문제인지 아직 확실히 알지 못하며, 따라서 현 시점에서는 이 절차가 각자의 시스템에서 제대로 적용될지 장담할 수 없다. 3. 사전 준비 사항
4. 컴파일러 속도를 빠르게 하는 방법16메가 이상의 램이 장착되어 있다면, 커널로 하여금 여러 개의 모듈을 병렬적으로 컴파일 하도록 함으로써, 컴파일 속도를 빠르게 하는 유용한 방법을 쓸 수 있다. 이렇게 하면 커널이 재컴파일되는 동안 컴퓨터가 받는 부담이 커지지만, 컴파일에 걸리는 시간을 단축할 수 있다. 이 방법을 쓰기 전에 자신의 컴퓨터에 램이 얼마나 있는지 확인해 보아야 한다. 램의 크기를 너무 크게 설정하면 컴파일이 느려진다. 경험에 의하면 최적의 값은 시스템에 있는 램이 32메가 이하인 경우에는 아래의 공식에 의해 결정된다. N = [RAM in Megabytes] / 8 + 1 32메가 이상의 램이 있다면 이 공식은 지나치게 조심스러운 것이 될 수도 있다. 숫자 계산을 싫어하는 사람들을 위해 흔히 쓰는 램 크기에 따른 값들을 들자면 아래와 같다. (램 크기, 사용할 값) : (16, 3), (24, 4), (32, 5), (40, 6), (48, 7), (56, 8), (64, 9), (80, 11), (96, 13), (112, 15), (128, 17) 적당한 값을 결정했다면, /usr/src/linux/Makefile을 편집해서 아래의 줄을 MAKE=make 다음과 같이 고치도록 한다. MAKE=make -j N N은 위에서 결정한 숫자이다. 5. 모듈 사용을 위한 커널 재 컴파일커널은 루트로 마운트될 파일 시스템(대부분 ext2 파일 시스템이다)을 제외하고는 모두 모듈을 사용하기 위해 다시 설정될 수 있다. 하지만 모듈로서 적절히 설정되기 어려워 보이는 항목들이 있으므로, 아래의 항목들은 커널 자체에 컴파일해 넣도록 권한다.
cd /usr/src/linux
make menuconfig
make dep clean modules modules_install zImage
위의 명령이 수행된 다음에는, 모듈의 의존관계를 맞추어야 한다. 이를
위해서는 다음 명령을 내린다.
depmod -a 이제는 새 커널을 부팅 과정에 삽입해야 한다. 필자는 이런 목적으로는 LILO밖에 써 본 적이 없으므로, 독자도 LILO를 쓴다고 가정하도록 하겠다. 무작정 새로 컴파일한 커널을 리눅스의 기본 커널로 집어넣어서는 안 된다. 그랬다가는 커널이 잘못되었을 경우에 완전히 설치를 다시 하지 않고서 리눅스 설정을 복구하기란 지극히 어렵기 때문이다. 물론 설치를 다시 하는 것도 권장할 만한 일이 아니다. 이런 까닭으로 필자는 아래의 몇 행을 /etc/lilo.conf 파일에 넣어두었다.
image=/usr/src/linux/arch/i386/boot/zImage
label=new
alias=n
read-only
vga=ask
optional
위의 내용은 (요청된 이미지가 없으면 무시될) 조건부 부팅 옵션이 있다는
것을 말해주고 있다. 선택되었을 경우에는 /boot/newlinux 파일로
부팅하며, 부팅 시 사용될 비디오 모드를 선택할 수 있다.
위의 내용이 /etc/lilo.conf에 있다고 가정하면, 다시 만든 커널이 컴파일
과정이 끝난 뒤 올바른 위치에 있을 때 아래의 명령으로 커널을 설치할 수
있다.
lilo 여기까지 마쳤다면, 각자 선택한 배포본에 따라 아래와 같이 몇 단계를 더 밟아야 한다.
6. 데비안, 레드햇에서의 모듈 사용을 위한 설정이 절에서 열거될 단계들을 수행하기에 앞서, 앞 절에 나온 단계들이 모두 수행되었다고 가정한다. 데비안과 레드햇 배포본의 부팅 절차는 똑같기 때문에 모듈을 설정하는 과정도 똑같다.
7. 슬랙웨어에서의 모듈 사용을 위한 설정이 절에서 열거될 단계들을 수행하기에 앞서, 앞 절에 나온 단계들이 모두 수행되었다고 가정한다. 1. /etc/rc.d/rc.M 파일을 아래와 같이 편집한다.
8. 다른 배포본에서의 모듈 사용을 위한 설정이 절에서 열거될 단계들을 수행하기에 앞서, 앞 절에 나온 단계들이 모두 수행되었다고 가정한다. 다른 배포본에서의 절차가 정확히 어떨지는 확실하지 않지만, 아마 위의 절차 가운데 하나일 것이다. 어느 절차인지 결정하기 위해 아래와 같이 하여 /etc/rc.d 디렉터리의 내용을 보도록 하자. cd /etc/rc.d ls -l *.d rc.* 디렉터리 내용을 통해, 다음과 같은 세 가지 옵션 가운데 하나를 고를 수 있다.
9. 저작권 및 기타 법적 사항이 문서의 저작권은 GNU General Public Licence(GPL)의 규정을 따르며, GPL의 모든 항목과 제한이 적용된다. 저자에게는 rhw@bigfoot.com으로 email을 통해 연락할 수 있다. |
If you suspect a man, don't employ him. |











