"-K"는 제목 글자 수 제한 때문(본디 kernel이다.)
현재 커널을 본다.
eddie@ubuntu:~/Downloads/linux-4.17.10$ uname -a
Linux ubuntu 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
http://kernel.org 의 최신 커널 버전이 자신의 커널 버전보다 높다면,...
에서 바닐라 커널을 받는다.
압축을 풀어 준다.
tar xvf linux-4.17.10.tar.xz
현재 커널 설정을 복사한다.
eddie@ubuntu:~/Downloads/linux-4.17.10$ cp /boot/config-4.15.0-20-generic ./.config
빌드 패키지를 설치한다.
sudo apt-get install build-essential libncurses-dev flex libssl-dev libelf-dev -y
빌드한다
make -j5
커널 업이 되면서 생긴 신규 옵션에 대해서 물어본다. 디폴트 설정이 되도록 걍 엔터친다.
make -j5 modules
모듈을 설치한다.
sudo make modules_install
확인
eddie@ubuntu:~/Downloads/linux-4.17.10$ ls /lib/modules/
4.15.0-20-generic 4.15.0-23-generic 4.15.0-29-generic 4.17.10
커널 설치
make install
Found linux image: /boot/vmlinuz-4.17.10
Found initrd image: /boot/initrd.img-4.17.10
.
.
.
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
reboot
eddie@ubuntu:~$ uname -a
Linux ubuntu 4.17.10 #1 SMP Fri Jul 27 08:49:56 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux
리눅스 옵션을 잘 알려면
x86_64용으로 configration인 make defconfig로 기본 설정 후 비교하는 것 부터 시작하는 것이 좋다.
리눅스 커널 컴파일 옵션은 9000개며, 각 옵션 간의 의존성은 커널 컴파일하면서 배우는 수밖에 없다. 커널 패키징 하는데 8000번의 커널 컴파일이 요구된다. 청춘은 멍들고...
zImage는 1메가 한계로 요샌 bzImage만 쓴다. bzImage만 만들려면 Rygen 1700 + 8GB 램(가상)에서
time sh -c 'make clean && make bzImage && make modules'
로 실행,
real159m12.270s
user139m15.018s
sys20m49.665s
시간이 소요되었다.
커널을 apt를 이용해 받으려면,
/etc/source.list 에서 deb-src 의 주석 3개를 풀어준다.
apt-get update
이후
sudo apt source linux-image-`uname -r`
오랜 리눅서는 소스 컴파일이 좋을 듯. 예전엔 패키지 관리자도 없어서 소스 컴파일이 기본이었기 때문.
그리고 기본기를 익히려면 결국 C와 Makefile로 돌아간다.
최근댓글