linux下使用dnw烧写及其出现问题的解答
2013-04-28 09:02
615 查看
从做完就在搞这个问题,一共有三种方案,dnw和dnw2还有usb2ram
第一种需要加载驱动,后面两种需要安装libusb-dev.其中第二种的烧写速度很快,我都能听到电流声.但是也很不稳定.经常出现的提示是:
"usb_bulk_write failed: Resource temporarily unavailable"
从提示的信息来看是烧写的文件大于容量了.但是实际情况没有,原因不明.有人说是每次烧写都要重新插拔一次usb.
usb2ram提示的信息是找不到设备,原因不明
========================================
使用dnw2经常出现的错误提示是:
Target usb device found!
Cannot claim interface: Device or resource busy
========================================================
我后来还是使用的第一种方法,加载驱动:
方法是:
1. 下载Linux下DNW的PC端USB驱动和写入工具
文件名: dnw_linux.zip
下载后把后缀名改成.tgz
#或者搜索 linux dnw
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
==========================
使用dmesg查看是否成功加载驱动很重要,如果没有这步,会提示说"Can not open /dev/secbulk0 "
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工具写入要下载的文件
$sudo ./dnw /path/to/what/you/want/download
#此处使用命令写入,无界面
写入完成后提示成功
100% xxxxxxx bytes OK
$sudo insmod ./secbulk.ko 为加载模块进内核
开机的时候不会自动加载,这样每次都要先加载才可以使用,此时将其加入开机脚本,
使其得到自动加载,编辑/etc/init.d/rc.local 在最后加上 insmod /所在路径/secbulk.ko。
#调用dnw时只能在当前目录使用./dnw执行,对此情况,将dnw添加到/usr/local/sbin中,这样可以在
任何目录,使用 sudo dnw filename来调用。
第一种需要加载驱动,后面两种需要安装libusb-dev.其中第二种的烧写速度很快,我都能听到电流声.但是也很不稳定.经常出现的提示是:
"usb_bulk_write failed: Resource temporarily unavailable"
从提示的信息来看是烧写的文件大于容量了.但是实际情况没有,原因不明.有人说是每次烧写都要重新插拔一次usb.
usb2ram提示的信息是找不到设备,原因不明
========================================
使用dnw2经常出现的错误提示是:
Target usb device found!
Cannot claim interface: Device or resource busy
========================================================
我后来还是使用的第一种方法,加载驱动:
方法是:
1. 下载Linux下DNW的PC端USB驱动和写入工具
文件名: dnw_linux.zip
下载后把后缀名改成.tgz
#或者搜索 linux dnw
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
==========================
使用dmesg查看是否成功加载驱动很重要,如果没有这步,会提示说"Can not open /dev/secbulk0 "
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工具写入要下载的文件
$sudo ./dnw /path/to/what/you/want/download
#此处使用命令写入,无界面
写入完成后提示成功
100% xxxxxxx bytes OK
$sudo insmod ./secbulk.ko 为加载模块进内核
开机的时候不会自动加载,这样每次都要先加载才可以使用,此时将其加入开机脚本,
使其得到自动加载,编辑/etc/init.d/rc.local 在最后加上 insmod /所在路径/secbulk.ko。
#调用dnw时只能在当前目录使用./dnw执行,对此情况,将dnw添加到/usr/local/sbin中,这样可以在
任何目录,使用 sudo dnw filename来调用。
相关文章推荐
- 关于Linux 下 使用JAVA出现中文小框框的问题
- 使用centos linux-2.6.32-220.23.1.el6源码编译时出现的问题及其解决方法
- linux使用ultraedit的FTP的功能出现的不能初始化的问题
- linux — Centos 7(第一天) 使用时出现的问题及解决方法
- 移植Linux到ARM920t 中之后再DNW中出现乱码问题
- linux环境下调试嵌入式设备时出现Aborted、segmentation fault、卡死的问题以及关于指针使用的一点想法
- 使用 linux 出现的问题及解决方案
- linux内核中断和时钟初步整理及其问题解答
- Linux 上使用QQ (pidgin + lwqq )出现的问题
- linux下安装过zsh后,使用yum安装autojump后,使用source ./zshrc出现问题
- linux下使用编译使用GeoIp 出现问题
- socket.io使用netscaler作为代理服务器进行转发时可能出现的问题及其处理办法
- 移植Linux到ARM920t 中之后再DNW中出现乱码问题
- linux下使用DNW传数据 进行ARM开发板烧写
- 关于在使用c3p0 连接池配置数据库连接时出现 com.mchange.v2.resourcepool.CannotAcquireResourceExceptiond问题的解答
- 使用flask的时候遇到的问题及其解答
- 在windows下使用putty连接虚拟中的linux出现主机拒绝的问题(已解决)
- 关于 Linux C 中的头文件引用可能出现的问题解答
- win7下不能使用dnw烧写的解决办法——韦东山嵌入式Linux学习笔记05
- 在vMware装上linux鼠标无法使用问题解答