카테고리

asm (27) bootloader_x86_grub (1) C (92) compile (11) config (76) CPP (13) CSS (1) debugging (7) gimp (1) Go (1) html (1) Java (1) JavaScript (1) kernel (19) LibreOffice (3) Linux system progamming (21) MFC (1) opencv (4) OpenGL (1) PHP (1) Python (4) qemu (29) shell (3) socket (7) troubleshooting (2) ubuntu18.04 (2) windows (1)

2018/12/31

커널 컴파일.

커널 컴파일 
git 저장소: http://git.kernel.org

1. 홈디렉토리 이동.
cd $HOME

2. 소소 다운로드
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

3. 커널 소스코드 이동
cd linux

3.1 커널 버전 설정. 
git checkout COMMIT

여기서 지정한 COMMIT는 해쉬 값이다.(9587190107d0c0cbaccbf7bf6b0245d29095a9ae) 

4. 현재 커널 설정 값 복사.
cp /boot/config-`uname -r` .config

4.1 설정 파일 최선 상태로 변경하기. 특별하게 관심이 없다면 enter 키를 누른다.
make oldconfig

4.2 기존 설정 파일이 가지고 있는 정보가 부족해 계속 질의 하므로 모든것 YES로 지정후 설정 파일을 만든다.
yes '' | make oldconfig

5. 커널 설정 변경
make menuconfig

5.1 커널 소스 디렉토리 정리
make clean

5.2 컴파일 옵션(CPU 코어 쓰레드 사용) 버전명을 custom 지정
make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom

5.3 경로 이동
cd ..

5.4 설치
sudo dpkg -i linux-image-2.6.24-rc5-custom_2.6.24-rc5-custom-10.00.Custom_i386.deb
sudo dpkg -i linux-headers-2.6.24-rc5-custom_2.6.24-rc5-custom-10.00.Custom_i386.deb

6. 재부팅
sudo reboot

우분투 지원하는 버전으로 커널 컴파일 

cd $HOME
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-lucid.git
cp -a /usr/share/kernel-package ubuntu-package
cp ubuntu-lucid/debian/control-scripts/{postinst,postrm,preinst,prerm} ubuntu-package/pkg/image/
cp ubuntu-lucid/debian/control-scripts/headers-postinst ubuntu-package/pkg/headers/

오버레이 디렉토리를 사용하여 패키지 빌드  
cd $HOME/linux
CONCURRENCY_LEVEL=`getconf _NPROCESSORS_ONLN` fakeroot make-kpkg --initrd --append-to-version=-custom --overlay-dir=$HOME/ubuntu-package kernel_image kernel_headers

참고 : "--overlay-dir"옵션은 Lucid 이상에서만 사용할 수 있다. 이하 버전일 경우 kernel-package의 백 포트를 설치하거나 필요에 따라 수동으로 /usr/share/kernel-package를 편집해야 함.
cd ..
sudo dpkg -i linux-image-2.6.24-rc5-custom_2.6.24-rc5-custom-10.00.Custom_i386.deb
sudo dpkg -i linux-headers-2.6.24-rc5-custom_2.6.24-rc5-custom-10.00.Custom_i386.deb

sudo reboot

댓글 없음:

댓글 쓰기