【问题标题】:minicom/picocom does not transfer files using zmodem to embedded linux boardminicom/picocom 不使用 zmodem 将文件传输到嵌入式 linux 板
【发布时间】:2015-02-08 21:17:37
【问题描述】:

我有一个基于 TI DM368 处理器的嵌入式 linux 设备,内核版本为 2.6.32.17 和 BusyBox v1.13.2 (2011-03-24 18:58:44 CDT) 文件系统。

我在使用 minicom/picocom 中的 zmodem 通过串行端口将文件从我的计算机 (ubuntu 14.04) 传输到电路板时遇到问题。

问题是当我在 minicom 或 picocom 中使用 zmodem 发送文件时,它说发生超时并且“传输不完整”。我必须在板上运行某种守护程序或程序吗?

zmodem 应该非常简单,我从来没有遇到过 zmodem 和嵌入式 linux 板的问题。

这是按^A +S并输入文件路径和名称后picocom的输出:

picocom zmodem error.png

这是按 ^A +S 并选择所需文件后的 minicom 输出:

     +-----------[zmodem upload - Press CTRL-C to quit]------------+                                   
     |RROR                                                         |                                   
     |oot@dm368-evm:/home# Retry 0: Got ZNAK                       |                                   
     |-sh: Retry 0: Got ZNAK                                       |                                   
     | not foundroot@dm368-evm:/home#                              |                                   
     |Transfer incomplete                                          |                                   
     |                                                             |                                   
     | READY: press any key to continue...                         |                                   
     +-------------------------------------------------------------+                                   

怎么了?

【问题讨论】:

  • “我必须在板上运行某种守护程序或程序吗?” -- 你肯定会。请参阅stackoverflow.com/questions/28042023/… 以通过 U-Boot 接收。在内核启动并运行时接收,然后交叉编译并安装lrzsz program
  • 谢谢。是的,我想在内核启动并运行时使用 minicom 传输文件。所以我交叉编译了 lrzsz packege,得到了两个名为 lrz 和 lsz 的二进制文件。现在将它们复制到板上后我应该做什么?
  • "现在我该怎么办..." -- 你是否找到/阅读了源包中的任何文档(例如 man页)?您猜到lrz 用于接收,lsz 用于发送吗?你试过lrz --help吗?
  • 是的,我认为 lrz 是用来接收的!只是第一次我交叉编译了它,我无法在我的计算机上运行 lrz --help 并且董事会不在那个时候所以我无法看到它的帮助或人或其他任何东西!无论如何,现在我在板上运行 lrz 并设法使用 minicom 中的 zmodem 将文件发送到板上。但这有点慢,我没有看到任何为 lrz 设置 bps 的选项,我不知道它在什么 bps 上工作!有什么办法可以加快速度吗?我的 minicom 配置为使用 115200。
  • 除了我必须先在板上运行 lrz 但在另一个板上我可以通过 minicom 和 zmodem 发送文件,而无需先在板上运行任何东西。我不知道这怎么可能。无论如何,我怎样才能自动化这个过程?我应该把 lrz 放在启动中还是什么?

标签: embedded-linux zmodem


【解决方案1】:

好的,感谢锯末,我可以解决这个问题。问题只是我没有在正确的目录中安装 rz 和 sz 程序。显然 minicom 或更准确地说是 zmodem 需要这些程序,并在您每次想要发送或接收文件时调用它们。所以必须像这样交叉编译 lrzsz 包:

export CC=arm-none-linux-gnueabi-gcc
./configure --target=arm-linux
make

然后将 src 目录下的两个生成的二进制文件分别从 lsz 和 lrz 重命名为 sz 和 rz,然后将它们复制到板子的 /usr/bin 目录中。这样您就可以在 minicom 或任何其他终端中使用 zmodem 发送和接收文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多