kernel compile 시 질문..

hongwoo의 이미지

서로 다른 옵션으로 커널 컴파일을 하려고 합니다.

예를 들어...
cyrix를 지원하는 커널과 (CONFIG_M586=y)
펜터엄 4에 적합한 커널 (CONFIG_MPETIUM4=y) 을 컴파일해서.. lilo 에서 나눠서 쓰고 싶습니다.

커널 버전이 틀리다면., /lib/modules/ 밑에 버전 별로 모듈이 올라가는거 같은데.., 같은 커널 버전이라면 어떻게 해야하는건지 잘 모르겠습니다..

도움주세요 ~ ~

codebank의 이미지

make config (or xconfig or menuconfig) 이후에 Makefile에 보시면
초기부분에 EXTRAVERSION 이라는 옵션이 있습니다.
이부분을 수정해 주시면 됩니다.

# cd /usr/src/linux
# cat Makefile
 VERSION = 2
 PATCHLEVEL = 6
 SUBLEVEL = 10
 EXTRAVERSION = -gentoo-r6
 NAME=Woozy Numbat

 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
 ...
# ls /lib/modules
2.6.10-gentoo-r6  2.6.7-mm6
#

즉, EXTRAVERSION에 붙이고 싶은 이름 ('-cyrix'나 '-P4')등을 붙여두시면
이후에 컴파일되고 인스톨이 될때 해당 이름으로 인스톨이 됩니다.

자동으로 가능한지는 잘 모르겠습니다만 제가 아는 방법은 직접 고치는 방법밖에는
모르겠네요. :)

------------------------------
좋은 하루 되세요.

익명 사용자의 이미지

아.. 정말 감사합니다..
말씀하신대로 EXTRAVERSION 에 "cyrix" 를 넣어주고 컴파일했습니다..

그런데.., cyrix 커널로 부팅했을 때, module 경로를 찾지 못하는거 같습니다. /lib/modules/2.4.20cyrix가 아닌 다른 경로에서 찾는거 같습니다.

이 문제를 해결하려면., 어디를 어떻게 수정해주어야 하나요 ? ?

익명 사용자의 이미지

따로 수정해줄 거 전혀 없습니다.
제대로 경로를 못 찾는다면 컴파일 과정에서 다른 문제가 있겠죠.
모듈을 안 만들었든가, 만들었어도 설치는 안했다든가.
보통은 make install; make modules ; make modules_install 하면
다 설치됩니다만.