LinuxForum.Fans
Тема

Сборка openwrt для eltex

Автор: soumrachnij 33 сообщений 21715 просмотров
#304257

Здравстуйте !
Возникла проблема со сборкой openwrt для eltex nte-1402-g-w.
Начну с предисловия:
Есть устройство вышеуказанное, которое ростелеком раздает бесплатно при подключении, т.е. дает в аренду.
На нем установлена прошивка x-wrt, при чем кастомная-кастомная. Что в ней даже не возможно переназначить wan на lan, ну если и возможно - значит у меня руки кривые, что скорее всего.
Так вот, ни ростелеком, ни eltex, ни mindspeed - чипы которых были взяты для устройства eltex исходники linux для сборки не дают.
Долго я искал исходники - нашел для сборки прошивки для zixel основанный на comcerto
Выкладываю то же самое перезалитое на яндекс.диск:

Вроде бы все ясно, есть прошивка - бери, собирай, шей и юзай, ан нет, не могу собрать !
Помогите СОБРАТЬ эту хрень, а то я уже две недели с ней сделать ни чего не могу.

Подскажите что делать, пожалуйста.

Собираю под ubuntu 12.10
Распаковал архив с прошивкой
Зашел в терминале в папку с прошивкой,
выполнил ./scripts/feeds update -a (в feeds.conf.default раскомментирован только luci репозиторий)
потом ./scripts/feeds install -a ( все устанавливается)
потом make menuconfig и вот тут лезет ошибка

text
make manuconfig
Checking 'working-make'... ok.
Checking 'case-sensitive-fs'... ok.
Checking 'getopt'... ok.
Checking 'fileutils'... ok.
Checking 'working-gcc'... ok.
Checking 'working-g++'... ok.
Checking 'ncurses'... failed.
Checking 'zlib'... failed.
Checking 'gawk'... ok.
Checking 'bison'... ok.
Checking 'flex'... ok.
Checking 'unzip'... ok.
Checking 'bzip2'... ok.
Checking 'patch'... ok.
Checking 'perl'... ok.
Checking 'python'... ok.
Checking 'wget'... ok.
Checking 'lzop'... ok.
Checking 'gnutar'... ok.
Checking 'svn'... ok.
Checking 'autoconf'... ok.
Checking 'gnu-find'... ok.
Checking 'getopt-extended'... ok.
Checking 'uuencode'... ok.
Checking 'ctags'... ok.
Checking 'non-root'... ok.

Build dependency: Please install ncurses. (Missing libncurses.so or ncurses.h) Build dependency: Please install zlib. (Missing libz.so or zlib.h)

Prerequisite check failed. Use FORCE=1 to override. make[1]: *** [tmp/.prereq-build] Error 1 make: *** [manuconfig] Ошибка 2

Ошибка из вывод связана видимо с отстутствием ncurses и zlib
Перед сборкой были установлены следующие пакеты :

text

libc-bin
zlib1g-dev
zlib1g
ncurses-base
libncurses5
libncurses5-dev
ncurses-bin
ncurses-term
#304260

"Оно" требует от вас, как вы сами же и заметили, ncurses и zlib, только версий не тех. что у вас в системе, а старше/младше. Экспериментируйте. Ну, а как вариант - ищет не там, где они, по мнению сборочных скриптов, лежать должны.
UPD:

"soumrachnij" написал:
[manuconfig]

И да, что это такое? Может, имелся в виду menuconfig?

#304263

А что поставить ncurses-devel ни как?

#304274
"yars" написал:
"Оно" требует от вас, как вы сами же и заметили, ncurses и zlib, только версий не тех.

бред же, не?

"i2ks" написал:
А что поставить ncurses-devel ни как?

дык, ТС вроде пишет, что поставил...

soumrachnij, проверь непосредственное наличие файлов: /usr/include/{glib.h,ncurses.h} /lib/libz.so* /usr/lib/libncurses.so*
(lib64 для некоторых дистрибутивов)
да, и ссылка на прошивку не прикрепилась что ли?

#304277
"Fat-Zer" написал:
бред же, не?

Почему бред? Какие версии этих пакетов в Ubuntu? И я не видел исходников собираемого.

#304283
"Fat-Zer" написал:
дык, ТС вроде пишет, что поставил...

в ubuntu это пакет ncurses-dev , его нет в списке.

#304284
"yars" написал:
Почему бред? Какие версии этих пакетов в Ubuntu?

