[질문] kernel panic - kernel panic vfs unable to mount root fs

s97083의 이미지

안녕하세요

현재 kernel 파일크기가 5,121kb 정도 됩니다. 5메가 조금 넘는데
defconfig에서 새로운 kernel config 를 추가로 6개 정도 y로 넣으면

kernel panic vfs unable to mount root fs 이 나오고 있습니다.
어떤 분이 사운드 드라이버 헤더파일에 static array를 큰거 하나 잡고 부터 그렇다고 하는데

혹시 kernel 사이즈에 제한이 있거나 드라이버에 static array를 크게 잡으면 안된다거나
하는 이유가 있나요.

도움 부탁드려요.

jachin의 이미지

임베디드 시스템에서 커널 이미지는 플래시 롬에 담겨져 있다가, 부트로더를 통해 구동할 때 SDRAM으로 적재하여 동작합니다. 어떤 시스템을 사용하시는지 모르겠지만, 커널 이미지의 크기가 커져서 동작에 문제가 생겼다면, 루트로 할당한 메모리 영역과 커널 이미지 영역이 충돌하여서 마운트 하지 못하는 문제일지도 모르겠습니다. 정확한 시스템 정보가 없으면 알기 어려울 것 같습니다.

s97083의 이미지

정보 감사드립니다. 메모리 나누시는 분한테 물어보면 커널 영역이 10메가가 잡혀있어서 용량 문제는 아닐거라고 하는데
panic 메시지가 fs root 에 mount 못한다는 내용이다 보니까. size 문제인가 싶은데, 왠지 이상하게 kernel config 추가하는
것만 영향을 받고 있는것 같습니다. 어떻게 디버깅 해야될지 모르다 보니 정말 풀기 어렵습니다.

bushi의 이미지

함수 내부에서 local 배열을 크게 잡지만 않으면 딱히 배열 크기가 문제되진 않습니다.

보조기억장치 상의 영역 할당과 주기억장치 상의 영역 할당이 적당한지,
그 '메모리 나누시는 분'에게 다시 확인해 달라고 하세요.
본인의 config 는 물론이고 커널 등을 어떻게 업데이트했는지 빠짐없이 알려주면 10분 안에 그 분이 답변 주실겁니다.

s97083의 이미지

안녕하세요
인터넷을 좀 써치해 보니까 어떤 답변 단 사람이 kernel driver에서 static array를 잡으면
가상메모리가 아니라 실제 메모리를 다 잡아 먹어서 128kb이상 쓰는건 좋지 않다고 하네요

혹시 여기에 대해 아시는분 없을까요.

bushi의 이미지

virtual 과 physical 은 address 에 대해 구분하는 것이지 memory 자체가 virtual 이지는 않습니다.
함수 내에 local 로 잡으면 stack이 위험해지기 때문에 피하는 것일 뿐 입니다.
.data 에 있건 .bss 에 있건, stack 에 있건 heap 에 있건, 모두 physical memory 가 필요하긴 마찬가지입니다.
(그 글이 설마 const array, XIP 기준으로 설명한 글은 아니겠죠 ?)

익명 사용자의 이미지

정말로 헤더 파일에 static array를 선언했다면, 그리고 그 헤더 파일이 여러 군데에서 include된다면 용량 문제일 수도 있을 것 같은데요.

댓글 달기

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