Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Linux для IP камеры на базе TI DM369
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
KPEKEP
Приветствую!
Так получилось, что хочешь не хочешь, а с линуксом когда нибудь приходится знакомиться biggrin.gif

В моём распоряжении IP камера TMDSIPCAM369X104 на базе процессора TI DaVinci TMS320DM369
имеется RDK от TI, при помощи него могу собрать ядро и файловую систему, записываю в NAND и всё это дело работает как в состоянии из коробки (выдаёт изображение через браузер с заводским интерфейсом)
Вообще задача приручить эту камеру, но пока хотелось бы добыть в ней SSH
Стоит Linux Angstrom от Arago Project, т.к. памяти у этой камеры мало (всего 45Мб, занято 16Мб), разработчики убрали из него всё что только можно включая SSH и менеджер пакетов, управляется она через com порт

Подскажите как быть? Как добавить SSH в штатный линукс или как собрать свой, но чтобы он дружил с матрицей и всеми наработками и алгоритмами от TI?
alx2
Цитата(KPEKEP @ Jul 10 2015, 19:56) *
Как добавить SSH в штатный линукс или как собрать свой, но чтобы он дружил с матрицей и всеми наработками и алгоритмами от TI?

Как-то вопрос у Вас поставлен мутно/непонятно. Наводит на мысль о каше в голове. Давайте будем прояснять.
Во-превых, linux - это системное ядро. Как Вы знаете, кроме линукса в вашей камере есть еще файловая система, содержащая файлы программ, библиотек и прочих необходимых для работы вещей. Протокол SSH реализуется не ядром, а внешними по отношению к ядру программами. Поэтому, строго говоря, ssh надо добавлять не в линукс, а в файловую систему. Извините за придирки к словам, но часто за этим кроется непонимание, что за что отвечает...
Во-вторых, ssh бывает клиентом и сервером. Я, конечно, догадался, что Вам нужен SSH-сервер, но лучше все-таки сразу уточнять.
В-третьих, что Вы подразумеваете под "дружбой ssh с матрицей и всеми наработками и алгоритмами от TI"? Даже предположить затрудняюсь... Для работы ssh кроме доступа к сети ничего не нужно. Ему не требуются ни матрицы, ни какие-либо наработки от TI. Уточните для понимания, что именно Вы посредством SSH собираетесь делать.