обе библиотеки довольно строго свои как АПИ, так и АБИ соблюдают... да и релизятся с багфиксами и мелкими улучшениями раз в полтора года от силы.... в бубунте, само собой, последние версии...

"i2ks" написал:
в ubuntu это пакет ncurses-dev , его нет в списке.

под рукой нет бубунты, но он наверняка виртуальный для libncurses5-dev

#304293

вывод терминала:

text
sudo apt-get install ncurses-dev
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Заметьте, вместо «ncurses-dev» выбирается «libncurses5-dev»
Уже установлена самая новая версия libncurses5-dev.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.

"manuconfig" - это конечно же опеатка, make menuconfig.
Искал фалы

text

find /usr/include/ -iname glib.h (не найден)
find /usr/include/ -iname ncurses.h (найден в /usr/include/ncurses.h)

find /lib/ -iname *libz* (нашла вот сдесь: /lib/i386-linux-gnu/libz.so.1.2.7 /lib/i386-linux-gnu/libz.so.1)

find /usr/lib/ -iname *libncurses* вот вывод: /usr/lib/i386-linux-gnu/libncurses++.a /usr/lib/i386-linux-gnu/libncurses.so /usr/lib/i386-linux-gnu/libncurses.a

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

#304295

И да, дополню, Ubuntu 12.10 32 битная, с последними обновлениями, вертится в parallels desktop под mac os.
Что за пакет lib64 ? Пробовал apt-get install lib64 и libc64 - не удалось найти.

#304300
"soumrachnij" написал:
find /usr/include/ -iname glib.h (не найден)

zlib.h конечно же... описался...

"soumrachnij" написал:
Что за пакет lib64 ? Пробовал apt-get install lib64 и libc64 - не удалось найти.

не пакет, а каталог...
это к тому, что некоторые дистрибутивы amd64 хранят в {/usr,}/lib 32-х битные версии, а не нативные... не помню как с этим в бубунтах...
не обращай внимания...

"soumrachnij" написал:
Ссылка не прикрепилась, не разрешаен форум прикрепить. Видимо из-за репутации на форуме.

гмм... думал это уже убрали...

#304301

find /usr/include/ -iname zlib.h
/usr/include/zlib.h
zlib найден.

#304302

Вот не знаю, что и делать.

#304305
"soumrachnij" написал:
Вот не знаю, что и делать.

попробуй make clean и/или make mrproper
ну и заново распаковать и тоже самое прогнать..... может гадость-какую запаковали...

"soumrachnij" написал:
У меня есть две ссылки, одна от источника, другая уже мной залитая прошивка на яндекс.диск.

так и не уловил, в чём разница между версиями... если что-то самостоятельно менял, то просто сделай патчик на ориинал... если нет, то зачем на ТЫдиск залил?

[added]
и ещё попробуй make V=1 menuconfig может ещё-чего болей-менее умного скажет... или с бóльшими значениями v

#304315

Вот весь вывод:

text
/NBG5715_100AAAG2_open_code/sdk-comcerto-openwrt-6.0-1$ make clean
Checking 'working-make'... ok.
Checking 'case-sensitive-fs'... ok.
Checking 'getopt'... ok.
Checking 'fileutils'... ok.
Checking 'working-gcc'... ok.
Checking 'working-g++'... ok.
Checking 'ncurses'... failed.
Checking 'zlib'... failed.
Checking 'gawk'... ok.
Checking 'bison'... ok.
Checking 'flex'... ok.
Checking 'unzip'... ok.
Checking 'bzip2'... ok.
Checking 'patch'... ok.
Checking 'perl'... ok.
Checking 'python'... ok.
Checking 'wget'... ok.
Checking 'lzop'... ok.
Checking 'gnutar'... ok.
Checking 'svn'... ok.
Checking 'autoconf'... ok.
Checking 'gnu-find'... ok.
Checking 'getopt-extended'... ok.
Checking 'uuencode'... ok.
Checking 'ctags'... ok.
Checking 'non-root'... ok.

Build dependency: Please install ncurses. (Missing libncurses.so or ncurses.h) Build dependency: Please install zlib. (Missing libz.so or zlib.h)

