"No such file or directory" when attemping to run Slackware package on ARM Chromebook

517 views
Skip to first unread message

Ottavio Caruso

unread,
Nov 20, 2012, 4:28:36 PM11/20/12
to chromium-...@chromium.org
I have tried unpacking a Slackware-Arm package onto Chrome OS on ARM
Chromebook, but it doesn't seem to work.

As the root filesystem is marked as noxec I have remounted /tmp as exec:

# mount -o remount,exec /tmp
# mkdir /tmp/slackwarearm
# cd /tmp/slackwarearm/

unpacked the Slackware cpio archive:

# tar xvfz /home/chronos/user/Downloads/cpio-2.11-arm-2.tgz

# ls -al /tmp/bin/cpio
-rwxr-xr-x 1 root root 158660 Aug 31 09:20 /tmp/bin/cpio

# /tmp/bin/cpio
bash: /tmp/bin/cpio: No such file or directory

# ldd /tmp/slackwarearm/bin/cpio
/usr/bin/ldd: line 117: /tmp/slackwarearm/bin/cpio: No such file or directory

Any clue?

--
Ottavio

Mike Frysinger

unread,
Nov 20, 2012, 5:00:32 PM11/20/12
to ottavio2006...@yahoo.com, Chromium OS discuss
most likely you're trying to run an ELF from an incompatible ABI.  on another system, run `readelf -l` on it and look for the "Requesting program interpreter" line.

if you don't see "/lib/ld-linux-armhf.so.3", then the ELF won't work.  use an up-to-date distro that supports ARM hardfloat.
-mike



--
Chromium OS discuss mailing list: chromium-...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-os-discuss?hl=en

Ottavio Caruso

unread,
Nov 20, 2012, 5:12:56 PM11/20/12
to Mike Frysinger, Chromium OS discuss
On 20 November 2012 22:00, Mike Frysinger <vap...@chromium.org> wrote:
> most likely you're trying to run an ELF from an incompatible ABI. on
> another system, run `readelf -l` on it and look for the "Requesting program
> interpreter" line.
>
> if you don't see "/lib/ld-linux-armhf.so.3", then the ELF won't work. use
> an up-to-date distro that supports ARM hardfloat.
> -mike

Thanks. Does it mean that if I attempt to run Slackware ARM off an
external drive reusing the Chrome kernel, it wouldn't work?

--
Ottavio

Mike Frysinger

unread,
Nov 20, 2012, 5:20:05 PM11/20/12
to Ottavio Caruso, Chromium OS discuss
maybe!  maybe not!

the kernel<->userland syscall ABI does not care about userland ABI.  what it does care about is if the code is OABI or EABI.  we do not support the former (since it's old crufty junk).  most likely Slackware ARM is EABI as people have been using this for years.  you can double check with `readelf -h` on the ELF.  if the Flags: part mentions EABI, you're good to go.

if the interp is different from what CrOS is using (we use the latest standard hardfp ldso path), it does mean is you cannot mix Slackware ARM ELFs with ELFs shipped on the CrOS devices.

you should pick a distro though that is up-to-date.  or help the Slackware guys migrate away from the softfp ABI as that is much slower.
-mike

Ottavio Caruso

unread,
Nov 20, 2012, 5:35:59 PM11/20/12
to Mike Frysinger, Chromium OS discuss
On 20 November 2012 22:20, Mike Frysinger <vap...@chromium.org> wrote:
> the kernel<->userland syscall ABI does not care about userland ABI. what it
> does care about is if the code is OABI or EABI. we do not support the
> former (since it's old crufty junk). most likely Slackware ARM is EABI as
> people have been using this for years.

From:
http://www.armedslack.org/introduction/

Architecture information

Slackware ARM 13.37 was built for ARMv4t, little endian, soft float, EABI.
Slackware ARM 14.0 and onwards is built for ARMv5te, little endian,
soft float, EABI.
Releases older than 12.2 were built for the 'old' (or 'legacy') ABI
and are no longer supported.

So I should be ok with running Slackware but not at mix-matching binaries.

Thanks

--
Ottavio
Reply all
Reply to author
Forward
0 new messages