커널 컴파일 시...

homekepa의 이미지

안녕하십니까?

먼저 아래의 답변에 대해 자세히 설명해주신점들 감사합니다.
한가지 더 궁금한 점이 있습니다.

RedHat9.0사용시 kernel-2.4.20-8에서 kernel-2.4.20-24.9로
커널 컴파일을 해서 업데이트 할 경우 다음과 같이 진행하였습니다.
make menuconfig -> make dep ->make clean ->make bzImage
-> make install -> make modules -> make modules_install

make bzImage까지만한경우에 /boot/vmlinuz-2.4.20-24.9 와
/boot/System.map-2.4.20-24.9가 생성이 되어있구,
/etc/lilo.conf가 자동으로 설정되어집니다.

그리고 나서 make install을 진행하면
/vmlinuz, /System.map가 생성될뿐입니다.
혹시 이부분 말고는 차이점이 없는것 아닌가요?

어떤 문서는 make bzImage까지하라고 나와있구..
다른 문서는 make install까지 하라고 나와있네요..

즉 make bzImage까지만 했을경우와 make install까지 했을경우의
차이점이 거의 없습니다.
왜 make bzImage후에 make install을 하는지 궁급합니다.
차이점이 뭐가 있나요?

답변 부탁드립니다.

kookooo의 이미지

커널 용량이 클때 bzip 으로 압축하는 것으로 알고 있습니다.

homekepa의 이미지

kookooo wrote:
커널 용량이 클때 bzip 으로 압축하는 것으로 알고 있습니다.

감사합니다.죄송하지만, 질문을 잘 못 이해하신듯 합니다.
답변해주신것은 make zImage와 make bzImage의 차이점을 말씀하셨습니다.

전 make bzImage하고 나서와 make install하고 나서의 차이점을 여쭈어본것입니다.
일반적으로 make bzImage까지만 했을경우에도 커널컴파일하는데는 문제가 없는것으로 알고 있습니다.
그런데 make install까지 해주는 이유를 알고 싶습니다.

kookooo의 이미지

혹시
http://bbs.kldp.org/viewtopic.php?t=29584
이 쓰레드에서 말씀 하신것이

homekepa wrote:

안녕하십니까?
저는 RedHat9.0을 사용하고 있습니다.
이번에 리눅스 커널에서 치명적인버그가 발견되었다고 하여
커널컴파일도 해볼겸해서
kernel-2.4.20-24.9.i386.rpm,
kernel-BOOT-2.4.20-24.9.i386.rpm,
kernel-doc-2.4.20-24.9.i386.rpm,
kernel-source-2.4.20-24.9.i386.rpm,
를 받아서 아래방법으로 설치하였습니다.

위 rpm 모두 설치하셨다는 이야기인가요?
ganadist의 이미지

make bzImage 는 linux-2.x.x/System.map 파일과 linux-2.x.x/arch/xxx/boot/bzImage 파일을 생성하는 것입니다.

make install 은 bzImage를 수행한 후 /sbin/installkernel 스크립트를 실행합니다.
/sbin/installkernel은 위의 생성된 System.map 과 bzImage 파일을 /boot/System.map-2.x.x 과 /boot/vmlinuz-2.x.x 로 복사하고 부트로더에 해당 커널을 등록하는 역할을 합니다. (배포판마다 약간식 다를 수 있습니다.)

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

Viz의 이미지

kookooo wrote:
커널 용량이 클때 bzip 으로 압축하는 것으로 알고 있습니다.

bzImage는 bzip으로 압축한 것이 아닙니다. (많은 분들이 이렇게 오해하시더라구요. :) )
둘 모두 gzip으로 압축되어 있고 b의 뜻은 big을 의미합니다.

커널이미지의 크기가 i386의 리얼모드에서 접근할 수 있는 640k보다 큰 경우 기존의 zImage 방식을 쓸 수 없습니다. 일단 압축을 풀기 위해서는 커널이미지가 연속된 메모리의 영역에 있어야 하는데, 이의 해결을 위해 bzImage의 경우에는 보호 모드로 전환해서 1M이상의 메모리에서 커널 압축을 푸는 방식을 사용한다고 합니다.

자세한 설명은 다음 문서를 참고하세요.

http://doc.kldp.org/KoreanDoc/html/EmbeddedKernel-KLDP/kernel-image-file-structure.html

My Passion for the Vision!

kookooo의 이미지

Viz wrote:
kookooo wrote:
커널 용량이 클때 bzip 으로 압축하는 것으로 알고 있습니다.

bzImage는 bzip으로 압축한 것이 아닙니다. (많은 분들이 이렇게 오해하시더라구요. :) )
둘 모두 gzip으로 압축되어 있고 b의 뜻은 big을 의미합니다.


호오 상당히 오랜동안 오해하고 있었군요... ^^;
homekepa의 이미지

자세한 답변 감사합니다.

그럼 마지막으로 make bzImage까지만 진행해야 하는건가요?
아니면 make install까지 다 진행해야하는건가요?

문서마다 다 틀리게 나와서 그렇습니다.

alwaysrainy의 이미지

ganadist님께서 적절한 답변을 주신 듯 한데...

커널 컴파일 후에 새로운 커널 이미지와 맵 파일을 사용해야겠죠?

make bzImage 실행 후에

$(TOPDIR)/arch/i386/boot/bzImage 에 커널 이미지,

$(TOPDIR)/System.map 에 맵 파일이 생성 되죠..

이 둘을 보통 수동으로!! /boot 파티션에 복사한 후 lilo.conf 에 수정한 후 재붓하면 끝이나는 것이죠..

make install 하였을 경우는 새로 생성된 커널 이미지와 맵 파일을 자동으로!!

/boot 파티션에 복사하고나서 lilo.conf 을 수정해 줍니다.

저는 make install 쓰시는게 편하더군요..

http://wiki.kldp.org/KoreanDoc//html/EmbeddedKernel-KLDP/index.html

---------------------------------------
세계는 넓고, 할일은 많다.

advanced의 이미지

alwaysrainy wrote:

이 둘을 보통 수동으로!! /boot 파티션에 복사한 후 lilo.conf 에 수정한 후 재붓하면 끝이나는 것이죠..

make install 하였을 경우는 새로 생성된 커널 이미지와 맵 파일을 자동으로!!

수정이 끝났으면 아래 명령을 통해 이미지를 갱신해 줘야 합니다.

lilo

- advanced -

advanced의 이미지

방금 위에 올린글에 실수가 있어서 정정 글 올립니다.

ganadist 님이 말씀해주시더군요. make install 하면 installkernel 이 내부적으로 실행되는데 이것이 각 부트로더에 맞게 이미지를 갱신해 준다고요

2.6 되면서 커널 기능 외적으로도 상당히 많이 발전한걸 느낍니다. 예를 들면 옵션간에 자동 의존성 체크라던지 등등..

- advanced -

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.