Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Старый форум » SK-MAT91SAM9XE512
Проблема с запуском программ с usb или mmc
SVadim (Guest)
Добавлено 30.11.1999 00:00 Редактировалось 21.12.2008 19:02
2
Сообщение: 1
SVadim (Guest)

Topic opened
Спуститься к концу Подняться к началу
SVadim (Guest)
Добавлено 20.12.2008 22:29 Редактировалось 20.12.2008 22:29 Сообщение: 2
SVadim (Guest)

Почему-то, после перемещения программы на флешку или mmc-карту, невозможно её запустить оттуда, busybox ругается, что applet not found.
Например, делаю так:

[root@SK-MAT91SAM9 mmc]$cp /bin/mke2fs /mnt/mmc/mke2
[root@SK-MAT91SAM9 mmc]$./mke2
mke2: applet not found
[root@SK-MAT91SAM9 mmc]$ls -al
drwxr-xr-x 3 root root 4096 Jan 1 00:50 .
drwxr-xr-x 4 root root 1024 Apr 9 2008 ..
drwx------ 2 root root 16384 Jan 1 00:46 lost+found
-rwxr-xr-x 1 root root 663208 Jan 1 00:50 mke2

Если делаю cat mke2, то получаю на экран содержимое программы, то есть фойл имеется и доступ к нему есть.
Спуститься к концу Подняться к началу
starterkit (Guest)
Добавлено 20.12.2008 23:01 Редактировалось 20.12.2008 23:01 Сообщение: 3
starterkit (Guest)

Только что повторил этот эксперимент, копировал fdisk на mmc , запустился без проблем (busybox 1.2.1) ...
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 20.12.2008 23:43 Редактировалось 20.12.2008 23:43 Сообщение: 4
sasamy (Guest)

Цитата
[root@SK-MAT91SAM9 mmc]$cp /bin/mke2fs /mnt/mmc/mke2


Вы скопировали ссылку и изменили название. Все названия команд являются символическими ссылками на бинарный файл busybox. busybox - это multi-call бинарник, он определяет команду которая нужна из параметров вызова - тоесть нельзя просто сделать симлинк с произвольным названием. Переименуйте как было в mke2fs и все заработает.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно sasamy 20.12.2008 г. в 23:44:48
Спуститься к концу Подняться к началу
SVadim (Guest)
Добавлено 21.12.2008 09:55 Редактировалось 21.12.2008 09:55 Сообщение: 5
SVadim (Guest)

sasamy, нет, это не ссылка - видно по выводу команды ls. Думаю, что дело в использовании busybox-1.13.1.
Попробовал со старым busyBox-1.1.2 - проблема осталась.
Но ответ busybox'а на запуск несуществующего файла и существующего разные:

[root@SK-MAT91SAM9 mmc]$./mke2
mke2: applet not found
[root@SK-MAT91SAM9 mmc]$./blabla
-/bin/ash: ./blabla: not found

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно SVadim 21.12.2008 г. в 10:32:51
Спуститься к концу Подняться к началу
SVadim (Guest)
Добавлено 21.12.2008 10:38 Редактировалось 21.12.2008 10:38 Сообщение: 6
SVadim (Guest)

starterkit, похоже как раз вы скопировали ссылку fdisk и она работает. Это не мой случай.
Спуститься к концу Подняться к началу
starterkit (Guest)
Добавлено 21.12.2008 10:45 Редактировалось 21.12.2008 10:45 Сообщение: 7
starterkit (Guest)

Изначально я полагал что дело в том что копируется ссылка, которая локально ссылается на busybox, но в моем случае скопировался именно сам busybox с переименованием его в fdisk.
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 21.12.2008 14:58 Редактировалось 21.12.2008 14:58 Сообщение: 8
sasamy (Guest)

SVadim да собственно никакой разницы нет что вы скопировали - симлинк или базибокс - изменено имя и базибокс не знает о нем.
Цитата
mke2: applet not found

это ответ базибокса что он не знает такой команды
Цитата
-/bin/ash: ./blabla: not found

это ответ sh что blabla не найден

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно sasamy 21.12.2008 г. в 15:08:03
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 21.12.2008 15:44 Редактировалось 21.12.2008 15:44 Сообщение: 9
sasamy (Guest)

Предлагаю осмыслить такие манипуляции :)

Цитата
# mount /dev/sda1 /mnt
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
# cd /mnt
# ls -a -l
drwxr-xr-x 3 root root 4096 Jan 1 00:03 .
drwxr-xr-x 18 root root 1024 Dec 16 2008 ..
drwx------ 2 root root 16384 Dec 21 2008 lost+found
# ./xxx
-sh: ./xxx: not found
# cp /bin/sh /mnt/xxx
# ./xxx
xxx: applet not found
# ./ping 192.168.0.2
-sh: ./ping: not found
# ls -a -l
drwxr-xr-x 3 root root 4096 Jan 1 00:04 .
drwxr-xr-x 18 root root 1024 Dec 16 2008 ..
drwx------ 2 root root 16384 Dec 21 2008 lost+found
-rwxr-xr-x 1 root root 605384 Jan 1 00:04 xxx
# ln -s xxx ping
# ls -a -l
drwxr-xr-x 3 root root 4096 Jan 1 00:04 .
drwxr-xr-x 18 root root 1024 Dec 16 2008 ..
drwx------ 2 root root 16384 Dec 21 2008 lost+found
lrwxrwxrwx 1 root root 3 Jan 1 00:04 ping -> xxx
-rwxr-xr-x 1 root root 605384 Jan 1 00:04 xxx
# ./ping -c 3 192.168.0.2
PING 192.168.0.2 (192.168.0.2): 56 data bytes
64 bytes from 192.168.0.2: seq=0 ttl=64 time=5.829 ms
64 bytes from 192.168.0.2: seq=1 ttl=64 time=0.577 ms
64 bytes from 192.168.0.2: seq=2 ttl=64 time=0.561 ms

--- 192.168.0.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.561/2.322/5.829 ms


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно sasamy 21.12.2008 г. в 15:45:19
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 21.12.2008 16:03 Редактировалось 21.12.2008 16:03 Сообщение: 10
sasamy (Guest)

Никакого шаманизма в этом нет - нужно вспомнить что передает система вызываемой программе в качестве параметров

Код
bash-3.2$ cat ./name.c
#include <stdio.h>

int main(int argc, char **argv) {
printf("%s", argv[0]);
return 0;
}
bash-3.2$ gcc name.c
bash-3.2$ ls -l
total 12
-rwxr-xr-x 1 sasa users 5488 2008-12-21 16:00 a.out
-rw-r--r-- 1 sasa users 101 2008-12-21 15:59 name.c
bash-3.2$ ./a.out
./a.out
bash-3.2$ ln -s a.out blabla
bash-3.2$ ls -l
total 12
-rwxr-xr-x 1 sasa users 5488 2008-12-21 16:00 a.out
lrwxrwxrwx 1 sasa users 5 2008-12-21 16:00 blabla -> a.out
-rw-r--r-- 1 sasa users 101 2008-12-21 15:59 name.c
bash-3.2$ ./blabla
./blabla
bash-3.2$ ./a.out
./a.out
bash-3.2$ mv a.out bebe
bash-3.2$ ./bebe
./bebe


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно sasamy 21.12.2008 г. в 16:15:40
Спуститься к концу Подняться к началу
Форум » starterkit.ru » Старый форум » SK-MAT91SAM9XE512