В качсетве ssh-сервера я рекомендую использовать dropbear (http://matt.ucc.asn.au/dropbear/dropbear.html). Собираете его как описано в документации, но на этапе установки (make install) установите в переменной DESTDIR путь к содержимому файловой системы (откуда будет сгенерирован ее образ). Это если очень кратко, в трех словах...
KPEKEP
Цитата(alx2 @ Jul 11 2015, 12:39) *
Как-то вопрос у Вас поставлен мутно/непонятно. Наводит на мысль о каше в голове. Давайте будем прояснять.
Во-превых, linux - это системное ядро. Как Вы знаете, кроме линукса в вашей камере есть еще файловая система, содержащая файлы программ, библиотек и прочих необходимых для работы вещей. Протокол SSH реализуется не ядром, а внешними по отношению к ядру программами. Поэтому, строго говоря, ssh надо добавлять не в линукс, а в файловую систему. Извините за придирки к словам, но часто за этим кроется непонимание, что за что отвечает...

Под словом Linux я подразумевал ядро с файловой системой, Вы правы, с линуксом я знаком только около полугода, по этому могу что то недопонимать

Цитата
Во-вторых, ssh бывает клиентом и сервером. Я, конечно, догадался, что Вам нужен SSH-сервер, но лучше все-таки сразу уточнять.

Вы правы, интересует SSH-сервер

Цитата
В-третьих, что Вы подразумеваете под "дружбой ssh с матрицей и всеми наработками и алгоритмами от TI"? Даже предположить затрудняюсь... Для работы ssh кроме доступа к сети ничего не нужно. Ему не требуются ни матрицы, ни какие-либо наработки от TI. Уточните для понимания, что именно Вы посредством SSH собираетесь делать.

Перефразирую свой вопрос: подскажите как мне быть? Возможно ли добавить SSH-сервер в штатную файловую систему?
или как собрать своё ядро и свою файловую систему, может какой нибудь arch linux, но чтобы он дружил с матрицей и алгоритмами от TI, в общем, чтобы камера работала как камера но поменать в ней линукс

Цитата
В качсетве ssh-сервера я рекомендую использовать dropbear (http://matt.ucc.asn.au/dropbear/dropbear.html). Собираете его как описано в документации, но на этапе установки (make install) установите в переменной DESTDIR путь к содержимому файловой системы (откуда будет сгенерирован ее образ). Это если очень кратко, в трех словах...

Спасибо, попробую
HardJoker
Цитата(KPEKEP @ Jul 10 2015, 16:56) *
В моём распоряжении IP камера TMDSIPCAM369X104 на базе процессора TI DaVinci TMS320DM369
имеется RDK от TI...


RDK было на диске или есть ссылка для скачивания с TI?
alx2
Цитата(KPEKEP @ Jul 12 2015, 15:10) *
Перефразирую свой вопрос: подскажите как мне быть? Возможно ли добавить SSH-сервер в штатную файловую систему?

В вашем случае, наверняка, проще всего добавить ssh-сервер в уже имеющуюся файловую систему, так как у Вас уже есть средства сборки системы. Надо только собрать и положить на файловую систему еще одну дополнительную программу. Все, что для этого нужно (тулчейн, заголовочные файлы библиотек и т.п.), у Вас должно уже быть. Также наверняка в вашем RDK можно добавить инструкции/правила для сборки ssh-сервера или чего угодно еще, надо только с ним хорошо разобраться. И тогда тот же dropbear будет собираться автоматически вместе со всем остальным...

Собрать свою ОС (со своим ядром и набором программ/библиотек) тоже можно. Но тогда встанет вопрос о драйверах вашей камеры. Если их нет в штатном ядре, придется портировать из ядра, поставляемого производителем. У меня есть один активный проект, в котором я вынужден сидеть на древнем 2.6.20 линуксе, так как он там довольно сильно пропатчен производителем процессора, и у меня нет времени и желания портировать все это на более свежие ядра... Для сборки собственной ОС я рекомендую посмотреть фреймворк openembedded/yocto (https://en.wikipedia.org/wiki/OpenEmbedded https://www.yoctoproject.org/).
KPEKEP
Цитата(HardJoker @ Jul 12 2015, 12:12) *
RDK было на диске или есть ссылка для скачивания с TI?

RDK было на FTP сервере, доступ к которому дают при покупке камеры

Цитата(alx2 @ Jul 11 2015, 12:39) *
В качсетве ssh-сервера я рекомендую использовать dropbear (http://matt.ucc.asn.au/dropbear/dropbear.html). Собираете его как описано в документации, но на этапе установки (make install) установите в переменной DESTDIR путь к содержимому файловой системы (откуда будет сгенерирован ее образ). Это если очень кратко, в трех словах...


Можете, пожалуйста, проконсультировать про сборку Dropbear по подробнее?
Документация тут достаточно поверхностная, не для новичков или я не туда смотрю, блокноты README, INSTALL, MULTI, SMALL и TODO, как я понял мне нужны инструкции из INSTALL, но написано для систем с малым количеством памяти нужно выполнить и MULTI?

как именно нужно конфигурировать options.h там по дефолту всё закоментировано, и не нашёл переменную DESTDIR

И получается по пунктам как я должен действовать
1.) собрать Dropbear в директорию с моей файловой системой
2.) собрать файловую систему
3.) залить на камеру?
alx2
Цитата(KPEKEP @ Jul 14 2015, 14:34) *
Можете, пожалуйста, проконсультировать про сборку Dropbear по подробнее?

Попробую. Как написано в файле INSTALL, сборка и установка происходит в три этапа:
1) ./configure
2) make
3) make install

При конфигурации вы должны указать, для какой целевой архитектуры производится сборка (параметром --target) и всякие прочие параметры. У меня, например, configure вызывается с такими аргументами:

./configure --target=arm-openwrt-linux --host=arm-openwrt-linux --build=i486-linux-gnu --program-prefix= --program-suffix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls --disable-ipv6 --with-shared --disable-pam --enable-openpty --enable-syslog --disable-lastlog --disable-utmp --disable-utmpx --disable-wtmp --disable-wtmpx --disable-loginfunc --disable-pututline --disable-pututxline --disable-zlib

Все опции можно вывести с помощью ./configure --help.
Перед выполнением ./configure можно в options.h раскомментарить/закомментарить макросы по вкусу. Например добавить #define DROPBEAR_SMALL_CODE. При выполнении configure наверняка возникнут какие-нибудь ошибки - их надо решать по мере возникновения. Чаще всего это отсутствие хедеров какой-нибудь библиотеки.

Если конфигурация завершилась без ошибок, компилируем как написано в INSTALL, например так:

make MULTI=1 SCPPROGRESS=1 PROGRAMS="dropbear dropbearkey dropbearconvert dbclient ssh scp"

Обратите внимание, что речь идет не о файле options.h (там определяются не переменные, а макросы), а о переменных окружения или make.

Если сборка закончилась успешно, выполняем установку, добавив переменную DESTDIR, например так:

make MULTI=1 SCPPROGRESS=1 PROGRAMS="dropbear dropbearkey dropbearconvert dbclient ssh scp" DESTDIR=/home/me/work/root install

После этого dropbear будет установлен в /home/me/work/root. И да, Вы правильно понимаете - если /home/me/work/root - это директорий с файлами камеры, то затем генерируете образ файловой системы и залить его в камеру.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.