ºìÁªLinuxÃÅ»§
Linux°ïÖú

Ubuntu 12.10ʹÓÃDNW´«Êý¾Ý½øÐÐARM¿ª·¢°åÉÕд

·¢²¼Ê±¼ä:2014-07-13 10:44:31À´Ô´:ºìÁª×÷Õß:velcbo
Part1Ç°ÑÔ

×î½üÔÚÑо¿OK6410¿ª·¢°å£»µ«windowsϵÄrvdsÕæÊDz»ºÃÓã¬ÉÕд³ÌÐòµ½¿ª·¢°å»¹ÐèÒªdnw£¬¶øÕâ¸÷ÖÖÈí¼þ¶¼ÒªÔÚwinϸ㣬ºÜÊDZïÇü£¬¶øÇÒ64λµÄwin7»¹³ö¸÷ÖÖÎÊÌâ¡£ÎÒÒªÒÆÖ²µÄÊÇLinuxϵͳÄØ£¬Õ¦µÄ¾Í²»ÄÜÔÚlinuxÍê³ÉËùÓв½ÖèÄØ£¿

×òÍíµ½´¦²éÕÒ×ÊÁÏ£¬×ÜËãÕÒµ½ÁËdnw¿ÉÔÚlinux³É¹¦ÔËÐеÄÏûÏ¢£»

ÓÖÓöµ½ÁËlinuxϵĴ®¿ÚÁ¬½ÓÖÕ¶ËminicomºÍkermit£» ²»¶ÏÕÛÌںͲâÊÔ£¬×ÜËã¸ã¶¨ÁËdnwºÍusbÏÂÔصÄÎÊÌ⣻ºóÃæµÄ·¾Í¿ªÀ«¶àÁË£¡¼Çϸ÷ÖÖ×ÊÔ´ºÍÐĵ㬺ʹó¼Ò·ÖÏí¡£

Part2¹¤¾ß×¼±¸

2.1 ´®¿ÚÖÕ¶Ëkermit

Õâ¸öÖ±½ÓÃüÁî°²×°¾Í¿ÉÒÔÁË£¬ÁíÍâÐèÒª¼òµ¥ÊìϤһÏÂËûµÄÅäÖúÍÁ½ÖÖģʽ£»

2.1.1 °²×°kermit

sudo apt-get install ckermit

2.1.2 ÅäÖÃkermit

½¨Á¢ÅäÖÃÎļþ ~/.kermrc, ÄÚÈÝÈçÏ£º

#USBת´®¿Ú,ËùÒÔÉ豸Ϊ/dev/ttyUSB0
SET LINE /dev/ttyUSB0
#ÉèÖò¨ÌØÂÊ
#set speed 115200

#¹Ø±ÕͨÐżàÊÓ,±ØÐë¹Ø±Õ²ÅÄÜ¿´µ½¿ª·¢°å·µ»ØµÄÐÅÏ¢
set carrier-watch off

2.1.3 ʹÓÃkermitÁ¬½Ó¿ª·¢°å

ÔÚÁ¬½ÓºÃUSBת´®¿Úºó£¬¸ÃUSBÄܹ»±»LinuxÖ±½Óʶ±ð£¬¶ÔÓ¦É豸ÎļþΪ£º/dev/ttyUSB0 ;

ÕâÀïÐèҪעÒâµÄÊÇ£º ÏÈÁ¬½ÓºÃUSB´®¿ÚºÍ¿ª·¢°å£¬È»ºóÔÙ´ò¿ªÅäÖúõÄkermitÖնˣ»·ñÔòkermit»á¶ÁÈ¡ÅäÖÃÎļþÏÈÕ¼ÓúÍËø¶¨ÁË/dev/ttyUSB0, ÄÇôÔÙ²åÉÏUSB´®¿Úºó£¬¸ÃÉ豸·ÖÅäµÄÉ豸Îļþ¾Í³ÉÁË/dev/ttyUSB1, ´ÓʳöÏÖ²»Æ¥Å䣬ÔÚÖÕ¶ËÖÐÎÞ·¨¿ØÖÆ¿ª·¢°åµÄÇé¿ö£»£¨²»¹ýÕâÖÖÇé¿öÒ²ºÜºÃ´¦Àí£¬¾ÍÊÇÔÚkermitÖÐÉèÖÃеÄÁ¬½Ó¶ÔÏó£¬ÈçÏ£º£©

