기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

두가지 궁금한것이 있습니다.

1)

NOR 부팅(u-boot 이미지 올림)을 통해 계속 세팅을 하는 중이고.

tftp 통신을 통해 uImage(uncompressed)를 올렸고, bootm 을 했는데

Starting Kernel... 이후에 멈추네요-

 

---------------------------------------------------------------------------------------

> tftp 0x30008000 uImage  

> bootm 0x30008000

(위치는 2440관련 자료에서 uncompressed 이미지는 저 주소에 적으라고 적혀있어서 저렇게 명령을 주었습니다.)

 

## Booting image at 30008000

    Image Name : Linux Kernel Image

    Created :        2010-02-19    5:26:45 UTC

    Image Type : ARM Linux Kernel Image (uncompressed)

    Data Size:      642672 Bytes = 627.6 kB

    Load Address: 31000000

    Entry Point:    31000040

    Verifying Checksum ... OK

OK

 

Starting kernel ...

---------------------------------------------------------------------------------------

 

 

커널 옵션을 넣어줘야 한다고 해서

"이솝보드 smdk2410 리툭스 커널 2.6.13 작업관련" 자료를 참고해서

다음과 같이 u-boot의 config 파일을 수정해주었습니다.

(u-boot 버전은 1.1.6 이고, 커널은 2.4.18 버전으로 mizi에서 보드에 맞게 제공된 zImage를 uImage로 바꾼것입니다.)

---------------------------------------------------------------------------------------

#define CONFIG_AMD_LV800    1      (LV800 flash 사용중입니다.)

 

#define CONFIG_BOOTDELAY   3

#define CONFIG_ETHADDR        00:60:6e:f0:00:02

#define CONFIG_NETMASK        255.255.255.0

#define CONFIG_IPADDR            192.168.10.250

#define CONFIG_SERVERIP         192.168.10.80

#define CONFIG_GATEWAYIP   192.168.10.1

 

#define CONFIG_BOOTCOMMAND "tftp 30008000 uImage; bootm 30008000"

#define CONFIG_BOOTARGS "root=/dev/nfs rw nfsroot=192.168.10.80:/mnt/nfsmount/smdk2410 ip=192.168.10.250:192.168.10.80:192.168.10.1:255.255.255.0::eth0:off console=ttySAC0,115200n81 ethaddr=08:00:3e:26:0a:5b

 

#define CONFIG_CMDLINE_TAG

#define CONFIG_SETUP_MEMORY_TAGS

#define CONFIG_INITRD_TAG

---------------------------------------------------------------------------------------

 

이외에 다른 부분에 대한 세팅은 바꿔주지 않았습니다..

 

어떤부분에 대한 수정이 필요한지 혹시 아시나요?

어제부터 계속 인터넷 찾아보면서 수정중에 있는데 아직 해결이 안되고 있어요.

 

2)

추가로 궁금한 것은.

tftp 통신을 위해서 호스트 컴퓨터에서

 

> ifconfig eth0 192.168.10.80

> service xinetd restart

 

라고 명령주면서 사용중인데

tftp도, nfs도 동일한 eth0을 사용해도 갠찮은 것인가요?

그리고 저렇게 세팅한 후에 원래 인터넷 선을 연결해서 인터넷 사용을 하려고 보면

인터넷이 되지 않던데, 이유가 무엇인가요..??

 

(질문이 너무 초보적인 질문인데. 자세한 답변 부탁드리께요~

너무 몰라서 기초적인 부분에서 삽질을 많이하게 되네요-ㅎ

삽질에서 많이 배우긴 하지만 시간이 너무 아깝게 써지는것 같아요-^ ^;)


유형목

2010.02.23 23:50:33
*.216.81.162

1) u-boot 프롬프트 상에서 printenv 명령을 내린후 뿌려지는 메세지를 올려주세요.

그냥 저 내용만 봐서는 boot옵션이 제대로 잘 전달된건지 정확하게 알수가 없네요.


2) tftp 및 nfs 는 포트(port)번호만 다른겁니다. eth0 를 동시에 사용합니다.

인터넷이 안되는 원인은 확실하지는 않지만 ifconfig eth0 192.168.10.80 명령을 주기 전에 ip 주소가 뭐였는지가 관건일듯 싶군요. ifconfig eth0 192.168.10.80 명령을 내리기 이전의 ip 주소가 뭐였는지를 적어주시기 바랍니다.

kjh10101

2010.02.24 01:03:52
*.42.99.111

답변 너무 감사합니다!


1) u-boot -> printenv 로 뿌려지는 메세지는 다음과 같아요-

(bootargs 가 너무길어서 중간에 짤리네요-)

--------------------------------------------------------------------------------------------------------------------

