리눅스 커널 빌드에 도전해봤다.

환경은 Linux Mint 18.2 Sonya 이다.

Linux Mint는 Ubuntu에서 파생된 버전이다보니 Ubuntu에서 제공하는 커널 빌드 가이드로 진행했다.





1. 아래 3번의 명령어로 소스 코드를 바로 다운로드 받을 수 없어 다음과 같이 설정을 변경하였다.
   GUI 화면에서 [메뉴] 클릭 -> 검색창에서 [소프트웨어소스] 타이핑 ->  소스코드 저장소 활성화 체크(미러 서버도 한국으로 변경)

2. sudo apt-get update 실행

3. 현재 Mint 18.2 에서 사용하고 있는 소스 코드를 받기 위해 아래와 같이 명령어를 입력한다.(sudo 를 통해 실행하면 에러가 발생하므로 sudo는 빼고 실행하도록 한다)
  • apt-get source linux-image-$(uname -r)

4. 이전에 커널을 빌드 해본적이 없다면, 몇몇 패키지가 필요하므로 아래와 같이 입력한다.
  • sudo apt-get build-dep linux-image-$(uname -r)

5. 커널을 설정하는 방법은 추후에 확인해보기로 하고 이번에는 Skip 한다.

6. 다운로드 받은 커널 소스코드 디렉토리로 이동 후 아래와 같이 입력한다.
     
  • fakeroot debian/rules clean # quicker build: fakeroot debian/rules binary-headers binary-generic binary-perarch


7. VM 환경에서 빌드를 했고, 1시간 넘게 시간이 걸렸다. 빌드한 디렉토리의 상위 폴더로 이동하면 .deb 패키지를 볼 수 있다.
   최근 빌드에서는 linux-extra 파일도 추가적으로 생성된다. 
  • cd ..
    ls *.deb
        linux-headers-4.8.0-17_4.8.0-17.19_all.deb
        linux-headers-4.8.0-17-generic_4.8.0-17.19_amd64.deb
        linux-image-4.8.0-17-generic_4.8.0-17.19_amd64.deb
8. dpkg -I linux*<버전명>*.deb 명령어를 통해 새롭게 빌드한 커널을 설치하고, 시스템을 재시작 한다.
  • sudo dpkg -i linux*4.8.0-17.19*.deb
    sudo reboot
9. 직접 테스트 한 환경에서는 시스템 재시작 후 name -r 명령어를 통해 커널 버전이 변경된 것을 확인할 수 있었다.




[참고] https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

+ Recent posts