set line /dev/ttyUSB1 #Õâ¸ö¸ù¾Ýʵ¼ÊÇé¿öÉèÖ㬿ÉÒÔͨ¹ý ls /dev/ttyUSB* µÄ·½Ê½²éÕÒµ½Ãû×Ö

2.1.4 kermitµÄÁ½ÖÖģʽ

½øÈëºóĬÈϽøÈëÃüÁîģʽ£¬¿ÉÒÔÖ´ÐкܶàÃüÁ°üÀ¨Á¬½Ó¿ª·¢°åµÄconnectÃüÁ

ÒýÓÃ:
C-Kermit 9.0.302 OPEN SOURCE:, 20 Aug 2011, for Linux+SSL+KRB5
Copyright (C) 1985, 2011,
Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/media/GoldenResources/arm/src/dnw4linux/) C-Kermit>? Command, one of the following:
add check disable getc learn mmove push return statistics type
answer chmod do getok LICENSE move pwd rlogin status undeclare
apc clear echo goto lineout msend quit rmdir stop undefine
array close edit grep log msleep read run SUPPORT version
ask connect enable head login open receive screen suspend void
askq copy end hangup logout orientation redial script switch wait
assign date evaluate HELP lookup output redirect send tail where
associate debug exit http mail pause redo server take while
authenticate decrement file if manual pdial reget set telnet who
back define finish increment message pipe remote shift touch write
browse delete for input minput print remove show trace xecho
bye dial ftp INTRO mget pty rename space translate xmessage
cd directory get kcd mkdir purge resend ssh transmit
or a macro name ("do ?" for a list) or one of the tokens: ! # ( . ; : < @ ^ {


Ëæʱ³öÈë ÎʺŠ£¿ ¿ÉÒÔ»ñµÃ°ïÖúºÍ´úÂ벹ȫ£» ÔÚÊäÈëconnectÃüÁîÁ¬½Ó¿ª·¢°åºó£¨ÔÚÕâ֮ǰÐèÒªÅäÖÃÁ¬½Ó¶ÔÏ󣬿ÉÒÔÓÃÃüÁî set line /dev/ttyUSB0 µÄ·½Ê½Íê³É£©£¬½øÈëµ½Á¬½ÓºóµÄ¿ª·¢°åģʽ£¬ÏÔʾµÄΪ¿ª·¢°å·´À¡»ØÀ´µÄÐÅÏ¢£¬¿ÉÒÔ¿ØÖÆÕû¸ö¿ª·¢°å£¬Òª·µ»ØÔ­À´µÄÃüÁîģʽʹÓÿì½Ý¼ü Ctrl+ \ , È»ºó °´C ×Öĸ·µ»Ø£»

2.2 DNWºÍUSBÇý¶¯×¼±¸

2.2.1 ÏÂÔØÔ´Âë

¿ÉÒÔÍøÉÏËÑË÷dnw4linux£¬ÏÂÔØQQ2440°æ±¾µÄÔ´Â룬»òÕßÖ±½ÓÏÂÔØÎÒÕûÀíºóµÄ£¬¿ÉÒÔÊÊÓÃÓÚOK6410¼°ÀàËÆ¿ª·¢°åµÄdnwÔ´ÂëºÍÇý¶¯°ü£»

ÏêÇé²é¿´£º https://github.com/Qunero/dnw4linux ¸ÃÒ³ÃæµÄ˵Ã÷£¬»òÕßÖ±½ÓÏÂÔØѹËõ°ü£º

https://github.com/Qunero/dnw4linux/downloads

2.2.2 ±àÒë°²×°ºÍʹÓÃ

Ö±½Ó²é¿´¸ÃÈí¼þ°üµÄREADME£¬°´²½Ö´Ðм´¿É£º

