martinez Опубликовано 4 октября, 2009 (изменено) · Жалоба Всем привет, очень прошу помочь. Задался целью разобраться с разработкой и сборкой прошивок под mips-based платформу на примере Nanostation2. Как вы понимаете какой либо вспомогательной литературы по таким задачам нет впринцепе, а на форуме Ubiquity никто не хочет помогать. Кроме как сюда больше неккому обратиться. Со сборкой SDK.UBNT.v3.4.4416 в консоли проблем не возникло. Извлек архив, дал команду make xs2 и все готово. Пробую использовать Eclipse, ведь для разработки ПО необходим инструментарий, как минимум удобная среда проектирования. Такой мне показалась среда Eclipse, решил пользоваться ею. Создаю чистый С Makefile проект, импортирую все содержимое из SDK.UBNT.v3.4.4416 как filesystem, меняю команду сборки с по-умолчанию all на xs2 и запускаю сборку. В процессе сборки возникает ошибка: make[4]: Вход в каталог `/home/maks/i/apps/gpl/ppp/pppdump' /opt/toolchain/mips_ls/bin/mips-linux-gcc -O -I../include/net -c -o pppdump.o pppdump.c /opt/toolchain/mips_ls/bin/mips-linux-gcc -O -I../include/net -c -o bsd-comp.o bsd-comp.c /opt/toolchain/mips_ls/bin/mips-linux-gcc -O -I../include/net -c -o deflate.o deflate.c /opt/toolchain/mips_ls/bin/mips-linux-gcc -O -I../include/net -c -o zlib.o zlib.c /opt/toolchain/mips_ls/bin/mips-linux-gcc -o pppdump pppdump.o bsd-comp.o deflate.o zlib.o make[4]: Выход из каталога `/home/maks/i/apps/gpl/ppp/pppdump' make[3]: Выход из каталога `/home/maks/i/apps/gpl/ppp' make -C tinysnmp CROSS="/opt/toolchain/mips_ls/bin/mips-linux-" \ DESTDIR=/home/maks/i/rootfs/ROOT \ MADWIFI_DIR="/home/maks/i/drivers/madwifi-5.0" \ ENV='-DVERSION=\"XS2.ar2316.v3.4\"' make[3]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp' for F in libdebug libevent libabz libber agent modules manager; do make -C $F all; done make[4]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/libdebug' rm -f .depends set -e; for F in log.c memory.c hex.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -fPIC -I/home/maks/i/rootfs/ROOT/usr/local/include -I../include -I../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../lib: Not a directory make[4]: *** [depend] Ошибка 1 make[4]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/libdebug' make[4]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/libevent' rm -f .depends set -e; for F in buffer.c evbuffer.c event.c log.c poll.c select.c signal.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -DHAVE_CONFIG_H -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -fPIC -I/home/maks/i/rootfs/ROOT/usr/local/include -I../include -I../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../lib: Not a directory make[4]: *** [depend] Ошибка 1 make[4]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/libevent' make[4]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/libabz' rm -f .depends set -e; for F in aton.c atou16.c atou32.c atou8.c bcat.c bprintf.c contigmask.c getline.c mkdirhier.c rmdirhier.c tmp.c trim.c getfile.c putfile.c alive.c error.c atou64.c sanitize.c tokens.c pidfile.c atos.c atop.c atoa.c list.c run.c stream.c unblock.c batch.c iptables.c tc.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -fPIC -I/home/maks/i/rootfs/ROOT/usr/local/include -I../include -I../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../lib: Not a directory make[4]: *** [depend] Ошибка 1 make[4]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/libabz' make[4]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/libber' rm -f .depends set -e; for F in ber-decode.c ber-encode.c ber-utils.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -fPIC -I/home/maks/i/rootfs/ROOT/usr/local/include -I../include -I../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../lib: Not a directory make[4]: *** [depend] Ошибка 1 make[4]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/libber' make[4]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/agent' rm -f .depends set -e; for F in cmdline.c config.c agent.c module.c snmp.c network.c odb.c module-snmp.c module-system.c main.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -I/home/maks/i/rootfs/ROOT/usr/local/include -I../include -I../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../lib: Not a directory make[4]: *** [depend] Ошибка 1 make[4]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/agent' make[4]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/modules' for F in resources interfaces ieee802dot11 mikrotik; do make -C $F all; done make[5]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/modules/resources' rm -f .depends set -e; for F in main.c meminfo_linux.c loadinfo_linux.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -fPIC -I/home/maks/i/rootfs/ROOT/usr/local/include -I../../include -I../../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../../lib: Not a directory make[5]: *** [depend] Ошибка 1 make[5]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/modules/resources' make[5]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/modules/interfaces' rm -f .depends set -e; for F in proc.c main.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -fPIC -I/home/maks/i/rootfs/ROOT/usr/local/include -I../../include -I../../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../../lib: Not a directory make[5]: *** [depend] Ошибка 1 make[5]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/modules/interfaces' make[5]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/modules/ieee802dot11' rm -f .depends set -e; for F in main.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -DVERSION=\"XS2.ar2316.v3.4\" -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -fPIC -I/home/maks/i/rootfs/ROOT/usr/local/include -I../../include -I../../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../../lib: Not a directory make[5]: *** [depend] Ошибка 1 make[5]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/modules/ieee802dot11' make[5]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/modules/mikrotik' rm -f .depends set -e; for F in main.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -fPIC -I/home/maks/i/rootfs/ROOT/usr/local/include -I../../include -I../../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../../lib: Not a directory make[5]: *** [depend] Ошибка 1 make[5]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/modules/mikrotik' make[4]: *** [all] Ошибка 2 make[4]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/modules' make[4]: Вход в каталог `/home/maks/i/apps/gpl/tinysnmp/manager' rm -f .depends set -e; for F in pdu.c snmp.c; do /opt/toolchain/mips_ls/bin/mips-linux-gcc -MM -Wall -Wno-trigraphs -Os -pipe -fno-strict-aliasing -fno-common -fPIC -I/home/maks/i/rootfs/ROOT/usr/local/include -I../include -I../lib -I/home/maks/i/drivers/madwifi-5.0 $F >> .depends; done cc1: ../lib: Not a directory make[4]: *** [depend] Ошибка 1 make[4]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp/manager' make[3]: *** [all] Ошибка 2 make[3]: Выход из каталога `/home/maks/i/apps/gpl/tinysnmp' make[2]: *** [tinysnmp] Ошибка 2 make[2]: Выход из каталога `/home/maks/i/apps/gpl' make[1]: *** [all] Ошибка 1 make[1]: Выход из каталога `/home/maks/i/apps' make: *** [xs2] Ошибка 1 Как видим она возникает во время сборки утилиты tinysnmp. Захожу в apps/gpl/tinysnmp, сравниваю содержимое там где собирал из консоли и там где собирал через Eclipse. Вижу, что при сборке Eclipse вместо директории apps/gpl/tinysnmp/libc c четырьмя файлами (как при сборке через консоль), записывается через только один файл lib и из-за этого возникает ошибка "../lib: Not a directory", которая приводит к останову. Почему так происходит, что при запуске сборки через Eclipse вместо директории с файлами создается файл lib? Что есть спеифичное при запуске make xs2 через Eclipse, от чего возникает разница? Спасибо! Изменено 5 октября, 2009 пользователем martinez Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martinez Опубликовано 4 октября, 2009 · Жалоба Проблема решена: создал проект в директории куда был предварительно извлечен архивс с исходниками. Возможно при импорте копировалось не все или использовались какие-то модификаторы исходного текста, что дальнейшая компиляция приводила к ошибкам. Вобщем задача решена путем обхода, баг Eclipse остается. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hanchik Опубликовано 4 октября, 2009 · Жалоба martinez, и что это дало, чего в наносе нету? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martinez Опубликовано 5 октября, 2009 · Жалоба Вам судить, что есть, чего нету. Просто я выбрал эту точку как платформу для обучения. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...