================================================================================================================== Вставка от =DeaD=
ВНИМАНИЕ!!! На рынке сейчас часто вместо DIR-320 продаётся DIR-320NRU - это совершенно другой по железу роутер и всё что тут описано к нему не имеет отношения. Будьте бдительны!
На текущий момент задача проброски видео и уарта на роутере D-Link DIR-320 решена полностью, при этом в рамках флеш-памяти роутера, т.е. для работы подключение каких-то флешек или usb-хабов не требуется.
Порядок модификации роутера для этой задачи подробно описан в вики на странице [[DIR-320]].
Кроме того от пользователя d3xr есть описание установки прошивки OpenWrt на DIR-320, оно находится на странице [[OpenWrt]] ==================================================================================================================
Вдохновленный темой http://roboforum.ru/forum40/topic5222.html, задумался над созданием робота на базе этого роутера. Первоначальный функционал - управляемый с компьютера робот по каналу Wi-Fi. Робот прошит (так скажем, не без усилий) прошивкой от http://vampik.ru/. На нем завелась Linux-подобная операционка, можно подключиться Телнетом. Задача первая научиться рулить роботом посредством операционной системы. На борту есть USB порт, говорят есть UART. Вот его лицо
Ну соберет оно мне это добро с зависимостью от своих библиотек опять, куда его потом девать? Не буду же я сейчас опытным путём перебирать все терминалы, какие только бывают?
Добавлено спустя 1 минуту 3 секунды: Я не сторонник вероятностного подхода при изготовлении корабликов в бутылке
=DeaD= писал(а):Ну соберет оно мне это добро с зависимостью от своих библиотек опять, куда его потом девать? Не буду же я сейчас опытным путём перебирать все терминалы, какие только бывают?
Почему?
Там все нормально соберет - смотри на имена. Сначала было мини. Потом миро. Потом пико )) Слуш, дождешься, достану с балкона wl500g, потом моск тебе весь вынесу )))
Везде описаны решения проблем, когда система не видит нужную библиотеку, нигде пока не нашел как заставить систему использовать нужную мне системную библиотеку в /lib вместо той, которая в /opt/lib
Добавлено спустя 52 секунды: picocom думаю соберется с зависимостью от этих же библиотек, что у меня сейчас suart мой собрался.
На самом деле то, что нужно DeaD'у - это socat, я уже про него писал, и в прошивках он есть, просто надо его включить и пересобрать. Но вариант со своей прогой тоже нормальный, все равно надо учиться собирать свои проги на роутере.
Тулчейн просто распаковать в любую папку и путь к /bin из этой папки добавить в PATH. Если не собирать сложных вещей, которым нужны какие-то либы из других пакетов, то этого достаточно, саму прошивку и собирать не надо.
Попробовал я собрать твой suart этим тулчейном. Вот такая команда:
Package: socat Version: 1.7.1.3-1 Target: oleg Architecture: mipsel Section: net Description: A relay for bidirectional data transfer between two independent data channels. Depends: openssl readline Download: socat_1.7.1.3-1_mipsel.ipk
=DeaD= писал(а):Везде описаны решения проблем, когда система не видит нужную библиотеку, нигде пока не нашел как заставить систему использовать нужную мне системную библиотеку в /lib вместо той, которая в /opt/lib
Dead, я боюсь что нету решения у твоей проблемы - gcc для компиляции нужны либы с символами, они обычно идут с расширением .a. Так вот на роутере их нету физически, они там не нужны и их ради экономии места туда не пишут.
Если сильно хочется - можно взять libc.a и libdl.a из папки /lib тулчейна и положить их куда-нить в /opt/mylibs, после чего дать gcc -nostdlibs -L/opt/mylibs -lc suart.c -o suart и он тогда по идее правильно соберет.
Добавлено спустя 2 минуты 52 секунды: Да, жырноватая штука socat. Хотя ее для наших целей хорошо бы без ssl собрать. А вообще значит надо собирать suart, к примеру у меня он 4к получился
Хотя вообще это все жутко странно - откуда в тулчейне, который внутри роутера, взялись другие версии библиотек? Судя по содержимому пакета uclibc-opt, там те же самые libc.so.0 и ld-uClibc.so.0. ну разве что реальная версия ld-uClibc.so чуть другая, но это не должно быть проблемой.
Да, насчет libdl.a это я перепутал, это другая либа, а откуда берется ссылка на ld-uClibc.so я не знаю, скорее всего как-то жестко в линкере задано.
В общем, надо смотреть внимательнее, плюс может быть играться с LD_LIBRARY_PATH - выкидывать оттуда /opt/lib и тогда пробовать запускать.
#!/bin/bash t=300 sl=0.3 n=0 exec 3<> /dev/tty.BT-ECU2-S-DevB while true ; do let "n++"; echo $n; echo "#0P500T$t" >&3; sleep $sl; echo "#0P2500T$t" >&3 ; sleep $sl; done
если очень хочется либы по другому месту просто можно так сделать mkdir /opt/lib/ ln -s /lib/нужная_либа /opt/lib/запрашиваемое_имя_либы
пока ничего не подмонтировано будет лежать сим линк, при монтировании там будет содержимое флешки а то что было глубже по пути /opt станет временно невидно (до отмонтирования)
Но по f3 зато в тексте видно, что ld-uClibc.so идет без пути.
Так что пробуй по-разному, смотри через ldd и разберешься. Учти, что стрелочки, которые рисует ldd, вернее то что справа от них - это уже результат текущего резолвинга библиотек, это не жесткие привязки внутри экзешника.
А, еще пока искал - прочитал про какой-то кэш лоадера, может у тебя просто пути в /opt/lib закэшировались? а реально с самим экзешником все ОК? Кэш смотится через ldconfig -p. Есть ли он в мелком линухе - не знаю.
Package: minicom Version: 2.4-1 Target: oleg Architecture: mipsel Section: misc Description: Minicom is a serial communication program. It is a Unix clone of the well-known MS-DOS Telix program. It has ANSI color, a dialing directory, dial-a-list, and a scripting language. Depends: ncurses lrzsz Download: minicom_2.4-1_mipsel.ipk
ncurses 252 kb, lrzsz 162 kb.
picocom !!! 27кб, НЕТ зависимостей.
Последний раз редактировалось dccharacter 02 мар 2011, 18:09, всего редактировалось 1 раз.
setar писал(а):почитал , ужаснулся задача конечная какая ? терминал на tty получить ??
Да не, то понятно что можно, задача чуть другая: получить связь уарта с TCP сокетом, чтоб никаких терминалов, телнетов и прочих прослоек, делающих непредвиденные вещи с управляющими символами типа Ctrl-C или ctrl-Z там не было. Она в принципе решена, дальше идет разбиралово как это сделать лучше
Добавлено спустя 4 минуты 21 секунду:
dccharacter писал(а):Простите мне мож назойливость, но: picocom !!! 27кб, НЕТ зависимостей.
И как им пробросить уарт на слушающий TCP-порт? Так, чтобы я присоединился туда своей программой-клиентом и любой байт, включая например Ctrl-O или Ctrl-Z вызвал не выпрыгивание окошка опций миникома или остановку программы, а был передан прямо в порт?