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

Odroid T 를 사용해서 이것 저것 해보고 있는데 다음과 같은 곳에서 막힌 후 진전이 없어서 여기에 질문해 봅니다.

 

오드로이드용 안드로이드 소스를 컴파일 해서 올려보았습니다. 잘 작동되는 것을 확인 하였고

 

커널도 역시 컴파일 하여 컴파일 완료 된 후에 zImage가 생성되어서  다음과 같이 커널 업로드를 하였습니다.

 

test@test-VirtualBox:~/다운로드/kernel$ sudo smdk-usbdl -f arch/arm/boot/zImage 0x30008000
SMDK42XX,S3C64XX USB Download Tool
Version 0.20 (c) 2004,2005,2006 Ben Dooks <[email protected]>

S3C64XX Detected!
=> found device: bus 001, dev 003
=> loaded 3029004 bytes from arch/arm/boot/zImage
=> Downloading 3029014 bytes to 0x30000000
=> Data checksum 1e8f
=> usb_bulk_write() returned 3029014
test@test-VirtualBox:~/다운로드/kernel$

 

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

여긴 minicom에서 출력되는 메세지입니다.

HKDKC110 # run dnwk
OTG cable Connected!
Now, Waiting for DNW to transmit data
Download Done!! Download Address: 0x30008000, Download Filesize:0x2e380c
Checksum is being calculated...
Checksum O.K.
writing kernel.. 1081, 8192
MMC write: dev # 0, block # 1081, count 8192 ... 8192 blocks written: OK
completed
HKDKC110 #

 

이제 여기서 http://dev.odroid.com/projects/odroid-t/wiki/KernelPage 에 나온 대로

 

HKDKC100 # bootm 30008000 30A00000  를 하게 되면 다음과 같이 나오고 멈추어 버립니다.

HKDKC100 # reset 으로 해도 아래와 같이 마찬가지입니다.

 

HKDKC110 # bootm 30008000 30a00000
Boot with zImage
get_format
-------- 1 --------
## Loading init Ramdisk from Legacy Image at 30a00000 ...
   Image Name:   ramdisk
   Created:      2010-07-30   6:59:56 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    1346933 Bytes =  1.3 MB
   Load Address: 30800000
   Entry Point:  30800000
   Verifying Checksum ... OK

Starting kernel ...

Uncompressing Linux...........................................................................................

 

기존 질문들을 검색해본 결과 zImage 크기 문제라는 이야기를 찾을 수 있었는데요

제가 컴파일 해서 만든 커널의 이미지는

 -rwxr-xr-x  1 root root 3029004 2011-05-11 21:24 zImage       입니다 .  대략 3M가 조금 넘는 것 같습니다.

 

recovery image에서 제공하는 zImage size를 보면 윈도우즈에서 2.18MB라고 나옵니다.

 

컴파일 환경에 따라서 커널 크기가 달라질 수 있는지 궁금하기도 한데 컴파일 에러가 나지는 않으니 무엇이 잘 못 되었는지 모르겠습니다.

 

기존 질문에 어떤 분께서 ramdisk 압축 해제 주소를 30a00000에서 31000000 으로 뒤쪽으로 옮기라는 이야기도 보이던데

뒤쪽으로 ramdisk 압축해제 주소를 옮기려면 어떻게 해야하는건지도 같이 질문드립니다.

Uboot/include/configs/hkdkc110_mmc.h 에서 어느 부분을 어떻게 고쳐서 컴파일 한 Uboot.bin을 올려야 할까요?
 
그럼 미리 답변 감사드립니다. ^^
 
====================================================================================
 
아래는 램디스크를 읽는 시작 주소를 조금 뒤로 미뤄본 결과입니다
제대로 미루어진 것 같기는 한데 역시 Uncompressing Linux.......  에서 넘어가질 않네요 ^^;
 
