두가지로 나누어 볼 수 있습니다.
1. 기존 시스템에서 소스 업그레이드 없이 커널만 다시 빌드하는 경우
릴리즈(4.1-RELEASE이상)에서 소스 업그레이드하지 않은 경우, 4-stable이나
-current사용자지만 소스 업그레이드 없이 이전에 만든 시스템에서 커널만 다시
빌드하고자 하는 경우입니다. 이는 3.x 커널을 빌드하는 방법과 동일합니다. 먼저
cd /sys/i386/conf 해서 커널 설정 파일을 한부 복사한 후에
편집합니다. 가령 커널 이름(보통 호스트 이름입니다)이 MYHOST라면
cd /sys/i386/conf
cp GENERIC MYHOST
vi MYHOST
해서 편집합니다. 일반적으로는 GENERIC을 고쳐가면서 자신의 커널
설정을 만드는 것이 좋습니다. 가능한 모든 옵션에 대해서는 LINT파일을
보세요.
이제 커널을 빌드하려면, 먼저 컴파일 준비를 위해 다음과 같이 합니다.
config MYHOST
cd ../../compile/MYHOST
make depend
이 다음은 두가지 방법 중 하나를 선택할 수 있습니다.
첫번째 방법은 다음과 같습니다.
make kernel
make modules
make modules-install
make install
또 한가지 방법은 다음과 같습니다.
make
make install
이 방법 이외에 정상적인 방법 중 하나로, buidlkernel 타겟을 사용할
수 있습니다. 사용 방법은 2.에 나와 있는 방법과 동일합니다.
단 buildkernel 타겟을 사용하시려면 반드시 buildworld 타겟을
실행해 두어야 합니다. 즉 반드시 다음 순서입니다.
cd /usr/src
make buildworld (한번만)
make buildkernel KERNCONF=MYHOST
make installkernel KERNCONF=MYHOST
buildkernel은 config를 포함하므로 커널 설정 파일 수정 후 바로
buildkernel 하시면 됩니다.
2. 4-stable또는 -current에 소스 업그레이드한 사용자
4-stable또는 -current 소스로 동기화한 경우, 반드시 먼저 buildworld
타겟을 실행하여 기본 시스템을 모두 빌드해 두기 바랍니다.
cd /usr/src
make buildworld
먼저 1에서처럼 /sys/i386/conf/ 아래의 커널 설정 파일을 편집한 후,
다음 명령으로 커널을 빌드합니다. 4.2 이후 커널 설정 파일 이름은
KERNCONF로 바뀌었습니다. 이전 릴리즈를 사용한다면 아래 내용에서
KERNCONF 대신 KERNEL을 사용하세요.
make buildkernel KERNCONF=MYHOST
buildkernel타겟은 /usr/src 디렉토리에서 하는 것입니다. 설치는
make installkernel KERNCONF=MYHOST
입니다.
* KERNCONF을 매번 쓰기 싫으면 /etc/make.conf에
KERNCONF=MYHOST
라고 써 두기 바랍니다.
* 설치되는 커널 이름이 /MYHOST와 같이 보통 쓰는 이름인 /kernel(4-stable)이나
/boot/kernel/kernel(-current)가 아니라면 /boot/loader.conf에
kernel="/MYHOST"
와 같이 써두기 바랍니다. 일반적으로는 바꿀 이유가 없습니다. cjh |