Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-iMX233
первые шаги и первые вопросы
asimo
Добавлено 08.02.2012 06:13 Сообщение: 31
asimo
0

Пункты: 1685
Регистрация: 27.12.2011
Цитата

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

клёво, такую ветку нужно оформлять как дополнение к мануалу к плате

Цитата

да нивапроз.. вопрос в том - кто будет писать эти инструкции и кому? взяв по минимуму - 100000 пакетов и что, к каждому инструкцию?!

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

Цитата

не поверите, но я тоже новичок и побегал изрядно(и до сих пор бегаю) по этому форуму и другим..

почему ж не поверю..? поверю. рад за Вас и Вашим достижениям в данной области. но у каждого из здесь присутствующих разная начальная база знаний и пониманий. к примеру мне, пока не ясно как работать с платой. точного алгоритма действий нигде не находил, работать, не зная своих действий, несколько неверно, думаю согласитесь с этим.

Цитата

no comments..

я не говорил, что читать бессмысленно, всего лишь измолвил, что этот процесс идет параллельно работе с платой.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.02.2012 12:12 Сообщение: 32
Jury093
4.5

Пункты: 54252
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
клёво, такую ветку нужно оформлять как дополнение к мануалу к плате

нет ни смысла ни целевой аудитории - слишком узкая задача..
и как семпл тоже не годится - в разных пакетах разный набор ключей для сборки..

Цитата
считаю не так сложно в вордовском файле вкраце описать

у нас в конторе резюме в формате ворда не рассматривают в принципе..
хотя есть фанаты того же vi - а я его на дух не переношу..

Цитата
рад за Вас и Вашим достижениям в данной области

скорее не достижения - просто интересное хобби

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
asimo
Добавлено 08.02.2012 12:45 Сообщение: 33
asimo
0

Пункты: 1685
Регистрация: 27.12.2011
хорошо, немного отвлеклись от темы.
если пакет уже собран под арм как его на плату поставить? по теории деб-пакет ставится командой "dpkg -i name.deb". верно ли это предположение к плате? просто ни dpkg ни apt-get платой не распознаются (not found)
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.02.2012 16:59 Сообщение: 34
sasamy
4.70

Пункты: 78556
Регистрация: 14.08.2009
На платах нет пакетных менеджеров, собирается готовая корневая ФС и она целиком записывается на носитель. В исходном варианте помоему ядро вообще не использует nand а корневая находится в initramfs.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.02.2012 21:15 Сообщение: 35
Jury093
4.5

Пункты: 54252
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
о менеджерах (apt-get & Co) Саша уже написал..

Цитата
если пакет уже собран под арм как его на плату поставить?

если это одиночный бинарник, то копируется в подходящее место рутовой на целевой плате
если требуются файлы конфигурации (для программы), то берутся оригиналы из пакета и правятся под себя, или создаются новые текстовые файлы, которые складываются в известное для программы место..
если это большой пакет с бинарниками и либами, то я бы поинтересовался Makefile в части install - чтобы посмотреть куда авторский мейкфайл раскидывает файлы в системе (это происходит после make install)..

кстати DEB файл - это обычный архив файлов, содержимое смотрится и извлекается стандартным MC

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
asimo
Добавлено 09.02.2012 07:08 Сообщение: 36
asimo
0

Пункты: 1685
Регистрация: 27.12.2011
http://disk.tom.ru/mah2wsw deb-пакет. как заставить заработать на плате?
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 09.02.2012 09:50 Сообщение: 37
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
asimo, этот пакет собран для архитектуры x86. Вам же нужно собрать программу для ARM.
Вы вообще понимаете что плата и большая машина работают на процессорах с разными архитектурами и соответсвенно различным набором команд? Бинарные исполняемые файлы для PC нельзя запустить просто так на плате. Ну разве что только через эмулятор, но это тот ещё изврат.
Вам нужно собрать mjpg-streamer из исходников с помощью кросс-компилятора для исполнения на ARM-архитектуре. Для этого вам нужно знать и понимать следующие вещи:
1) Что такое стандартная сишная библиотека.
2) Какая сишная библиотека используется на вашей плате (uClibc, glibc, etc).
3) Что такое Makefile и как их написать/исправить. Использование команды make.
4) Знание соответствующих систем сборки, используемых для автоматической генерации Makefile'ов (autotools, cmake), по крайней мере на уровне использования ./configure и/или параметров cmake
5) После того, как вы сможете собрать программу, вам нужно будет её подпихнуть в вашу rootfs. Соответственно вам надо знать как пересобрать rootfs и подцепить её к ядру (или положить рядом с ним и передать соотв. параметр).

Во всём этом нет абсоютно ничего сложного. Просто нужно сесть и спокойно разобраться. Ибо здесь нужно понимание. Даже если вам дадут пошаговую инструкцию, то без понимания того, что вы делаете, вы даже этого повторить не сможете при малейшем изменении входных условий.
Ща я гляну на ваш mjpg-streamer...
Спуститься к концу Подняться к началу
Персональная информация
Lampus
Добавлено 09.02.2012 12:16 Сообщение: 38
Lampus
5

