smdk6400 board에 대한 u-boot코드는 master branch에만 적용되어 있는듯하다.
arm folk에는 존재하지 않았다.

1. u-boot download
$ git clone git://git.denx.de/u-boot.git master
$ cd master
$ git checkout -b work-v2009.06-rc2 v2009.06-rc2

2. build

자신의 cross toochain path 설정
$  CROSS_COMPILE=/usr/local/arm/arm-eabi-4.3.1/bin/arm-eabi-

clean
O= option을 이용해서 output path를 설정
$ make O=./out_smdk6400 distclean

config
Makefile에 있는 smdk6400 target을 확인한다.
$ make O=./out_smdk6400 smdk6400_config

build all
$ make O=./out_smdk6400 all 2>&1 | tee build-smdk6400.log
$ make ARCH=arm CROSS_COMPILE=/usr/local/arm/arm-eabi-4.3.1/bin/arm-eabi- O=./out_smdk6400 all 2>&1 | tee build-smdk6400.log
정상적으로 완료되면  out_smdk6400 디렉토리에
u-boot.bin
u-boot
u-boot-nand.bin
등의 파일이 생성된다.

EOF



S3C64XX git kernel source
http://git.kernel.org/?p=linux/kernel/git/kki_ap/samsung-ap-2.6.git;a=summary

Happy Coding~:)
nfs통해서 부팅을 시킨후 android system을 복사해 보자

■ HOST 설정
먼저 ubuntu의 nfsroot에 android system을 복사해 두어야 한다.
소스 다운로드
소스 복사
$ cp anw6410fs.tar /nfsroot
$ tar xvf anw6410fs.tar
anw6410디레토리 안에 android file system이 풀림으로 디렉토리 안의 모든 내용을 /nfsroot로 복사해 온다.
$ mv ./anw6410fs/* ./
 
■ nand wring
nand에 write하기 위해서 삭제한다.
# flash_eraseall /dev/mtd/mtd3
Erasing 128 Kibyte @ ebe0000 -- 99 % complete.
 
3번째 partition을 mount한다.
# mount -t yaffs2 /dev/block/mtdblock3 /mnt
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
yaffs_read_super: isCheckpointed 0
 
android system 디렉토리를 복사해 온다.
# cp -a /system /mnt
# mkdir /mnt/data
# sync
save exit: isCheckpointed 1
 
모두 완료했으면 unmount
# umount /mnt
save exit: isCheckpointed 1
 
■ 부팅
여기까지 하면 partition3에 android system이 모두 복사가 되었다.
이제 ramdisk를 통해서 정상 부팅한다.
 
android 실행
# cd /
# ./run.sh
 
■ 추가
부팅후 nfs로 연결하고 싶은 경우
mount -t nfs -o vers=2,nolock 192.168.100.13:/nfsroot /mnt/nfs
 
참고
이광우님 - android 실행에 필요한 작업
 
Happy Coding~:)
■ HOST OS에 네트웍크 브리지 생성 상태
네트웍스 설정에서 VirtualBox Host-Only Network과 로컬영역 연결을 두개를 선택하고 마우스 오른쪽 버튼을 통해 브리지를 생성한다.

생성한 브리지에 ip를 설정한다.
자신이 사용하는 주소 범위 안에서 아무거나 선택
192.168.100.12,255.255.255.0, 192.168.100.1

 
■ virtualbox설정
 
■ guest os설정
브리지에 설정한 ip와는 다른 ip를 설정
$ sudo ifconfig 192.168.100.13
$ sudo service nfs-kernel-server restart
$ sudo service xinetd restart
 
android file system 생성
파일시스템 다운로드
 
복사
$ cp anw6410fs.tar /nfsroot
$ tar xvf anw6410fs.tar
anw6410디레토리 안에 android file system이 풀림으로 디렉토리 안의 모든 내용을 /nfsroot로 복사해 온다.
$ mv ./anw6410fs/* ./
다시 export
$ sudo exportfs -a

■ uboot설정
 
기존 설정값 확인
#  print
bootdelay=3                                                                 
baudrate=115200
ethaddr=00:40:5c:26:0a:5b                                                      
gatewayip=192.168.0.1                                                          
netmask=255.255.255.0                                                          
serverip=192.168.1.192                                                         
ipaddr=192.168.1.20                                                            
gateway=192.168.1.1                                                            
bootargs=root=/dev/ram0 rootfstype=ext2 ramdisk_size=6144 initrd=0x51000000,2130
bootcmd=nand read c0008000 40000 1c0000;nand read c1000000 400000 20d000;bootm 0
stdin=serial                                                                   
stdout=serial                                                                  
stderr=serial   
 
botargs 변경
# setenv bootargs 'root=/dev/nfs nfsroot=192.168.100.13:/nfsroot ip=192.168.100.20:192.168.100.13:192.168.100.1:255.255.255.0:s3c6410:eth0:off console=ttySAC0,115200'
 
# nand read c0008000 40000 1c0000
# bootm c0008000
 
부트 성공!
...
eth0: link down
IP-Config: Complete:
     device=eth0, addr=192.168.100.20, mask=255.255.255.0, gw=192.168.100.1,
     host=s3c6410, domain=, nis-domain=(none),
     bootserver=192.168.100.13, rootserver=192.168.100.13, rootpath=
Looking up port of RPC 100003/2 on 192.168.100.13
dm9000 dm9000: eth0: link up, 100Mbps, full-duplex, no LPA
Looking up port of RPC 100005/1 on 192.168.100.13
VFS: Mounted root (nfs filesystem).
init started: BusyBox v1.9.1 (2008-03-06 15:56:03 GMT)
starting pid 865, tty '': '/etc/init.d/rcS'
Activating swap.
Checking all file systems...
fsck (busybox 1.9.1, 2008-03-06 15:56:03 GMT)
Mounting local filesystems...
mount: mounting /dev/ram0 on / failed: Invalid argument
Cleaning /tmp /var/run.
Initializing random number generator...done.
starting pid 966, tty '': '/sbin/getty'
 
■ 확인
# ls /

guest os NFS root 디렉토리
$ ls /nfsroot
Happy Coding~:)

+ Recent posts