Linux/일반2008/09/28 13:08

페도라 코어6 에서 yum을 이용하여 소스를 설치 할 수 있다.


yum 을 이용하여 소스 설치 하기

#yum install elfutils-libelf-devel rpmdevtools yum-utils

#yumdownloader -e core-source -e updates-source --source kernel

#rpm -ivh kernel-KERNEL_VERSION.FCx.src.rpm




커널 개발 디렉토리 만들기

#rpmbuild -bp --target $(uname -m) /usr/src/redhat/SPECS/kernel-2.6.spec



위 명령은  위에서받은 커널 소스를 압축 풀어서 target이 가리키는 폴더에 넣는 것 뿐이다.

uname -m 이 명령어는 시스템의 하드웨어를 출력한다. 64비트런이 가능한 하드웨어는 현제 운영체제가 32비트라고 해도 i686이 뜬다.

uname -i를 사용하면 현재 시스템이 사용하고 있는 시스템 arch가 나온다.


편의를 위해 심볼릭 링크 걸기

#ln -s /usr/src/redhat/BUILD/kernel-2.6.23/linux-2.6.23.x86_64   /usr/src/linux

 위에서 진한 부분은 target이 어떻게 되느냐에 따라서 달라지므로 수정해서 쓰자.



커널 설정 맞추기!!!   .config

위에서 target이 i386이 라고 해서 i386 arch로 컴파일 되는 것이 아니다.

커널 소스가 위치한 폴더에, 위의 경우 /usr/src/linux

.config라는 파일이 있다. 그리고 confs라는 폴더에 보면 여러가지 arch마다의 설정이 들어있다.

make menuconfig를 하면 .config가 만들어 지는 것인데 confs 디렉토리에 있는 파일들을 각 arch별로 미리 조금씩 설정된 것이라고 보면 된다.

그런데 크로스 컴파일등의 경우를 제외하고 일반의 경우에 현제 컴퓨터의 커널을 업데이트 하고 싶은 것이라면 현재 시스템의 설정과 동일한 설정을 가지고 시작해야 할것이다.

이 설정 파일은 다행히도 /boot/ 디렉토리에 있다.
(물론 페도라가 그렇다는 것이다. 다른 배포판은 모르겠다.)

/boot/config-커널 버전

형태를 띄고 있다. 이 파일을 작업 디렉토리인 /usr/src/linux/.config 로 복사를 하자, 덮어 쓰는 것이다.

# cp /boot/config-커널 버전 /usr/src/linux/.config


컴파일

make mrproper

make menuconfig

make

make modules_install










Posted by dosuser(신대용) dosuser