Dimmy 0 26 марта, 2009 Опубликовано 26 марта, 2009 · Жалоба Пробую работать с Linux на ARM9. После компиляции с помощью тулчейна от codesourcery (поставляется с платой) простейшего проекта "Hello, world!" (делаю все, как в pdf) получаю executable-файл. Копирую его через SSH в /home директорию борды. меняю права на "777" Не запускается. Пишет: "cannot execute binary file" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 30 марта, 2009 Опубликовано 30 марта, 2009 · Жалоба Пишет: "cannot execute binary file"Либо бинарник неподдерживаемого формата (надо включать поддержку в ядре и перекомпилировать), либо вообще собран для другого процессора (хостового)... Покажите как компилировали, что вызывали и так далее... Если текста много, то воспользуйтесь http://pastebin.com Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimmy 0 31 марта, 2009 Опубликовано 31 марта, 2009 · Жалоба Либо бинарник неподдерживаемого формата (надо включать поддержку в ядре и перекомпилировать), Ядро перекомпиливал для поддержки стандарта EABI с возможностью запуска программ, использующих старый ABI либо вообще собран для другого процессора (хостового)... При просмотре откомпиленного бинарника в заголовке четко видно: ELF, 32 bit LSB executable, ARM, version 1 (SYSV), dynamically linked, for GNU/Linux 2.6.14 not stripped Т.е. тулчейн тот. Покопавшись в дополнительных PDF от Codesourcery, выяснил, что либы, по-умолчкнию находящиеся в системе, для скомпиленных бинарников не подходят. А ошибка, вышеописанная мною, может возникать не только при неправильно скомпиленных executables, а и при: " Note that if you specify an incorrect path for --dynamic-linker, the common failure mode seen when running your application on the target is similar to > ./hello ./hello: No such file or directory " (кстати, такая ошибка вылетала именно при запуске таким способом: ./hello При запуске-же sh hello появлялось уведомление о невозможности запустить бинарник) Поэтому по их совету скопировал либы из .../arm-none-linux-gnueabi/libc в ФС борды (но не в root-dir (/), а в /home с сохранением путей). Линкую проект с использованием ключей: -Wl,-rpath=sysroot/lib:sysroot/usr/lib \ -Wl,--dynamic-linker=sysroot/lib/ld-linux.so.3 (где sysroot - путь к скопированным либам. В моем случае - /home/arm-none-linux-gnueabi/libc) После таких манипуляций получаю ошибку "Illegal instruction" Пока все... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 31 марта, 2009 Опубликовано 31 марта, 2009 · Жалоба Ядро перекомпиливал для поддержки стандарта EABI с возможностью запуска программ, использующих старый ABI ... Ясно... Если нет соответствующих "либ", то работать, если не ошибаюсь, не должно... Какой дистрибутив Вы используете? (могу порекомендовать http://wiki.openembedded.net/index.php/Main_Page - вся система будет с одинаковым типом библиотек) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tturist 0 1 апреля, 2009 Опубликовано 1 апреля, 2009 · Жалоба имел дело с этой платой от Olimex. если не ошибаюсь, они не дают в комплекте исходники файловой системы. на мой взгляд правильный путь - собрать фс самому. это всегда хорошо. заодно не будет никакой проблемы несовместимости компилятора с библиотеками. я собирал ядро - с сайта atmel (тулчейн от atmel), фс - от http://buildroot.uclibc.org/ (тулчейн от buildroot) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 1 апреля, 2009 Опубликовано 1 апреля, 2009 · Жалоба я собирал ядро - с сайта atmel (тулчейн от atmel), фс - от http://buildroot.uclibc.org/ (тулчейн от buildroot)Каковы возможности этого buildroot? Например, с помощью http://www.openembedded.org можно одной командой разом собрать кросскомпилятор, все библиотеки, программы, и при этом оно само скачает исходники, упакует их в пакеты скомпилированное, сконфигурирует, сгенерирует файловую систему, одной строчкой в конфиге выбираешь libc или uclibc, упакует ее в разные форматы и типы ФС, само отработает зависимости пакетов, само ядро соберет, и так далее... Надо привыкать к лучшему... :rolleyes: ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 9 2 апреля, 2009 Опубликовано 2 апреля, 2009 · Жалоба Каковы возможности этого buildroot? Возможностей в buildroot не меньше чем у openembedded, разве что две команды нужно а не одну :) само отработает зависимости пакетов весьма кстати сомнительный плюс.. и вообще если все вышеперчисленное плюсы - не проще готовые бинарники скачать ? Надо привыкать к лучшему... лучшее - враг хорошего. тормозит при сборке безбожно, тоже самое на buildroot собирается если не на порядки то в разы быстрей - точно. к тому же как я понял топикстартеру на 9260 gpe, opie и вообще графика не особо интересны... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 3 апреля, 2009 Опубликовано 3 апреля, 2009 · Жалоба весьма кстати сомнительный плюс.. и вообще если все вышеперчисленное плюсы - не проще готовые бинарники скачать ?Можно и бинарники, но речь идет о пакетах, которые устанавливаются при формировании файловой системы. Таким образом, система получается без пакетного менеджера, и это экономит много места, и при этом зависимости программ сама сборочная среда все-таки отслеживает. В последствии можно доустановить пакетный менеджер и эти же пакеты применить для установки... Buildroot такое может (если да, то надо будет изучить)? :)лучшее - враг хорошего. тормозит при сборке безбожно, тоже самое на buildroot собирается если не на порядки то в разы быстрей - точно. к тому же как я понял топикстартеру на 9260 gpe, opie и вообще графика не особо интересны...OpenEmbedded на питоне написана, поэтому так медленно. Однако, разработчики рекомендуют установить http://psyco.sourceforge.net/introduction.html "Think of Psyco as a kind of just-in-time (JIT) compiler" (есть в любом дистрибутиве) - скорость обработки реально повышается в разы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 9 3 апреля, 2009 Опубликовано 3 апреля, 2009 · Жалоба Можно и бинарники, но речь идет о пакетах, которые устанавливаются при формировании файловой системы. Таким образом, система получается без пакетного менеджера, и это экономит много места, и при этом зависимости программ сама сборочная среда все-таки отслеживает. В последствии можно доустановить пакетный менеджер и эти же пакеты применить для установки... Buildroot такое может (если да, то надо будет изучить)? :)OpenEmbedded на питоне написана, поэтому так медленно. Однако, разработчики рекомендуют установить http://psyco.sourceforge.net/introduction.html "Think of Psyco as a kind of just-in-time (JIT) compiler" (есть в любом дистрибутиве) - скорость обработки реально повышается в разы. Лично мне вышеописанное не нужно, на момент сборки корневой фс я достаточно четко представляю что мне в будущей системе нужно и собираю только то что мне действительно нужно, впоследствии если что -то упустил создать новую фс с тем что уже собрано дело секунд десяти + новый пакет. по тому что вы описываете я как раз и говорю - сомнительные плюсы, зачем это все собирать самому ? есть ангстром, дебиан, рэдхат, есть например такая штука http://amethyst.openembedded.net/~koen/narcissus/ есть проект T2 - похож чем-то на ОЕ - такой же неторопливый :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться