ubuntu12.04下使用minicom下载文件到ARM开发板

来源:互联网 发布:重装系统提示网络电缆 编辑:程序博客网 时间:2024/06/05 06:25

一: 安装minicom 

注意设置下面的地方:

  设置默认上传/下载的目录,选择Filenames and paths , 会看到这样的选项:

    +-----------------------------------------------------------------------+
    | A - Download directory : /home/lingd/arm/download                     |
    | B - Upload directory   : /home/lingd/arm/upload                       |
    | C - Script directory   :                                              |
    | D - Script program     : runscript                                    |
    | E - Kermit program     :                                              |
    | F - Logging options                                                   |
    |                                                                       |
    |    Change which setting?                                              |
    +-----------------------------------------------------------------------+
注意:开发板发送给pc的文件将保存在Download directory所设定的目录中,而pc要下载到开发板的文件保存在Upload directory所设定的目录中
     设置完成后,选择”Save setup as dfl”,保存为默认设置.

二、为pc安装lrzsz

lrzsz is a unix communication package providing the XMODEM, YMODEM ZMODEM file transfer protocols.
lingd@ubuntu:~$ sudo apt-get install lrzsz

三、交叉编译lrzsz并下载到开发板上

1、下载lrzsz源码包
到http://download.chinaunix.net/download/0007000/6293.shtml,下一个lrzsz的tar包,
2、解压缩后,到解压目录中执行./configure
lingd@ubuntu:~/arm$ tar -zxf lrzsz-0.12.20.tar.gz 
lingd@ubuntu:~/arm$ cd lrzsz-0.12.20/
lingd@ubuntu:~/arm/lrzsz-0.12.20$ ./configure
...................

..........

creating man/Makefile
creating po/Makefile.in
creating src/Makefile
creating debian/rules
creating Specfile
creating systype
creating src/lrzszbug
creating config.h
3、修改Makefile
有三个Makefile需要修改,分别是~/arm/lrzsz-0.12.20/Makefile、~/arm/lrzsz-0.12.20/lib/Makefile、~/arm/lrzsz-0.12.20/src/Makefile
lingd@ubuntu:~/arm/lrzsz-0.12.20$ vi Makefile
lingd@ubuntu:~/arm/lrzsz-0.12.20$ vi lib/Makefile
lingd@ubuntu:~/arm/lrzsz-0.12.20$ vi src/Makefile
将这三个Makefile中的所有gcc替代成你开发板所需要的交叉编译器,如arm-linux-gcc
即:
CC = gcc
CPP = gcc -E
都改成
CC = arm-linux-gcc
CPP = arm-linux-gcc -E
4、编译
lingd@ubuntu:~/arm/lrzsz-0.12.20$ make
在lrzsz-0.12.20/src目录下会生成两个可执行文件lsz、lrz(或者sz、rz),把它们下载到开发板linux系统的/bin目录下。
lingd@ubuntu:~/arm/lrzsz-0.12.20$ cd src
lingd@ubuntu:~/arm/lrzsz-0.12.20/src$ ls
ansi2knr.1  lrz          lsyslog.o    Makefile.in  tcp.o      zm.o
ansi2knr.c  lrz.c        lsz          protname.c   timing.c   zmodem.h
canit.c     lrz.o        lsz.c        protname.o   timing.h   zperr.c
canit.o     lrzszbug     lsz.o        rbsb.c       timing.o   zperr.o
crctab.c    lrzszbug.in  Makefile     rbsb.o       zglobal.h  zreadline.c
crctab.o    lsyslog.c    Makefile.am  tcp.c        zm.c       zreadline.o

四、测试

1、开发板-->PC机
在开发板上输入 lsz filename,然后会出现一个传输界面,传输完成后可以在你设置的默认下载目录Download directory里找到这个文件。
2、PC机-->开发板
在开发板上先进入/tmp 目录,然后输入lrz。
# cd /tmp
# lrz                                                                         
�z waiting to receive.**B0100000023be50
按Ctrl-A,再按s,选择zmoden,会出现一个选择文件的界面,选择你要传输的文件(按一下空格键选择目录,按两下空格键进入目录),回车后出现一个传输界面,传输完成后,便可以在开发板的/tmp目录下找到这个文件了。



重大问题:


上面步骤完才后  可能出问题  那是因为缺少库文件

在源码的src/目录下会有lrz和lsz两个可执行文件

接下来,需要找到lrz和lsz所用到的动态库:

$ file src/lrz

src/lrz: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped 
$ arm-none-linux-gnueabi-readelf -a src/lrz | grep Shared 
0x00000001 (NEEDED) Shared library: [libnsl.so.1] 
0x00000001 (NEEDED) Shared library: [libc.so.6]

$ locate libnsl

/lib/i386-linux-gnu/libnsl-2.15.so 
/lib/i386-linux-gnu/libnsl.so.1 
/lib/x86_64-linux-gnu/libnsl-2.15.so 
/lib/x86_64-linux-gnu/libnsl.so.1 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/armv4t/lib/libnsl-2.8.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/armv4t/lib/libnsl.so.1 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/armv4t/usr/lib/libnsl.a 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/armv4t/usr/lib/libnsl.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/lib/libnsl-2.8.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/lib/libnsl.so.1 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/thumb2/lib/libnsl-2.8.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/thumb2/lib/libnsl.so.1 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/thumb2/usr/lib/libnsl.a 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/thumb2/usr/lib/libnsl.so 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/usr/lib/libnsl.a 
/opt/armv6/codesourcery/arm-none-linux-gnueabi/libc/usr/lib/libnsl.so 
/usr/lib/x86_64-linux-gnu/libnsl.a 
/usr/lib/x86_64-linux-gnu/libnsl.so 

最后,把lrz、lsz和库文件一起拷贝到开发板上,验证OK!


本人是找到libnsl-2.9.so 哭文件    然后改名改成 libnsl.so.1   最后把 libnsl.so.1传到开发板的/lib文件下  解决了这个问题()





0 0
原创粉丝点击