포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 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
번호 제목 글쓴이 날짜 조회 수sort
108 hexdump 함수 - binary를 16진수로 표시 고도리 2017-07-10 184
107 [HowTo] RTEMS toolchain for v4.11 file 고도리 2014-05-20 1451
106 yuv viewer & test yuv file file 고도리 2013-02-20 3152
105 android platform tools for windows file 고도리 2013-01-28 3263
104 lksctp(libsctp) android ICS 4.0.4 just compile on origen-4412 ... file [1] 고도리 2012-08-25 3658
103 Embedded Linux용 Root Filesystem(rootfs) with crosstoolchain file [5] 고도리 2012-08-23 3832
102 Nexus-S gingerbread kernel sound(alsa) driver 간단 구조 file [1] 고도리 2012-07-23 3989
101 Audio in embedded linux - ALSA file [1] 고도리 2012-07-23 4011
100 uBuntu12.04 ARNDALE build 확인 된 가상 머신 이미지 [3] chlrbgh0 2012-12-14 4028
99 Exynos4412 Public Manual [1] 고도리 2012-10-26 4206
98 linaro toolchain gcc-linaro-arm-linux-gnueabihf-2012.07-20120720 file 고도리 2012-12-28 4299
97 u-boot의 이해 file 고도리 2012-07-22 4324
96 [u-boot] u-boot new command 추가하기 - example file 고도리 2011-09-26 4650
95 Exynos5250 public user manual [4] 관리자 2012-10-27 4827
94 ramdisk/initrd howto file 고도리 2012-03-26 4916
93 [임베디드리눅스] 아델리눅스(adelinux) Embedded Linux Programmin... file [3] 고도리 2012-04-12 4973
92 Origen cameraboard schematic file 관리자 2012-01-13 5153
91 Origen LCD board schematic file 관리자 2012-01-13 5168
90 Origen board resource file 관리자 2012-02-29 5205
89 [X-windows] Root filesystem with GPE for Cortex-A8/A9 file [1] 고도리 2012-01-17 5289

사용자 로그인