linux下利用dnw燒寫文件,告別windows下dnw藍屏死機(轉)

本文引用地址:http://hi.baidu.com/dsfire/blog/item/55fe051ffaae07fde0fe0bc5.html

在windows下用dnw下載文件時,一不留神就會使windows藍屏死機,很是鬱悶。相信很是 頭疼了不少人。現在,不用害怕了,高手們編譯出了能在linux下運行的dnw,哈哈,告別windows藍屏死機啦!但是在虛擬機下的 ubuntu8.10燒寫時,也出現了藍屏死機,不知何解(我理解是虛擬機下邊使用的usb設備實際上還是通過windows來驅動的,不知道對否,呵呵)

1. 下載Linux下DNW的PC端USB驅動和寫入工具
下載地址: http://arm9home.com/bbs/job.php?action=download&pid=tpc&tid=817&aid=86
文件名: dnw_linux.zip
下載後把後綴名改成.tgz

2. 編譯PC端USB驅動和寫入工具
2.1 解壓縮
$ tar xzvf /path/to/dnw_linux.tgz
dnw_linux/
dnw_linux/secbulk/
dnw_linux/secbulk/Makefile
dnw_linux/secbulk/secbulk.c
dnw_linux/dnw/
dnw_linux/dnw/dnw.c

其中secbulk.c是PC端USB驅動, dnw.c是寫入工具

2.2 編譯並加載secbulk.c內核模塊
$cd secbulk
$make -C /lib/modules/`uname -r`/build M=`pwd` modules

編譯成功後在當前目錄下可以看到secbulk.ko
alex@alex-desktop:~/project3/qq2440/dnw_linux/dnw_linux/secbulk$ ls
Makefile Module.symvers secbulk.c secbulk.ko secbulk.mod.c secbulk.mod.o secbulk.o

用insmod命令加載模塊,這需要root權限
$sudo insmod ./secbulk.ko

加載後用dmesg命令可以看到模塊已經成功加載
[ 238.007970] secbulk:secbulk loaded
[ 238.009101] usbcore: registered new interface driver secbulk

2.3 編譯dnw寫入工具
$cd dnw
$gcc -o dnw dnw.c
編譯成功後生成可執行檔dnw(這一步在虛擬機下編譯時出現了許多警告)


3 使用DNW下載
3.1 啓動開發板,進入Supervivi,並將開發板和PC用USB電纜連接,此時用dmesg命令可以看到secbulk驅動加載:
[ 283.677772] usb 1-1: new full speed USB device using uhci_hcd and address 2
[ 284.084835] usb 1-1: configuration #1 chosen from 1 choice
[ 284.140430] secbulk:secbulk probing...
[ 284.140482] secbulk:bulk out endpoint found!

3.2 此時可以用supervivi進行USB下載,vivi上步驟請參考用戶手冊,當出現“USB host is connected. Waiting a download.”時,在PC端Linux上用dnw工具寫入要下載的文件
$./dnw /path/to/what/you/want/download

寫入完成後提示成功
100% xxxxxxx bytes OK

我按照上面的步驟做了,燒寫了vivi,內核,根文件系統!成功!!!不過燒寫時間超長,不知道怎麼回事!

重啓,而且usb線不拔掉也可以!


根據網站 http://www.chinaunix.net/jh/4/1055992.html 說的
“最開始的secbulk驅動是從網上下載沒修改過的。
   但使用後發現速度太慢了。
   原因是#define BULKOUT_BUFFER_SIZE 32所設定的值太小了。
   改爲#define BULKOUT_BUFFER_SIZE 512後可發現速度快了很多。”

改了之後,發現速度快多了,哈哈!
注意在ubuntu下邊需要用超級用戶的權限,即需要sudo dnw2 ./file path

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章