FTP (or similar) over serial port of an embedded linux system

Started by pozz July 6, 2017
Maybe this question should be posted in a linux development group, 
however the use of a serial port is more typical in an embedded 
environment, so I try to post here.

I have an embedded Linux box (based on a Raspberry) with a serial port 
converted to a USB port through a UART-USB transceiver from Microchip. 
This USB port is seen as a COM port under Windows OS.

I need to do simple operations on the filesystem through the serial 
port, mainly:
- list files in a directory
- download files
- upload files
- remove files

The user on the Windows PC should launch a simple script (it will be 
written in Python) that make all the operations in sequence.

Do you know of some technology/protocol that could be used in a simple way?

I have two ideas, maybe there's another one that is better.

The first is to configure a PPP over serial line and use classic FTP 
server for filesystem operations. However this solution implies that the 
user should configure the PPP link, but she will not have so much knowledge.

The second is to run the classical console on the serial port, with 
login and prompt. The python script should type/send commands at the 
prompt (ls, rm, ...). The download could be done with hexdump command 
(the python script could convert to binary again).
The upload should be done with echo command, writing a ASCII hex file 
and launching a simple script to convert from ASCII to binary on the 
embedded Linux.

Do you have other better solutions?

AT Thursday 06 July 2017 15:44, pozz wrote:

