I'm using an Intel Edison, and I want to edit files on there with Emacs. I can connect to the device with tramp, using several methods and explore using dired. But trying to visit a file gives an error "Invalid base64 data".
1 Answer
The Edison didn't have some of the utilities tramp needs (base64, uuencode). Apparently tramp sends a perl script if it can't find them, but it did not work. It turns out that even when using methods like scp
, tramp tries to do inline transfers when the file is below a size threshold, tramp-copy-size-limit
. I can do
(setq tramp-copy-size-limit nil)
to force "external copy" (i.e. using scp
) always.
New problem: multi-hops don't allow scp
. E.g. /ssh:proxy|scp:user@remote:file
is invalid, which in turn means that external copy is not used for multi-hops. I guess I'll have to set up an ssh proxy for that:
Host dev # the edison, on another network
User root # on dev
HostName 10.251.1.112 # LAN IP of dev
# nc must be installed on proxy
ProxyCommand ssh -Aq jpkotta@proxy "nc -q 1 %h %p"
/scp:dev:file
or /ssh:dev:file
with tramp-copy-size-limit
set to nil
.
-
Yes for files < 10240 bytes, set the limit to nil to force TRAMP to use the specified external method. Otherwise TRAMP defaults to inline methods. Commented May 16, 2016 at 19:00
-
1