LINUX.ORG.RU
ФорумAdmin

Определить архитектуру (ARM)

 


0

1

Можно ли определить архитектуру имея доступ к файловой системе? Есть китайский NAS, все попытки достучаться до системы у меня не увенчались успехом. Не пускает… Бы понять что за линух там

Посмотри под какую архитектуру собран какой-нибудь ELF-файл на устройстве:

readelf -A binary

В конце будет секция File Attributes, по ней будет относительно понятно что там за архитектура.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

readelf -a ./busybox ELF Header: Magic: 7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2’s complement, little endian Version: 1 (current) OS/ABI: ARM ABI Version: 0 Type: EXEC (Executable file) Machine: ARM Version: 0x1 Entry point address: 0x2f52c Start of program headers: 52 (bytes into file) Start of section headers: 1051172 (bytes into file) Flags: 0x2, GNU EABI, Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 2 Size of section headers: 40 (bytes) Number of section headers: 14 Section header string table index: 13

Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .init PROGBITS 00008074 000074 000010 00 AX 0 0 4 [ 2] .text PROGBITS 00008090 000090 0da748 00 AX 0 0 16 [ 3] .fini PROGBITS 000e27d8 0da7d8 00000c 00 AX 0 0 4 [ 4] .rodata PROGBITS 000e27e4 0da7e4 024cf8 00 A 0 0 4 [ 5] .eh_frame PROGBITS 001074dc 0ff4dc 000004 00 A 0 0 4 [ 6] .ctors PROGBITS 00108000 100000 000008 00 WA 0 0 4 [ 7] .dtors PROGBITS 00108008 100008 000008 00 WA 0 0 4 [ 8] .jcr PROGBITS 00108010 100010 000004 00 WA 0 0 4 [ 9] .data.rel.ro PROGBITS 00108014 100014 0000a4 00 WA 0 0 4 [10] .got PROGBITS 001080b8 1000b8 000420 04 WA 0 0 4 [11] .data PROGBITS 001084d8 1004d8 0004ec 00 WA 0 0 4 [12] .bss NOBITS 001089c8 1009c4 004630 00 WA 0 0 8 [13] .shstrtab STRTAB 00000000 1009c4 00005f 00 0 0 1 Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings), I (info), L (link order), O (extra OS processing required), G (group), T (TLS), C (compressed), x (unknown), o (OS specific), E (exclude), y (purecode), p (processor specific)

There are no section groups in this file.

Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x000000 0x00008000 0x00008000 0xff4e0 0xff4e0 R E 0x8000 LOAD 0x100000 0x00108000 0x00108000 0x009c4 0x04ff8 RW 0x8000

Section to Segment mapping: Segment Sections… 00 .init .text .fini .rodata .eh_frame 01 .ctors .dtors .jcr .data.rel.ro .got .data .bss

There is no dynamic section in this file.

There are no relocations in this file.

There are no unwind sections in this file. No version information found in this fil

achechet ()
Ответ на: комментарий от beastie

На устройстве присутствуют два USB и оба могут быть загрузочными, это означает что я могу загрузиться с одной флешки а вторую типа загрузить-залить. На плате есть два конца, возможно это подключение терминала…

https://ibb.co/rMBQmck

achechet ()
Ответ на: комментарий от beastie

какой менеджер пакетов используется на этом дистрибутиве. бы ssh доставил когда флешка в chroot в ПК то можно удалить поставить

achechet ()
Последнее исправление: achechet (всего исправлений: 1)
Ответ на: комментарий от achechet

- Ты с какова дистрибутива?

- Пакетный менеджер есть?

- А если найду?

Линукс на произольной железке вовсе не подразумевает, что его туда ставили из дистрибутива. Конпеляй софт под архитектуру твоего девайса и впендюривай его туда.

pinus_nigra ()
Ответ на: комментарий от achechet

arm это или x86 или mips или h8 (между прочим мало-известный но очень распространённый cpu) – без разницы. Архитектура – это не та задача, которую ты решаешь.

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от achechet

легче тебе не станет ) но эта «хрень» с копирайтами за 2011 год обещает поддержку RPM, 7z, CDROM и кажется дискет.

а вообще поройся в /etc/* там должны быть подсказки

anonymous ()
Ответ на: комментарий от achechet

Подозреваю, что там слишком много машинно-зависимого проприетарного кода (user land). Т.ч. с gerneral-purpose дистром, оно может быть и взлетит, но большая половина перефирии работать не будет. Гиблое дело. Ковыряй, что есть.

Дело ведь не только в дистре (если он там вообще был), а в том, что китайцы туда ещё из софта накидали.

Что за железка то? Если у тебя есть разные имиджи, то от куда-то ты их достал?

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 4)
Ответ на: комментарий от achechet

мой вопрос из какого дистрибутива?

Тебе же выше сказали, что скорее всего этот образ собрали или с помощью Yocto или с помощью buildroot. Стоит проанализировать версии установленного ПО, по ним можно будет попробовать подобрать версию того или иного. Стоит начать с /boot директории для определения есть ли ядро и device tree в ней (если только они не прошиты в определённых местах флешки).

Почитай: https://habr.com/ru/search/?q=Buildroot&target_type=posts&order=relevance

Если нет apt-get, то посмотри opkg.

Кроме этого стоит начинать поиск с названия микропроцессора, поиска UART, поиска названия модели на github.

Для загрузки тебе нужны:

  • предварительный загрузчик от производителя микропроцессора,
  • UBoot для этой конкретной платы,
  • ядро собранное со всеми необходимыми драйверами и модулями (и, возможно, патчами для этого микропроцессора/платы),
  • device tree для этой конкретной платы и этого ядра.

Без этого даже не загрузиться, тут нет ни BIOS, ни UEFI.

На крайний случай можно собрать ssh для +/- этого же железа и ПО в Yocto.

AlexVR ★★★★★ ()