¡¢Ô´Âë˵Ã÷£º
±¾Ô´´úÂëÊÕ¼¯×ÔÍøÂ磬¾­¹ýÕûÀíºÍ¼ÓÈëºê¶¨Ò壬ʹÆäÊÊÓÃÓÚOK6410¿ª·¢°å£»¶Ô
Ô´Âë½øÐÐÁËÊʵ±µÄ×¢ÊͺʹíÎó¾ÀÕý£»Í¬ÑùÒÔGPLЭÒé·¢²¼£»
¡¢Ê¹ÓÃ˵Ã÷£º
.1 ±àÒë
Ö±½ÓÔÚ½âѹºóµÄĿ¼ÖÐmake¼´¿É£»È»ºóÔÚ¶ÔÓ¦µÄ×ÓĿ¼ÖпÉÒÔÕÒµ½±àÒëºÃµÄÎļþ£»
¸ü·½±ãµÄ×ö·¨£ºmake install »áÖ±½Ó½«Ïà¹ØÎļþ±àÒëºÃ£¬È»ºó·Åµ½µ±Ç°Ä¿Â¼Ï£¬
±àÒëºÃµÄÎļþΪ£º
dnw --- ÓÃÓÚ´«ÊäÊý¾ÝµÄÈí¼þ£¬Ó÷¨£º dnw filename
secbulk.ko --- ʶ±ðÏÂÔØÓÃUSBµÄÇý¶¯£» Ó÷¨£º sudo insmod secbulk.ko
.2 ×Ô¶¯»¯
ÔÚ±àÒë³É¹¦ºó£¬Íê³ÉÏÂÁв½Öè·½ÃæÒÔºóʹÓãº
.2.1 ½«dnw·Åµ½ÏµÍ³Â·¾¶£º sudo cp dnw /usr/sbin/
.2.2 ½«secbulk.koÇý¶¯ÉèΪ×Ô¶¯¼ÓÔØ£º
ÏÈÔÚסĿ¼½¨Á¢mydriverĿ¼£ºmkdir ~/mydriver
½«Çý¶¯·ÅÈë×Ô¶¨ÒåmydriverÖУºcp secbulk.ko ~/mydriver/
ÐÞ¸Ä/etc/rc.d/rc.localÎļþ£¬Ä©Î²¼ÓÈ룺 sudo insmod $HOME/secbulk.ko
×¢Ò⣺ ½«ÉÏÃæµÄ$HOMEÌæ»»³Éʵ¼ÊµÄ¾ø¶Ô·¾¶£¬±ÈÈ磺 /home/qulory
.3 ÇåÀí
Ö±½ÓÖ´ÐÐmake clean£¬ ÈÃÄãµÄÔ´ÂëĿ¼¸É¸É¾»¾»£»
.4 ʹÓÃ
×¢Ò⣬µ±Ç°±àÒëºÃµÄdnwÔÚ32λlinux¿ÉÓ㬵«ÊÇsecbulk.koÇý¶¯ÎļþÐèÒª×Ô¼º±àÒë
±ØÐëͬµ±Ç°Ê¹ÓõÄÄں˵İ汾һÖ£¬Äں˰汾Éý¼¶ºóÒ²ÐèÒªÖØбàÒ룻
¡¢ÒÆÖ²°ïÖú£º
Òª³É¹¦ÒÆÖ²µ½ÀàËƵĿª·¢°å£¬ÐèÒªÒÔÏÂ2²½£º
.1 Çý¶¯´¦Àí£º
½øÈësecbulk_driver×ÓĿ¼£¬ÐÞ¸ÄÎļþsecbulk.cÖеĹØÓÚDOWNLOAD_USB_ID_MAJOR
ºÍDOWNLOAD_USB_ID_MINORµÄºê¶¨Ò壬ÈÃÆäÓëÄãµÄusb¶ÔÓ¦£¬¿ÉÒÔͨ¹ýlsusbÃüÁî²é¿´
»ñµÃ¸ÃidµÄÐÅÏ¢£»
.2 dnwÏÂÔصØÖ·µÄ´¦Àí£º
½øÈëdnw_srcĿ¼£¬ÐÞ¸Ädnw.cÎļþÖÐDOWNLOAD_ADDRµÄ¶¨Ò壬½«ÆäÉèΪÄãµÄ¿ª·¢°å
µÄÏÂÔصØÖ·£»
.3 ÓÐÒÉÎÊ¿ÉÒÔÁªÏµ Qulory<Quner612@qq.com>;

Çý¶¯°²×°ºÃºó£¬ÔÚÓÃkermitÁ¬½ÓºÃ¿ª·¢°å£¬È»ºóÖØÆô¿ª·¢°å£¬ÈÃÆäÍ£ÁôÔÚu-boot½×¶Î£»È»ºóÔÚkermitÖÐÊäÈëdnw 50008000, Õâ¸öµØÖ·ÒªºÍdnwÈí¼þ±àÒëʱָ¶¨µÄÏÂÔصØÖ·Ò»Ö£¬È»ºó¹¦¹ýlsusbÃüÁî¿ÉÒÔ¼ì²éµ½¸ÃusbÏߣ¬Èç3.2 ÖÐËùʾ£»²¢ÇÒÔÚÕý³£Ö´ÐÐÁË £º sudo insmod secbulk.ko ºó£¬¿ÉÒÔ¼ì²éµ½ÈçÏÂÐÅÏ¢£º

