안녕하세요.

이 글에서는 리눅스(우분투) 커널 컴파일 하는 방법에 대해서 알아보도록 하겠습니다.


* 최신 커널 기준으로 다시 포스팅하였습니다. http://harryp.tistory.com/839 를 참조해주세요. 


커널 컴파일 전에 커널에 대해서 알아보도록 하겠습니다.

커널이란, 운영체제에서 시스템의 제어 등을 하는 프로그램을 말합니다.

컴퓨터를 부팅 하면 자동으로 실행되어 메모리에 올라가게 됩니다.

 

이 커널은 수시로 업그레드, 업데이트가 됩니다.

새로운 커널의 소스는 http://kernel.org 에서 다운로드 받으실 수 있구요.

이 사이트에서 받은 소스를 내 컴퓨터에 설치할 수 있게 만드는 과정을 커널 컴파일 이라고 합니다.

 

커널은 여러 사용자(컴퓨터)와의 원활한 호환을 위해 다양한 정보를 담고 있습니다.

때문에 필요한 정보보다는 불필요한 정보가 더 많이 담겨있게 되죠.

능숙한 사용자, 개발자일수록 본인에게 필요한 것만 설정하여 더 최적화 된 커널을 빌드할 수 있게 됩니다.

저 역시 능숙한 개발자가 아니기 때문에…

이 글에서는 커널 판 올림을 위한 커널 컴파일만을 다루도록 하겠습니다.

 

현재 커널 버전 확인

현재 커널 버전을 확인은 다음 명령어를 통해 할 수 있습니다.


$ uname -r

 

이렇게 하면 현재 커널의 버전을 확인할 수 있습니다.


커널 컴파일, 설치 전 제 컴퓨터의 커널 버전은 3.8.0-19-generic 이네요.

 

커널 소스 다운로드

커널 소스는 http://kernel.org 에서 받으실 수 있습니다.

제가 이 글을 쓰는 시점에서의 최신 커널 버전은 3.9.2 네요.

원하시는 버전의 커널 소스를 다운받으시면 됩니다.


 

필요 패키지 설치

커널 컴파일을 하는데 필요한 패키지가 있습니다.

총 5가지 인데요.

다음의 명령어를 통해 설치하시면 됩니다.


$ sudo apt-get update

$ sudo apt-get install build-essential libncurses5 libncurses5-dev bin86 kernel-package libssl-dev -y

 


다운로드 받은 커널 소스 이동

다운로드 받은 커널 소스를 '/usr/src/' 디렉토리로 이동시켜 줍니다.

그리고 해당 디렉토리로 이동합니다.


$ sudo mv 커널소스파일명 /usr/src/

$ cd /usr/src


이동하셔서 ls 명령어를 통해 파일이 이동된 것을 확인할 수 있습니다.


 

압축 풀기

커널 소스는 보통 압축된 형태로 배포가 됩니다.

압축을 풀어야 합니다.

제가 받은 압축 파일의 형식은 '.tar.xz' 형식이기 때문에 xz와 tar를 통해 압축을 해제하셨습니다.

(다운받은 형태에 따라 압축 해제 방식은 바뀔 수 있습니다.)

제가 압축을 해제할 때 사용한 명령어는 다음과 같습니다.


$ sudo xz –d linux-3.9.2.tar.xz

$ sudo tar xf linux-3.9.2.tar

 

압축이 정상적으로 해제되었다면 다운로드 받은 커널 소스가 담긴 새로운 디렉토리가 생성된 것을 확인할 수 있습니다.

새로운 디렉토리가 생성되었다면, 해당 디렉토리로 이동합니다.


 

-14.10.01 추가-

Configuration 파일 복사

현재 커널의 configuration 파일을 복사 합니다.

현재 커널 설정을 그대로 가져갈 경우 별다른 수정 없이 사용할 수 있습니다.

먼저 현재 커널의 버전을 'uname -a' 명령어로 확인합니다. (본 포스팅에서의 커널 버전은 3.8.0-19-generic 입니다.)

그리고 현재 커널의 configuration 파일을 복사합니다.

파일 경로 및 파일 명은

/boot/config-현재커널명

입니다.

커널 소스 디렉토리에 '.config' 파일로 복사해 줍니다.

# sudo cp /boot/config-현재커널명 ./.config

