I am working on a device that runs some kind of Unix/Linux on ARM architecture. The manufacturers of this device have provided me with a 'debugging tool' that connects to my PC via USB. Using Tera Term I can then connect to a terminal interface on the device.

I can't seem to easily transfer files between my PC and the device using the debugging tool, as the device doesn't support ZMODEM or any of the other file transfer protocols that Tera Term has. The device does, however, have a USB port. If a FAT32 USB storage device is inserted into this it is automatically mounted into /mnt/usb/sda1. Using this I can copy files to/from the device.

The device does not seem to have any package manager installed. (No yum, no apt-get and not even dpkg.) It doesn't have a text editor installed (as far as I can tell) and is lacking some basic Linux/Unix commands too, such as tee, who, whoami, less, id or man.

There's no FTP or SSH server installed. In absence of a package manager, I tried to compile OpenSSH (and dependencies, zlib and LibreSSL) from source on it, but make isn't present. (zlib's configure script also needed a bit of tweaking to work without tee)

In terms of trying to work out what distro I have, the command lsb_release is not found, nor is uname, and there's no files ending in '-release' in /etc. In /proc/version I can find that the kernel version is 3.10.27 and the GCC version was "4.8.2 20131014 (prerelease) (Linaro GCC 4.8-2013.10)".

I have root access to the device.

So my question is, how can I install software on this? Being able to set up OpenSSH would be very valuable to me, but without 'make' I feel like it's a chicken and egg problem.

closed as too broad by Rui F Ribeiro, Anthon, Satō Katsura, Shadur, HalosGhost Sep 30 '16 at 13:42

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • You'll need to ask the device manufacturer directly. They probably disabled the ability to build/install any additional software deliberately - whether that was a good idea or not is unrelated to the fact that they did so. – John Sep 28 '16 at 23:48
  • 4
    You don't run make on embedded targets like this. You need a cross-compiling development environment, consisting of things like the Linaro toolchain. That is run on some development box. Then you get the built files onto the target somehow, like copying from the USB drive. (By that means you can get ssh, zmodem (sz/rz) and other things on there). – Kaz Sep 28 '16 at 23:48
  • 1
    If it's arm you can probably find pre-compiled binaries (look at dropbear for something "simpler" than openssh) for it. Pull a binary from the device and run readelf/file against it on your local machine. FWIW it's probably running busybox. – drewbenn Sep 28 '16 at 23:49
  • @drewbenn I'm having trouble finding pre-compiled binaries, any advice on where I should look? – Joshua Walsh Sep 29 '16 at 1:20
  • 2
    Oh and if they gave you a system, that's technically a distribution, which means they're legally obligated to give you the source code including patches they used and the build environment or instructions to set it up, and instructions to load the code, for any GPLv2 or later stuff (which includes busybox and the Linux kernel). It sounds like you may be approaching this as more of a challenge, and also certain vendors are pretty obstinate when it comes to their legal obligations, but they should have already given you everything you need, so you could try asking them.... – drewbenn Sep 29 '16 at 5:14