[질문]yaffs2 fs fail 입니다. 조언 부탁드립니다.

zerojin의 이미지

file system을 yaffs2로 만들어서 부팅시키는 중에,

device driver는 일단 부팅이 되는데, init process 넘어가서 fail 됩니다.

왜그런지 전혀 감을 못잡아서, 고수님들의 조언 부탁드립니다.

첨부에 error 화면을 올렸습니다.

File attachments: 
첨부파일 크기
Image icon 1.jpg24.95 KB
dataeng의 이미지

루트 파일 시스템이 yaffs로 지정되어 있고
yaffs 파일 시스템내에 루트 파일이 구현되어 있지 않아 생기는 문제로 보입니다.

커널의 초기 명령 설정부분에서 현재 시스템에 설정되어 있는 루트 파일 시스템을
지정하여 재 컴파일 한 후 실행하시기 바랍니다.

방법 1 : 정확한 루트 파일 시스템 장치를 커널에 지정한다.
방법 2 : yaffs 에 루트 파일 시스템을 구현한다.
yaffs로 루트 파일 시스템을 구현 후 부트로더에서 쓰기 후 리부트

대부분의 임베디드 시스템이 램디스크로 구현되어 있으므로
방법 1을 추천합니다.

zerojin의 이미지

반갑습니다.

답변 주셔서 감사합니다.

그런데, 제가 초보라서 잘 이해를 못하고 있습니다. ^^

cmdline 은 아래와 같이 입력했습니다.

CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=yaffs2 console=ttyAMA0 mem=128M"

file system은 mkyaffs2image 를 이용해서 만들었습니다.

yaffs2를 file system으로 kernel boot 를 어떻게 해야 하는 것입니까?

좀더 조언 부탁드립니다.

반갑습니다.

dataeng의 이미지

PC 리눅스에 보면 하드 디스크에 루트 파일 시스템이 있게됩니다.
/usr/sbin/init를 먼저 호출하고 이후 기타 프로그램을 로딩하는 절차로 진행하게 됩니다.
/dev/mtdblock2를 yaffs 파일 시스템으로 포맷했다고 해서
/user/sbin/init 가 존재하게 되는 것은 아니겠죠.

즉, 동작할 수 있게 뭔가 기록을 해야 합니다.
PC에서 CDROM을 이용해서 하드디스크에 여러 프로그램을 설치하는 것처럼..
이러한 프로그램을 yaffs 이미지로 구현을 해야 합니다.

ramdisk howto 등의 문서(ext2 --> yaffs 부분을 고려해서 수정)하거나
yaffs로 구현된 루트 파일시스템을 구해보시는 것이 좋을 듯 합니다.
*. Linux 디렉토리 구현
*. 구현 디렉토리에 필수 라이브러리 포팅
*. 유틸리티 프로그램 포팅(shell, network 등)
*. 설정 파일 구현
등이 필요합니다.

bushi의 이미지

에러메시지는 커널의 init/main.c::init_post() 중 다음 부분에서 출력됩니다.

if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
                printk(KERN_WARNING "Warning: unable to open an initial console.\n");

yaffs 루트파일시스템에 /dev/console 과 /dev/ttyAMA0 를 만들어줬는지 확인해보세요.
/dev/console 은 major 5, minor 1
/dev/ttyAMA0 는 major 204, minor 64

busybox 를 사용하실 것 같은데...
init 이 inittab 을 사용하도록 설정하시고 /etc/inittab 도 다음처럼 만져줘야 합니다.

getty 를 사용하지 않는다면
ttyAMA0::askfirst:-/bin/sh
혹은
::askfirst:-/bin/sh

getty 를 사용한다면
::respawn:/sbin/getty 115200 ttyAMA0
혹은
::respawn:-/sbin/getty 115200 -

다른 곳에 이상이 없다면,
이정도만으로도 쉘 프롬프트까지는 잘 떨어져야 정상입니다.

udev 혹은 mdev 를 사용한다면 /dev/ttyAMA0 를 수작업으로 미리 만들어줄 필요는 없습니다.
단, udev 혹은 mdev 를 사용할 경우 /dev 는 write 가능이어야합니다.
yaffs를 사용하시니 크게 신경쓸 필요는 없고, CONFIG_CMDLINE 에 rw 를 추가해주는 것으로 족할 것 같습니다.

OTL

댓글 달기

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