본 포스팅 같은 경우엔 3.8.0-19-generic 커널을 사용하고 있으므로

# sudo cp /boot/config-3.8.0-19-generic ./.config

명령어를 사용하였습니다.

(원본 파일명을 치실 때 'tab' 키를 활용하시면 좀 더 편하게 사용하실 수 있습니다.


make menuconfig

커널 소스 디렉토리로 이동한 후엔 현재 내 컴퓨터에 맞는 설정을 해주어야 합니다.

만약 이전에 커널 컴파일 한 기록이 있으면 make mrproper 명령어를 통해 의존성을 삭제합니다. (첫 커널 컴파일이라면 하지 않으셔도 됩니다.


$ sudo make mrproper (첫 커널 컴파일이라면 하지 않아도 됨)

$ sudo make menuconfig

 


제대로 작동 된다면 다음의 화면을 만날 수 있습니다.



이제 이 화면에서 본인에게 필요한 설정을 하시면 됩니다.

하지만 이 화면에서 마음대로 설정 가능하신 분은 이 글을 보지 않으실 테니…

현재 컴퓨터의 설정을 가져오도록 하겠습니다.

 

밑에 Load를 누릅니다.



새로운 터미널 창을 띄워 '/boot' 디렉토리로 이동한 후, '/boot' 디렉토리의 파일을 확인합니다.

그 중 'config-xxx' 라는 파일을 확인합니다. (xxx 는 현재 커널 버전을 말합니다.)


$ cd /boot

$ ls

 



저 파일을 Load 해 줍니다. (절대 경로로 작성해야 합니다.)

/boot/확인한 파일 명

 

 

정상적으로 로드 되었으면 아무런 에러 메시지 없이 처음의 화면을 만나게 됩니다.

이제 추가 수정 없이 저장해주시면 됩니다.

저장은 Save를 눌러 하시면 되고, 저장하는 파일 명은 '.config' 입니다.

정상 저장 되었다면 저장 되었다는 메시지를 확인하실 수 있습니다.


 

정상적으로 저장되었다면


원하시는 설정을 사용하시고, Exit를 눌러 빠져 나오시면 됩니다.


 

커널 컴파일 (커널 설치 이미지 생성)

이제 커널 컴파일을 하여 설치 이미지를 생성하면 됩니다.

다음의 명령어를 통해 커널 컴파일을 실행할 수 있습니다.


$ sudo make-kpkg --initrd --revision=1.0 kernel_image

-19.01.13 추가-

빠른 컴파일을 위해 멀티 코어 옵션을 적용합니다.

먼저 해당 PC의 코어 개수를 확인해야 합니다.

 $ grep -c processor /proc/cpuinfo

/proc/cpuinfo는 (논리) 코어 별로 정보가 출력되게 됩니다.

따라서 grep 명령어를 사용하여 특정 라인만 출력하게 되면 코어 개수를 알 수 있습니다.

 

해당 명령어로 코어 개수를 확인 한 후, 컴파일 명령어에 멀티 코어 옵션을 추가 해줍니다.

 $ sudo make-kpkg --J # --initrd --revision=1.0 kernel_image

위 명령어의 # 부분에 코어 개수를 입력합니다.

i7 CPU의 경우 16을 입력해주시면 됩니다. (보통 PC에선 8아니면 4일겁니다.)

 

추 후에 같은 버전의 커널을 여러 번 빌드 하게 될 경우 '--revision=' 뒤에 숫자를 올려주시면 됩니다.

'--revision=1.0' '--revision=2.0' 이런 식으로요. 단, 숫자만 입력하셔야 합니다.


 

커널 컴파일을 하는 데는 많은 시간이 소요됩니다.

컴퓨터 성능에 따라 적게는 수 십분, 많게는 3~4시간 까지 걸리기도 합니다.

커널 컴파일 중에는 다음과 같은 복잡한 화면을 보실 수 있습니다.


 

커널 컴파일이 완료되면 다음과 같이 종료가 되구요.


 

커널 컴파일이 정상적으로 완료되었다면, 상위 디렉토리 ('/usr/src')에 커널 이미지가 생성되게 됩니다.

'cd ..' 명령어를 통해 상위 디렉토리로 이동하여 확인해 줍니다.


 

'.dev' 파일이 커널 설치 파일입니다.

이제 이 파일을 사용하여 커널을 설치해주면 됩니다.

 

커널 설치

커널 이미지가 있는 디렉토리(/usr/src)에서 다음 명령어를 입력해 주시면 됩니다.


$ sudo dpkg -i 커널이미지파일명

 

 

설치가 완료된 후엔 컴퓨터를 재부팅 해주시면 됩니다.


 

바뀐 커널 버전 확인

재부팅 후 처음에 커널 버전을 확인할 때 사용하였던 'uname -r' 명령어를 사용하시면 바뀐 커널 버전을 확인하실 수 있습니다.



기존의 3.8.0-19-generic 버전에서 3.9.2 버전으로 바뀐 것을 확인할 수 있습니다.


* 2016년 2월 19일 추가 내용

선량한지구인님 께서 댓글로 좋은 정보를 주셨습니다.

컴파일 도중 "openssl/opensslv.h 그런 파일이나 디렉터리가 없습니다."는 오류가 발생할 경우 libssl 설치를 통하여 해결이 가능하다고 알려주셨습니다. 

다음의 명령어를 통해 설치 가능합니다.

$ sudo apt-get install libssl-dev

좋은 정보 공유해주신 '선량한지구인'님 감사드립니다.

 

 

시스템 프로그래밍 수업이나 운영체제 수업 실습 시간이나 과제로 꼭 한번씩은 해보는 커널 컴파일을 해봤습니다.

궁금한 점이나 되지 않는 부분이 있으면 댓글 달아주시면 아는 한도 내에서 최대한 답변해드리도록 하겠습니다.

Posted by 해리팍

댓글을 달아주세요

    이전 댓글 더보기
  1. 이미지실종...
    2016.03.04 16:12
    댓글 주소 수정/삭제 댓글
    위에댓글을보고 bzimage 의 위치를 알았습니다. 하지만 따로 빼서 압축을하려고하면 파일이 꺠져버립니다. bzimage를 온전히 압축하는 방법은 없나요
    • 2016.03.05 19:03 신고
      댓글 주소 수정/삭제
      따로 빼서 압축을 하신다는게...
      bzimage를 다시 압축하신다는 말씀이신가요..?
  2. 커널컴파일어렵다
    2016.03.05 16:56
    댓글 주소 수정/삭제 댓글
    운영체제 수강하는 학생인데요..

    저거 make menuconfig 하는 거 지우신 이유가 위에 cp로 파일 옮겨서그런거죠?
    cp 했으면 make menucofig 안 해도 되는 거 맞죠?
    • 2016.03.05 19:06 신고
      댓글 주소 수정/삭제
      아.. 저기 menuconfig 부분을 지운건....
      menuconfig 진입 -> 현재의 config 불러오기 -> 컴파일할 소스 디렉토리에 .config 파일을 만드는 과정이 너무 복잡했기 때문입니다. 아예 현 커널의 config 파일을 .config 파일로 복사해 온 다음에 menuconfig로 진입을 하면 알아서 현재 커널의 옵션들로 세팅이 되니까요. 그래도 menuconfig는 한번 실행을 하는 것을 추천합니다. 현재 커널과 컴파일 할 커널의 버전 차이가 많이 날 경우 없던 옵션이 생기기도, 있던 옵션이 없어지기도 하니까요.
  3. wv
    2016.03.14 02:01
    댓글 주소 수정/삭제 댓글
    안녕하세요. 커널 설치중에
    ^
    compilation terminated.
    make[2]: *** [scripts/sign-file] Error 1
    make[1]: *** [scripts] Error 2
    make[1]: Leaving directory `/usr/src/linux-4.4.3'
    make: *** [debian/stamp/build/kernel] Error 2

    로 끝나는 걸 보고 이건 명백히 에러라 생각하여 일단, 다시 숫자를 높여 해봤습니다.

    sudo make-kpkg --initrd --revision=3.0kernel_image
    We do not seem to be in a top level linux kernel source directory
    tree. Since we are trying to make a kernel package, that does not make
    sense. Please change directory to a top level linux kernel source
    directory, and try again. (If I am wrong, and this is indeed a top
    level linux kernel source directory, then I have gotten sadly out of
    date with current kernels, and you should upgrade kernel-package)

    그랬더니 이 메시지만 계속 뜨네요.
    윗분이 말하신 #apt-get install libsll-dev도 통하지 안습니다. ㅠㅠ
  4. wv
    2016.03.14 02:12
    댓글 주소 수정/삭제 댓글
    죄송합니다. 디렉토리를 잘못 봤던거였습니다.
  5. 2016.03.14 22:39
    댓글 주소 수정/삭제 댓글
    안녕하세요! 블로그 통해 많은 도움 받고있습니다~ 컴파일 중에 에러가 났는데 좀 봐주실수있을까요 ㅠㅜ
    이미지 설치를 위해서 다음과 같이 명령어를 입력했는데요
    hiubuntu@ubuntu:/usr/src/linux-4.4.5$ sudo make-kpkg --initrd --revision=1.0 kernel_image

    debian/ruleset/targets/debug.mk:96: warning: ignoring old commands for target `-2009121151-dbg'
    debian/ruleset/local.mk:61: *** target file `-2009121151' has both : and :: entries. Stop.
    make[1]: Leaving directory `/usr/src/linux-4.4.5'
    make: *** [debian/stamp/conf/minimal_debian] Error 2
    다음과 같이 에러가 뜨는데 어떻게 해결할지 도움좀 부탁드립니다 ㅠㅜ
    • 2016.03.15 12:25 신고
      댓글 주소 수정/삭제
      컴파일 시 필요한 패키지를 정상적으로 설치 하셨는지 확인하시고,

      컴파일 과정 중 빠진 부분이 없는지 확인해보시기 바랍니다.
  6. ㅇㅈㅂ
    2016.03.15 17:36
    댓글 주소 수정/삭제 댓글
    넵~ 답변 감사드립니다.
    아무래도 configuration 파일 복사하는데서 문제가 발생하는 거 같은데요
    제가 현재 사용중인 버전의 config파일이 config-4.2.30-generic 인데 이걸 usr/src/linux-4.4.5파일로 이동시켰는데... 이동은 잘되는데
    이게 아무래도 잘못된거 같네요.
    "커널 소스 디렉토리에 '.config' 파일로 복사해 줍니다."
    이 부분에 대한 이해가 아무래도 잘 안되서 그런 것 같은데 커널 소스 디렉토리가 usr/src/linux-4.4.5를 의미하는게 맞을까요? 그리고 .config파일은 지금 지금 현재 usr/src/linux.4.4.5에 없는데 이런 경우 새로 생성해야할까요? 감사합니다!
    • 2016.03.15 17:48 신고
      댓글 주소 수정/삭제
      sudo cp /boot/config-4.2.30-generic /usr/src/linux-4.4.5/.config
      명령어를 실행해 주시면 됩니다.
      '커널 디렉토리' 는 말씀하신 '/usr/src/linux-XXX' 디렉토리가 맞구요.
      configure 파일을 커널 디렉토리에 .config 파일명으로 복사하시고 'make menuconfig'로 추가로 필요한 설정을 해주시면 됩니다.
  7. ㅇㅈㅂ
    2016.03.15 18:52
    댓글 주소 수정/삭제 댓글
    넵 친절한 답변 정말 감사드립니다. ㅎㅎ
    다름이 아니라 제가 지금 명령어를 수행해봤는데
    /usr/src/linux-4.4.5 디렉토리에 .config 파일이 새로 생겨야 맞는건지 여쭙고 싶습니다. 따로 .config파일은 생기지 않는 것 같아서요. 감사합니다!
    • 2016.03.15 18:53 신고
      댓글 주소 수정/삭제
      make menuconfig에서 .config로 save 해야합니다.
    • ㅇㅈㅂ
      2016.03.15 20:44
      댓글 주소 수정/삭제
      네! 해결하였습니다. 감사합니다!^^
    • 2016.03.15 22:42 신고
      댓글 주소 수정/삭제
      도움이 되었다니 다행입니다!
  8. ㅇㅈㅂ
    2016.03.16 10:13
    댓글 주소 수정/삭제 댓글
    안녕하세요! 알려주신 덕분에 잘 진행 하고 있습니다.
    질문 하나만 더 드려도 괜찮을까요 ㅠㅜ

    $ sudo make-kpkg --initrd --revision=1.0 kernel_image

    이 명령어로 이미지 생성하고 컴파일을 실행할때,
    3~4시간 컴파일되고 막바지에 다음과같은 오류가 뜨는데 어떻게 해결할지 여쭙고 싶습니다 ㅠㅜ 질문이 많아서 죄송합니다.

    - SSL error:02001014:system library:fopen:Not a directory: bss_file.c:169
    - SSL error:2006D002:BIO routines:BIO_new_file:system lib: bss_file.c:174
    sign-file: /usr/src/linux-4.4.3/debian/linux-image-4.4.3-2009121151/usr/lib/debug/lib/modules/4.4.3-2009121151/kernel/drivers/misc/altera-stapl/altera-stapl.ko.~signed~: Not a directory
    make[3]: *** [drivers/misc/altera-stapl/altera-stapl.ko] Error 1
    make[2]: *** [_modinst_] Error 2
    make[2]: Leaving directory `/usr/src/linux-4.4.3'
    make[1]: *** [debian/stamp/install/linux-image-4.4.3-2009121151] Error 2
    make[1]: Leaving directory `/usr/src/linux-4.4.3'
    make: *** [kernel_image] Error 2

    감사합니다!
    • 2016.03.16 11:44 신고
      댓글 주소 수정/삭제
      저도 이 에러는 처음보는 에러네요. SSL 관련된 에러 같은데... 위에 댓글에서 언급된
      $ sudo apt-get install libssl-dev
      명령어를 실행해보시기 바랍니다.
    • ㅇㅈㅂ
      2016.03.16 12:07
      댓글 주소 수정/삭제
      그 명령어는 이미 실행해보았는데 ㅠㅜ
      다른 방법이 필요할 것 같네요ㅠㅜ
    • 2016.03.16 12:07 신고
      댓글 주소 수정/삭제
      방법 찾으시면 공유 부탁드립니다~
  9. ...
    2016.04.15 16:14
    댓글 주소 수정/삭제 댓글
    다운로드 명령어를 실행했는데 downloads에도 없고
    /usr/src 에도 없는데 어디가면 찾을 수 있을까요?
    명령어를 치면 이미 최신이라서 더 이상 받지 않네요
    • 2016.04.29 00:42 신고
      댓글 주소 수정/삭제
      다운로드 명령이라는 것이... 터미널 상에서 입력하신건가요? 터미널 상에서 입력하셨다면 명령어를 입력했을 때의 디렉토리에 다운받아지게 됩니다.
  10. 2016.09.25 00:19
    댓글 주소 수정/삭제 댓글
    비밀댓글입니다
    • 2016.09.27 16:13 신고
      댓글 주소 수정/삭제
      '--revision=' 뒤에 숫자를 올려주시면 됩니다.

      '--revision=1.0' '--revision=2.0' 이런 식으로요. 단, 숫자만 입력하셔야 합니다.
  11. 쁨쁨
    2016.11.05 16:38
    댓글 주소 수정/삭제 댓글
    안녕하세요 상세한 설명덕분에 리눅스에대해 1도 모르던 영문과학생이 커널컴파일을 했습니다. 정말감사드리구요 질문하나만 드리겠습니다. linux-image 파일까지 만들어져서 루트권한으로 dpkg -i 설정으로 설치까지 done 했는데 재부팅해도 계속 4.4.0.31-generic 버전에서 바뀌질 않습니다..혹시 무슨문제인지 알 수 있을까요..?
    • 2016.11.05 17:13 신고
      댓글 주소 수정/삭제
      부팅 할 때 advanced 옵션을 한번 봐보세요. 부팅 순서가 변경 안되서 그럴 수도 있습니다.
  12. 신비하자
    2018.03.11 20:10
    댓글 주소 수정/삭제 댓글
    안녕하세요 상세한 설명 감사합니다.
    잘 따라서 커널 컴파일 완료 후 dpkg -i로 설치까지 완료했습니다.
    재부팅했는데도 커널 버전이 바뀌지 않는데 무슨 문제일까요...?
    위에서 부팅 할 때 advanced 옵션 건드리는게 어떻게 건드리는 건지 상세한 설명 해주실 수 있나요?
    • 2018.03.11 20:15 신고
      댓글 주소 수정/삭제
      grub 순서가 변경 안됐을 수도 있겠네요. 블로그에서 grub 검색해보세요.
  13. 대지
    2018.03.14 10:14
    댓글 주소 수정/삭제 댓글
    안녕하세요! 설명 정말 감사합니다.
    커널 소스파일을 받아서 src로 옮기려고 하는데 권한이 없다고 하네요..! 어떻게 해결해야 할까요??
    • 2018.03.14 10:31 신고
      댓글 주소 수정/삭제
      지정하신 경로에 없다면 다운로드 중간에 실패난 것이 아닐까 싶습니다. 용량이 크다보니 종종 실패 나는 경우가 있습니다.
    • 대지
      2018.03.14 10:37
      댓글 주소 수정/삭제
      결국 다운로드 폴더에서 찾긴 찾았는데..이제 permission denied라고 하네요ㅠㅠ
    • 2018.03.14 17:16 신고
      댓글 주소 수정/삭제
      root 권한으로 실행해 주어야 합니다.

      명령어 앞에 sudo 를 붙어보세요.
  14. ㅇㅈㅇ
    2018.03.16 11:11
    댓글 주소 수정/삭제 댓글
    컴파일하는 과정이 몇시간 걸리길래 켜두고 잤는데 일어나서 확인해보니
    final close failed: No space left on device
    라고 하면서 그 뒤에 Error가 생겼다고 하고 종료가 되어있습니다..
    그냥 제 컴퓨터 용량이 부족한건가요? 이런 경우에는 처음부터 다시 해야 하는 건가요?

    • 2018.03.16 11:38 신고
      댓글 주소 수정/삭제
      네. 용량이 부족하여 발생한 문제입니다.
      충분한 용량이 있는 공간으로 현 디렉토리를 복사해서 이어나가도 되지만...
      그냥 처음부터 클린 빌드 하는게 좋을 것 같습니다.
  15. 힘들다
    2018.03.18 08:09
    댓글 주소 수정/삭제 댓글
    Failed to create a ./debian directory: No such file or directory at /usr/bin/make-kpkg line 970
    라는 오류가 커널 이미지 만드는 과정에서 계속 나옵니다.
    이 블로그 과정과 다른 건 패키지 다운후 회색 창이 떴다는 것외에는 없는데 무엇이 문제일까요?
    가상머신 새로 만드는 것만 6번 했네요 도와주십쇼 ㅠㅠㅠㅠ
    • 힘드라
      2018.03.18 08:11
      댓글 주소 수정/삭제
      혹시 컴파일하고자 하는 커널버전이 지금보다 구식이여서 그런걸까요..
    • 2018.03.18 11:49 신고
      댓글 주소 수정/삭제
      make-kpkg 패키지가 정상적으로 설치되었나 확인해 보세요.
    • 힘들다
      2018.03.18 14:14
      댓글 주소 수정/삭제
      음 패키지는 여러 번 다운하고 완료됬다는 메시지도 여러번 봤는데요 혹시 다른 문제일 가능성은 없나요..?
    • 2018.03.19 12:11 신고
      댓글 주소 수정/삭제
      메시지 상에는 make-kpkg 가 없다고 나오니,
      sudo apt-get install make-kpkg
      를 해서 패키지 설치를 해보세요.
  16. 선익
    2018.05.04 15:54
    댓글 주소 수정/삭제 댓글
    커널 컴파일 한후에 용량이 1기가 정도 남았는데 이전에 사용하던 커널을 지우고 용량 확보가 가능한가요?
    • 2018.05.09 10:43 신고
      댓글 주소 수정/삭제
      이전에 사용한 커널 이미지를 지워도 되긴 하지만 소스 디렉토리를 지우는게 용량 확보에는 더 도움 됩니다.
  17. 도와주세요ㅠㅠㅠ
    2018.05.09 03:58
    댓글 주소 수정/삭제 댓글
    sudo make menuconfig를 했는데 계속 오류가 떠서요ㅠㅠ

    YACC scripts/kconfig/zconf.tab.c
    /bin/sh: 1: bison: not found
    scripts/Makefile.lib:217: 'scripts/kconfig/zconf.tab.c' 타겟에 대한 명령이 실패했습니다
    make[1]: *** [scripts/kconfig/zconf.tab.c] 오류 127
    Makefile:514: 'menuconfig' 타겟에 대한 명령이 실패했습니다
    make: *** [menuconfig] 오류 2


    이렇게 뜹니다ㅠㅠ 이거 그대로 따라 했는데 뭐가 잘못됐는지 모르겠습니다...
    • 2018.05.09 10:46 신고
      댓글 주소 수정/삭제
      사전 설치 프로그램이 없거나, make 파일쪽 수정하신게 없으신가요?
      menuconfig 가 진행이 안되는건 사전 프로그램 설치가 제대로 안됐거나, 소스가 수정됐거나...
      아니면 터미널 창을 최대로 키워보세요. 터미널 창 크기가 작으면 안될 수도 있습니다.
    • 여새
      2018.05.28 04:43
      댓글 주소 수정/삭제
      bison이 없어서 그래요!!
      저 sudo apt-get install bison 하니까 됐어요!!
  18. 우영
    2019.03.11 16:49
    댓글 주소 수정/삭제 댓글
    용량이 많이 큰가요? 20기가로 잡아서 vm에서 돌려봤는데 공간 부족이라고 실패 뜨더라고요.
    몇기가 정도 사용하나요?
    • 2019.03.13 06:39 신고
      댓글 주소 수정/삭제
      컴파일 이후 소스 파일 용량은 menu config에서 어떤 항목을 활성화 했느냐에 따라 달라지게 됩니다.

      각 소스 파일을 컴파일한 오브젝트 파일 등이 전부 생성되기 때문에 용량이 꽤 커집니다.

      최근 우분투 18.04에서 4.20 커널로 커널 컴파일을 진행후 포스팅을 하였는데 (https://harryp.tistory.com/839)

      Default 설정으로 커널컴파일을 하니 16.4GB가 나왔습니다.
  19. ㅇㅇ
    2019.03.28 15:27
    댓글 주소 수정/삭제 댓글
    감사합니다
  20. cnnct_sangb
    2019.04.13 03:01
    댓글 주소 수정/삭제 댓글
    안녕하세요 시스템콜과제로 고생중인 학생입니다.
    저도 윗에 970번째줄 에러가난다는 분과 같은증상인데
    make-kpkg를 설치하는 것과 구글에 쳐서 나오는 설치를 다해도 해결이 안되서 댓글남깁니다 ㅜ

    In file included from ./arch/x86/include/asm/unistd.h:24:0,
    from ./arch/x86/include/asm/seccomp.h:5,
    from ./include/linux/seccomp.h:15,
    from ./include/linux/sched.h:21,
    from ./include/linux/ioprio.h:5,
    from ./include/linux/fs.h:39,
    from /usr/src/linux-5.0.2/scripts/gdb/linux/constants.py.in:15:
    ./arch/x86/include/uapi/asm/unistd_64.h:3:0: error: unterminated #ifdef
    #ifdef __KERNEL__

    scripts/gdb/linux/Makefile:19: recipe for target 'scripts/gdb/linux/constants.py' failed
    make[4]: *** [scripts/gdb/linux/constants.py] Error 1
    make[4]: *** Deleting file 'scripts/gdb/linux/constants.py'
    Kbuild:68: recipe for target 'build_constants_py' failed
    make[3]: *** [build_constants_py] Error 2
    Makefile:1091: recipe for target 'prepare0' failed
    make[2]: *** [prepare0] Error 2
    make[2]: Leaving directory '/usr/src/linux-5.0.2'
    debian/ruleset/targets/common.mk:194: recipe for target 'debian/stamp/conf/kernel-conf' failed
    make[1]: *** [debian/stamp/conf/kernel-conf] Error 2
    make[1]: Leaving directory '/usr/src/linux-5.0.2'
    /usr/share/kernel-package/ruleset/minimal.mk:93: recipe for target 'debian/stamp/conf/minimal_debian' failed
    make: *** [debian/stamp/conf/minimal_debian] Error 2
    Failed to create a ./debian directory: at /usr/bin/make-kpkg line 970.
    root@sangb-Host:/usr/src/linux-5.0.2#
    여기서 어떤걸 해봐도 해결되지가않네요 970번째 줄을 지워볼까요?
    도움부탁드립니다 ㅜㅜ


BLOG main image

Chanhyun Park (해리팍)
Software Engineer
PADI IDC Staff Instructor

Contact Info.
parkch0708@hanmail.net
chanhyun0708@gmail.com
chanhyun.park@sk.com
Kakao Talk : parkch0708

카테고리

All (792)
Park's Life (121)
Computer (194)
IT Info. (134)
Scuba Diving (123)
Traveling (161)
자격증 (18)
Pokemon Go (37)
etc... (4)