If you like BoxMatrix then please contribute Supportdata, Supportdata2, Firmware and/or Hardware (get in touch).
My metamonk@yahoo.com is not reachable by me since years. Please use hippie2000@webnmail.de instead.
Property:TinyFTP
BoxMatrix >> Lexicon >> Network-Protocols >> TinyFTP | @ BoxMatrix - IRC-Chat - Translate: de es fr it nl pl |
News | Selectors | Models | Accessories | Components | Environment | Config | Commands | System | Webif | Software | Develop | Lexicon | Community | Project | Media |
Computer | FRITZ | I18N | Telephony | Smarthome | Internet | Protocols | Multimedia | Formats | Hardware | Software | Research |
Protocol
Protocol: | TinyFTP | Wiki | Freetz | IPPF | whmf | AVM | Web |
Short for: | Tiny FTP | ||||||
Location: | Lexicon >> Network-Protocols | ||||||
Weblinks: | |||||||
Description: | FTP alike protocol and software by Texas Instruments |
Goto: FRITZ!OS - Commands - Clients - Quoting - Examples - Weblinks - SMW-Browser
Details
TinyFTP is a proprietary FTP alike protocol and software developed by Texas Instruments.
It includes a tiny subset of the FTP protocol with some proprietary specifics and extensions.
Initially TinyFTP was part of the TinyTCP package from 1986 and only covered a FTP client which only supported download.
Telogy Networks integrated it in ADAM2 and added a FTP server. The client turned an option.
FRITZ!OS
The TinyFTP protocol is used by the ADAM2 and EVA bootloaders. The software is only part of ADAM2.
It is served approx. the first 5 seconds after powerup on Port-21-tcp. Once logged in this timeout stops,
Commands
Standard ADAM2 TinyFTP commands:
ABOR # Stops the current action - Abort BYE # Terminates the FTP session QUIT # Terminates the FTP session PORT <p0>,<p1>,<p2>,<p3>,<p4>,<p5> # Client port numbers USER <user> # Username for the login PASS <passwd> # Password for the login SYST # Lists the OS type PASV # Activates passive mode FTP P@SW # Activates passive mode FTP (workaround for a common bug) STOR <lokal> <remote> # Uploads a local file (eg. to mtd1) TYPE <type> # Select transmission mode, type can be A = ASCII or I = BINARY RETR <remote> [<lokal>] # Downloads a remote file (eg. env), optionally with target name MEDIA <type> # Select the target medium, FLSH = FLASH, everything else = SDRAM GETENV <name> # Reads a variable from the Bootloader-Environment SETENV <name> <value> # Writes a variable to the Bootloader-Environment UNSETENV <name> # Deletes a variable from the Bootloader-Environment REBOOT # Restarts the systen
FRITZ!Box specific TinyFTP commands:
CHECK <partition> # Computes the CRC32 checksum of a partition
Initially also implemented but not used on the FRITZ!Box:
PRINTENV # Lists the Bootloader-Environment FIXENV # Defragments the Bootloader-Environment HELP # Lists all implemented commands LIST # Lists a folder (pointless without a filesystem) NLST # Lists only files (pointless without a filesystem)
Note that all commands must be UPPERCASE.
Clients
Since the FTP command subset is very minimalistic a normal FTP client could not be used.
Commands which are known to work:
Quoting
The nonstandard commands can only be used with the quote
client command:
quote MEDIA FLSH
The quote
command sends all its arguments unaltered to the server. These 2 lines send the same:
system # interpreted by the client - sends 'SYST' quote SYST # ignored by the client - sends 'SYST'
Examples
Login from Linux as user 'adam2' with password 'adam2':
$ ftp 192.168.178.1 Connected to 192.168.178.1. 220 ADAM2 FTP Server ready Name (192.168.178.1:hippie2000): adam2 331 Password required for adam2 Password: <-- enter adam2 here 230 User adam2 successfully logged in Remote system type is AVM. ftp>
Now we are logged in, let's download the Bootloader-Environment:
ftp> quote MEDIA FLSH 200 Media set to MEDIA_FLASH ftp> passive Passive mode on. ftp> binary 200 Type set to BINARY ftp> get emv local: env remote: env 227 Entering Passive Mode (192,168,178,1,104,99). 150 Opening BINARY mode data connection for file transfer. 226 Transfer complete. 1398 bytes received in 0.01 secs (181.4265 kB/s) ftp>
Thanks, now let's checksum the mtd1 partition:
ftp> quote CHECK mtd1 ---> CHECK mtd1 150 Flash check 0x820DB0F4 ftp>
Thanks, and what's your IP address?:
ftp> quote GETENV my_ipaddress my_ipaddress 192.168.178.1 ftp>
OK, and whom i spoke to?:
ftp> system 215 AVM EVA Version 1.153 0x0 0x1B ftp>
Thank you very much. Now let's return to FRITZ!OS:
ftp> quote REBOOT 221 Thank you for using the FTP service on ADAM2 221 Goodbye. ftp> bye $
Weblinks
- Wehavemorefun TinyFTP article (german, mainly by me)
- Enrik: Fritz Box Fon Recovery (german, 2006)
- ChinaUnix: ADAM2 FTP Server