ÒýÓÃ:
less /var/log/kern.log
Nov 16 13:21:21 qunengrong-Studio-1450 kernel: [139476.958530] secbulk:secbulk probing...
Nov 16 13:21:21 qunengrong-Studio-1450 kernel: [139476.958534] secbulk:bulk out endpoint found!


ÖÁ´ËÇý¶¯°²×°ºÍdnwÈí¼þ×¼±¸¾ÍÐ÷£»

2.2.3 ¹ØÓÚdnw2

dnw2ʹÓÃlibusbÀ´ÊµÏÖ¶Ô¸ÃUSBµÄ²Ù¿Ø£¬µ«ÊDz»ÈçdnwÀ´µÄÖ±½Ó£º/dev/secbulk0 £¬Ç°Õ߸ü¼Óϵͳµ«ÊÇʹÓô«ÊäÊý¾ÝµÄʱºò¾­³£³öÏÖÈçÏ´íÎó£º

Target usb device found!

Cannot claim interface: Device or resource busy

ºóÐøÓÐʱ¼äÏêϸ·ÖÎöÒÔÏÂÔÚ´¦Àí£»

2.3 minicomÖն˵ÄʹÓÃ

minicomÊÇ»ùÓÚ×Ö·û²Ëµ¥µÄ£¬²»Ì«ºÃÓ㬶øÇÒ¾­³£¿ì½Ý¼ü²»ÏìÓ¦ºÍ³öÏÖÂÒÂ룻²»¹ý¸½¼ÓʹÓ÷½·¨ÈçÏ£º

2.3.1 ʹÓÃminicom -s Æô¶¯²¢ÅäÖÃ

ʹÓÃsudoÆô¶¯£º

sudo minicom -s

Ö÷ÒªÉèÖúô®¿Ú£¬Èçϲ¿·Ö£º

ÒýÓÃ:
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols |
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
| Exit from Minicom |
+--------------------------+


Ôڸò˵¥ÖÐÊäÈëA£¬Ð޸Ĵ®¿ÚÉ豸Ϊ /dev/ttyUSB0£¬ÈçÏ£º

ÒýÓÃ:
+-----------------------------------------------------------------------+
| A - Serial Device : /dev/ttyUSB0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : Yes |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-----------------------------------------------------------------------+


Í˳ö²¢±£´æ£¬È»ºó¿ÉÒÔ¿ªÊ¼Ê¹ÓÃÁË£º

ÒýÓÃ:
Welcome to minicom 2.6.1

OPTIONS: I18n
Compiled on May 1 2012, 10:55:27.
Port /dev/ttyUSB0

Press CTRL-A Z for help on special keys


exit not allowed from main input shell.
SMDK6410 #


Part3ÉÕд²âÊÔ

3.1 Á¬½ÓºÃUSB´®¿Ú²¢´ò¿ªkermitÖÕ¶Ë

²Î¿¼2.1.3 ÖеÄ˵Ã÷£¬Á¬½ÓºÃ¿ª·¢°å£¬ Æô¶¯kermitºó£¬ÊäÈëconnectÃüÁ ¿ªÊ¼ÔÚkermitÖпØÖÆ¿ª·¢°å£» ÈÃÆäÍ£ÁôÔÚu-bootµÄÃüÁîÐУ¬Ñ¡Ôñ2 ½øÐдÓUSBÉÕдϵͳµÄ²Ëµ¥£¬È»ºóÑ¡Ôñ1ÉÕдu-boot£»

ÒýÓÃ:
U-Boot 1.1.6 (Nov 16 2012 - 12:23:47) for SMDK6410

****************************************
** u-boot 1.1.6 **
** Updated for OK6410 TE6410 Board **
** Version (2012-09-23) **
** OEM: Forlinx Embedded **
** Web: http://www.88181.com **
****************************************

CPU: S3C6410 @532MHz
Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)
Board: SMDK6410
DRAM: 256 MB
Flash: 0 kB
NAND: 2048 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0

###################### User Menu for OK6410#####################
[1] Format the nand flash
[2] Burn image from USB
[3] configure the lcd size
[4] Boot the system
[5] Reboot the u-boot
[6] Exit to command line
-----------------------------Select---------------------------------
Enter your Selection:2

##### Select the fuction #####
[1] Flash u-boot
[2] Flash kernel
[3] Flash system
[4] Exit
Enter your Selection:1