bootargs=root=/dev/ram0 rw nfsroot=192.168.10.80:/mnt/nfsmount/smdk2410 ip=192.168.10.250:192.168.10.80:192.168.10.1:255.255.255.0::eth0:0ff console=ttyS0,
bootcmd=tftp 30008000 uImage; bootm 30008000
bootdelay=3
baudrate=115200
ethaddr=00:60:6e:f0:00:02
ipaddr=192.168.10.250
serverip=192.168.10.80
gatewayip=192.168.10.1
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial

--------------------------------------------------------------------------------------------------------------------

(참고로 bootargs root를 /dev/ram0으로 다시 세팅했습니다.)


2) 이전 eth0 의 주소는 192.168.1.5 입니다-

--------------------------------------------------------------------------------------------------------------------

eth0      Link encap:Ethernet  HWaddr 00:16:76:ab:60:b1 
          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::216:76ff:feab:60b1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:727 errors:0 dropped:0 overruns:0 frame:0
          TX packets:665 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:824751 (824.7 KB)  TX bytes:122888 (122.8 KB)
--------------------------------------------------------------------------------------------------------------------

192.168.1.5라는 주소를 서버 주소로 사용해야하는건가요? 만일 그렇다면 다른 타겟주소나 gatewayip, ethaddr은 어떤식으로 세팅해야하는것인가요..?

유형목

2010.02.24 18:18:12
*.216.81.162

1) u-boot 소스 코드에는 root=/dev/nfs 로 되어 있고

printenv 결과는 root=/dev/ram0 로 되어 있군요.

NFS Root 로 사용중이라면 bootargs root=/dev/nfs 이어야 맞을듯 싶군요.


2) 역시나 이전 IP가 192.168.1.? 로 되어 있군요.

인터넷도 되면서 NFS root 개발환경을 이용하시려면 IP가 192.168.10.? 가 아닌 192.168.1.? 가 되어야 맞습니다.


u-boot 프롬프트에서 gatewayip 및 ethaddr 를 바꾸어 줘야합니다.

setenv gatewayip 192.168.1.xxx

setenv ethaddr 192.168.1.yyy

saveenv 하시면 됩니다.


물론 bootargs 에 나오는 IP도 193.168.1.? 가 되도록 다 바꿔줘야겠지요?

kjh10101

2010.02.24 20:21:48
*.42.99.111

root 부분을 dev/nfs 로 세팅을 해주었지만.. 그래도 스타팅 커널에서 멈추어 있네요-

혹시 더 세팅해줘야 하는 옵션이나.. 다시 확인해 봐야할.. 그런 부분이 있을까요?..

최종환

2010.02.24 20:31:31
*.140.0.217

커널 옵션중에

CONFIG_S3C_LOWLEVEL_UART_PORT=0
와 같이 low level uart쪽을 활성 시켜서 보는게 좋을듯합니다.

저 옵션과 같은 부분을 활성화 시키고 부팅해 보시고 결과를 올려주세요

kjh10101

2010.02.25 01:59:37
*.42.99.111

커널 .config 파일에서 수정해보라고 하시는 것이 맞으시지요?

low level uart에 관련된 메뉴는 따로 있지가 않은데

혹시 다른 파일에서 세팅해야하는 것인가요?

kjh10101

2010.02.25 05:10:27
*.42.99.111

먼저 계속 관심갖고 답변을 주셔서 너무 감사합니다.ㅠㅠ



현재 제가 가지고 있는 커널에서는 menuconfig는 제공되지 않고 config만 가능한데

그 설정부분에는

LOWLEVEL_UART_PORT 와 같은 변수 부분이 없네요-


대신 아래와 같이 세팅되어 있습니다.

----------------------------------------------------------------------------------------

CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SLAB is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_WAITQ is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_ERRORS=y
CONFIG_DEBUG_LL=y
# CONFIG_DEBUG_DC21285_PORT is not set
# CONFIG_DEBUG_CLPS711X_UART2 is not set

---------------------------------------------------------------------------------------------------


한가지 추가로 궁금한 것이 생겼는데


1)

아래와 같이, 기존에 있던 zImage를 사용하여 uImage를 만들었습니다.

> mkImage -A arm -O linux -T kernel -C none -a 0x31000000 -e 0x31000040 -n "Linux Kernel" -d zImage uImage


'MBA2410 ARM 리눅스 커널 포팅' 관련 정보를 통해 알게된 것은

Load address(0x31000000)에는 uImage의 header가 들어가고 

Entry Point(0x31000040)에는 uImage의 compressed kernel이 들어가는 것으로

인터넷에 나와있었습니다.

