roboforum.ru

Технический форум по робототехнике.

Робот на базе роутера D Link DIR-320

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Робот на базе роутера D Link DIR-320

Сообщение esprit » 14 фев 2011, 07:33

==================================================================================================================
Вставка от =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. Вот его лицо
face.jpg
, а это спина
back.jpg
.
Орфография и стилистика автора сохранены.
esprit
 
Сообщения: 70
Зарегистрирован: 06 июн 2008, 05:26
Откуда: Уссурийск

Re: Робот на базе роутера D Link DIR-320

Сообщение =DeaD= » 02 мар 2011, 10:11

А где почитать кладезь линукс-мудростей вроде "программы надо класть в ./bin/" ? :oops:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Робот на базе роутера D Link DIR-320

Сообщение boez » 02 мар 2011, 11:42

Да не, ну нету в линухе такого религиозного догмата, что программы надо класть в bin :) То есть в продакшен-версии конечно единообразие нужно, но работать должно из любого места.
Похоже правда библиотеки не подхватываются. А версии библиотек в /lib и на флешке разные? И что в переменной LD_LIBRARY_PATH?
Последний раз редактировалось boez 02 мар 2011, 11:47, всего редактировалось 1 раз.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Робот на базе роутера D Link DIR-320

Сообщение =DeaD= » 02 мар 2011, 11:46

Версии разные, размер в /lib раза в 1.5 меньше.
В переменной LD_LIBRARY_PATH лежит и /lib и /opt/lib
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Робот на базе роутера D Link DIR-320

Сообщение boez » 02 мар 2011, 12:39

А, ну значит при компиляции в экзешник вписались ссылки на ту версию либы, которая в /opt/lib. Попробуй в /lib создать симлинк с именем как у либы из /opt/lib - если либа из /lib как таковая годится (в ней есть нужные функции с нужными параметрами и соглашениями вызова) - заведется, если нету - рухнет или по ненахождению функции, или по SEGFAULT.

Добавлено спустя 1 минуту 46 секунд:
Да, ИМХО чтобы собрать экзешник совсем правильно - чтоб он использовал библиотеки из /lib, его надо собирать на ПК теми же тулзами, что и сам билдрут прошивки. Это можно проделывать и для роутеров, у которых никакой флешки нету.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Робот на базе роутера D Link DIR-320

Сообщение =DeaD= » 02 мар 2011, 12:47

Это понятно, что теми же тулзами, что сборка исходной прошивки, можно собрать.
Хотелось бы более прямой путь, а не собирать с нуля операционку при необходимости скомпилировать простую программку :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Робот на базе роутера D Link DIR-320

Сообщение boez » 02 мар 2011, 13:41

Ну там я так понимаю можно один раз наваять мейкфайл, в котором прописать все пути и опции, а потом любой может его взять, поменять разве что имя входных и выходного файла и компилить любые свои проги. Я ж говорю не о пересборке рута и перепрошивке роутера, а о компиляции билдрутовыми тулзами своего экзешника, но с привязкой к версиям библиотек, которые в роутере. Ну а потом экзешник тем или иным путем копируется на роутер и там работает. Можно прямо в мейкфайл команду scp вписать (скажем в таргет 'install') и если по сети с роутером связь есть, make install будет прогу собирать и в роутер вливать, автоматом.

Добавлено спустя 1 минуту 28 секунд:
Ты кстати какую версию прошивки пользуешь? Может я щас прям на нее гляну и такой мейкфайл нарисую, самому интересно.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Робот на базе роутера D Link DIR-320

Сообщение =DeaD= » 02 мар 2011, 13:43

А нельзя это ключами gcc явно указать?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Робот на базе роутера D Link DIR-320

Сообщение boez » 02 мар 2011, 14:06

=DeaD= писал(а):А нельзя это ключами gcc явно указать?


Можно, обычным -L указать линкеру откуда брать либы для линковки, но если я ничего не путаю - то libнафиг.so линкеру не годятся, по крайней мере те что в роутере, там же символов нету. А libнафиг.a остались в билдруте на хосте, на роутере их тоже нету. Так что собрать все правильно внутри роутера наверное не получится...
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Робот на базе роутера D Link DIR-320

