LINUX.ORG.RU
решено ФорумMobile

При попытке запустить собранную утилиту получаю no such file or directory

 , scriptset


0

1

Доброго времени суток

Сабж. Не могу понять, то ли я собрал не для той архитектуры, то ли это какая-то система защиты в android.

Собрал coreutils с помощью http://forum.xda-developers.com/showthread.php?t=1444792 , на карте памяти создал ext3 раздел. Смонтировал карту памяти на ноуте, распаковал в неё архив с собранными утилитами.

Подключаюсь к планшету через adb, su, монтирую карту, пытаюсь что-нибудь запустить - no such file or directory, и по абсолютному пути, и по относительному, и с помощью PATH и LD_LIBRARY_PATH

для примера скопировал на карту утилиту /system/xbin/iperf ( не знаю откуда она там взялась, наверное родная ), сравниваю с собранным sleep:

root@amalthea:sdb1$ file iperf bin/sleep
iperf:     ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped
bin/sleep: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, stripped
★★★★★

Последнее исправление: router (всего исправлений: 1)

Дополнительная информация:

Параметры сборки:

TARGET_MARCH="armv7-a"
TARGET_MTUNE="cortex-a8"
TARGET_MFPU="neon"
TARGET_MFLOAT="softfp"

Процессор:

shell@android:/ # cat /proc/cpuinfo                                            
Processor	: ARMv7 Processor rev 2 (v7l)
processor	: 0
BogoMIPS	: 13.52

Features	: swp half thumb fastmult vfp edsp neon vfpv3 tls 
CPU implementer	: 0x51
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0x02d
CPU revision	: 2

Hardware	: QCT MSM8X60 SURF
Revision	: 0000
Serial		: 0000000000000000

Попытка использования:

router@amalthea:~$ adb shell
shell@android:/ $ su
shell@android:/ # 
shell@android:/ # mount -t ext3 /dev/block/mmcblk1p2 /system/scriptset/
shell@android:/ # /system/scriptset/bin/echo test                              
sh: /system/scriptset/bin/echo: No such file or directory
1|shell@android:/ # ls -l /system/scriptset/bin/echo
-rwxr-xr-x system   system      18336 2013-03-29 02:33 echo


shell@android:/ # mount
[...]
/dev/block/mmcblk0p20 /system ext4 ro,noatime,user_xattr,acl,barrier=1,data=ordered 0 0
[...]
/dev/block/mmcblk1p2 /system/scriptset ext3 rw,relatime,errors=continue,user_xattr,barrier=0,data=writeback 0 0

hell@android:/ # /system/bin/e2fsck                                           
Usage: /system/bin/e2fsck [-panyrcdfvtDFV] [-b superblock] [-B blocksize]
		[-I inode_buffer_blocks] [-P process_inode_size]
		[-l|-L bad_blocks_file] [-C fd] [-j external_journal]

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

Похоже что с архитектурой промахнулся. Родная утилита:

root@android-build:~# eu-readelf -A /home/router/iperf 

Object attributes section [21] '.ARM.attributes' of 16 bytes at offset 0xb844:
  Owner          Size
  aeabi            15
    File:           5

Собраная утилита

root@android-build:~# eu-readelf -A /system/scriptset/bin/sleep 

Object attributes section [26] '.ARM.attributes' of 53 bytes at offset 0x421c:
  Owner          Size
  aeabi            52
    File:          42
      CPU_name: 0
      CPU_arch: v7

Странно, вроде архитектуру процессора сверял с вики.. Буду искать подробности

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

Похоже я не там искал информацию.

Здесь сказано что мой qualcomm s3 snapdragon MSM8260 не armv7-a, а просто armv7, и при том ни разу не cortex :) Пробую пересобрать

router ★★★★★
() автор топика

Я идиот, надо внимательнее читать инструкцию

Before you can start using any of the new binaries, you have to extract the earlier generated «cs-sysroot.tar.bz2» by the script «prepare_codesourcery.sh» on your phone. These are the files described in 3.6.1. Installing the Sysroot, page 16 ff. in the «getting-started.pdf» PDF from CodeSourcery (part of the cross-compiler package in folder /share/doc/arm-arm-none-linux-gnueabi/pdf). The sysroot consists of the contents of the etc, lib, sbin, and usr directories. All applications on the target automatically use the Sourcery CodeBench libraries like libc, libm and others.

Распаковал, указал в LD_LIBRARY_PATH. Теперь собранные утилиты запускаются.

Позор на мою голову. В оправдание могу сказать лишь то, что при отсутствии ldd такие проблемы сложно отловить. Ну, теперь у меня есть привычное ГНУтое ПО и дело пойдёт веселее.

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