LINUX.ORG.RU

На архитектуре ARM не удаётся запустить исполняемый бинарник.


0

0

На архитектуре ARM не удаётся запустить исполняемый бинарник. Бинарник закрытый, перекомпилить не могу, а запустить надо.

Запускаю ./file , sh пишет file not found

Какими путями можно понять и локализовать проблему?

Процессор Marvell XScale PXA270 416/520 МГц (набор инструкций ARMv5TE)

Бинарник тоже вроде откомпилён под набор инструкций ARMv5


Попробуй сделать cd в директорию где бинарник.

Попробуй сделать cat ./file вдруг там сначала bashскрипт

iRunix ★★★★
()

Такое обычно пишут если формат не поддерживается. У arm endianness может быть разным может быть в этом проблема. Если это так, то без перекомпиляции не обойтись.

Reset ★★★★★
()

это значит ld.so нету нужной версии. сделай ldd на бинарь или strace и увидишь какой.

true_admin ★★★★★
()

> Запускаю ./file , sh пишет file not found

У тебя может быть не тот ABI, не та OS. Вывод readelf --header - в студию.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x9088
  Start of program headers:          52 (bytes into file)
  Start of section headers:          59636 (bytes into file)
  Flags:                             0x4000002, has entry point, Version4 EABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         7
  Size of section headers:           40 (bytes)
  Number of section headers:         28
  Section header string table index: 27

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .interp           PROGBITS        00008114 000114 000013 00   A  0   0  1
  [ 2] .note.ABI-tag     NOTE            00008128 000128 000020 00   A  0   0  4
  [ 3] .hash             HASH            00008148 000148 00023c 04   A  4   0  4
  [ 4] .dynsym           DYNSYM          00008384 000384 0004a0 10   A  5   1  4
  [ 5] .dynstr           STRTAB          00008824 000824 000247 00   A  0   0  1
  [ 6] .gnu.version      VERSYM          00008a6c 000a6c 000094 02   A  4   0  2
  [ 7] .gnu.version_r    VERNEED         00008b00 000b00 000060 00   A  5   3  4
  [ 8] .rel.dyn          REL             00008b60 000b60 000050 08   A  4   0  4
  [ 9] .rel.plt          REL             00008bb0 000bb0 0001e0 08   A  4  11  4
  [10] .init             PROGBITS        00008d90 000d90 000014 00  AX  0   0  4
  [11] .plt              PROGBITS        00008da4 000da4 0002e4 04  AX  0   0  4
  [12] .text             PROGBITS        00009088 001088 00988c 00  AX  0   0  4
  [13] .fini             PROGBITS        00012914 00a914 000010 00  AX  0   0  4
  [14] .rodata           PROGBITS        00012924 00a924 0029cc 00   A  0   0  4
  [15] .ARM.exidx        ARM_EXIDX       000152f0 00d2f0 000008 00  AL 12   0  4
  [16] .eh_frame         PROGBITS        000152f8 00d2f8 000004 00   A  0   0  4
  [17] .init_array       INIT_ARRAY      0001d2fc 00d2fc 000004 00  WA  0   0  4
  [18] .fini_array       FINI_ARRAY      0001d300 00d300 000004 00  WA  0   0  4
  [19] .jcr              PROGBITS        0001d304 00d304 000004 00  WA  0   0  4
  [20] .data.rel.ro      PROGBITS        0001d308 00d308 000018 00  WA  0   0  4
  [21] .dynamic          DYNAMIC         0001d320 00d320 0000f8 08  WA  5   0  4
  [22] .got              PROGBITS        0001d418 00d418 000124 04  WA  0   0  4
  [23] .data             PROGBITS        0001d53c 00d53c 001174 00  WA  0   0  4
  [24] .bss              NOBITS          0001e6b0 00e6b0 000044 00  WA  0   0  4
  [25] .comment          PROGBITS        00000000 00e6b0 000144 00      0   0  1
  [26] .ARM.attributes   ARM_ATTRIBUTES  00000000 00e7f4 000010 00      0   0  1
  [27] .shstrtab         STRTAB          00000000 00e804 0000f0 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  EXIDX          0x00d2f0 0x000152f0 0x000152f0 0x00008 0x00008 R   0x4
  PHDR           0x000034 0x00008034 0x00008034 0x000e0 0x000e0 R E 0x4
  INTERP         0x000114 0x00008114 0x00008114 0x00013 0x00013 R   0x1
      [Requesting program interpreter: /lib/ld-linux.so.3]
  LOAD           0x000000 0x00008000 0x00008000 0x0d2fc 0x0d2fc R E 0x8000
  LOAD           0x00d2fc 0x0001d2fc 0x0001d2fc 0x013b4 0x013f8 RW  0x8000
  DYNAMIC        0x00d320 0x0001d320 0x0001d320 0x000f8 0x000f8 RW  0x4
  NOTE           0x000128 0x00008128 0x00008128 0x00020 0x00020 R   0x4

 Section to Segment mapping:
  Segment Sections...
   00     .ARM.exidx 
   01     
   02     .interp 
   03     .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .ARM.exidx .eh_frame 
   04     .init_array .fini_array .jcr .data.rel.ro .dynamic .got .data .bss 
   05     .dynamic 
   06     .note.ABI-tag 
debian:/home/yan/mmc/v1/ej2re1.4.2_16/bin# 

yantux
() автор топика
Ответ на: комментарий от exception13

Проц pxa270

на таргете:

# ls -lt /lib/ld* -rwxr-xr-x 1 root root 21168 Feb 29 2008 /lib/ld-uClibc-0.9.29.so

lrwxrwxrwx 1 root root 19 Feb 29 2008 /lib/ld-uClibc.so.0 -> ld-uClibc-0.9.29.so

yantux
() автор топика

uClibc-0.9.28/ldso/ldso/ldso.c

	if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
		_dl_dprintf(_dl_debug_file, "Standalone execution is not supported yet\n");
		_dl_exit(1);
	}

exception13 ★★★★★
()
Ответ на: комментарий от yantux

>>Я так понимаю, мне надо скомпилить нормальный glibc под ARM?

как вариант несоответствие библиотек. ты emdebian использовал?

exception13 ★★★★★
()
Ответ на: комментарий от exception13

Нет, всё готовое: ARM Linux на железке, трёхмесячный бинарник JavaSEEmbedded с сайта Sun.

В рассылке embeddedian последнее время странные обсуждения, что чтото сыро там и не работает.

yantux
() автор топика
Ответ на: комментарий от exception13

strace под ARM нет, под хостом х86 пишет, что не может прочитать файл

yantux
() автор топика
Ответ на: комментарий от yantux

endianness определи для своей системы и системы под которой собран бинарь, а то так до опупения будешь что-то собирать и запускать, а в ответ получать подобные ошибки

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.