any x/y/zmodem supporting terminal to transfer files via RS-232 port?
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
any x/y/zmodem supporting terminal to transfer files via RS-232 port?
Hi,
I am doing an application about running Linux on an ARM development kit. The bootloader is vivi while the CPU is SAMSUNG SBC2440.
I can "talk" to the board in minicom through RS-232 port.
But when I wanna transfer something through xmodem/ymodem/zmodem, I can't do it in minicom. For example, if I wanna download the kernel into the NAND flash in "load flash kernel x" through xmodem protocol.
How shall I do if I wanna transfer a program in xmodem/ymodem/zmodem protocol?
It looks like the system that you are trying to upload to does not have automatic transfer detection. You will need to manually start the xmodem receive process on the system before you initiate the xmodem send on minicom.
If it still doesn't work, then the implementations may be incompatible for some reason. In that case, try a y or zmodem transfer instead, as these are both faster and more flexible.
but it works if I use the HyperTerminal on Windows.
On windows, I type the same command to initialize the xmodem transfer procedure and select transfer->Send File to activate the Send File dialog. With this dialog, select the name of the file to send, choose the Xmodem protocol, and then Send.
Thirty year old quick and dirty protocols have their quirks. I remember many problems and incompatibilities with xmodem. The ymodem and zmodem protocols were developed specifically because of the poor performance and error prone nature of xmodem. Perhaps you should consider updating to a 21 year old robust protocol, like zmodem?
I finally solved this problem by reading a SAMSUNG documentation. I need to set the xmodem initial timeout a little longer, i. e. 10 seconds. The original timeout was too short that it can't wait for the file to transfer since I took too long time to select the file to be transferred.
It says:
If ‘transfer incomplete’ message is appeared while writing images, the reason is that the timeout of xmodem_initial is too short. In this case, you can solve the problem by increasing the timeout of xmodem_initial. First check the value of ‘xmodem_initial_timeout’ parameter. if it is too short,extend timeout properly.
vivi> param show
vivi> param set xmodem_initial_timeout 1000000 : “1000000” means 1 second because a unit is
microsecond.
vivi> param save
So I did as follows:
FriendlyARM>param show
Number of parameters: 9
name : hex integer
-------------------------------------------------------------
mach_type : 0000030e 782
media_type : 00000003 3
boot_mem_base : 30000000 805306368
baudrate : 0001c200 115200
xmodem : 00000001 1
xmodem_one_nak : 00000000 0
xmodem_initial_timeout : 000493e0 300000
xmodem_timeout : 000f4240 1000000
boot_delay : 01000000 16777216
Linux command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
FriendlyARM> param set xmodem_initial_timeout 100000000
Change 'xmodem_initial_timeout' value. 0x000493e0(300000) to 0x05f5e100(1000000)
FriendlyARM> param save
Found block size = 0x0000c000
Erasing... ... done
Writing... ... done
Written 49152 bytes
Saved vivi private data
FriendlyARM> load flash kernel x
Ready for downloading using xmodem...
Waiting...
ize = 1469952 bytes
Found block size = 0x00168000
Erasing... ... done
Writing... ... done
Written 1469952 bytes
Erase TOC of Wince ..., OK!
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.