Пункты: 3552
Регистрация: 26.04.2011
1. Получаем последнюю версию исходных кодов из системы контроля версий SVN:
Код
svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer

Строка
Код
Checked out revision 150.

свидетельствует об успешном завершении процесса, и сообщает номер ревизии полученных исходных кодов.
2. Переходим в кталог с исходниками
Код
cd mjpg-streamer/mjpg-streamer

3. Читаем README файл:
Код
less README

Теперь мы знаем что данный пакет требует libjpeg (для плагина input_uvc)
4. Файлы configure или CMakeList.txt не обнаружены, а есть только Makefile. Значит здесь не используется система сборки.
5. Переопределяем переменную окружения PATH
Код
PATH="/media/old_root/opt/arm-2010q1/bin:$PATH"

6. Правим Makefile. Заменяем во всех Makefile-ах строку CC = gcc на CC = arm-none-linux-gnueabi-gcc
Код
find . -name Makefile -exec sed -i 's/^CC = gcc$/CC = arm-none-linux-gnueabi-gcc/' {} \;

То бишь во всех Makefile-ах просим использовать компилятор arm-none-linux-gnueabi-gcc вместо gcc для x86
В корневом Makefile меняем папку установки в переменной DESTDIR, я поставил /tmp/usr/local
7. Теперь нам нужен libjpeg. Вместо него будем использовать libjpeg-turbo - оптимизированная версия libjpeg.
Последовательность действий та же:
Качаем архив исходных кодов:
Код
wget "http://sourceforge.net/projects/libjpeg-turbo/files/1.1.90%20%281.2beta1%29/libjpeg-turbo-1.1.90.tar.gz"

Распаковываем его:
Код
tar xvf ~/Downloads/tmp/libjpeg-turbo-1.1.90.tar.gz

Переходим в каталог с сорцами:
Код
cd libjpeg-turbo-1.1.90/

Смотрим на содержимое и читаем README. По файлу configure ясно, что это пакет использующий систему сборки autotools
Читаем вывод ./configure --help
Конфигурим исходный код
Код
./configure --enable-static --disable-shared --host=arm-none-linux-gnueabi

По строке
Код
creating Makefile

понимаем что Makefile был успешно сгенерирован. --enable-static --disable-shared говорит что нам нужно получить библиотеку
только для статической линковки.Мы же не хотим с собой ещё и разделяемые библиотеки таскать.
Теперь можно собрать:
Код
make

После этого в папке .libs образуется файл libjpeg.a - это библиотека libjpeg для статической линковки.
8. Возвращаемся к сборке mjpg-streamer.
Код
cd ..

9. Теперь правим пути поиска библиотек и хидеров в plugins/input_uvc/Makefile
К переменной CFLAGS добавляем путь поиска хидеров -I../../libjpeg-turbo-1.1.90/
К переменной LDFLAGS добавляем путь поиска либ -L../../libjpeg-turbo-1.1.90/.libs
10. Собираем
Код
make

11. Устанавливаем
Код
make install

12. Проверяем
Код

file /tmp/usr/local/bin/mjpg_streamer
/tmp/usr/local/bin/mjpg_streamer: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped

Вуаля, отличный ARM-овый бинарник, работающий с glibc.

Всё же очень просто =)
Спуститься к концу Подняться к началу
Персональная информация
asimo
Добавлено 09.02.2012 15:20 Сообщение: 39
asimo
0

Пункты: 1685
Регистрация: 27.12.2011
Lampus, огромное спасибо, прямо спасибище :)
только заступорился на пункте 6, выдал "uncnown option to 's'"
Спуститься к концу Подняться к началу
Персональная информация
asimo
Добавлено 10.02.2012 14:56 Сообщение: 40
asimo
0

Пункты: 1685
Регистрация: 27.12.2011
в общем опять затык, в 10 пункте. make выдает:

debian:/home/user/mjpg-streamer/mjpg-streamer# make
make -C plugins/input_uvc all
make[1]: Entering directory `/home/user/mjpg-streamer/mjpg-streamer/plugins/input_uvc'
arm-none-linux-gnueabi-gcc -c -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/user/libjpeg-turbo-1.1.90/ static -s -o jpeg_utils.lo jpeg_utils.c
make[1]: arm-none-linux-gnueabi-gcc: Command not found
make[1]: *** [jpeg_utils.lo] Error 127
make[1]: Leaving directory `/home/user/mjpg-streamer/mjpg-streamer/plugins/input_uvc'
make: *** [input_uvc.so] Error 2

то, что " arm-none-linux-gnueabi-gcc: Command not found" должно исправляться добавлением static -s к CFALGS и LDFLAGS, но это не исправило ситуацию.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-iMX233