그런데 위에처럼 -C none 을 사용하여 uImage를 만들면 uncompressed kernel이 생성되는 것이 아닌가요?


2)

그리고

u-boot에서

>tftp 0x30008000 uImage

>bootm 0x30008000

하는 것에서의 0x30008000 위치는 정확하게 어떤것을 나타내는 것인가요???

(tftp를 통해 그 위치에 uImage를 올리는 것으로 알고 있는데,

저 위치값을 바꾸게 되더라도 결과는 동일하게 나오더군요-

더 구체적인 의미가 무엇인가요..?)



유형목

2010.02.25 05:21:50
*.216.81.162

삼성칩들은 uImage를 쓰지 않고 직접 zImage로 부팅하도록 u-boot 를 고쳐 놓은것으로 기억합니다.


어떤 버전의 u-boot 를 사용하시는지 한번 확인해보시고, 확인하는 차원에서 uImage 대신 zImage로

부팅을 시도해 보시기 바랍니다.

최종환

2010.02.25 05:34:40
*.140.0.217

1. http://blog.naver.com/jeongyongil?Redirect=Log&logNo=90080074500

2. http://bmfrog.tistory.com/112

 

제가 2.6.13 커널이 없어서 2.6.2x대 기준으로 말씀 드린거구요

저도 그문서 자주봤습니다.상당히 좋더군요

tftp 0x30008000 - > 메모리 주소입니다. 저기다 커널 올리는거구요.

제가 활성화 시키라도 알려 드린 옵션은

부트로더에서 자기가 시리얼쪽 초기화해서 콘솔 나오고.커널로 넘어가면서

 

커널의 시리얼 초기화 될때까지는  아무것도 안 보입니다.

그런데 제가 2번의 링크를 보시면 알겠지만 low level에서  debug uart를 출력 하는 부분에서

커널의 시리얼 초기화 될때까지 uart를 통해 진행 사항을 어느정도 볼수 잇습니다.

 

2번 링크 보시고 해당 커널 찾아보시면 커널 옵션이 어떤것인지 알 수 있을겁니다.

수고하세요

kjh10101

2010.02.25 05:37:35
*.42.99.111

원래 제공되는 부트로더는 vivi를 통해 부트하는 것입니다.

vivi에서는 제공되는 zImage가 제대로 부팅이 되었습니다..

vivi를 바꿔서 u-Image를 하려고 보니 위와같이 제대로 실행되지 않는데-

 

방금 uImage의 위치를 조금 바꿔서 만들어보니

(load address : 0x31000000 / entry address : 0x30008000 )

 

Uncompressing Linux..............................done, booting까지 찍히는것을 보았습니다.

반복적으로 했을때, 안찍힐때도 있었고,

Uncompressing Linux.......까지만 찍히는 것도 있었습니다....

 

주소 세팅이 무엇인가 잘못된게 아닌가 싶은 생각이 드는데..

초짜로써는 도무지 어떤 자료를 봐도 머가 먼지를 모르겠네요-

 

 

zImage를 포팅한다는 것은,, 정확하게 어떻게 하라는 말씀이신지 알려주시면 감사하겠습니다...ㅠㅠ

(저도 정보를 계속 찾아보면서 해보겠습니다...)

유형목

2010.02.25 05:55:52
*.216.81.162

uImage 대신에 zImage 를 써보라는 의미는 다음과 같이 해보라는 뜻입니다.

> tftp 0x30008000 zImage

> bootm 0x30008000

고현철

2010.02.25 12:19:21
*.226.23.224

오늘은 정신없어서 1번만 설명드리겠습니다.

 

## Booting image at 30008000

    Image Name : Linux Kernel Image

    Created :        2010-02-19    5:26:45 UTC

    Image Type : ARM Linux Kernel Image (uncompressed)

    Data Size:      642672 Bytes = 627.6 kB

    Load Address: 31000000

    Entry Point:    31000040

    Verifying Checksum ... OK

OK

 

Starting kernel ...

 

여기를 보면 load address와 entry point 가 틀립니다.

 

즉, uImage를 잘 못 만드신 겁니다.

 

uImage를 만드실때.......-a 30008000 -e 30008000 옵션으로 만드시고

 

u-boot에서

 

tftp 32000000 uImage

bootm 32000000

 

,하시면 정상적으로 부팅이 될겁니다.

 

그럼....

kjh10101

2010.02.26 00:53:53
*.42.99.111

제 질문에 신경써주시는 분들,, 모두 너무너무 감사합니다-

이 초짜,, 많이 배우네요-

 

지금.. 상황이 악화되었습니다.. ㅠㅠ

작업을 진행하다가 무엇을 잘못한건지-

