首先在电脑上安装 cutecom:

$sudo apt-get install cutecom

运行

$sudo cutecom

这个和xp下的超级终端一样,而且图形界面,比minicom容易上手。

(注意,如果使用usb转串口,红圈内的需要改成/dev/ttyUSB0

按图上设置,然后放一边。

$sudo apt-get install libusb-dev

下载dnw2,是个源码,编译:
$gcc dnw2.c -o dnw2 -lusb

源码为

/* dnw2 linux main file. This depends on libusb.** Author: Fox <hulifox008@163.com>* License: GPL**/#include <stdio.h>
#include <usb.h>
#include <errno.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>#define QQ2440_SECBULK_IDVENDOR 0x5345
#define QQ2440_SECBULK_IDPRODUCT 0x1234struct usb_dev_handle * open_port()
{struct usb_bus *busses, *bus;usb_init();usb_find_busses();usb_find_devices();busses = usb_get_busses();for(bus=busses;bus;bus=bus->next){struct usb_device *dev;for(dev=bus->devices;dev;dev=dev->next){if( QQ2440_SECBULK_IDVENDOR==dev->descriptor.idVendor&& QQ2440_SECBULK_IDPRODUCT==dev->descriptor.idProduct){printf("Target usb device found!\n");struct usb_dev_handle *hdev = usb_open(dev);if(!hdev){perror("Cannot open device"); }else{if(0!=usb_claim_interface(hdev, 0)){perror("Cannot claim interface");usb_close(hdev);hdev = NULL;}}return hdev;}}}printf("Target usb device not found!\n");return NULL;
}void usage()
{printf("Usage: dnw2 <file>\n\n");
}unsigned char* prepare_write_buf(char *filename, unsigned int *len)
{unsigned char *write_buf = NULL;struct stat fs;int fd = open(filename, O_RDONLY);if(-1==fd){perror("Cannot open file");return NULL;}if(-1==fstat(fd, &fs)){perror("Cannot get file size");goto error;}write_buf = (unsigned char*)malloc(fs.st_size+10);if(NULL==write_buf){perror("malloc failed");goto error;}if(fs.st_size != read(fd, write_buf+8, fs.st_size)){perror("Reading file failed");goto error;}printf("Filename : %s\n", filename);printf("Filesize : %d bytes\n", fs.st_size);*((u_int32_t*)write_buf) = 0x30000000; //download address*((u_int32_t*)write_buf+1) = fs.st_size + 10; //download size;*len = fs.st_size + 10;return write_buf;error:if(fd!=-1) close(fd);if(NULL!=write_buf) free(write_buf);fs.st_size = 0;return NULL;}int main(int argc, char *argv[])
{if(2!=argc){usage();return 1;}struct usb_dev_handle *hdev = open_port();if(!hdev){return 1;}unsigned int len = 0;unsigned char* write_buf = prepare_write_buf(argv[1], &len);if(NULL==write_buf) return 1;unsigned int remain = len;unsigned int towrite;printf("Writing data ...\n");while(remain){towrite = remain>512 ? 512 : remain;if(towrite != usb_bulk_write(hdev, 0x03, write_buf+(len-remain), towrite, 3000)){perror("usb_bulk_write failed");break;}remain-=towrite;printf("\r%d%\t %d bytes ", (len-remain)*100/len, len-remain);fflush(stdout);}if(0==remain) printf("Done!\n");return 0;
}

接下来就可以下载了。

把连线都接好,点击cutecom的open device
打开开发板电源,这时,cutecom上就有反应了。

好了,现在可以像使用windows一样了

dnw2的使用方法是

在dnw2的目录下,运行

$./dnw2 文件

注意在运行时需要root权限

你可以这样

$su
输入root密码

$./dnw2 文件

完成
如果不知道root密码
$sudo passwd root

如果闲麻烦,那么

$sudo mv dnw2 /usr/bin/

以后可以直接

$sudo dnw2 文件

附录,关于usb转串口驱动:

minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置。

一、安装minicom:

使用以下命令:
# sudo apt-get install minicom

以下为安装的详细信息:
# sudo apt-get install minicom
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会安装下列额外的软件包:
lrzsz
下列【新】软件包将被安装:
lrzsz minicom
共升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 2 个软件未被升级。
需要下载 270kB 的软件包。
解压缩后会消耗掉 1389kB 的额外空间。
您希望继续执行吗?[Y/n]y
获取:1http://ubuntu.uestc.edu.cnhardy/universe lrzsz 0.12.21-4.1 [97.0kB]
获取:2http://ubuntu.uestc.edu.cnhardy/main minicom 2.3~rc1-2 [173kB]
下载 270kB,耗时 1s (184kB/s)
选中了曾被取消选择的软件包 lrzsz。
(正在读取数据库 ... 系统当前总共安装有 101203 个文件和目录。)
正在解压缩 lrzsz (从 .../lrzsz_0.12.21-4.1_i386.deb) ...
选中了曾被取消选择的软件包 minicom。
正在解压缩 minicom (从 .../minicom_2.3~rc1-2_i386.deb) ...
正在处理用于 man-db 的触发器...
正在设置 lrzsz (0.12.21-4.1) ...
正在设置 minicom (2.3~rc1-2) ...

PS:ubuntu 现在做的真是没话说,相当的实用和智能啊,把相关的依赖包(lrzsz)都相互关联并且安装上去了。但是如果使用ubuntu 8.10以前的版本可能就要单独安装lrzsz软件包了(lrzsz包括了x/y/zmodem协议)。也就是说,在通过串口用xmodem协议烧写内核 时会提示没有xmodem协议,所以这时就要安装lrzsz软件包了:
# sudo apt-get install lrzsz
然后就可以正常地使用minicom通过串口烧写内核了。

二、配置minicom:

1、在使用minicom之前,首先要保证你对串口有读/写的权限。我们知道,Linux的设备对应于/dev/目录中的某个文件,串口COM1对应ttyS0,COM2对应ttyS1,使用以下命令来查看你对COM1的权限:
$ ls -l /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 2009-08-01 11:05 /dev/ttyS0
可以看到,它的属主是root。

2、正如在Windows中要配置超级终端一样,在使用minicom之前,先要对串口进行配置。
运行# sudo minicom -s

选择Serial port setup,此时所示光标在"Change which setting"上,键入"A",此时光标移到第A项对应处:串口COM1对应ttyS0,COM2对应ttyS1(注意选择)。

然 后对波特率,数据位和停止位进行配置,键入"E",波特率选为115200 8N1(数据位8,奇偶校验无,停止位1),硬/软件流控制分别键入"F"和"G",并且都选No。在确认配置正确之后,可键入回车返回上级配置界面,并 将其保存为默认配置(即save setup as dfl)。最后,选择"Exit from Minicom"命令退出。

具体的配置信息如下所示:
Serial port setup [Enter]
+-------------------------------------------------------------+
| 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 : No |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-------------------------------------------------------------+

注意:如果没有使用USB转串口,而是直接使用串口,那么Serial Device要配置为/dev/ttyS0。

然后重启minicom(即直接在shell下执行minicom命令就可以进入minicom的控制台)使刚才的配置生效,再连上开发板的串口线后,就可以在minicom中打印出正确的串口信息了。在控制台下通过组合键Ctrl+A Z可以进入minicom菜单。

组合键的用法是:先按Ctrl+A组合键,然后松开这两个键,再按Z键。另外还有一些常用的组合键。
(1)S键:发送文件到目标系统中;
(2)W键:自动卷屏。当显示的内容超过一行之后,自动将后面的内容换行。这个功能在查看内核的启动信息时很有用。
(3)C键:清除屏幕的显示内容;
(4)B键:浏览minicom的历史显示;
(5)X键:退出mInicom,会提示确认退出。

3、配置文件所在目录
Ctrl + A --> O
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols -|
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
+--------------------------+

选择"Filenames and paths"
+-----------------------------------------------------------------------+
| A - Download directory : /home/crliu |
| B - Upload directory : /tmp |
| C - Script directory : |
| D - Script program : runscript |
| E - Kermit program : |
| F - Logging options |
| |
| Change which setting? |
+-----------------------------------------------------------------------+

(1)A - download 下载文件的存放位置(开发板 ---> PC)
开发板上的文件将被传输到PC机上的/home/crliu目录下。
(2)B - upload 从此处读取上传的文件(PC ---> 开发板)
PC机向开发板发送文件,需要发送的文件在/tmp目录下(PC机上的目录)。做了此项配置后,每次向开发板发送文件时,只需输入文件名即可,无需输入文件所在目录的绝对路径。

三、Linux下如何使用USB转串口设备

对没有串口的笔记本持有者来说,做硬件开发经常为没有串口而烦恼,不过现在有了USB转串口设备。但是新的问题又出现了,比如说对于Minicom下的PC机和目标机通信还是存在着一些配置问题,下面就说一下linux下USB转串口的具体配置和问题:

注意:默认情况下ubuntu已经安装了USB转串口驱动(pl2303)。

1、# lsmod | grep usbserial
如果有usbserial,说明系统支持USB转串口。

2、插上USB转串口,在终端输入命令#dmesg | grep ttyUSB0,如果出现连接成功信息,则说明ubuntu系统已经识别该设备了。

注意:虚拟机环境下的ubuntu默认情况下是不能自动识别的,需要在虚拟机窗口右下角点击"Prolific USB-Serial Controller",然后选择"Connect (Disconnect from Host)",这样才能被ubuntu系统识别。

3、在上面minicom的配置中设置Serial Device: /dev/ttyUSB0,重启开发板,这样基本上就可以正常使用minicom来打印串口信息了。

4、问题
如果经过上面的步骤minicom还是不能正常工作,出现如下错误提示:
# sudo minicom
minicom: cannot open /dev/ttyUSB0: 没有该文件或目录

这时可以尝试换一个USB口,然后再次操作以上流程。如果还是提示这个错误,那么可以使用下面的方法来解决。

这 种方法是在硬件里添加串口设备,将window下的设备添加到虚拟机里。也就是说,要在window获得焦点的时候加入usb转串口,然后再到虚拟机下将 这个设备添加进去,这时就可以在ubuntu下查看添加的这个设备的设备文件,一般是/dev/tty0或者 /dev/ttyS0。

这种方法其实是将window的usb转串口作为虚拟机的串口,所以就是tty0或者ttyS0了,而不是真正在ubuntu下加载的。

具体步骤如下:
(1)打开虚拟机环境,然后选择"VM-->Settings(Ctrl+D)"。

(2)点"Add",进入添加硬件向导,选择"Serial Port",点"Next"。

(3)选择第一项"Use physical port on the host",点"Next"。

(4)选择"Physical serial port"方式为"Auto detect",勾选"Connect at power on",点"Finish"完成。

(5)然后在上面minicom的配置中设置Serial Device: /dev/tty0或者Serial Device: /dev/ttyS0,重启开发板,这样就可以正常运行minicom了。

转载于:https://www.cnblogs.com/yangwindsor/p/3427858.html

Ubuntu13.04下使用dnw相关推荐

  1. ubuntu16.04下安装dnw和fastboot工具,解决开发板只有uboot系统,没有网络的情况下,通过dnw和fastboot传送文件到开发板

    当我们拿到一块裸板,这时板上没有系统.此时pc机和开发板就没法通过ftp,nfs等网络协议来通信,就没法将我们的pc机端上的文件传输到裸板上.这时我们先自己配置编译bootloader,如u-boot ...

  2. Ubuntu13.04 下源码安装Rapidsvn

    为什么80%的码农都做不了架构师?>>>    默认安装目录为:/usr/local 准备工作: 1.安装 apr-1.4.6.tar.gz tar -zxvf apr-1.4.6. ...

  3. 64位Ubuntu kylin 16.04下使用DNW下载uboot到tiny4412的EMMC

    工具下载:http://download.csdn.net/detail/zn2857/9637426 1.连接开发板和和pc之间的usb转串口线,usb线,在pc端打开vim,启动minicom 2 ...

  4. Ubuntu13.04下让宏碁Aspire4750G屏幕亮度可调节

    1 问题描述及解决 装好Ubuntu 13.04,想用Fn+快捷键调节屏幕亮度,只能看到屏幕亮度指示器的信息条产生变化,屏幕亮度却未发生改变,一直保持最高亮度. 解决方法很简单,用编辑器打开/etc/ ...

  5. ubuntu13.04下安装jdk7

    参考http://www.neversaydie.cc/ubuntu-install-jdk-in-detailed/ 而来 1.手工从Oralce官网下载jdk-7u25-linux-x64.gz  ...

  6. eclipse在ubuntu13.04下崩溃crash

    错误信息: # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0 ...

  7. ubuntu13.04 mnt文件夹下没有hgfs文件夹

    ubuntu13.04 mnt文件夹下没有hgfs文件夹: 图个新鲜,也为看看新版的Ubuntu有没有什么惊喜.在安装最新的Ubuntu13.04以及VMware tools,并设置的共享文件夹 Ub ...

  8. Ubuntu13.04配置优化(四)转贴

    友情提示:可以一次性添加多个ppa,然后再update,以节约时间.由于13.04刚发布不久,有些ppa可能没有13.04对应的软件包,可以暂时禁用:在"Software & Upd ...

  9. Ubuntu13.04配置完全指南(四)安装常用软件包

    友情提示:可以一次性添加多个ppa,然后再update,以节约时间.由于13.04刚发布不久,有些ppa可能没有13.04对应的软件包,可以暂时禁用:在"Software & Upd ...

最新文章

  1. ISME:西农沈锡辉+韦革宏+王瑶揭示细菌铁获取和外膜囊泡招募新机制
  2. 微信小程序中阻止事件冒泡
  3. 数据结构与算法 | 链表
  4. NameNode和SecondaryNameNode工作机制
  5. mysql技术内幕《读书笔记》
  6. 大页内存的使用:大页内存分配与释放
  7. Eclipse配置SVN教程
  8. java short 无符号_有符号/无符号的int,short和char
  9. IIS应用程序池自动停止,报503错误解决方法
  10. 三点共线,向量计算其中一点坐标
  11. java flightrecorder_java 11 Java Flight Recorder
  12. 电源接头DC002的PCB封装
  13. linux crontab清理脚本,crontab定时清理日志
  14. 从零双排java之转换流
  15. 使用OpenWrt创建子网作为二级路由
  16. 2018年第九届蓝桥杯省赛C/C++ A组(蒻鸡自己写的,看不上勿喷,自己的一点想法)
  17. 2021工业交换机前十大品牌排行榜,工业交换机哪个牌子好?
  18. 如何更改layui弹出层样式
  19. 用c语言编写实心菱形,C语言编写内置菱形的程序
  20. 自学apicloud【Apicloud——关于上传图片、视频】

热门文章

  1. 真能一快遮百丑?为什么要弃坑 FastJson
  2. 对于注册中心,ZooKeeper、Eureka哪个更合适?
  3. Datawhale与Tianchi助力产学研融合-华北电力大学专场
  4. 说话夹杂English的人:我不是要装X,只是Brain功能太强
  5. 900 多道 LeetCode 题解,这个 GitHub 项目值得 Star!
  6. 600页!分享珍藏很久的《推荐系统学习手册》(附链接)
  7. Python新工具:用三行代码提取PDF表格数据
  8. Spring源码分析篇(一)之Gradle环境搭建
  9. 容器化方案Docker的使用方法
  10. python之⾯向对象-继承