> Maybe this question should be posted in a linux development group, > however the use of a serial port is more typical in an embedded > environment, so I try to post here. > > I have an embedded Linux box (based on a Raspberry) with a serial port > converted to a USB port through a UART-USB transceiver from Microchip. > This USB port is seen as a COM port under Windows OS. > > I need to do simple operations on the filesystem through the serial > port, mainly: > - list files in a directory > - download files > - upload files > - remove files > > The user on the Windows PC should launch a simple script (it will be > written in Python) that make all the operations in sequence. > > Do you know of some technology/protocol that could be used in a simple > way? > > I have two ideas, maybe there's another one that is better. > > The first is to configure a PPP over serial line and use classic FTP > server for filesystem operations. However this solution implies that the > user should configure the PPP link, but she will not have so much > knowledge. > > The second is to run the classical console on the serial port, with > login and prompt. The python script should type/send commands at the > prompt (ls, rm, ...). The download could be done with hexdump command > (the python script could convert to binary again). > The upload should be done with echo command, writing a ASCII hex file > and launching a simple script to convert from ASCII to binary on the > embedded Linux. > > Do you have other better solutions?
I have not fully investigated if it might work, but how about rz/sz? -- Reinhardt
Reinhardt Behm <rbehm@hushmail.com> wrote:
> I have not fully investigated if it might work, but how about rz/sz?
They use zmodem - I've done similar things in the past, also with uuencode. (zmodem was a lot faster than xmodem/ymodem back in the day, due to the larger block size). I'm not sure what would be a good tool to automate listing files, beyond parsing the output of 'ls' and friends. Theo
On 07/06/2017 12:44 AM, pozz wrote:
> Maybe this question should be posted in a linux development group, > however the use of a serial port is more typical in an embedded > environment, so I try to post here. > > I have an embedded Linux box (based on a Raspberry) with a serial port > converted to a USB port through a UART-USB transceiver from Microchip. > This USB port is seen as a COM port under Windows OS. > > I need to do simple operations on the filesystem through the serial > port, mainly: > - list files in a directory > - download files > - upload files > - remove files > > The user on the Windows PC should launch a simple script (it will be > written in Python) that make all the operations in sequence. > > Do you know of some technology/protocol that could be used in a simple way? > > I have two ideas, maybe there's another one that is better. > > The first is to configure a PPP over serial line and use classic FTP > server for filesystem operations. However this solution implies that the > user should configure the PPP link, but she will not have so much > knowledge. > > The second is to run the classical console on the serial port, with > login and prompt. The python script should type/send commands at the > prompt (ls, rm, ...). The download could be done with hexdump command > (the python script could convert to binary again). > The upload should be done with echo command, writing a ASCII hex file > and launching a simple script to convert from ASCII to binary on the > embedded Linux. > > Do you have other better solutions? >
Kermit? I will say that any classic console based plan will probably be easier to implement in the modern age than PPP over serial; ESPECIALLY if you're having to deal with Windows. -- Rob Gaddi, Highland Technology -- www.highlandtechnology.com Email address domain is currently out of order. See above to fix.
On 6.7.17 10:44, pozz wrote:
> Maybe this question should be posted in a linux development group, > however the use of a serial port is more typical in an embedded > environment, so I try to post here. > > I have an embedded Linux box (based on a Raspberry) with a serial port > converted to a USB port through a UART-USB transceiver from Microchip. > This USB port is seen as a COM port under Windows OS. > > I need to do simple operations on the filesystem through the serial > port, mainly: > - list files in a directory > - download files > - upload files > - remove files > > The user on the Windows PC should launch a simple script (it will be > written in Python) that make all the operations in sequence. > > Do you know of some technology/protocol that could be used in a simple way? > > I have two ideas, maybe there's another one that is better. > > The first is to configure a PPP over serial line and use classic FTP > server for filesystem operations. However this solution implies that the > user should configure the PPP link, but she will not have so much > knowledge. > > The second is to run the classical console on the serial port, with > login and prompt. The python script should type/send commands at the > prompt (ls, rm, ...). The download could be done with hexdump command > (the python script could convert to binary again). > The upload should be done with echo command, writing a ASCII hex file > and launching a simple script to convert from ASCII to binary on the > embedded Linux. > > Do you have other better solutions? >
Why not use the Ethernet on the Raspberry? -- -TV
On 7/6/2017 12:44 AM, pozz wrote:
> Maybe this question should be posted in a linux development group, however the > use of a serial port is more typical in an embedded environment, so I try to > post here. > > I have an embedded Linux box (based on a Raspberry) with a serial port
Don't they all have an ethernet port? If so, support TELNET or SSH as the "console" (throw away the silly USB-to-serial converter) and SMB shares to access the file system "directly" -- without having to use a script (that you'll have to maintain) and install Python, etc. Far more intuitive and probably less total effort, in the long run.
> converted to a USB port through a UART-USB transceiver from Microchip. This USB > port is seen as a COM port under Windows OS. > > I need to do simple operations on the filesystem through the serial port, mainly: > - list files in a directory > - download files > - upload files > - remove files > > The user on the Windows PC should launch a simple script (it will be written in > Python) that make all the operations in sequence. > > Do you know of some technology/protocol that could be used in a simple way? > > I have two ideas, maybe there's another one that is better. > > The first is to configure a PPP over serial line and use classic FTP server for > filesystem operations. However this solution implies that the user should > configure the PPP link, but she will not have so much knowledge. > > The second is to run the classical console on the serial port, with login and > prompt. The python script should type/send commands at the prompt (ls, rm, > ...). The download could be done with hexdump command (the python script could > convert to binary again). > The upload should be done with echo command, writing a ASCII hex file and > launching a simple script to convert from ASCII to binary on the embedded Linux. > > Do you have other better solutions? >
On Thursday, July 6, 2017 at 12:54:04 PM UTC-7, Don Y wrote:
> On 7/6/2017 12:44 AM, pozz wrote: > > Maybe this question should be posted in a linux development group, however the > > use of a serial port is more typical in an embedded environment, so I try to > > post here. > > > > I have an embedded Linux box (based on a Raspberry) with a serial port > > Don't they all have an ethernet port? If so, support TELNET or SSH as > the "console" (throw away the silly USB-to-serial converter) and > SMB shares to access the file system "directly" -- without having > to use a script (that you'll have to maintain) and install Python, > etc.
Actually, the newer rPi has WiFi. It would be hard to find a window PC without WiFi anyway. You can config the rPi as WiFi access point and forget about any wires, usb or ethernet.
Il 06/07/2017 21:53, Don Y ha scritto:
> On 7/6/2017 12:44 AM, pozz wrote: >> Maybe this question should be posted in a linux development group, >> however the use of a serial port is more typical in an embedded >> environment, so I try to post here. >> >> I have an embedded Linux box (based on a Raspberry) with a serial port > > Don't they all have an ethernet port?
No, not natively. I'm using Compute Module with a custom board where I didn't a derived Ethernet port.
pozz wrote:
> Maybe this question should be posted in a linux development group, > however the use of a serial port is more typical in an embedded > environment, so I try to post here. > > I have an embedded Linux box (based on a Raspberry)
... but with no Ethernet? How odd.
> with a serial > port converted to a USB port through a UART-USB transceiver from > Microchip. This USB port is seen as a COM port under Windows OS. > > I need to do simple operations on the filesystem through the serial > port, mainly: - list files in a directory - download files - upload > files - remove files > > The user on the Windows PC should launch a simple script (it will be > written in Python) that make all the operations in sequence. > > Do you know of some technology/protocol that could be used in a > simple way? > > I have two ideas, maybe there's another one that is better. > > The first is to configure a PPP over serial line and use classic FTP > server for filesystem operations. However this solution implies that > the user should configure the PPP link, but she will not have so > much knowledge. >
Is SLIP still a thing? I dimly recall it potentially being simpler if no modem was involved. I have to wonder how automatable a PPP connection is.
> The second is to run the classical console on the serial port, with > login and prompt. The python script should type/send commands at the > prompt (ls, rm, ...). The download could be done with hexdump > command (the python script could convert to binary again). The upload > should be done with echo command, writing a ASCII hex file and > launching a simple script to convert from ASCII to binary on the > embedded Linux. > > Do you have other better solutions? >
-- Les Cargill