minicom에서 플래시에서 부트로더내용을 프린트 해주질 않고 있네요-

처음에는 조금 프린트 해주다가 멈추더니..

이제는 아예되질 않아요-

하드웨어부분에서 무엇인가 잘못된것 같은데..

고칠수 있겠죠?ㅎㅎ

 

 

그리고,

uImage 만들시 load address와 entry point 부분을 0x30008000 으로 해서 만들어보았고 실행시켰을때,

에러가 떴습니다..

정확한 에러는 모르지만,, bad magie number와 비슷한 에러였던것으로 기억합니다..

하지만 그때는 tftp 0x32000000 uImage를 올리지 않았고

0x30008000과 0x330000000, 0x31000000을 사용했었습니다..

보드가 제대로 작동이 되면

tftp 0x32000000 으로 해보도록 하겠습니다..

 

 

그리고 혹시.

하드웨어쪽으로 정보가 제대로 나가지 않을시 어느쪽을 봐야할지에대해서

조언좀 주실수 있으신분 계신가요..?

 

 

다시한번 관심가지시고 봐주시는것 정말 감사드려요~~

고수님들때문에 제가 많이 배우고 정말 행복하네요~

kjh10101

2010.03.03 03:13:16
*.42.99.111

보드를 다시 실행시켰습니다..ㅎ

접촉 문제로 제대로 안됐던 것이네요-

 

uImage 를 -a 30008000 -e 30008000 옵션으로 만들고

 > tftp 32000000 uImage

> bootm 32000000

 

을 해보았습니다..

 

Starting Kernel... 이후로

 

Uncompressing Linux............................................................done, booting

 

까지 나오고 멈추네요..

그런데 궁금한 것은,

 

제가 위에서도 언급했었는데

zImage를 가지고 uImage를 만든 것입니다.

(제공되는 zImage가 있어서 따로 컴파일을 하지 않았습니다.. 컴파일할때 툴체인이 무엇이 안맞는지 에러가 많이 떠서 원래 zImage를 사용했습니다. 대신, 그 zImage 실행은 vivi 부트로더에서 제대로 실행이 되는 것을 확인한 이미지 입니다.)

 

zImage통해 만든 uImage인데도

 -a 0x30008000 -e 0x30008000 옵션에다

> tftp 0x32000000 uImage

> bootm 0x32000000 uImage

 

를 하는것이 맞는 것인가요??

 

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
5328 아이지 시스템 JTAG A1000 NAND Flash Loader (.axf) 파일 구... [5] 김진만 2009-03-18 1495
5327 안드로이드 dhcp 관련 질문드립니다. [5] 송형돈 2009-10-16 1495
5326 Exynos 5250 LCD 회전 [3] 윤동열 2013-02-08 1495
5325 무선랜 ?? <==완료 [3] 윤현승 2006-07-28 1494
5324 안드로이드 배터리 게이지 자동 업데이트 문의 [6] 이제현 2009-09-27 1494
» starting kernel 후 멈춥니다.. [15] kjh10101 2010-02-23 1494
5322 u-boot 관련 몇가지 질문이 있습니다. [3] Supsupi 2013-03-31 1494
5321 Android Booting시 screen mode(landscape/portlate) 변경 방법이 ... [2] yama 2011-10-08 1493
5320 동적라이브러리 링크 오류 [3] seokin 2012-01-03 1493
5319 제가 만든 모듈을 보드에 있는 커널에 삽입하려고 하니..아래와 같은... [1] 혜민아빠 2012-04-07 1493
5318 혹시 Android4.3에 들어온 Camera3 쪽 보고 계신분 없나요? EverydayMayday 2013-09-16 1492
5317 Arndale board 5250 용 커널 빌드시 에러 [5] realizeadream 2014-04-23 1492
5316 [완료]u-boot에서 tftp로 부트로더 올릴때 tftp에러 [3] 이재명 2007-06-21 1491
5315 삼성의 AP series 대리점에 대한 문의드립니다. [1] 어떤이의꿈 2012-11-26 1491
5314 [질문] jffs2 mount 에러 [2] 민세홍 2006-05-30 1490
5313 [완료] SMC91C111 driver 증상 한 번 봐주세요. [4] 강경완 2007-04-18 1490
5312 안드로이드 빌드, choosecombo 질문입니다. [1] 나노세컨드 2012-03-24 1490
5311 안드로이드 풀 빌드 시 구글 계정 사용할 수 있나요? [1] 코믹해커 2013-01-31 1490
5310 MAX8997 LDO15 관련 문의드립니다. [2] 혜정아빠 2013-06-12 1490
5309 qt 종료후 segmentation fault, Illegal instruction 오류. Supsupi 2012-04-26 1489

사용자 로그인