HKDKC110 # setenv bootcmd 'movi read kernel 30008000; movi read rootfs 31000000 300000; bootm 30008000 31000000'
HKDKC110 #
HKDKC110 # pri
bootargs=root=/dev/mmcblk0p2 rootfstype=ext3 rw init=/init console=ttySAC2,115200 androidboot.console=s3c2410_serial2 1
bootdelay=3
baudrate=115200
ethaddr=00:40:5c:26:0a:5b
ipaddr=192.168.0.20
serverip=192.168.0.10
gatewayip=192.168.0.1
netmask=255.255.255.0
args_mmc=setenv bootargs 'root=/dev/mmcblk0p2 rootfstype=ext3 rw init=/init console=ttySAC2,115200 androidboot.consolev
args_ram=setenv bootargs 'root=/dev/tfsr6 rootfstype=cramfs console=ttySAC2,115200 init=/linuxrc androidboot.console=sv
dnwu=dnw 30008000; movi write u-boot 30008000
dnwk=dnw 30008000; movi write kernel 30008000
dnwr=dnw 30008000; movi write rootfs 30008000 300000
bootcmd=movi read kernel 30008000; movi read rootfs 31000000 300000; bootm 30008000 31000000
Environment size: 798/16380 bytes
HKDKC110 # boot
reading kernel.. 1081, 8192
MMC read: dev # 0, block # 1081, count 8192 ...8192 blocks read: OK
completed
reading RFS.. 9273, 6144
MMC read: dev # 0, block # 9273, count 6144 ...6144 blocks read: OK
completed
Boot with zImage
get_format
-------- 1 --------
## Loading init Ramdisk from Legacy Image at 31000000 ...
   Image Name:   ramdisk
   Created:      2010-07-30   6:59:56 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    1346933 Bytes =  1.3 MB
   Load Address: 30800000
   Entry Point:  30800000
   Verifying Checksum ... OK
Starting kernel ...
Uncompressing Linux....................................................................................................
 
 
============================================================================
run args_ram을 실행한 결과입니다
 
HKDKC110 # run args_ram
Saving Environment to SMDK bootable device...
done
HKDKC110 # pri
bootcmd=movi read kernel 30008000; movi read rootfs 30A00000 180000; bootm 30008000 30A000
bootdelay=3
baudrate=115200
ethaddr=00:40:5c:26:0a:5b
ipaddr=192.168.0.20
serverip=192.168.0.10
gatewayip=192.168.0.1
netmask=255.255.255.0
args_mmc=setenv bootargs 'root=/dev/mmcblk0p2 rootfstype=ext3 rw init=/init console=ttySAv
args_ram=setenv bootargs 'root=/dev/tfsr6 rootfstype=cramfs console=ttySAC2,115200 init=/v
dnwu=dnw 30008000; movi write u-boot 30008000
dnwk=dnw 30008000; movi write kernel 30008000
dnwr=dnw 30008000; movi write rootfs 30008000 300000
filesize=2E380C
bootargs=root=/dev/tfsr6 rootfstype=cramfs console=ttySAC2,115200 init=/linuxrc androidbo2
Environment size: 800/16380 bytes
HKDKC110 # bootm 30008000 30a00000
Boot with zImage
get_format
-------- 0 --------
Wrong Ramdisk Image Format
Starting kernel ...
Uncompressing Linux.......................................................................
 
 
-> Wrong Ramdisk Image Format 이 나와서 odroid-T source build때 나온 램디스크를 올리고 나서 해보았는데 이번엔 제대로 Ramdisk를 읽긴 하지만 여전히 Uncompressing Linux........... 에서 넘어가질 않네요 ^^
 
아 말씀해주신 bootarg는 다음과 같이 나옵니다. dev.odroid.com에 나온 설정과 동일한 것 같네요
bootargs=root=/dev/tfsr6 rootfstype=cramfs console=ttySAC2,115200 init=/linuxrc androidboot.console=s3c2410_serial2
 
감사합니다 ^^ 
 
 
 
 
 
 
 
 
 

 

 

 

 

 


박종길

2011.05.12 20:51:41
*.90.137.104

uboot를 수정하실 필요는 없구요, uboot상태에서 아래와 같은 command로 설정을 바꿀수 있습니다.

 

setenv bootcmd 'movi read kernel 30008000; movi read rootfs 31000000 300000; bootm 30008000 31000000'

 

현재 설정을 볼수 있는 command는 'pri' 입니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
» 커널 이미지(zImage) 올린 후 부팅 실패 (Uncompressing Linux....) file [1] heave_n 2011-05-12 1702

사용자 로그인