Сообщение dccharacter » 02 мар 2011, 14:19

Так и подмывает влезть в разговор умных дядек. Скажите, а конфига у этой программы нет? И вообще, откуда она взялась - я вчера пол-интернета перекопал, так ничего кроме Software UART не нашел. Неужели нельзя эти библиотеки через конфиг прописать.

О, а еще мысль. А если отмонтировать флешку и подмонтировать каталог с библиотеками в /opt?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Робот на базе роутера D Link DIR-320

Сообщение =DeaD= » 02 мар 2011, 14:21

у какой "этой" - я сам suart написал и собрал :) ну точнее как сам - на основе того, что было готово у espirit'а и с помощью подсказок Vooon'а :roll:

Добавлено спустя 50 секунд:
dccharacter писал(а):О, а еще мысль. А если отмонтировать флешку и подмонтировать каталог с библиотеками в /opt?

Библиотеки:
1. На флешке;
2. Не влезут во флеш роутера;
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Робот на базе роутера D Link DIR-320

Сообщение dccharacter » 02 мар 2011, 14:41

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

Добавлено спустя 1 минуту 3 секунды:
И я так понимаю, увеличить память до 128 мб, распаять внутренний ЮСБ/использовать ЮСБ хаб и внешнюю флешку - это не отвечает критериям (дешевизны/повторяемости и т.д.)???

Добавлено спустя 3 минуты 39 секунд:
Опубликуй ПЛЗ ldd /opt/suart
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Робот на базе роутера D Link DIR-320

Сообщение =DeaD= » 02 мар 2011, 14:45

Да есть библиотеки эти же, но другие версии.

Депенденсиз известно какой, а как поменять - именно это и спрашиваю.

Почему уперся? А какие есть другие варианты? В имеющей прошивке нужного функционала нету.

Любые железные вмешательства кроме просверлить дырку в корпусе и вывести сбоку уарт - да, не отвечают критериям повторяемости\дешевизны\габаритам.

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

Добавлено спустя 2 минуты 45 секунд:
ldd /opt/suart

выдаёт что-то типа
libc.so.0 => /opt/lib/libc.so.0
ld-uClibc.so.0 => /opt/lib/ld-uClibc.so

точно скажу, когда домой вечером попаду
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Робот на базе роутера D Link DIR-320

Сообщение dccharacter » 02 мар 2011, 15:14

Потупи тут, может чем поможет: http://fixunix.com/bsd/261068-network-s ... stion.html

Добавлено спустя 21 минуту 3 секунды:
Что-то мне кажется, что если правильно заточенный мозг приложить, то можно настроить вот это дело: http://www.mjmwired.net/kernel/Document ... onsole.txt

один будет логгировать УАРТ на нужный интерфейс, а второй интерфейс на УАРТ.

Добавлено спустя 2 минуты 27 секунд:
А, блин, нифига. Она только лог ядра перенаправляет :-(

Добавлено спустя 3 минуты 55 секунд:
Слушай, а зачем вообще эта история с сокетом и т.д.? У тебя программа на компе не может открыть телнет, запустить там программу работы с портом и получать/отправлять весь вывод прямо с устройства?? Делов-то, вроде, не шибко много?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Робот на базе роутера D Link DIR-320

Сообщение =DeaD= » 02 мар 2011, 16:01

dccharacter писал(а):Слушай, а зачем вообще эта история с сокетом и т.д.? У тебя программа на компе не может открыть телнет, запустить там программу работы с портом и получать/отправлять весь вывод прямо с устройства??

Действительно, зачем я делаю программу работы с портом, если её можно просто запустить? :)
Осталось только найти её готовую и компактную или использующую уже имеющиеся на роутере библиотеки :wink:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Робот на базе роутера D Link DIR-320

Сообщение dccharacter » 02 мар 2011, 16:12

ты погодь ерничать. ща все будет.

Добавлено спустя 5 минут 7 секунд:
man picocom
man minicom
man microcom

ipkg update
ipkg install picocom

Не? Или я опять туплю?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Пред.След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14