Prerequisite check failed. Use FORCE=1 to override. make: *** [tmp/.prereq-build] Ошибка 1 ubuntu@virtual:~/NBG5715_100AAAG2_open_code/sdk-comcerto-openwrt-6.0-1$ make mrproper Checking 'working-make'... ok. Checking 'case-sensitive-fs'... ok. Checking 'getopt'... ok. Checking 'fileutils'... ok. Checking 'working-gcc'... ok. Checking 'working-g++'... ok. Checking 'ncurses'... failed. Checking 'zlib'... failed. Checking 'gawk'... ok. Checking 'bison'... ok. Checking 'flex'... ok. Checking 'unzip'... ok. Checking 'bzip2'... ok. Checking 'patch'... ok. Checking 'perl'... ok. Checking 'python'... ok. Checking 'wget'... ok. Checking 'lzop'... ok. Checking 'gnutar'... ok. Checking 'svn'... ok. Checking 'autoconf'... ok. Checking 'gnu-find'... ok. Checking 'getopt-extended'... ok. Checking 'uuencode'... ok. Checking 'ctags'... ok. Checking 'non-root'... ok.

Build dependency: Please install ncurses. (Missing libncurses.so or ncurses.h) Build dependency: Please install zlib. (Missing libz.so or zlib.h)

Prerequisite check failed. Use FORCE=1 to override. make[1]: *** [tmp/.prereq-build] Error 1 make: *** [mrproper] Ошибка 2 ubuntu@virtual:~/NBG5715_100AAAG2_open_code/sdk-comcerto-openwrt-6.0-1$ make V=1 menuconfig Checking 'working-make'... ok. Checking 'case-sensitive-fs'... ok. Checking 'getopt'... ok. Checking 'fileutils'... ok. Checking 'working-gcc'... ok. Checking 'working-g++'... ok. Checking 'ncurses'... failed. Checking 'zlib'... failed. Checking 'gawk'... ok. Checking 'bison'... ok. Checking 'flex'... ok. Checking 'unzip'... ok. Checking 'bzip2'... ok. Checking 'patch'... ok. Checking 'perl'... ok. Checking 'python'... ok. Checking 'wget'... ok. Checking 'lzop'... ok. Checking 'gnutar'... ok. Checking 'svn'... ok. Checking 'autoconf'... ok. Checking 'gnu-find'... ok. Checking 'getopt-extended'... ok. Checking 'uuencode'... ok. Checking 'ctags'... ok. Checking 'non-root'... ok.

Build dependency: Please install ncurses. (Missing libncurses.so or ncurses.h) Build dependency: Please install zlib. (Missing libz.so or zlib.h)

Prerequisite check failed. Use FORCE=1 to override. make: *** [tmp/.prereq-build] Ошибка 1

#304399

проверь ручками, на что он ругается...

text

    echo 'int main(int argc, char **argv) { initscr(); return 0; }' | gcc -include ncurses.h -x c -o /tmp/a.out -lncurses -
    echo 'int main(int argc, char **argv) { gzdopen(0, "rb"); return 0; }' | gcc -include zlib.h -x c -o /tmp/a.out -lz -

[взято из include/prereq-build.mk]

#304857

Вот выводы команд:

text
ubuntu@virtual:~/NBG5715_100AAAG2_open_code/sdk-comcerto-openwrt-6.0-1$ echo 'int main(int argc, char **argv) { initscr(); return 0; }' | gcc -include ncurses.h -x c -o /tmp/a.out -lncurses -
/tmp/ccjHEJfa.o: In function `main':
:(.text+0x7): undefined reference to `initscr'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1

ubuntu@virtual:~/NBG5715_100AAAG2_open_code/sdk-comcerto-openwrt-6.0-1$ echo 'int main(int argc, char **argv) { gzdopen(0, "rb"); return 0; }' | gcc -include zlib.h -x c -o /tmp/a.out -lz - /tmp/cc5kK23R.o: In function `main': :(.text+0x19): undefined reference to `gzdopen' collect2: ошибка: выполнение ld завершилось с кодом возврата 1

Может ещё что-то установить нужно ?

#304891
"soumrachnij" написал:
Может ещё что-то установить нужно ?

что-то в системе поломано... то ли библиотеки кривые, то ли линкер с ними не правильно работает...
ничего в обход apt не ставил?
пока затрудняюсь сказать, в чём причина...

покажи выводы:

text
uname -a
readlink -f /usr/bin/ld
gcc -v
objdump -T $(find /lib -iname 'libz.so*')
objdump -T $(find {/usr,}/lib -iname 'libncurses.so*')

если objdump'а нет, то установи... большие простынки на pastebin заливай...

ЗЫ: если копаться и выяснять, в чём причина не интересно и нет ничего важного, то можно просто переустановить систему...

Войдите или зарегистрируйтесь, чтобы ответить.