[질문] zimage 관련

icabord의 이미지

안녕하세요.

질문하나 올리겠습니다.

예전에 배운건데, 기억이 안나네요 -_-;;;

zimage 의 경우 압축된 상태며, 압축을 풀수 있는 코드가 같이 포함된 형태로 알고 있습니다.

지금 사용하는 방식은 zimage 는 아니고 vmlinuz 파일 입니다.

문제는 zimage 을 사용하려고 하는데, 부트로더에서 기존에 vmlinuz 가 저장된 flash 파티션 시작주소로 분기할때

처럼 이동하면 에러를 내면서 뻗습니다.

뻗는 건 당연한 결과인 것 같습니다. (원리는 잘 모르겠지만요. ;;;)

제가 알기론 vmlinuz 의 경우 부트로더에서 커널 이미지를 램에 복사한 후 압축을 풀어주는 것으로 알고 있습니다.

zimage 의 경우와는 다른 것 같은데, 이 경우 부트로더를 수정해야 하는 게 맞는지 궁금합니다.

고수분들에게는 너무 간단한 질문이겠지만, 한번 올려봅니다 ^^;;

uosarang의 이미지

zImage는

head.o, misc.o head-xxx.o piggy.o의 구조를 가지고 있습니다.

부트로더는 zImage를 커널 파티션에서 읽어 들여서 특정 메모리 주소에 로드한 후에

그 메모리의 첫 주소로 점프를 하면

head.o는 메모리 초기화등의 작업을 하고 misc.o의 decompress_kernel을 호출하여 piggy.o에 들어있는

piggy.gz를 압축을 Image로 해제하여 Image 영역을 다시 재배치 시키고 start_kernel로 점프합니다.

piggy.gz가 만들어지는 건 커널의 각 built-in.o들을 arch/xxx/kernel/vmlinux.lds.S를 참조하여 vmlinux로 링크하는 과정을 수행하고

vmlinux가 만들어지면 여기서 각 comment등의 정보들을 제거한 후 Image로 만든 후에 이를 gzip -f -9 옵션으로 piggy.gz로 압축을 해요.

piggy.gz는 piggy.S를 컴파일 하는 작업을 통해서 piggy.o가 되고

가장 첫 줄에 설명했던 *.o들을 다시 링크하여 vmlinux를 다시 만들고 여기서 objcopy를 통해서 comment등을 다시 제거하고

나면 zImage가 만들어집니다.

커널을 만들 때 zImage 형식으로 만들었다면 부트로더에서는 zImage만 메모리에 로드하고 그 이후는 zImage한테 맡겨보세요~

머리를 굴려라! 그래야 먹고 산다.

bushi의 이미지

질문하신 분은 XIP 커널 사용하시는 듯 합니다. 부트로더에서 flash 로 점프한다고 하시니.
XIP 라면 ... zImage 를 사용할 수도 없고 사용할 필요도 없습니다.

OTL

anfl의 이미지

흠...

zImage가 vmlinuz 입니다.

보통 kernel 컴파일후 zImage가 나오면 cp zImage vmlinuz-xx.xx.xx 이런식으로 복사합니다.

둘다 같다는 이야기지요.


댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.