포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 1GB 입니다.

삼성에서 제공하는 u-boot 에는 dnw 라는 명령어가 포팅되어 있습니다.


타겟보드를 USB device 케이블로 연결한 다음 u-boot 상에서 dnw 0xc0008000

와 같이 입력해주고, Windows XP에서 DNW.exe 프로그램을 실행해서 필요한 파일을

밀어 넣어주는 형식입니다.


Windows용 DNW.exe 프로그램이 리눅스용으로도 포팅되어 있는데 이름이 smdk-usbdl 입니다.


이걸 fork() 함수를 써서 daemon 모드로 동작하도록 고쳤습니다. smdk-usbdl 프로그램을 매번 실행할 필요 없이 한번만 실행시켜 놓고 TFTP를 사용하던것 처럼 이용하실수 있습니다.


동작은 잘 됩니다만, 몇가지 고쳐야 될점은 다음과 같습니다.


1. u-boot 에서 dnw 명령을 내린후 잠시 기다려야 합니다. cpu를 많이 잡아먹길래 몇군데 sleep() 함수를 썼더니 그렇군요.

2. 프로그램을 실행시키면 깨진 문자열들이 출력됩니다. 디버깅 못했습니다. 보기 싫으신 분은 일단 > /dev/null 붙여주세요.

3. fork() 함수를 사용한 위치를 잘못 잡은것 같은데 usb 벌크 장치는 써본적이 없어서 대충 짰더니만..^^;

4. 파라미터 형식으로 넘겨주는 옵션값들을 ~.conf 형식으로 바꿔야 합니다.


사용 방법

--------


USB 케이블을 연결한 다음


u-boot 에서 dnw 0xc0008000


리눅스에서 ./smdk-usbdl -a 0xc000800 -f /tftpboot/zImage > /dev/null




고도리

2010.08.15 08:12:22
*.66.210.20

수고하셨습니다.

 

자세한 부분은 저랑 다시 함 튜닝 봐보도록 하는게 어떨까요?....ㅎ

유형목

2010.08.16 02:06:13
*.131.99.183

VirtualBox + Ubuntu Linux 10.04  환경에서 USB를 써서 NFS 부팅을 시도해보았습니다. 일단 성공적으로 동작은 잘 됩니다.


그런데 smdk-usbdl 프로그램과 usb0 를 둘다 동시에 쓸수는 없네요. 허긴 장치가 하나인데 두가지 방법으로 동시에 쓸수는 없으니 당연한 결과일듯 합니다.


어쨌든 smdk-usbdl 프로그램을 daemon 모드로 돌리다가 usb0 가 생기면 자동으로 끊어야 하는데 이걸 처리하려면 아마도 udev를 개입시켜야 될것 같습니다. 그 반대의 경우도 처리가 필요하구요. 좀 더 천천히 생각해보면 답이 있을것 같긴 합니다만..

유형목

2010.08.16 09:30:20
*.131.99.183

역시나 답은 udev 에 있었습니다. ^^; fork() 함수 써서 daemon 모드로 만든 것은 뻘짓이 되버렸네요. -_-;


다음과 같이 한줄만 써주면 됩니다. 역시 머리를 잘 써야 손발이 덜 고생한다는...


vi /etc/udev/rules.d/80-dnw.rules

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

# USB bulk device
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="1234", RUN+="/usr/sbin/smdk-usbdl -a 0xc0008000 -f /tftpboot/zImage"


벤더ID와 프로덕트ID를 써주고 나서 RUN+= 에 명령을 써주는게 전부입니다. 벤더ID와 프로덕트ID는 u-boot 에서 dnw 0xc0008000 명령을 내린다음 리눅스 쪽에서  lsusb  혹은 usb-devices 라고 입력해 보면 알수 있습니다.

이제현

2010.08.16 19:10:18
*.90.137.102

허무하지만 정말 멋지게 마무리 해주셨네요~~ ㅎㅎ


참, 좀 중요한 팁인데요.

smdk-usbdl 옵션인 "-a 주소" 는 안쓰셔도 됩니다.

보드쪽(u-boot) dnw 명령어에서 설정된 번지로 잘 전송됩니다.

유형목

2010.08.17 07:56:05
*.131.99.183

그렇군요. 잘 참고 하겠습니다. ^^;

신진철

2011.06.27 23:13:51
*.104.46.57

감사합니다!! 잘 쓰겠습니다!



List of Articles
번호 제목 글쓴이 날짜 조회 수
88 [toolchain] ARMv7용 root filesystem을 올립니다. cross compil... file 고도리 2012-01-11 5454
87 S5P6450 안드로이드 vs 리눅스 Root FS 부팅 비교 [1] 이제현 2011-12-08 6827
86 [u-boot] u-boot new command 추가하기 - example file 고도리 2011-09-26 4650
85 Exynos-4210 Cortex-A9 Dual-Core Android 2.3.5 Beta image.(OD... [4] 이제현 2011-09-08 6275
84 Exynos4210 Public User Manaual Ver.0.00.01 [4] 관리자 2011-08-27 6462
83 Exynos-4210 Cortex-A9 Dual-Core Android 2.3.4 Source code [1] 이제현 2011-07-09 8034
82 실시간 온라인 강의 시스템 - MegaCast 류종택 file [1] 류종택 2010-12-08 9381
81 안드로이드용 구글 공식 한글 키보드 file [2] 이제현 2010-11-23 15078
80 USB 케이블만 가지고 리눅스 NFS 개발환경 만들기 file 유형목 2010-10-24 10044
» 리눅스용 DNW 프로그램을 고쳤습니다. file [6] 유형목 2010-08-14 11687
78 SD, CF card Dump 프로그램(DD for Windows) file [3] 김경수 2010-08-06 10103
77 tslib 포팅 - 안드로이드에서 사용하기 위한.... file [9] 정낙주 2010-07-27 11617
76 포팅중인 mplayer for Android입니다. [2] pinebud 2010-07-19 9501
75 나만의 "N 드라이브" 만들기 file [11] 유형목 2010-07-03 9511
74 안드로이드 사용방법에 관련된 문서 file [2] 유형목 2010-05-31 8781
73 [ODROID-T] GPS test application file [1] 이제현 2010-05-29 8528
72 OpenRISC OR1xxx Processor (OR32) IROM용 DNW 0.1r1 file JhoonKim 2010-02-23 8711
71 AESOP 문서양식 file [1] 고현철 2010-01-06 8176
70 OpenRISC OR1xxx Processor (OR32) IROM용 Serial Download... file [2] 김재훈 2009-10-13 8249
69 OpenRISC OR1xxx Processor (OR32)용 U-Boot v1.3.4 file [2] 김재훈 2009-10-13 8554

사용자 로그인