2012. 3. 21. 00:07

커널 3.2 버젼을 컴파일하기 위해서는 GCC 버젼이 우선 4.6 이상으로 선행 되어야 한다. 



#===================================================================
GCC 4.6 이상 버젼으로 업데이트 하기 
GCC를 재컴파일 하기위해서는 gmp, mpfr, mpc 3박자가 다 잘 맞아 떨어져야한다.
실제로 GCC를 그냥 make make install 를 하다보면 호환성 문제로 에러가 나게된다. 즉 이 3가지 버젼을 맞춰준뒤 컴파일 해야 한다.
===================================================================
4.6.0.tar.gz
# tar zxvf gcc-4.6.0.tar.gz
# cd gcc-4.6.0
==================================================================
# wget ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.gz
# tar zxvf gmp-5.0.2.tar.gz
# cd gmp-5.0.2
# ./configure
# make
# make install
==================================================================
# wget http://www.mpfr.org/mpfr-current/mpfr-3.1.0.tar.bz2
# tar zxvf mpfr-3.0.1.tar.gz
# cd mpfr-3.0.1
# ./configure
# make
# make install
==================================================================
# wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
# tar zxvf mpc-0.9.tar.gz
# cd mpc-0.9
# ./configure
# make
# make install
==================================================================
# echo $LD_LIBRARY_PATH
# export LD_LIBRARY_PATH=/usr/local/lib
gcc-4.6.0をコンパイル
# cd gcc-4.6.0
# ./configure --prefix=/usr/local/gcc-4.6.0 --disable-multilib

#yum provides *-stubs-32.h
#yum install kernel-devel
#yum install kernel-headers
#yum install dkms
#yum install gcc
#yum install gcc-c++
#yum install glibc-devel.i686
#yum install zip
 
# make
# make install
# cd /usr/local/gcc-4.6.0/bin
# ./gcc -v
=======================================================
혹시나 fatal error 를 띄워질경우
stubs-32.h 로 인한 오류일경우 
이경우는 64비트 체계에서 32비트 체계와 크로스 컴파일 하기위해 시도하는 것이다  
The problem should be resolved after you will install glibc-devel:
sudo yum -y install glibc-devel
and adding
?disable-multilib
to configure, so that you configure command line will look like this:
./configure  … ?disable-multilib
라는 답변도 사용용 해 볼수 있다.
오류 1-1 참조 
=======================================================
=====1-1 errror=======================
설치확인 : kernel-devel kernel-headers dkms gcc gcc-c++ 를 설치
#yum provides *-stubs-32.h
#yum install kernel-devel
#yum install kernel-headers
#yum install dkms
#yum install gcc
#yum install gcc-c++
#yum install glibc-devel.i686
When compile HTK on 64bit machines, by default it will still try to compile the tools to 32bit. Then there will be an error after issue the command "make all":
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory
To solve this problem, what we need is to install the multilib package for the gcc and g++. On Ubuntu, install following packages:
g++-multilib
gcc-multilib
and redo "make all".
=======================================================================
 


=========================================================================
커널 3.2 버젼으로 올리기  (GCC 4.6 을 설치 완료)
=========================================================================
#yum install gcc
#yum install ncurses-devel
#yum install rpm-build
#yum install bison
#yum install depmod
#yum install mkinitrd

#cd /usr/local/src
#wget ftp://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.bz2
#tar xvf linux-3.2.tar.bz2
#ln -s linux-3.2.tar.bz2 linux
#cd linux
#make clean
#make mrproper
#cd /boot/config-[현재커널 버젼] ./.config   //구동중인 커널의 환경정보를 그대로 가져다가 컴파일 하기 위함.
#make menuconfig
==================================================================
= 1.환경 모드로 들어와서 하단의 Load an AL ternate Configuration FIle 을 선택
= 2..config 파일이 입력되어 있는데 이를 선택하여 현재 커널 환경을 불러들임 
= 3.맨위에 탭인 Gerneral setup 을 선택
= 4.enable deprecated sysfs features which may confuse old userspace tools 를 체크함.
= 5.exit 로 나가되 저장하고 나가기할것
= 혹은 .config 파일에서 CONFIG_SYSFS_DEPRECATED_V2=y로 체크 할것
==================================================================
#make && make modules && make modules_install && make install
#cat /boot/grub/grub.conf  //새로운 커널이 부팅할수 있게 설정 되어있나 확인하고
구버젼이 설정되어있으면 주석처리
#reboot 
#uname -a 

Posted by k1rha