NAND erase: device 0 offset 0x0, size 0x200000
Erasing at 0x180000 -- 100% complete.
OK
Insert a OTG cable into the connector!
OTG cable Connected!
Now, Waiting for DNW to transmit data


3.2 Á¬½ÓºÃUSBÊý¾ÝÏß²¢Ê¹ÓÃDWN´«Êý¾Ý

ÔÚ¿ª·¢°å´¦ÓÚ½ÓÊÕÊý¾ÝµÄ״̬Ï£¬ÔÚ¸ÃUSB²åµ½linuxϵͳÉϾÍÄܹ»Ê¶±ð³ö¸ÃUSBµÄÐÅÏ¢£¬Ò²Ö»ÓÐÕâ¸öʱºò²ÅÄÜʶ±ðµ½£¬ÈçÏ£¬×¢Òⲿ·Ö£¨¸ÃUSBµÄÉ豸ID£¬¹Øϵµ½µÚ¶þ²¿·ÖµÄÇý¶¯³ÌÐòµÄ¶ÔÓ¦ÄÚÈÝ£©£º

ÒýÓÃ:
$lsusb
Bus 001 Device 003: ID 0c45:6407 Microdia
Bus 002 Device 041: ID 04e8:1234 Samsung Electronics Co., Ltd
Bus 004 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 008 Device 023: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 413c:8161 Dell Computer Corp. Integrated Keyboard
Bus 004 Device 004: ID 413c:8162 Dell Computer Corp. Integrated Touchpad [Synaptics]


ÔÚÁíÒ»¸öÖÕ¶ËÖÐÓÃdnwдÊý¾Ý,×îºó״̬Ìáʾ´«Êä³É¹¦£º

ÒýÓÃ:
$sudo dnw u-boot.bin
file name : u-boot.bin
file size : 212992 bytes
Writing data...
100 213002 bytes !OK


ÔÚkermitÖй۲ì״̬£¬³É¹¦Ð´ÈëÊý¾Ý£º

ÒýÓÃ:
##### Select the fuction #####
[1] Flash u-boot
[2] Flash kernel
[3] Flash system
[4] Exit
Enter your Selection:1

NAND erase: device 0 offset 0x0, size 0x200000
Erasing at 0x180000 -- 100% complete.
OK
Insert a OTG cable into the connector!
OTG cable Connected!
Now, Waiting for DNW to transmit data
Download Done!! Download Address: 0x50008000, Download Filesize:0x34000
Checksum is being calculated.
Checksum O.K.

NAND write: device 0 offset 0x0, size 0x200000
1032192 bytes written: OK

##### Select the fuction #####
[1] Flash u-boot
[2] Flash kernel
[3] Flash system
[4] Exit
Enter your Selection:


È»ºóÑ¡Ôñ4Í˳öÉÕд£¬È»ºóÖØÆôu-boot¿´ÊÇ·ñ¿ÉÓãº

ÒýÓÃ:
##### Select the fuction #####
[1] Flash u-boot
[2] Flash kernel
[3] Flash system
[4] Exit
Enter your Selection:4

###################### User Menu for OK6410#####################
[1] Format the nand flash
[2] Burn image from USB
[3] configure the lcd size
[4] Boot the system
[5] Reboot the u-boot
[6] Exit to command line
-----------------------------Select---------------------------------
Enter your Selection:5
reset...

KK

U-Boot 1.1.6 (Nov 16 2012 - 12:23:47) for SMDK6410

****************************************
** u-boot 1.1.6 **
** Updated for OK6410 TE6410 Board **
** Version (2012-09-23) **
** OEM: Forlinx Embedded **
** Web: http://www.witech.com.cn **
****************************************

CPU: S3C6410 @532MHz
Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)
Board: SMDK6410
DRAM: 256 MB
Flash: 0 kB
NAND: 2048 MB
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0

NAND read: device 0 offset 0x200000, size 0x500000
s3c-nand: 1 bit(s) error detected, corrected successfully
5242880 bytes read: OK
Boot with zImage

Starting kernel ...


ÖÁ´Ë£¬ËµÃ÷ÖØÆô½øÈëu-bootÒѾ­³É¹¦£¬Ò²¾ÍÊǸոÕÎÒÃǵÄUbuntuÏÂdnw´«ÊäÊý¾ÝºÍÉÕдu-boot¶¼Òѳɹ¦Íê³É£»

¸ü¶àµÄ²âÊÔ£¬»¶Ó­¹Ø×¢¡£

×÷ÕߣºQuLory
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