PDA

Bekijk de volledige versie : Entware - новый репозиторий для роутеров (MIPS)



Pages : [1] 2 3 4 5 6

ryzhov_al
27-09-2011, 15:08
Entware - новый репозиторий для роутеров (MIPS)

Коллеги, начиная с r3727 (http://code.google.com/p/wl500g/source/detail?r=3727) основным источником ПО для роутера является наш собственный репозиторий пакетов Entware (http://code.google.com/p/wl500g-repo/).

Он призван заменить собой Optware (http://en.wikipedia.org/wiki/Optware) и сделать доступным для большого круга пользователей репозиторий OpenWRT (https://openwrt.org/)
- наиболее популярного и объёмного набора ПО на сегодняшний день.

Его можно использовать на тех прошивках, где раньше было предусмотрено использование Optware, включая TomatoUSB, DD-WRT, asuswrt и клоны, Padavan'овскую и другие.

Для использования репозитория Entware необходимо:

1. Смонтировать директорию /opt на какой-либо (пустой!) носитель/папку и выполнить:

$ cd /opt
$ wget -qO - http://old.entware.net/binaries/mipselsf/installer/entware_install.sh | sh
после чего будут установлены менеджер пакетов opkg, базовые библиотеки uClibc и обновлён список доступных пакетов.

2. Посмотреть список доступных пакетов и установить те пакеты, которые вам интересны, например, mc:

$ opkg list
$ opkg install mc
Всё!

По мере развития репозиторий будет пополняться новыми пакетами, ритмичность обновления - приблизительно раз в месяц.
---

Update. Репозиторий давно вышел за пределы прошивки и используется на куче MIPS/ARM/Intel устройств. Обсуждение репозитория теперь здесь (http://forums.zyxmon.org/viewforum.php?f=5).

ryzhov_al
28-09-2011, 19:01
Кого не пугает язык потенциального противника - welcome (http://code.google.com/p/wl500g-repo/source/browse/trunk/INSTALL).

Для пересборки репозитория Openwrt необходима стандратная среда компиляции linux, 12Гб свободного места на диске и ~5 часов свободного времени:

$ mkdir ~/openwrt
$ cd ~/openwrt
$ svn co http://wl500g-repo.googlecode.com/svn/trunk/ ./rtn
$ cd ./rtn
$ make

Более подробно шаги сборки можно посмотреть в Makefile'е. В общих чертах:

выкачивается энтузиасткая прошивка - она используется для сборки тулчейна и пакетов, завязанных на ядро,
конфигурируется прошивка - ровно по инструкции (http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware) на wiki,
закачивается энтузиасткий тулчейн, патчится, компилируется,
разворачивается среда сборки OpenWRT Buildroot (http://wiki.openwrt.org/about/toolchain) вместе с правилами сборки уже конкретных пакетов,
на Buildroot и Makefile'ы пакетов накладываются патчи для совместимости с нашими роутерами и выбранными путями расположения софта,
с помощью подготовленного ранее тулчейна собираются пакеты.

ryzhov_al
29-09-2011, 05:52
Для посетивших топик впервые.

Ниже приведены надёрганные из различных тем этого форума посты, которые в итоги привели к идее появления нового репозитория.

ryzhov_al
03-10-2011, 07:32
Коллеги, правильно ли я понимаю, что нам не светит собрать актуальные libtorrent 0.12.9/rtorrent 0.8.9 из-за плотной завязке на отсутствующие posix_memalign\posix_fallocate\epoll и пр?

libtorrent 0.12.9 успешно собирается, но сборка rtorrent 0.8.9 не идёт из-за жалоб на отсутствие epoll и пр.

Линкова устаревшего rtorrent 0.8.6 с обновлённой libtorrent 0.12.9 справедливо ругается на отсутствие необходимых символов в последней.

lly
03-10-2011, 07:45
Коллеги, правильно ли я понимаю, что нам не светит собрать актуальные libtorrent 0.12.9/rtorrent 0.8.9 из-за плотной завязке на отсутствующие posix_memalign\posix_fallocate\epoll и пр?

Поскольку ты задал этот вопрос в теме про кросс-компиляцию, позволю себе вклиниться ;)

Если ты говоришь про универсальную сборку под optware для прошивок на ядрах 2.4, то боюсь ты прав - над затычками придётся много поработать, особенно epoll. Не вижу переспектив.

А если ты готов смотреть в сторону 2.6 only, то есть варианты:

обновлять optware тулчейн самостоятельно, делать свою ветку на nslu2-linux, пропихивать это текущим мейнтейнерам
привязываться к нашему тулчейну в котором уже всё есть (заодно будет кому потестировать posix_fallocate :p)


P.S. И это одна из причин, почему мы заморозили ветку 2.4 - софт.

ryzhov_al
03-10-2011, 07:57
В связи с тем, что сборка актуальной версии rtorrent пока для меня не представляется возможной (http://www.wl500g.info/showpost.php?p=238371&postcount=70), в репозитории остаётся только один универсальный torrent-клиент в лице Transmission. Желание иметь хоть какую-то альтернативу подталкивает меня к сборке Deluge в версии daemon + web interface. Останавливает то, что он завязан на Python и Rasterbat libtorrent (http://www.rasterbar.com/products/libtorrent/), который в свою очередь, завязан на такую тяжеловесную вещь как Boost C++ Libraries (http://sourceforge.net/projects/boost/files/boost/1.36.0/).

Есть (http://filodej.blogspot.com/2008/07/wmu-6500fs-deluge-torrent-part-ii.html) информация об успешных попытках сборки Deluge на Embedded-устройствах, но боюсь, что на выходе получится адский тихоходный паровоз.

И если так, то что в этих ваших линуксах может претендовать на замену transmission? А, отцы? Требования:

относительная легковесность,
актуальность,
с web-интерфейсом.

ryzhov_al
03-10-2011, 08:06
А если ты готов смотреть в сторону 2.6 only, то есть варианты:
*ryzhov_al, подавивился чаем*

Package: rtorrent
Depends: libtorrent, ncursesw, libcurl, xmlrpc-c, zlib

Package: libtorrent
Depends: openssl, libsigc++

Package: ncursesw
Depends: ncurses

Package: libcurl
Depends: openssl, zlib

Package: xmlrpc-c
Depends: libcurl, libxml2, openssl, zlib
Ну не знаю, люблю ли я с такой силой торренты. Правда не знаю...

lly
03-10-2011, 08:17
*ryzhov_al, подавивился чаем*

Ну не знаю, люблю ли я с такой силой торренты. Правда не знаю...
Если не ты, то кто? :cool:

Повторюсь, стенд optware протух до невозможности, посему варианта два - либо менять его, либо строить своё отдельное здание.

По хорошему надо бы скооперироваться с OpenWRT'шниками (т.к. они давно бесповоротно перешли на 2.6 + uClibc 0.9.32) и Tomatousb (реинкарнация Tomato от teddy_bear, ray123, Toastman, и др.) и осуществить тихий военный переворот в Optware ;)

Novik
03-10-2011, 08:49
Коллеги, правильно ли я понимаю, что нам не светит собрать актуальные libtorrent 0.12.9/rtorrent 0.8.9 из-за плотной завязке на отсутствующие posix_memalign\posix_fallocate\epoll и пр?

Не должно там быть этих завязок. Надо дефайны при сборке корректно расставить -
#undef USE_EPOLL, #undef HAVE_POSIX_MEMALIGN, #undef HAVE_FALLOCATE и т.п. По идее, всем этим configure должно заниматься, почему у Вас не занимается - не знаю.
Вот насчет pthreads, которую 0.8.9 таки да, требует, не знаю - возможно, проблемы и будут.

ryzhov_al
03-10-2011, 14:07
В продолжение беседы (http://www.wl500g.info/showpost.php?p=238376&postcount=73).

Если не ты, то кто? :cool:

Повторюсь, стенд optware протух до невозможности, посему варианта два - либо менять его, либо строить своё отдельное здание.
OK then. Позже оценю возможность отламывание от тулчейна optware make-файлов сборки и приделывания их к энтузиасткому тулчейну.
Можно будет даже помечтать об автоматизированной пересборке большинства пакетов optware'овского репозитория (вариант №1).

По хорошему надо бы скооперироваться с OpenWRT'шниками (т.к. они давно бесповоротно перешли на 2.6 + uClibc 0.9.32) и Tomatousb (реинкарнация Tomato от teddy_bear, ray123, Toastman, и др.) и осуществить тихий военный переворот в Optware ;)А может бросить optware разлагаться дальше? Он ведь в первую очередь был создан для популяризации Linksys NSLU2. Что нам мешает использовать готовые репозитории Debian или OpenWRT (вариант №2)?

Да, в Debian\OpenWRT предполагается наличие в определённых местах файловой системы папок /usr, /etc и прочих, открытых на запись.
Да, в OpenWRT каждых чих решается с помощью пакета.
Да, не будут работать ряд пакетов, плотно завязанных на ядро или сетевые интерфейсы.

Но разве эти вопросы принципиально не решаемые?

Давайте определимся с вариантом развития и будем его продвигать.

PS Под нами я подразумеваю нас, специалистов по ИТ с мировым именем:).

lly
03-10-2011, 14:18
OK then. Позже оценю возможность отламывание от тулчейна optware make-файлов сборки и приделывания их к энтузиасткому тулчейну.
Думаю что достаточно просто. Также можно слямзить OpenWRT'шную систему сборки пакетов с выкачкой исходников с авторского сайта. В тулчейн я взял именно их скрипты, чтобы не изобретать велосипед. Доступ в SVN ради такого дела дадим, не вопрос.


Можно будет даже помечтать об автоматизированной пересборке большинства пакетов optware'овского репозитория (вариант №1).
Для этого потребуется или самому собирать стенд, или идти на поклон vectorm, wpte, Unlimited


Давайте определимся с вариантом развития и будем его продвигать.
Здесь больше всего зависит от того, кто это будет реализовывать. Мы можем предложить варианты, а выбирать тебе(и кто еще будет в инициативной группе).

P.S. Даже librt согласен в прошивку включить ;)

Zyxmon
03-10-2011, 18:02
....
Да, в Debian\OpenWRT предполагается наличие в определённых местах файловой системы папок /usr, /etc и прочих, открытых на запись.
....
Это не так уж и страшно (openwrt). У пакетов openwrt есть и преимущества и недостатки по сравнению с optware.
Для некоторых пакетов openwrt я уже сделал или патчи, или изменения в Makefile'ах для замены /etc и подобного на другие папки.
Если дело пойдет в этом направлении - пользуйтесь http://code.google.com/p/zyxel-keenetic-packages/

ryzhov_al
03-10-2011, 18:56
Для некоторых пакетов openwrt я уже сделал или патчи, или изменения в Makefile'ах для замены /etc и подобного на другие папки.В первом приближении мне видятся два варианта:

подменить в структуре сборки optware тулчейн uclibc+gcc, приживив тулчейн энтузиастов. При этом не придётся править никакие пути, всё останется в директории /opt.
упросить создателей прошивки сделать корневую папку файловой системы (упрощаю) доступной на запись. Что позволит использовать сторонние mipsel-репозитории.

Оба варианта не требуют написания патчей к каждому из пакетов. В OpenWRT тех пакетов, напомню...

$ wget -q http://downloads.openwrt.org/backfire/10.03/brcm47xx/packages/Packages.gz
$ zcat ./Packages.gz | grep "^Package:" | wc -l
2377
...чуть более, чем дофига.

Хочу также заметить, что второй вариант мне видится не менее интересным, чем первый. Не нужно будет городить свой репозиторий, необходимо лишь грамотно подключить сторонний. Вон, тов.linvinus эксплуатирует (http://www.wl500g.info/showthread.php?t=25330) полноценный Debian на RT-N16 и обновляется по apt-get upgrade. Я приглашу его к нашему обсуждению для того, чтобы он выразил своё мнение по поводу эксплуатации Debian на роутере. Переходом на большой Debian мы бы убили двух зайцев: старого - в лице optware, и кастрированного - в лице uClibc. На вскидку в Debian@RT-N16 видятся три проблемы:

полновесного libc, стиснённого окружением mipsel @400MHz/128Mb RAM,
общепринятых имён сетевых интерфейсов и других моментов, принятых по умолчанию в Debian.
использования debian-софтом возможностей, появившихся в ядрах позже 2.6.22.19.

lly
03-10-2011, 19:09
В первом приближении мне видятся два варианта:
подменить в структуре сборки optware тулчейн uclibc+gcc, приживив тулчейн энтузиастов. При этом не придётся править никакие пути, всё останется в директории /opt.
Вопрос с директориями для монтирования можно разрулить как вам угодно, насоздавать и дело с концом (Но чур не сотню! :D)


упросить создателей прошивки сделать корневую папку файловой системы (упрощаю) доступной на запись. Что позволит использовать сторонние mipsel-репозитории.

Нет, это неприемлемый вариант. рут - только RO. Делать как в OpenWRT /usr jffs2 вариант тяжёлый для чайников(фиг восстановишь без знаний) и роутеров с малым количеством флэша.

Мы никак не сподобимся заменить flashfs(/usr/local) на jffs2, вот это актуально.

Насчёт debian'а - IMHO он не нужен 99% пользователей роутера. Ну вот скажи - чего тебе лично не хватает в uClibc 0.9.32? Про версию 0.9.19 из оригинальных WL-500 прошивок можешь не говорить. :rolleyes:

ryzhov_al
03-10-2011, 19:28
Ну вот скажи - чего тебе лично не хватает в uClibc 0.9.32?Мне? Честно говоря, я всего лишь хотел собрать обновлённый rtorrent, но за полдня успел встать на стул и проездить по ушам местной аудитории о глобальных задачах, стоящих перед партией.
Задачу с rtorrent'ом можно разрешить следующими путями:

пересобрать зависимости новым тулчейном и использовать получившийся продукт гордо, но в глубокой тайне, как в бородатом анекдоте (http://zxpress.ru/article.php?id=2634). В тайне потому, что обнародование такого кустарного детища вызовет силикатную диарею почти у любого форумчанина.
сделать свой собственный мелкий репозиторий по примеру Zyxmon, содержащий заплатанный софт из основного репозитария. Менее кустарно, но по отношению к большинству всё равно не гуманно. решить задачу глобально, избавившись от несвежих пелёнок gcc 4.1.1 + uClibc 0.9.28 + kernel 2.4.x одним из двух способов, изложенных постом выше.




Вопрос с директориями для монтирования можно разрулить как вам угодно, насоздавать и дело с концом (Но чур не сотню! :D)
ЗЫ Расположение папок мы когда-то "канонизировали (http://www.wl500g.info/showpost.php?p=222330&postcount=82)".

Zyxmon
03-10-2011, 19:37
подменить в структуре сборки optware тулчейн uclibc+gcc, приживив тулчейн энтузиастов. При этом не придётся править никакие пути, всё останется в директории /opt.

C моей колокольни принципиальных проблем тут не видно.


...чуть более, чем дофига.

IMHO - это специфика пакетов openwrt - подробить все на мелкие части, выкинуть man'ы и т.п., уменьшить размер - насколько возможно, чтобы поместить в "overlay"=jffs2.

ryzhov_al
03-10-2011, 20:06
...чуть более, чем дофига.
IMHO - это специфика пакетов openwrt - подробить все на мелкие части, выкинуть man'ы и т.п., уменьшить размер - насколько возможно, чтобы поместить в "overlay"=jffs2.Ну ладно, вернёмся к optware:

$ wget -q http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/Packages.gz
$ zcat ./Packages.gz | grep "^Package:" | wc -l
1251То есть чуть менее, чем дофига в отличие от предыдущего случая. Всё равно я не готов клепать патчи к каждой софтине.

vectorm
03-10-2011, 20:09
Если будет автоматический инструмент - место и его работу обеспечу, но сервак на Debian 5.0 со всеми вытекающими, переставлять немного проблематично.
Канал сотня дуплекс. Гигов 50 RAID1 найдется.
Посильную помощь в рамках способностей окажу, но не всегда есть время.

Zyxmon
03-10-2011, 20:35
...То есть чуть менее, чем дофига в отличие от предыдущего случая. Всё равно я не готов клепать патчи к каждой софтине.
Может быть я не врубился, влез посередине разговора вечером. ИМХО патчить нужно будет гораздо меньше, чем при том подходе, что у меня.

Я не стал собирать optware пакеты для кинетика по простой причине - отсутствовала папка /opt в rootfs. Перепаковать прошивку (с /opt) труда не составляло. Но т.к. разработчики от zyxel наотрез отказались добавлять /opt - забил. Сейчас уже привык к openwrt пакетам, как правило сделать патч труда не составляет. Sorry за небольшой offtopic.

linvinus
04-10-2011, 08:59
В первом приближении мне видятся два варианта:

подменить в структуре сборки optware тулчейн uclibc+gcc, приживив тулчейн энтузиастов. При этом не придётся править никакие пути, всё останется в директории /opt.
упросить создателей прошивки сделать корневую папку файловой системы (упрощаю) доступной на запись. Что позволит использовать сторонние mipsel-репозитории.

Оба варианта не требуют написания патчей к каждому из пакетов. В OpenWRT тех пакетов, напомню...

$ wget -q http://downloads.openwrt.org/backfire/10.03/brcm47xx/packages/Packages.gz
$ zcat ./Packages.gz | grep "^Package:" | wc -l
2377
...чуть более, чем дофига.

Хочу также заметить, что второй вариант мне видится не менее интересным, чем первый. Не нужно будет городить свой репозиторий, необходимо лишь грамотно подключить сторонний. Вон, тов.linvinus эксплуатирует (http://www.wl500g.info/showthread.php?t=25330) полноценный Debian на RT-N16 и обновляется по apt-get upgrade. Я приглашу его к нашему обсуждению для того, чтобы он выразил своё мнение по поводу эксплуатации Debian на роутере. Переходом на большой Debian мы бы убили двух зайцев: старого - в лице optware, и кастрированного - в лице uClibc. На вскидку в Debian@RT-N16 видятся три проблемы:

полновесного libc, стиснённого окружением mipsel @400MHz/128Mb RAM,
общепринятых имён сетевых интерфейсов и других моментов, принятых по умолчанию в Debian.
использования debian-софтом возможностей, появившихся в ядрах позже 2.6.22.19.


Всем привет!
Я не совсем понимаю чего вы хотите достичь?
У вас хороший роутер с хорошей веб мордой, и он как законченное устройство отлично работает.
Главное ваше преимущество в том что у вас официальные драйвера от броадкома. И решены основные недочёты официальной прошивки.

Внедрить в него ещё и возможность ставить пакеты это конечно здорово, но тогда вам нужно будет тянуть на себе все проблемы связанные с портированием.
Есть ли среди вас всемогущий Патрик? И на кого тогда будет рассчитан дистрибутив?

К тому же Openwrt уже поддерживает rt-n16. патчи и образы тут http://www.znau.edu.ua/temp/asus-rt-n16/

Если ставить дебиан, то это уже не домашний роутер, а полноценный сервер, со всеми вытекающими. Т.е. для его использования нужна соответствующая квалификация, или как минимум большое желание ковыряться в коммандной строке.

Если брать второй вариант то всё уже сделано см проект http://www.debwrt.net/

Если идти с другой стороны, как шёл я. У меня был роутер и мне нужно было иметь возможность настроить на нём дополнительные сервисы.
1. я упёрся в виртуальные директории и извращения с /tmp/etc и т.п.
2. отсутствие готовых пакетов.

Первое частично можно разрешить если загружаться полностью с hdd
но тогда желательно чтобы не было извращений которые необходимы для работы без hdd

Со вторым сложнее, т.к. проблемы в кострированной libc и возможности заменить её нет т.к. закрытые бинарники от броадкома скомпилены под неё.
Я по началу изворачивался с LD_PRELOAD, но упёрся в iptables которая не поддерживала необходимые команды, в результате shorewall падал через раз при старте.

Самый простой вариант, как мне кажется, просто добавить возможность запуска init с chroot в котором уже либо debian либо openwrt
Только если пользователь захочет переконфигурировать robo-switch то ваша веб морда нормально работать не сможет, поэтому лучше в неё встроить максимум возможностей по конфигурированию сети, чтобы не делать этого из chroot.
И добавить возможность выключить все сервисы типа dnsmaq и pppt.
В остальном проблем быть не должно.

ryzhov_al
04-10-2011, 09:51
Спасибо, что присоединились к нам.
Я не совсем понимаю чего вы хотите достичь?
У вас хороший роутер с хорошей веб мордой, и он как законченное устройство отлично работает....с репозиторием Optware, который постепенно теряет актуальность, так как завязан на gcc 4.1.1 + uClibc 0.9.28 и рассчитан на работу с kernel 2.4, поэтому...

Главное ваше преимущество в том что у вас официальные драйвера от броадкома. И решены основные недочёты официальной прошивки....стоит задача при сохранении этих преимуществ обеспечить возможность пользования более современным софтом в лице:

либо обновлёного репозитория optware, пересобранного с помощью актуального тулчейна,
либо готового стороннего репозитория, рассчитанного на современную uClibc и kernel 2.6.
Прошивку модифицировать не планируется: она продолжает со своим функционалом жить своей жизнью, а софт стороннего репозитория - своей. Другими словами, речь идёт о подключении внешнего репозитория. Ровно так же, как сейчас используется optware.

Внедрить в него ещё и возможность ставить пакеты это конечно здорово, но тогда вам нужно будет тянуть на себе все проблемы связанные с портированием.
Есть ли среди вас всемогущий Патрик? И на кого тогда будет рассчитан дистрибутив?
В связи с тем, что Всемогущий Патрик в последнее время разленился и не хочет становиться мейнтейнером собственного обновлёного репозитория optware (вариант a), то нами рассматривается возможность подключения готовых существующих репозиториев. Выбор среди которых, кстати, тоже не велик:

OpenWRT. Рассчитан на большой класс устройств и тоже имеет своё собственное наследие. В нём, кстати, версии libtorrent\rtorrrent также не актуальны, как и в репо Optware.
Репозиторий Debian. Актуальный и богатый, но, как подсказывают коллеги, полнокровный libC на embedded-устройствах выглядит громоздким.


Если брать второй вариант то всё уже сделано см проект http://www.debwrt.net/
Спасибо за ссылку. Как раз там можно будет почерпнуть материал о приживлении репозитория debian к ядру openwrt.

Наш разговор возник на почве вечного стремления к перфекционизму. Вроде бы можно жить дальше с устаревшим репозиторием и тулчейном Optware, но при компиляции устаёшь натыкаться на отсутствие реализации epoll, posix_memalign\posix_fallocate и других механизмов.

Zyxmon
04-10-2011, 10:38
IMHO Следует сначала определить, куда (в какие папки) устанавливаются дополнительные пакеты-приложения.
1. Есть optware - все ставится в /opt (симлинк или подмонтировано mount -o bind). Приложения ищут shared libraries прежде всего с помощью пробитого внутрь rpath.
2. Есть openwrt - предполагает или загрузку с usb и стандартные пути установки, или установку в overlay. Это не подходит.

C п.1 все в целом понятно. В варианте п.2 т.к. rootfs readonly ("Нет, это неприемлемый вариант. рут - только RO" (C) lly) нужно часто патчить исходники. (В optware это уже сделано, если было нужно).

Вот и нужно сначала определить - что из этого более приемлемо.

PS Проект http://www.debwrt.net/ подробно не смотрел, не скажу.

lly
04-10-2011, 10:41
C п.1 все в целом понятно. В варианте п.2 т.к. rootfs readonly нужно часто патчить исходники. (В optware это уже сделано, если было нужно).
Если есть нормальный configure или параметры в Makefile, то ставится --prefix=/opt и ничего патчить не нужно. /tmp и /var естественно RW.

Zyxmon
04-10-2011, 10:59
Если есть нормальный configure или параметры в Makefile, то ставится --prefix=/opt и ничего патчить не нужно. /tmp и /var естественно RW.
К сожалению --prefix в configure не всегда достаточно. Хорошо бы еще и /etc RW

linvinus
04-10-2011, 11:09
Понятно, тогда вам нужно пересобрать все пакеты как они были только с новым тулчейном, и со всеми костылями которые были раньше.

debwrt вам не поможет, его задача собрать ядро и необходимые утилиты под дебиан, собрать минимальную прошивку которая будет грузить линукс с харда, а так же сформировать корневую директорию.
Посути это надстройка над openwrt

Лучше всего сосредоточить силу на тулчейне по аналогии с openwrt чтобы можно было легко добавлять пакеты для сборки.

Фактически вам нужно портировать вашу сборку под опенврт, т.е. ваш собственный target, и собственный toolchain , а затем портировать пакеты которые будут зависеть от этого тулчейна.
Ничего сложно в этом нет.

По сути openwrt это очень гибкий набор правил и make-файлов для сборки.

ryzhov_al
04-10-2011, 11:11
IMHO Следует сначала определить, куда (в какие папки) устанавливаются дополнительные пакеты-приложения.Определили (http://www.wl500g.info/showpost.php?p=222330&postcount=82) ранее. Это частности.

lly
04-10-2011, 11:19
К сожалению --prefix в configure не всегда достаточно. Хорошо бы еще и /etc RW

Извиняюсь, не подумал что может быть иначе ;) У прошивок Олега и производных /etc это симлинк на /tmp/etc (ramfs, tmpfs) заполняемый при старте из rootfs, nvram и/или flashfs (.tar.gz архив в отдельном разделе mtd)


Определили (http://www.wl500g.info/showpost.php?p=222330&postcount=82) ранее. Это частности.
Если мы замахиваемся на замену ВСЕГО Optware, то я не вижу смысла держать одновременно и старый и новый варианты. Мы меняем ссылки в ipkg.conf с nslu2-linux на новый репозитарий и юзаем /opt/lib безо всяких гвоздей.

ryzhov_al
04-10-2011, 11:20
Понятно, тогда вам нужно пересобрать все пакеты как они были только с новым тулчейном, и со всеми костылями которые были раньше.Верно!

Фактически вам нужно портировать вашу сборку под опенврт, т.е. ваш собственный target, и собственный toolchain , а затем портировать пакеты которые будут зависеть от этого тулчейна.Угу. Или использовать тулчейн энтузиастов со скриптами\makefile'ами OpenWRT.

Ничего сложно в этом нет.На мой взгляд ключевой проблемой будет поиск Всемогущего Патрика, который будет неустанно поддерживать новый target в актуальном состоянии. В отличие от разовой работы по организации target'а.

Только есть одна засада: несмотря на привлекательный актуальный тулчейн OpenWRT, у них по умолчанию принято другое расположение файлов (/etc, /usr), которое не совместимо с энтузиасткой прошивкой. Выходит, что новым target'ом не обойтись.

В свете этого наиболее жизнеспособным видится путь: тулчейн энтузиастов + скрипты\makefile'ы OpenWRT. Причём придётся написать средство для трансляции обновлений, приходящих в OpenWRT для своего репозитория.

lly
04-10-2011, 11:35
На мой взгляд ключевой проблемой будет поиск Всемогущего Патрика, который будет неустанно поддерживать новый target в актуальном состоянии. В отличие от разовой работы по организации target'а.
Самая сложная работа здесь будет - это организация доступа доверенным лицам на обновление репозитария и внедрение хоть какого-нибудь сертификата для проверки целостности, чтобы не вышло как с kernel.org.

А об остальном не стоит особо беспокоится - мы поддерживаем свой тулчейн в живом состоянии, а если автор оригинального пакета его сломает, то самым правильным будет откатиться, т.к. всё чинить своими силами нереально.

Zyxmon
04-10-2011, 11:54
Извиняюсь, не подумал что может быть иначе ;) У прошивок Олега и производных /etc это симлинк на /tmp/etc (ramfs, tmpfs) заполняемый при старте из rootfs, nvram и/или flashfs (.tar.gz архив в отдельном разделе mtd)
Беглый поиск по папке sources (в optware) показывает, что на все пакеты около 100 патчей, которые меняют, например, /etc на /opt/etc или "/var/lib/vnstat" на "/opt/var/lib/vnstat" (расположение базы vnstat) и т.п.. Это очень мало на фоне общего числа пакетов. Но вот автоматически транслировать для таких приложений обновления может быть проблематичным.

По поводу скриптов openwrt:
Для смены prefix при вызове configure следует отредактировать
скрипт include/package-defaults.mk, изменить в нем CONFIGURE_PREFIX и подправить CONFIGURE_ARGS. Возможно, следует добавить rpath к переменной CONFIGURE_VARS (LDFLAGS). Внешний тулчейн прикручивается к openwrt через make menuconfig. Часть пакетов openwrt после таких простейших правок соберутся корректно.

ryzhov_al
20-10-2011, 18:01
Коллеги, в продолжение разговора (http://www.wl500g.info/showpost.php?p=238450&postcount=199) про обновление репозитория Optware.

Я сделал для Optware свой тестовый target (platforms/packages-xxx.mk и platforms/toolchain-xxx.mk). Это в теории позволило бы автоматизированно синхронизироваться с http://svn.nslu2-linux.org/svnroot/optware/trunk и компилировать новшества автоматически. Но в этом чёртовом Optware ничего автоматизированно не собирается! Причём в оригинальных target'ах тоже. Ссылки на исходники в каждом втором пакете потеряли актуальность и пересобрать автоматизированно хотя бы половину репозитория не представляется возможным. А выполнять эту работу вручную бесперспективно.

В процессе анализа /usr/bin/ipkg.sh был удивлён дальновидностью авторов прошивки. По умолчанию в /usr/etc/ipkg.conf "зашит" репозиторий optware, но для ipkg.sh можно указать переменную среды IPKG_CONF_DIR, содержащую конфиг со своими репозиториями.

Хочу заметить, что древний target wl500g, созданный Олегом (?) опирался на ту же идею: сборку пакетов родным для прошивки тулчейном. Он по прежнему ссылается на /opt/brcm/hndtools-mipsel-uclibc/bin/* и по идее должен оставаться работоспособным по сей день при правильном расположении (http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware) энтузиасткого тулчейна.

lly
20-10-2011, 18:13
Кратко: считаю идею нежизнеспособной
А зря...


Я сделал для Optware свой тестовый target (platforms/packages-xxx.mk и platforms/toolchain-xxx.mk). Это в теории позволило бы автоматизированно синхронизироваться с http://svn.nslu2-linux.org/svnroot/optware/trunk и компилировать новшества автоматически. Но в этом чёртовом Optware ничего автоматизированно не собирается!

Вот тут и кроется причина твоего пессимизма - синхронизироваться с Optware НЕ НАДО. Однократная миграция с, увы, ручным трудом. И всё!

Если очень хочется с кем-то синхронизироваться - OpenWRT. У них проект живой.


На мой взгляд, затея повторит судьбу target'а Олега. Она потеряет актуальность за давностью времени без постоянного ручного вмешательства.
Без развития и минимального ручного вмешательства - да, потеряет актуальность, как и Optware.

ryzhov_al
20-10-2011, 18:17
Вот тут и кроется причина твоего пессимизма - синхронизироваться с Optware НЕ НАДО. Однократная миграция с, увы, ручным трудом. И всё!А дальше?! Как мне поддерживать его актуальность? Я думал это выполнять через svn update http://svn.nslu2-linux.org/svnroot/optware/trunk. Не стану же я вручную отслеживать появление новых версий софта?

ЗЫ Я пока не поставил запятую в заголовке предыдущего поста:)

lly
20-10-2011, 18:23
А дальше?! Как мне поддерживать его актуальность? Я думал это выполнять через svn update http://svn.nslu2-linux.org/svnroot/optware/trunk. Не стану же я вручную отслеживать появление новых версий софта?

Ты же видишь, что в Optware это автоматом не делается? В OpenWRT это также делается группой людей. Тупо обновлять версию софта без минимальной проверки это просто опасно!

Если есть ведущий, он может коммитить по аргументированным заявкам телезрителей новые версии, а иначе никак :)

ryzhov_al
20-10-2011, 18:36
Ты же видишь, что в Optware это автоматом не делается? В OpenWRT это также делается группой людей. Тупо обновлять версию софта без минимальной проверки это просто опасно!

Если есть ведущий, он может коммитить по аргументированным заявкам телезрителей новые версии, а иначе никак :)Леонид, я прекрасно осознаю, что это делать придётся мне одному, как автору идеи. Просто не уверен, что "потяну" это.

Уже написал скрипт перехода на новый репозиторий, скомпилировал базовые пакеты, вроде ipkg с новым репозиторием и смоделировал беспроблемный переход на него. Дело, за "малым" - за наполнением репозитория! С наскоку пересобрать репозиторий не вышло, вот я и занудел.

Будем посмотреть, но боюсь вываливать здесь кучу вопросов по ошибкам компиляции будет несправедливо по отношению к окружающим.

lly
20-10-2011, 18:42
Просто не уверен, что "потяну" это.
По собственному опыту это больше зависит от настроя и, если кто-то
вызвется помогать, будет на порядок легче. Неужели ты думаешь, что начиная правки прошивки Олега на новогодних каникулах 2008 года я предполагал, что всё придёт к ТАКОМУ? :D


Будем посмотреть, но боюсь вываливать здесь кучу вопросов по ошибкам компиляции будет несправедливо по отношению к окружающим.
В отдельной теме, особливо если сперва прогонишь текст ошибки через гуглопоиск, почему бы и нет.

ryzhov_al
20-10-2011, 18:52
По собственному опыту это больше зависит от настроя и, если кто-то
вызвется помогать, будет на порядок легче. Неужели ты думаешь, что начиная правки прошивки Олега на новогодних каникулах 2008 года я предполагал, что всё придёт к ТАКОМУ? :D
Спасибо за поддержку, правда.

Восстанавливаю стертый проект (http://code.google.com/p/wl500g-repo/) на googlecode и соответсвующий блог.


В отдельной теме, особливо если сперва прогонишь текст ошибки через гуглопоиск, почему бы и нет.Завёл блог, чтобы не флудить тут. На мой взгляд, большинству форумчан не будет интересен прогресс построения репозитория. Как (и если) обнародую результат, так заведём отдельную тему.

lly
20-10-2011, 18:59
Завёл блог, чтобы не флудить тут. На мой взгляд, большинству форумчан не будет интересен прогресс построения репозитория.
А может кому-то будет? Ключевые моменты стоит однозначно здесь писать.
Попробуй пообщаться с Zyxmon'ом, может у него какие оригинальные мысли и наработки есть.

P.S. rpath задаёт наиболее приоритетный путь и не отменяет стандартные пути поиска библиотек, см. "man ld"

Zyxmon
20-10-2011, 19:10
Я сделал для Optware свой тестовый target (platforms/packages-xxx.mk и platforms/toolchain-xxx.mk)....
Хочу заметить, что древний target wl500g, созданный Олегом (?) опирался на ту же идею: сборку пакетов родным для прошивки тулчейном.
И я бы так делал. И начал бы со сборки основных пакетов, которых сотни две. Ручками неспеша за несколько месяцев все устаканится. Пессимизм пропадет. Главное не спешить.


Попробуй пообщаться с Zyxmon'ом, может у него какие оригинальные мысли и наработки есть.

От мыслей толку мало, их нужно реализовывать. В openwrt все значительно лучше автоматизировано, но там другие недостатки. И сам не думал, что то, чем занимаюсь увлечет. Раньше были загадки, почему не собирается XXX. Сейчас гораздо проще.

lly
20-10-2011, 19:17
От мыслей толку мало, их нужно реализовывать.
Безусловно, однако бывают моменты, когда нет никаких идей. И тогда информация о чужих граблях вполне может натолкнуть на верный путь.

ryzhov_al
23-10-2011, 17:34
Опишу пока свои текущие выкладки. Не очень практично, но может кто-то узнает свои прошлые наивные рассуждения.

Начал пересборку Optware c ~150 пакетов, которыми когда-либо сам пользовался. Споткнулся на сборке glib, которому не хватает libintl.h из gettext. Насколько я понял, на embedded-устройствах с uclibc вопрос с локализацией решён твёрдо: никакой локализации:) Заодно посмотрел насколько актуальна gettext в Optware, и, гм... удивился. 2005 год (http://ftp.gnu.org/gnu/gettext/)! Ладно, допустим я пересоберу эти базовые 150 пакетов, сделав ядро репозитория, но можно ли его будет назвать обновлённым?

Так как самостоятельно написать патчи для того, чтобы подружить uclibc 0.9.32 со свежей gettext у меня квалификации не хватает, решил посмотреть как это делают в стане openwrt. Был приятно удивлён, что openwrt используют последние версии ключевых библиотек. В связи с этим задаю себе закономерный вопрос: а есть ли возможность использовать в качестве нового репозитория среду openwrt? Можно ли составить для неё собственный target, который позволит раскладывать пакеты в иерархию /opt/bin, /opt/lib? А если нет, то возможно ли использование механизма chroot или подобного для адаптации к нам?

Среда на первый взгляд неплохо документирована (http://wiki.openwrt.org/doc/howto/start) и позволяет (http://wiki.openwrt.org/doc/howto/external_toolchain) использовать внешний тулчейн. Будем посмотреть.

Zyxmon
23-10-2011, 17:47
Предлагаю посмотреть
http://zyxel-keenetic-packages.googlecode.com/svn/trunk/package/built/mc/Makefile

make install ...(а он вызывается только если указано PKG_INSTALL:=1)
поместит все файлы в подпапку $(PREFIX_ZYX) = media/DISK_A1/system/usr

Дальше в секции define Package/mc/install
Все (или выбранные) файлы из этой папки кидаются в другую из которой и делается пакет ipk.

Я уже раньше писал, что изменить в первую очередь, чтобы скрипты openwrt работали в духе optware. Немного упрощаю, конечно.

ИМХО Разобраться со сборкой gettext в optware не так уж и сложно.

Если интересует openwrt, готов через ЛК объяснить все строки в этом Makefile.

ryzhov_al
27-10-2011, 12:35
Инструментарий OpenWrt Buildroot (http://wiki.openwrt.org/doc/howto/buildroot.exigence) оказался довольно гибкой и достаточно актуальной системой сборки. Во всяком случае он "знает" о существовании актуальной uClibc 0.9.32 и к нему без проблем подключился внешний энтузиасткий тулчейн.

Ряд базовых пакетов связка Openwrt Buildroot + hndtools-mipsel-uclibc-4.4.6-K26-x86_64 собирает успешно. Правка исходников и инструментария openwrt в основном сводится к правке путей установки скомпилированного софта: /usr -> /opt.

OpenWrt Buildroot можно сконфигурировать так, чтобы он собирал автоматизированно выбранные пакеты без сборки ядра своей прошивки, что мне и требуется.

Пока не смог победить сборку "обязательных" пакетов wl и libnl-tiny. Мне их собирать не требуется, но OpenWrt Buildroot при проверке корректности среды сборки "настаивает" на их обязательном включении. Собираю пока для платформы target/linux/brcm47xx (no Wifi), но позже, видимо, сформирую свой target по образцу тов.Zyxmon'а.

Мне необходимо определиться с тем, стоит ли включать текущую сборку uclibc из прошивки (включая все эти librt, libpthread и пр.) в состав нового репозитория?
(+) Если включать, то репозиторий останется работоспособным несмотря на изменения прошивки. Кроме того, этим репозиторием смогут воспользоваться пользователи других прошивок. Вон, протухший Optware до сих пор работает.
(-) Если включать, то рано или поздно я отстану от развития прошивки.

И ещё вопрос самому себе: стоит ли влючать сборку как MIPSr2 only или оставить MIPSr1? Какие такие killing features есть у MIPSr2?

Тов.Zyxmon'у хочу сказать отдельное спасибо за ряд пояснений.

lly
27-10-2011, 14:05
Пока не смог победить сборку "обязательных" пакетов wl и libnl-tiny.

hardcoded в одном из Makefile для этого target'а.


Мне необходимо определиться с тем, стоит ли включать текущую сборку uclibc из прошивки (включая все эти librt, libpthread и пр.) в состав нового репозитория?

На твоё усмотрение, librt мы в ближайшее время включим, остаётся одна libstdc++
Более важным моментом являются твои планы быть, например, более консервативным при обновлении uClibc. Или наоборот, включать свои смелые экспериментальные наработки. :)


И ещё вопрос самому себе: стоит ли влючать сборку как MIPSr2 only или оставить MIPSr1? Какие такие killing features есть у MIPSr2?
Новые команды - более компактный(быстрый) код, не более того. Через пару лет, когда MIPSr1 будут совсем неподдерживаемы никем, переключишь на MIPSr2. :)

P.S. Да, просьба не включать в репозитарий явно ядерно-зависимые пакеты, типа iptables. А то получится такая-же фигня, как в Optware - не работают, ни супер-новые фичи, ни старые.

ryzhov_al
02-11-2011, 12:32
Буду делать так, чтобы мой инструментарий (http://code.google.com/p/wl500g-repo/source/browse/#svn%2Ftrunk) представлял собой конфигуратор OpenWRT Buildroot для того, чтобы его можно было накатить на любую версию OpenWRT Buildroot.

Как им воспользоваться - расписал (http://code.google.com/p/wl500g-repo/source/browse/trunk/INSTALL) отдельно.

Это фундамент. Теперь буду дополнять его патчами к конкретным пакетам.

theMIROn
02-11-2011, 13:52
Буду делать так, чтобы мой инструментарий (http://code.google.com/p/wl500g-repo/source/browse/#svn%2Ftrunk) представлял собой конфигуратор OpenWRT Buildroot для того, чтобы его можно было накатить на любую версию OpenWRT Buildroot.

Как им воспользоваться - расписал (http://code.google.com/p/wl500g-repo/source/browse/trunk/INSTALL) отдельно.

Это фундамент. Теперь буду дополнять его патчами к конкретным пакетам.

честно говоря под это дело есть /ipkg у нас, вливаешься?
UPD: сорри. но в любом случае, рассмотри интеграцию

ryzhov_al
02-11-2011, 15:01
честно говоря под это дело есть /ipkg у нас, вливаешься?
UPD: сорри. но в любом случае, рассмотри интеграциюЕсли у вас на гуглокоде лимит места под проект ещё далёк до исчерпания, то может быть. Только не сейчас: я с SVN только сегодня впервые столкнулся. Пускай у меня пока отдельная песочница будет, чтобы в вашей не накосячить.

Zyxmon
04-11-2011, 16:27
Коллеги, я не буду зарекаться, но в будущем больше ничего под Optware компилировать не буду. Будем принудительно переходить на обновлённый репозиторий OpenWRT.
<offtopic_start>
У openwrt есть и свои недостатки, кроме достоинств.
<offtopic_end>

lly
04-11-2011, 17:12
<offtopic_start>
У openwrt есть и свои недостатки, кроме достоинств.
<offtopic_end>
В части пакетов скорее одни достоинства, особенно по сравнению с Optware. А вот в части веденения основного хозяйства, с тобой нельзя не согласиться.

Zyxmon
09-11-2011, 15:14
В части пакетов скорее одни достоинства, особенно по сравнению с Optware. ...
Мелкий недостаток в части пакетов - отсутствие man'ов (можно добавить) при сборке ipk. Чуть неприятнее - дробление пакетов на маленькие подпакеты. Если всё ставится на usb носитель это ИМХО неправильно. Все это исправляется, часто очень просто. Но чем больше таких исправлений, тем дальше отход от openwrt.

1. Рекомендую сразу подумать на тему: "нужен ли update-alternatives". Если ответ "да" - сразу учесть и ввести нужные изменения, потом будет это сделать сложнее. В openwrt нет update-alternatives.
2. Пока писал п.1 забыл "полезную мыслю" №2. Вспомню - напишу.

ryzhov_al
11-11-2011, 12:01
Коллеги, репозиторий инициализирован. Для пробы необходимо смонтировать директорию /opt на какой-либо носитель (или папку) и выполнить:

$ wget http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/switch_to_openwrt.sh
$ chmod +x ./switch_to_openwrt.sh
$ ./switch_to_openwrt.sh
после чего будет установлен менеджер пакетов opkg. Далее:

$ opt/bin/opkg -f /opt/etc/opkg.conf update
$ opt/bin/opkg -f /opt/etc/opkg.conf install mc

Два нововведения:
1) Я решил не делать патчи к каждому пакету для правки путей. Решил, что пусть ipk-пакеты содержат внутри свои OpenWRT'шные пути /usr/bin, /usr/lib. Просто в конфигурации opkg указал dest root /opt для корректной установки пакетов.
2) Я пока не разобрался с формированием ключа rpath линковщика в OpenWRT Buildroot, поэтому пакеты не работоспособны без предварительного указания export LD_LIBRARY_PATH="/opt/usr/lib". Обязательно постараюсь в будущем избавиться от такого dirty hack'а.

ЗЫ. В связи с недоступностью midnight-commander.org не поделится ли кто сырцами mc-4.7.5.3.tar.bz2, md5sum 6a67e139e0032d8a871455a80d490941.

lly
11-11-2011, 12:11
после чего будет установлен менеджер пакетов opkg.
У opkg есть реальные преимущества перед ipkg?


2) Я пока не разобрался с формированием ключа rpath линковщика в OpenWRT Buildroot, поэтому пакеты не работоспособны без предварительного указания export LD_LIBRARY_PATH="/opt/usr/lib". Обязательно постараюсь в будущем избавиться от такого dirty hack'а.

HOST_LDFLAGS/TARGET_LDFLAGS = "-Wl,-rpath /opt/lib" не подошли?

ryzhov_al
11-11-2011, 12:21
У opkg есть реальные преимущества перед ipkg?
Нет (http://code.google.com/p/opkg/wiki/Opkg). Просто он используется по умолчанию в OpenWRT. А чем меньше я изменений я внесу в OpenWRT'шную среду, тем лучше.

HOST_LDFLAGS/TARGET_LDFLAGS = "-Wl,-rpath /opt/lib" не подошли?У них в есть (https://svn.openwrt.org/openwrt/trunk/scripts/config.rpath) некий алгоритм формирования ключа "-Wl,-rpath", надо просто его неспешно разобрать.

lly
11-11-2011, 12:30
Просто он используется по умолчанию в OpenWRT. А чем меньше я изменений я внесу в OpenWRT'шную среду, тем лучше.
Спасибо за инфу. Но всё же не советую часто синхронизироваться с OpenWRT в части кода сборки - у них понятие линейки Long Term Support отсуствует как класс, а экспериментаторы они те еще...


У них в есть (https://svn.openwrt.org/openwrt/trunk/scripts/config.rpath) некий алгоритм формирования ключа "-Wl,-rpath", надо просто его неспешно разобрать.
Ты хочешь задействовать эту универсально жирную байду config.guess/config.sub/config.rpath ? Ну дело твоё, но я бы пробил HOST_LDFLAGS/TARGET_LDFLAGS и не мучался.

Zyxmon
11-11-2011, 12:37
У них в есть (https://svn.openwrt.org/openwrt/trunk/scripts/config.rpath) некий алгоритм формирования ключа "-Wl,-rpath", надо просто его неспешно разобрать.
Файлы scripts/config.* в некоторых Makefile копируются в папки, где идет сборка пакета. rpath проще всего задать в include/package-defaults.mk (я вроде уже это писал).
Еще порекомендую убрать при сборке opkg патч, запрещающий обновлять все новые пакеты.


....
1) Я решил не делать патчи к каждому пакету для правки путей. Решил, что пусть ipk-пакеты содержат внутри свои OpenWRT'шные пути /usr/bin, /usr/lib. Просто в конфигурации opkg указал dest root /opt для корректной установки пакетов.
...
Вот это очень тонкий момент. Нужно 1000 раз подумать, как сделать правильнее.



ЗЫ. В связи с недоступностью midnight-commander.org не поделится ли кто сырцами mc-4.7.5.3.tar.bz2, md5sum 6a67e139e0032d8a871455a80d490941.
http://keenetic.zyxmon.org/files/mc-4.7.5.3.tar.bz2
Вечером прибью.

lly
11-11-2011, 12:42
ryzhov_al
Zyxmon всё расписал гораздо подробнее чем я, и добавить нечего.

ryzhov_al
11-11-2011, 12:47
Спасибо за инфу. Но всё же не советую часто синхронизироваться с OpenWRT в части кода сборки - у них понятие линейки Long Term Support отсуствует как класс, а экспериментаторы они те еще...О да. Мне развитие OpenWRT напоминает процесс эволюции, где есть место хаотическим изменениям отдельных фрагментов.
Но в любом случае, моё видение openwrt на роутере следующее: /opt на роутере - как корневая папка в openwrt иерархии. Другими словам, человек, перешедший с прошивки openwrt будет видеть в каталоге /opt привычную среду.

Придётся поднастроить...
зачем-то два раза пробилось -fhonour-copts, но это косметика
я бы очень внимательно посмотрел зачем добавили -fno-caller-saves , обычно эта опция не нужна. Cпецифично для zlib?

Кстати, выяснил. И тот и другой ключ они используют (https://dev.openwrt.org/changeset/26300/trunk/include/target.mk) лишь ради генерации более компактного кода. Они вообще на размере помешаны! Например:
1) Никогда не включают интерфейсы библиотек в состав пакетов, что делает нативную компиляцию вовсе невозможной.
2) Используют свой sstrip (https://dev.openwrt.org/browser/trunk/tools/sstrip/src/sstrip.c?rev=20154) дабы откусить от готовых elf-бинарников ещё несколько байт.


Ты хочешь задействовать эту универсально жирную байду config.guess/config.sub/config.rpath ? Ну дело твоё, но я бы пробил HOST_LDFLAGS/TARGET_LDFLAGS и не мучался. Может так и будет.

ryzhov_al
11-11-2011, 13:05
1. Рекомендую сразу подумать на тему: "нужен ли update-alternatives". Если ответ "да" - сразу учесть и ввести нужные изменения, потом будет это сделать сложнее. В openwrt нет update-alternatives.
2. Пока писал п.1 забыл "полезную мыслю" №2. Вспомню - напишу.Я пока в работе update-alternatives нигде не видел, кроме случая установки/удаления optware'овского coreutils (http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/coreutils_8.4-1_mipsel.ipk). В openwrt'шном coreutils упоминаний о нём нет. Может я просто пока не нашёл эти спрятанные грабли.

Файлы scripts/config.* в некоторых Makefile копируются в папки, где идет сборка пакета. rpath проще всего задать в include/package-defaults.mk (я вроде уже это писал).
Еще порекомендую убрать при сборке opkg патч, запрещающий обновлять все новые пакеты.Ок, спасибо. А то я уже успел удивиться, когда выполнение opkg upgrade без указания конкретного пакета завершалось сообщением об ошибке.


1) Я решил не делать патчи к каждому пакету для правки путей. Решил, что пусть ipk-пакеты содержат внутри свои OpenWRT'шные пути /usr/bin, /usr/lib. Просто в конфигурации opkg указал dest root /opt для корректной установки пакетов.
Вот это очень тонкий момент. Нужно 1000 раз подумать, как сделать правильнее.Вариантов-то всего два:

Правка путей внутри пакетов под optware'овский стандарт, начиная с ./configure --prefix=/opt. Он чреват поломкой среды сборки OpenWRT Biuldroot, в чём я убедился на собственном опыте.
Пути сборки пакетов вовсе не трогать, просто "навязать" Buildroot'у свой ключ rpath способом, описанным выше. Да, ряд пакетов придётся править, но работы куда меньше. Чем этот путь опасен? Вроде ничем.


http://keenetic.zyxmon.org/files/mc-4.7.5.3.tar.bz2
Вечером прибью.Скачал, md5 сходится.

Zyxmon
11-11-2011, 17:13
....что делает нативную компиляцию вовсе невозможной.....

1) Это и был забытый ранее п.2.

2) update-alternatives нужно еще для diffutils. Может еще для чего, нужно смотреть.

3) Я бы пошел по пути задания --prefix=/opt. Ну и дальше перепутье... Думать нужно....

lly
11-11-2011, 17:18
1) Никогда не включают интерфейсы библиотек в состав пакетов, что делает нативную компиляцию вовсе невозможной.
Нативная компиляция очень проблематичная по ресурсам, поэтому они просто не стали её поддерживать. Optware'евский инвалид 4.1.1 отнюдь не лучший вариант.


2) Используют свой sstrip (https://dev.openwrt.org/browser/trunk/tools/sstrip/src/sstrip.c?rev=20154) дабы откусить от готовых elf-бинарников ещё несколько байт.
Это легко отключается.



Вариантов-то всего два:

Правка путей внутри пакетов под optware'овский стандарт, начиная с ./configure --prefix=/opt. Он чреват поломкой среды сборки OpenWRT Biuldroot, в чём я убедился на собственном опыте.
Пути сборки пакетов вовсе не трогать, просто "навязать" Buildroot'у свой ключ rpath способом, описанным выше. Да, ряд пакетов придётся править, но работы куда меньше. Чем этот путь опасен? Вроде ничем.


Некоторые пакеты зашивают пути к библиотекам в бинарники, а некоторые не используют скрипт configure вообще и на config.rpath им наплевать.

ryzhov_al
11-11-2011, 17:31
Zyxmon, а зачем полный iconv (http://zyxel-keenetic-packages.googlecode.com/svn/binary-packages/libiconv-full_1.11.1-1_keenetic.ipk) собирал? Тоже сборка glib2 без него не шла?

Zyxmon
11-11-2011, 18:04
Zyxmon, а зачем полный iconv (http://zyxel-keenetic-packages.googlecode.com/svn/binary-packages/libiconv-full_1.11.1-1_keenetic.ipk) собирал? Тоже сборка glib2 без него не шла?
Не просто полный, а еще выкинул патч, сокращающий объем и выкидывающий наши кодировки.
ЕМНИП без полного не работает переключение кодировок в mc.
С glib2 вечные проблемы - на optware могут быть при нативной сборке. glib2 из репозитария openwrt не собиралась, взял другую ревизию - собралась. Только это давно было, в самом начале пути.

PS В optware libiconv не нужен, там используют gconv-modules.

ryzhov_al
12-11-2011, 19:44
HOST_LDFLAGS/TARGET_LDFLAGS = "-Wl,-rpath /opt/lib" не подошли?Кстати, а зачем трогать HOST_LDFLAGS? Неужели какие-то хост-бинарники могут в итоге попасть в target-код?

Zyxmon
13-11-2011, 04:41
Кстати, а зачем трогать HOST_LDFLAGS? Неужели какие-то хост-бинарники могут в итоге попасть в target-код?
IMHO в HOST не нужно.

lly
13-11-2011, 06:19
Кстати, а зачем трогать HOST_LDFLAGS? Неужели какие-то хост-бинарники могут в итоге попасть в target-код?
Нет, но когда я начинал смотреть Optware (~2008 год) проскакивало использование HOST_LDFLAGS для target'а. По идее должны были давно поправить, но я не проверял.

ryzhov_al
16-11-2011, 11:16
3) Я бы пошел по пути задания --prefix=/opt. Ну и дальше перепутье... Думать нужно....Всё же привёл Buildroot и патчи к пакетам к /opt-стилю. Так даже меньше косяков из-за того, что --prefix=/opt совпадает с местом будущей установки на роутере. Софт с hard-coded-путями (на примере mc) теперь работает без костылей.

... я бы пробил HOST_LDFLAGS/TARGET_LDFLAGS и не мучался.Пробил TARGET_LDFLAGS и не мучался. Костыль с LD_LIBRARY_PATH в прошлом. Всё работает.

$ wget http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/switch_to_openwrt.sh
$ chmod +x ./switch_to_openwrt.sh
$ ./switch_to_openwrt.sh
Connecting to wl500g-repo.googlecode.com (74.125.43.82:80)
ipkg.conf 100% |*******************************| 76 0:00:00 ETA
Downloading http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/Packages ...
Connecting to wl500g-repo.googlecode.com (74.125.43.82:80)
Packages 100% |*******************************| 4698 0:00:00 ETA
Done.
Updated list of available packages in /opt/lib/ipkg/lists/openwrt

Downloading http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/opkg_618-2_rtn.ipk ...
Connecting to wl500g-repo.googlecode.com (74.125.43.82:80)
opkg_618-2_rtn.ipk 100% |*******************************| 59052 0:00:00 ETA
Done.
Unpacking opkg...Done.
Configuring opkg...Done.
Downloading http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/Packages.gz.
Inflating http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/Packages.gz.
Updated list of available packages in /opt/var/opkg-lists/openwrt.
$ opkg install mc
Installing mc (4.7.5.3-1) to root...
Collected errors:
* verify_pkg_installable: Only have 0kb available on filesystem /, pkg mc needs 359
* opkg_install_cmd: Cannot install package mc.
$ opkg --force-space install mc
Installing mc (4.7.5.3-1) to root...
Downloading http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/mc_4.7.5.3-1_rtn.ipk.
Installing glib2 (2.26.1-2) to root...
Downloading http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/glib2_2.26.1-2_rtn.ipk.
...
Done.
Кроме того, привёл (http://code.google.com/p/wl500g-repo/source/browse/#svn%2Ftrunk%2Ffixes) свои скрипты к древовидной структуре для облегчения работы. Теперь достаточно положить папку с Makefile'ом в иерархию ./fixes для внесения очередной группы правок.


Zyxmon, а зачем полный iconv (http://zyxel-keenetic-packages.googlecode.com/svn/binary-packages/libiconv-full_1.11.1-1_keenetic.ipk) собирал? Тоже сборка glib2 без него не шла?Не просто полный, а еще выкинул патч, сокращающий объем и выкидывающий наши кодировки.
ЕМНИП без полного не работает переключение кодировок в mc.Да, переключение в mc без него не работает. Но в будущем, напротив, хочу убрать libiconv-full/gettext-full из пакетов. Не даром же столько сил было потрачено на его выкидываение из embedded-линукса.

lly
16-11-2011, 12:10
Поздравляю с успешным началом! :)

Когда будешь морально готов к воплям пользователей "А-а-а-а! НИЧЕГО НИГДЕ НИКАК не работает!!! :eek:", мы поменяем в своём ipkg.conf (http://code.google.com/p/wl500g/source/browse/trunk/others/ipkg.conf) ссылку с nslu2-linux.org на твой репозитарий.

Zyxmon
16-11-2011, 16:48
Всё же привёл Buildroot и патчи к пакетам к /opt-стилю. Так даже меньше косяков из-за того, что --prefix=/opt совпадает с местом будущей установки на роутере.
IMHO Добавлять /opt в InstalDev может и лишнее. Можно было и не менять.

Но в будущем, напротив, хочу убрать libiconv-full/gettext-full из пакетов. Не даром же столько сил было потрачено на его выкидываение из embedded-линукса.
Пустышки libiconv и libintl все равно будут нужны. А вот заменить *_full на пустышку может оказаться проблемой для тех, кто уже наставил пакетов.

AlexeyS
17-11-2011, 09:15
кстати,

sudo make toolchain_install
не слишком ли? Насколько я помню, тулчейн не обязательно ставить в /opt/toolchain/, можно и в %home_dir%/opt/toolchain/...

ryzhov_al
17-11-2011, 10:54
Насколько я помню, тулчейн не обязательно ставить в /opt/toolchain/, можно и в %home_dir%/opt/toolchain/...В файле конфигурации .config Buildroot'а прописан путь до тулчейна. Сами можете положить энтузиасткий тулчейн куда угодно, если после этого отредактируете .config.

AlexeyS
17-11-2011, 11:24
$ opkg install mc

Не работает:

[admin@WL-****]$ opkg install mc
Installing mc (4.7.5.3-1) to root...
Collected errors:
* verify_pkg_installable: Only have 0kb available on filesystem /, pkg mc needs
359
* opkg_install_cmd: Cannot install package mc.


Всё остальное - без ошибок, а тут - ни в какую... если путь отредактировать, например вместо / указать /opt, то завершается без ошибок, но естественно ставит в /opt/opt, а не в /opt

Zyxmon
17-11-2011, 11:41
... Всё остальное - без ошибок, а тут - ни в какую... если путь отредактировать, например вместо / указать /opt, то завершается без ошибок, но естественно ставит в /opt/opt, а не в /opt
Похоже "dest root" в opkg.conf прописан неправильно. Или пакет не так собран.

2 ryzhov_al
У меня (на другом железе) такой конфиг:


# cat opkg.conf
#src/gz packages http://zyxel-keenetic-packages.googlecode.com/svn/binary-packages
src/gz packages ftp://10.0.0.156
dest root /media/DISK_A1/system/
dest ram /media/DISK_A1/system/tmp
lists_dir ext /media/DISK_A1/system/var/opkg-lists
option tmp_dir /media/DISK_A1/system/tmp

Все дополнительные параметры можно прописывать в конфиге через "option". При текущем конфиге пакет, в котором бинарник лежит как /usr/bin/mc, будет установлен в /media/DISK_A1/system/usr/bin/mc.

ryzhov_al
17-11-2011, 11:48
Не работает:

[admin@WL-****]$ opkg install mc
Installing mc (4.7.5.3-1) to root...
Collected errors:
* verify_pkg_installable: Only have 0kb available on filesystem /, pkg mc needs
359
* opkg_install_cmd: Cannot install package mc.


Всё остальное - без ошибок, а тут - ни в какую... если путь отредактировать, например вместо / указать /opt, то завершается без ошибок, но естественно ставит в /opt/opt, а не в /optopkg считает свободное место в корневой папке и сильно удивляется тому, что его там нет. Уже это дело поправил в сырцах, но не успел перезалить репозиторий. Пример того как обойти проверку на наличие свободного места еть на предыдущей странице.

Zyxmon
17-11-2011, 12:22
opkg считает свободное место в корневой папке и сильно удивляется тому, что его там нет. Уже это дело поправил в сырцах, но не успел перезалить репозиторий. Пример того как обойти проверку на наличие свободного места еть на предыдущей странице.
Можно тогда добавить
option force-space в конфиг.
А вообще лучше бы opkg правильно считал место.

ryzhov_al
17-11-2011, 12:44
А вообще лучше бы opkg правильно считал место.Поправил. В связи с тем, что у нас всё ставится в /opt, считается свободное место в /opt.

AlexeyS
17-11-2011, 14:34
Ну, и ещё одно... При попытке отредактировать любой файл - mc не находит файл "Syntax"


lqqqqqqqqqqqqqqqq Load syntax file qqqqqqqqqqqqqqqqqk
x x
x Cannot open file /usr/local/root/.mc/cedit/Syntax x
x No such file or directory (2) x
x x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqj

ryzhov_al
17-11-2011, 15:36
Ну, и ещё одно... При попытке отредактировать любой файл - mc не находит файл "Syntax"
Сейчас прикручу обвязку к mc на манер Optware, а то пока страшно:

Left File Command Options Right
▒<▒ /tmp/store/Video ▒▒▒▒▒▒▒▒▒▒▒▒▒.[^]>▒▒<▒ ...wnloads/tmp/opt_11/lib/mc ▒.[^]>▒
▒'n Name ▒ Size ▒Modify time ▒▒'n Name ▒ Size ▒Modify time ▒
▒/.. ▒UP--DIR▒Jul 9 23:15▒▒/.. ▒UP--DIR▒Nov 17 19:37▒
▒/?????????????? ▒ 4096▒Nov 8 20:38▒▒/extfs.d ▒ 4096▒Oct 9 12:33▒
▒/????????~???????▒ 4096▒May 6 2011▒▒/fish ▒ 4096▒Oct 9 12:33▒
▒/?????????? ▒ 4096▒May 18 2011▒▒*cons.saver ▒ 6748▒Oct 6 22:51▒
▒/????????~???????▒ 4096▒May 18 2011▒▒*mc-wrapper.csh ▒ 389▒Oct 6 22:51▒
▒/?????????????? ▒ 4096▒Jul 7 22:46▒▒*mc-wrapper.sh ▒ 315▒Oct 6 22:51▒
▒/????????~???????▒ 4096▒Nov 5 21:29▒▒*mc.csh ▒ 49▒Oct 6 22:51▒
▒/????????~???????▒ 4096▒Nov 11 07:57▒▒*mc.sh ▒ 153▒Oct 6 22:51▒
▒/?????????????? ▒ 4096▒Nov 9 12:35▒▒ ▒ ▒ ▒
▒/????????~???????▒ 4096▒Jul 12 20:02▒▒ ▒ ▒ ▒
▒ ▒ ▒ ▒▒ ▒ ▒ ▒
▒ ▒ ▒ ▒▒ ▒ ▒ ▒
▒ ▒ ▒ ▒▒ ▒ ▒ ▒
▒ ▒ ▒ ▒▒ ▒ ▒ ▒
▒ ▒ ▒ ▒▒ ▒ ▒ ▒
▒ ▒ ▒ ▒▒ ▒ ▒ ▒
▒ ▒ ▒ ▒▒ ▒ ▒ ▒
▒ ▒ ▒ ▒▒ ▒ ▒ ▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Ĵ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Ĵ
▒UP--DIR ▒▒UP--DIR ▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Hint: Setting the CDPATH variable can save you keystrokes in cd commands.
# [^]
1Help 2Menu 3View 4Edit 5Copy 6RenMov 7Mkdir 8Delete 9PullDn10Quit
Всё из-за минимализма OpenWRT. В ipk-пакет они по умолчанию кладут только один бинарник mc без всяких настроек и скриптов обвязки.

theMIROn
17-11-2011, 15:48
Всё из-за минимализма OpenWRT. В ipk-пакет они по умолчанию кладут только один бинарник mc без всяких настроек и скриптов обвязки.
жуть. в пакете mc по install-у устанавливается все что нужно и куда нужно

Zyxmon
17-11-2011, 16:43
...Всё из-за минимализма OpenWRT. В ipk-пакет они по умолчанию кладут только один бинарник mc без всяких настроек и скриптов обвязки.
Я думал, Вы на мой Makefile ориентировались:
http://zyxel-keenetic-packages.googlecode.com/svn/trunk/package/built/mc/Makefile
(можно и компактней, я и сам начинал с mc). И все работет.
Скриншот - http://www.zyxmon.org/tmp/mc.png

ryzhov_al
17-11-2011, 16:58
Скриншот - http://www.zyxmon.org/tmp/mc.pngУлыбнуло: devolopers@zyxel.ru

Zyxmon
17-11-2011, 18:12
Улыбнуло: devolopers@zyxel.ru
<offtopic>Ага - уже это некоторые отмечали. Исправлено уже.</offtopic>

theMIROn
17-11-2011, 20:37
<offtopic>Ага - уже это некоторые отмечали. Исправлено уже.</offtopic>

<offtopic>исправлено на что?</offtopic>

Zyxmon
18-11-2011, 04:25
<offtopic>исправлено на что?</offtopic>
<offtopic>Орфографическая ошибка в слове developers - devolopers.</offtopic>

ryzhov_al
18-11-2011, 06:42
Я думал, Вы на мой Makefile ориентировались:
http://zyxel-keenetic-packages.googlecode.com/svn/trunk/package/built/mc/MakefileКстати, перелинковка с ncurses на slang ваша инициатива? В текущем транке mc слинкован с ncurses.

Zyxmon
18-11-2011, 07:53
Кстати, перелинковка с ncurses на slang ваша инициатива? В текущем транке mc слинкован с ncurses.
Это идет еще со сборки mc для НАСа (optware) - https://www.midnight-commander.org/ticket/2282
При сборке с ncurses ЕМНИП такие патчи не работают. Для асусов они не нужны. Для NAS'ов от synology и кинетика нужны.

ryzhov_al
18-11-2011, 10:12
Для асусов они не нужны.Почему? В чём разница? Условия-то одни и те же: локаль ru_RU.UTF-8, терминал xterm/linux и uclibc без намёков на интернационализацию.

Я хочу определить почему у меня так mc убого выглядит (http://www.wl500g.info/showpost.php?p=240916&postcount=83): без псевдографики и отображения кириллических имён. Может я что-то с iconv или gettext накосячил?

Zyxmon
18-11-2011, 10:33
Почему? В чём разница? Условия-то одни и те же: локаль ru_RU.UTF-8, терминал xterm/linux и uclibc без намёков на интернационализацию.

Я хочу определить почему у меня так mc убого выглядит (http://www.wl500g.info/showpost.php?p=240916&postcount=83): без псевдографики и отображения кириллических имён. Может я что-то с iconv или gettext накосячил?
У моих НАСа и кинетика нет локалей и функция nl_langinfo(...) всегда возвращает "ерунду" - в этом и разница.
Переменные TERM и TERMINFO заданы?
Попробуйте взять за основу мой Makefile (сборка с slang). У меня еще в профиле alias прописан для запуска с параметром -с. Но это уже косметика.

AlexeyS
18-11-2011, 10:41
У меня еще в профиле alias прописан для запуска с параметром -с. Но это уже косметика.

Кстати, у меня создалось впечатление, что на текущей прошивке rtn - alias и другие переменные, прописанные в профайле, не сохраняются... А если тоже самое набрать с консоли, то всё прекрасно прописывается... Подтвердите или опровергните кто-нибудь...

ryzhov_al
18-11-2011, 11:23
Кстати, у меня создалось впечатление, что на текущей прошивке rtn - alias и другие переменные, прописанные в профайле, не сохраняются... А если тоже самое набрать с консоли, то всё прекрасно прописывается... Подтвердите или опровергните кто-нибудь...Когда применяется файл .profile? Должен ли о нём что-нибудь знать init?:)
Я тоже с этим сталкивался (http://www.wl500g.info/showpost.php?p=230021&postcount=175).

Zyxmon
18-11-2011, 11:27
Посмотрел - alias у меня на NAS'е есть, на кинетике нет. Но везде TERM и TERMINFO


# cat .profile
....
....
export TERM=xterm
export TERMINFO=/......

AlexeyS
18-11-2011, 11:32
Когда применяется файл .profile? Должен ли о нём что-нибудь знать init?:)


Всё ясно... Но, почему-то даже из post-boot не прописывает ( Хотя, дело вообще не в этом конечно... Старый optware тоже с псевдографикой не дружит...

Zyxmon
18-11-2011, 12:06
Всё ясно... Но, почему-то даже из post-boot не прописывает ( Хотя, дело вообще не в этом конечно... Старый optware тоже с псевдографикой не дружит...
.profile "вызывается" при логине/запуске шелла.

AlexeyS
18-11-2011, 13:54
.profile "вызывается" при логине/запуске шелла.

Похоже в прошивке не вызывается, либо не сохраняются переменные...

theMIROn
18-11-2011, 14:48
.profile "вызывается" при логине/запуске шелла.
shell использует /etc/profile, а уже из него подгрузятся /usr/local/etc/profile или /opt/etc/profile
при соблюдении условия исполняемости

AlexeyS
18-11-2011, 16:55
shell использует /etc/profile, а уже из него подгрузятся /usr/local/etc/profile или /opt/etc/profile
при соблюдении условия исполняемости

Ага, вот исполняемости то им и не хватало... на большом linux работает без этого.

ryzhov_al
22-11-2011, 12:33
В цепочке "мужик сказал - мужик сделал" чаще всего не хватает звена "мужик подумал".

Так и я: сделал пакеты libc, libgcc, libpthread, librt, libstdcpp для владельцев других прошивок путём запаковки соответствующих библиотек из энтузиасткого тулчейна. И не подумал о том, найдут ли они друг друга, находясь в /opt/lib.

Отцы, подскажите: завязаны ли перечисленные библиотеки друг на друга?
Если да, то мне придётся пересобирать перечисленные uclibc-библиотеки с -Wl,-rpath /opt/lib.


Текущий статус дел: после выяснения озвученного вопроса, манипуляции с базовым набором пакетов ./openwrt-buildroot/packages будут завершены. Дальше буду последовательно браться за пакеты из фида ./feeds/packages/libs ~200шт. Затем буду выборочно добавлять популярные пакеты из ./feeds/packages/admin, devel, ipv6, lang, libs, mail, multimedia, net, skels, sound, utils.

lly
22-11-2011, 12:54
Так и я: сделал пакеты libc, libgcc, libpthread, librt, libstdcpp для владельцев других прошивок путём запаковки соответствующих библиотек из энтузиасткого тулчейна. И не подумал о том, найдут ли они друг друга, находясь в /opt/lib.

Если ты альтруист настолько, то проблем с владельцами других прошивок (с uClibc более старых, чем 0.9.29) гораздо больше:

ld-uClibc.so.0 - тоже придётся брать из /opt/lib. Скорее всего, для этого придётся пересобирать тулчейн.
на libc.so.0 завязано практически всё. Проверяется на сборочном хосте при помощи mipsel-uclibc-ldd
отсутствующие syscall'ы в ядре - корректного враппера в uClibc может и не быть, придётся анализировать в каждом конкретном случае, т.к. прошерстить всю uClibc нереально.

А это практически все прошивки, кроме TomatoUSB...

P.S. На прошивках с ядром 2.4 можешь сразу ставить огромный крест - NPTL не взлетит.

ryzhov_al
23-11-2011, 06:44
Ну, хорошо. Оставим этот вопрос пока в покое: не буду включать в репозиторий библиотеки uClibc.

Скажи только, что из перечисленных библиотек не входит в текущий состав прошивки? librt вроде включили. Что осталось?

lly
23-11-2011, 07:30
Только libstdc++

Ну и libssp, но я не верю что она нужна не разработчикам.

theMIROn
23-11-2011, 10:30
Только libstdc++
Ну и libssp, но я не верю что она нужна не разработчикам.

да, есть мнение, что libstdc++ (uclibc++) может понадобится

lly
23-11-2011, 10:54
да, есть мнение, что libstdc++ (uclibc++) может понадобится
Ну это мы обсуждали в привате ;)
Ничего не имею против, кроме размера флеша на старых N10, N12.

Zyxmon
23-11-2011, 11:03
да, есть мнение, что libstdc++ (uclibc++) может понадобится
Эти либы можно оформить в виде пакетов. Они и не обязаны быть в прошивке.

theMIROn
23-11-2011, 12:13
Эти либы можно оформить в виде пакетов. Они и не обязаны быть в прошивке.
есть некий софт, который хотелось бы включить в прошивку.
он и зависит (пока?) от c++

ryzhov_al
25-11-2011, 11:43
Создан (http://code.google.com/p/wl500g-repo/source/browse/#svn%2Ffeeds%2Frtn-dev) и проверен в работе custom feed для добавления пакетов, не входящий в состав OpenWRT. Теперь сторонние пакеты будут создаваться средствами OpenWRT Buildroot и каждый желающий может заглянуть в их сырцы.
Репозиторий подрос и содержит (http://code.google.com/p/wl500g-repo/source/browse/#svn%2Fipkg%2Fopenwrt) под сотню пакетов, в т.ч. mysql, lighttpd, transmission и ряд других. Бинарники, какие только мог в работе проверил. Порядок.
Единственный пакет, который пока не допилил - это mc. Никаких трудностей с его сборкой нет, как только выберу время - допилю.

Zyxmon
25-11-2011, 11:54
Заглянул, пробежался. Случайно наткнулся на
http://code.google.com/p/wl500g-repo/source/browse/trunk/fixes/lighttpd/Makefile

Почему в фиксах для lighttpd присутвуют файлы transmission?

ryzhov_al
25-11-2011, 11:57
Поправил.

ЗЫ Взял твой Makefile для xupnpd.
ЗЗЫ Потратил сегодняшний вечер на то, чтобы заставить mc нормально работать с ncurses, но с UTF8 подружить его так и не смог. В итоге просто взял твой Makefile с патчами для mc 4.8.0. Благодаря тебе mc теперь обрусел и обзавёлся семьёй^W псевдографикой:) Спасибо.

Zyxmon
26-11-2011, 17:20
Поправил.

ЗЫ Взял твой Makefile для xupnpd.
ЗЗЫ Потратил сегодняшний вечер на то, чтобы заставить mc нормально работать с ncurses, но с UTF8 подружить его так и не смог. В итоге просто взял твой Makefile с патчами для mc 4.8.0. Благодаря тебе mc теперь обрусел и обзавёлся семьёй^W псевдографикой:) Спасибо.
Для асусов мои патчи для mc вроде и не нужны.
Кроме xupnpd можно у меня взять microdc2, mediatomb (автор vovic67), может и еще чего.

ryzhov_al
26-11-2011, 19:21
Для асусов мои патчи для mc вроде и не нужны.Без них никак корректно не определялась локаль UTF-8. Пришлось её навязать твоими патчами.

Кроме xupnpd можно у меня взять microdc2, mediatomb (автор vovic67), может и еще чего.Возьмём, раз не против. У меня в планах переложить optware фиды http://wl500g.googlecode.com/svn/ipkg/optware и optware-d (http://wl500g.googlecode.com/svn/ipkg/optware-d) на рельсы OpenWRT. Для того, чтобы новообращённые не ностальгировали по старым репозиториям.

Zyxmon
27-11-2011, 06:54
Без них никак корректно не определялась локаль UTF-8. Пришлось её навязать твоими патчами.

Для сборки optware эти патчи на асусе не нужны. Стоит обратиться к angel_il.

ryzhov_al
27-11-2011, 17:25
В репозитории OpenWRT нет отдельных пакетов grep и cron.

Стоит ли их создавать? Насколько убоги аналоги из нашего busybox?

lly
27-11-2011, 17:50
В репозитории OpenWRT нет отдельных пакетов grep и cron.

Стоит ли их создавать? Насколько убоги аналоги из нашего busybox?
cron полнофункционален, grep не совсем.

ryzhov_al
29-11-2011, 11:58
Только сейчас выяснил, что мейнтейнеры OpenWRT Buildroot отключили (https://dev.openwrt.org/ticket/3924) поддержку Stack Smashing Protection три года назад, мотивируя это тем, что не во всех платформах он есть. У нас, как вижу, libssp в тулчейне есть. По идее, пакеты должны её подхватывать, т.к. интерфейс к ней находится в путях stdinc.

Чем чревата сборка без libssp? Насколько критична эта фича?

terrabyte
29-11-2011, 14:06
Для асусов мои патчи для mc вроде и не нужны.
Кроме xupnpd можно у меня взять microdc2, mediatomb (автор vovic67), может и еще чего.
можно подробнее про mediatomb номер сборки и т.д?

Zyxmon
29-11-2011, 14:10
Только сейчас выяснил, что мейнтейнеры OpenWRT Buildroot отключили (https://dev.openwrt.org/ticket/3924) поддержку Stack Smashing Protection три года назад, мотивируя это тем, что не во всех платформах он есть. У нас, как вижу, libssp в тулчейне есть. По идее, пакеты должны её подхватывать, т.к. интерфейс к ней находится в путях stdinc.

Чем чревата сборка без libssp? Насколько критична эта фича?
Сборка тулчейна с libssp у Openwrt присутвует.


можно подробнее про mediatomb номер сборки и т.д?
Это не для асус. Makefile для openwrt тут
http://zyxel-keenetic-packages.googlecode.com/svn/trunk/package/built/mediatomb/
Сегодня мне на недостающую зависимость от libiconv указали, еще не исправлено.

ryzhov_al
01-12-2011, 10:32
Приглашаю к активному тестированию нового репозитория OpenWRT.
Как его подключить и использовать описано в первом посте (http://www.wl500g.info/showthread.php?t=28036).

На данном этапе в нём находятся, например, все одноимённые пакеты из Optware, которые я когда-либо использовал. Актуальность пакетов соответствует последнему транку среды OpenWRT на 1.12.2011г. Репозиторий планируется обновлять с частотой ~ раз в месяц.

За изменением репозитория можно смотреть здесь (http://code.google.com/p/wl500g-repo/updates/list).

Обязательно сообщайте (http://code.google.com/p/wl500g-repo/issues/list) о найденных ошибках или странностях при работе пакетов.

Zyxmon
01-12-2011, 10:50
Поправочки:
1) gawk можно взять у меня. tar в репозитарии openwrt имеестся.
2) На всякий - посмотрите на изменения в сборке screen у меня. Мой не ругается при старте.
3) Подозреваю, что причина "проблем" с mc и bash одна.
4) Насчет флага hold после opkg upgrade - никогда не наблюдал у себя с предыдущей сборкой opkg. Сейчас проверил с новой (соответвует версии openwrt) - нет такого. Странно это.

ryzhov_al
02-12-2011, 14:54
1) Собирая (http://code.google.com/p/wl500g-repo/source/browse/feeds/rtn-dev/mediatomb/Makefile) mediatomb для нового репозитория наткнулся на то, что линковщик не может разрешить вложенные зависимости. Поясню: mediatomb зависит от ffmpeg, а тот, в свою очередь, от libbz2.
При линковке mediatomb линковщик находит зависимую ffmpeg, но не находит libbz2, если не указать ключом rpath-link то место где она лежит.

Отцы, можно ли добавить КО ВСЕЙ среде сборки ключ -Wl,-rpath-link=$(STAGING_DIR)/opt/lib? Путь rpath-link в бинарник вроде бы не попадает (http://www.delorie.com/gnu/docs/binutils/ld_3.html)? Не будет ли каких-либо негативных последствий?

2) Заметил, что в GNU Build System есть ряд тестов, которые никогда корректно не выполняются при кросс-компиляции. Например, тесты AC_CHECK_DEBUGGING, AC_CHECK_VA_COPY, AC_FUNC_MALLOC, AC_FUNC_REALLOC. Проблема легко обходится (http://antisclerosis.forumup.com/about87-antisclerosis.html), но разве это нормально?


4) Насчет флага hold после opkg upgrade - никогда не наблюдал у себя с предыдущей сборкой opkg. Сейчас проверил с новой (соответвует версии openwrt) - нет такого. Странно это.Разобрался. Hold накладывается только на ключевые библиотеки:
$ opkg upgrade
Not upgrading package libpthread which is marked hold (flags=0x2).
Not upgrading package libstdcpp which is marked hold (flags=0x2).
Not upgrading package librt which is marked hold (flags=0x2).
Так что отбой, глюк вычёркиваю. “That’s not a bug, it’s a feature”©

Zyxmon
03-12-2011, 04:45
Отцы, можно ли добавить КО ВСЕЙ среде сборки ключ -Wl,-rpath-link=$(STAGING_DIR)/opt/lib? Путь rpath-link в бинарник вроде бы не попадает (http://www.delorie.com/gnu/docs/binutils/ld_3.html)? Не будет ли каких-либо негативных последствий?

Последствий быть не должно. Еще раз повторю - я бы не модифицировал InstallDev. К слову - ffmpeg можно по разному собирать. Для keenetic'а этим занимался vovic67.


Разобрался. Hold накладывается только на ключевые библиотеки:
$ opkg upgrade
Not upgrading package libpthread which is marked hold (flags=0x2).
Not upgrading package libstdcpp which is marked hold (flags=0x2).
Not upgrading package librt which is marked hold (flags=0x2).
Так что отбой, глюк вычёркиваю. “That’s not a bug, it’s a feature”©
Это задается в base-files/Makefile - для некоторых библиотек заданы

PKG_FLAGS:=hold essential
Если не нужны эти флаги, можно удалить. Я ликвидирую в пакетах зависимости от libpthread, librt и т.п. - от библиотек, входящих в прошивку. Это привело к определенным сложностям при изменении в прошивке libpthread - http://forum.zyxmon.org/topic131-vnimanie-v-proshivke-ot-10-noyabrya-2011g-izmeneniya-kotorye.html

dmig
07-12-2011, 19:53
А никто не пытался делать "апгрейд" с нынешних репов на эти?
Чуть убил систему первой попыткой, нашёл способ откатить.

Есть мысль, как это сделать. Наверное, на выходных проверю.

ryzhov_al
09-12-2011, 05:35
Коллеги, правильно ли я понимаю, что нам не светит собрать актуальные libtorrent 0.12.9/rtorrent 0.8.9
из-за плотной завязке на отсутствующие posix_memalign\posix_fallocate\epoll и пр?
Отвечаю сам себе - светит! Успешно собрал и использую последние стабильные версии libtorrent/rtorrent.
Пока полёт нормальный, epoll, в частности, используется.
Если за неделю тестов не будет выявлено каких-либо аномалий - включу в репозиторий.

Для сборки пришлось лишь выкинуть тест AM_PATH_CPPUNIT, который заканчивался ошибкой при кросс-компиляции.


А никто не пытался делать "апгрейд" с нынешних репов на эти?
Чуть убил систему первой попыткой, нашёл способ откатить.

Есть мысль, как это сделать. Наверное, на выходных проверю.
Нельзя просто перенацелить ipkg на новый репозиторий и выполнить ipkg upgrade, ничего не выйдет. Способ перехода с Optware на OpenWRT ровно один:
1) сохранить содержимое /opt путём копирования или архивации, например:

$ tar -cvzf /tmp/downloads/backup/optware_opt.$(date +%Y%m%d.%H%M%S).tgz /opt
2) отчистить содержимое /opt,
3) выполнить пункты инструкции из первого поста темы,
4) восстановить из архива необходимые скрипты и файлы конфигурации, которые вы когда-то самостоятельно создавали.

ryzhov_al
15-12-2011, 06:44
Коллеги, хочу вам продемонстрировать работу механизма posix_fallocate в rtorrent. Это, в первую очередь касается тех пользователей, которые используют роутер в качестве файлокачалки.

Тест №1. Без posix_fallocate.

Исходные данные: привычный rtorrent 0.8.6. из Optware,
файловая система ext3,
контент торрента (http://nnm-club.ru/forum/viewtopic.php?t=414955) - 18Мб.

Запускаем торрент, добавляем закачку и смотрим как изменяется размер скачиваемого файла:

$ du -h /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe

1.1M /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe
$ du -h /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe

4.6M /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe
$ du -h /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe

6.8M /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe
$ du -h /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe

7.9M /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe
$ du -h /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe

18.2M /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe
Видно, что место под файл на диске выделяется в процессе скачивания. Оценим насколько фрагментированным получился файл:

$ filefrag /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe
/tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe: 586 extents found, perfection would be 1 extent
Г-ди долбаный Иисусе! 586 ошмётков по всему диску! Сколько бы не говорили адепты unix про то, что ext3 не нуждается в дефрагментации, я не поверю, что этот файл будет считан быстро из-за метаний головки по всей поверхности диска.


Тест №2. С posix_fallocate.

rtorrent 0.8.9. из моего репозитория,
файловая система ext4,
тот же торрент (http://nnm-club.ru/forum/viewtopic.php?t=414955) объёмом 18Мб.

Запускаем rtorrent, добавляем закачку и приглядываемся к размеру контента на диске:

$ du -h /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe

18.2M /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe
$ du -h /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe

18.2M /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe
Другими словами, место под файл выделяется целиком и мгновенно. Дефрагментация файла после скачивания...

$ filefrag /tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe
/tmp/downloads/torrent/Cave_Story_Plus_v1.0_setup.exe: 1 extent found...отстутствует вовсе.

Конечно же, не всегда файл можно записать на диске одним куском, но полугигабайтные файлы у меня фрагментируются всего на 3-4 куска. Механизм posix_fallocate будет работать только на файловых системах ext4 или xfs. Как подключить раздел ext4 смотрите в профильной теме (http://www.wl500g.info/showthread.php?p=240060).



Интересно, чтобы кто-нибудь осилил
пересборку торрента с поддержкой posix_fallocate и погонял, т.к. это работает только на xfs и ext4.не-не-не:) Никто:)

voidshah
15-12-2011, 11:51
Отвечаю сам себе - светит!
Эээ... ну то, что светит - я же, как ты сказал, дорожку протоптал:)

Пока полёт нормальный, epoll, в частности, используется. Если за неделю тестов не будет выявлено каких-либо аномалий - включу в репозиторий.
Да нормально все, у меня несколько дней крутился - ноу проблем:), можешь включать;)
Пы.Сы. Пора мне уже в твою "религию" переходить:), может чем помогу;). Две руки хорошо, а четыре лучше:D

lly
15-12-2011, 12:48
Коллеги, хочу вам продемонстрировать работу механизма posix_fallocate в rtorrent.
Поздравляю! Отлично сработано!

Неплохой стресс-тест для ext4 получается, если какие баги и есть, они должны вылезти.

P.S. У меня в планах дотащить ext4 до уровня 2.6.32, но когда получится по времени и силам, не знаю.

lokus
15-12-2011, 18:56
Здравствуйте.
Попытался установить на чистый /opt
Скрипт из 1-го поста выдает в самом конце:
Done.
Unpacking opkg...Done.
Configuring opkg...Done.

/opt/bin/opkg: symbol 'stdout': can't handle reloc type 0x7e

что это значит и как побороть?

ryzhov_al
16-12-2011, 05:07
Да нормально все, у меня несколько дней крутился - ноу проблем:), можешь включать;)Если гладко заработало у меня, то это не значит, что будет гладко работать у всех. Срок в неделю назван не с потолка - это необходимое мне время на то, чтобы погонять rtorrent в различных сценариях работы. Например, увидеть на графиках RRD утечку (http://www.wl500g.info/showthread.php?t=28288) памяти (http://www.wl500g.info/showthread.php?p=221222#post221222) в transmission я смог только на недельном отрезке, максимально отрубив все неиспользуемые сервисы.


Пы.Сы. Пора мне уже в твою "религию" переходить:), может чем помогу;). Две руки хорошо, а четыре лучше:DИсходники доступны (http://code.google.com/p/wl500g-repo/source/checkout), процесс документирован (http://code.google.com/p/wl500g-repo/source/browse/trunk/INSTALL). Поэтому никакого "согласия" от меня не требуется. Дерзай!


/opt/bin/opkg: symbol 'stdout': can't handle reloc type 0x7e

что это значит и как побороть?Перейти на прошивку ветки -rtn.

lokus
16-12-2011, 17:41
Перейти на прошивку ветки -rtn.

Так я на ней вроде:
Linux version 2.6.22.19 (root@localhost) (gcc version 4.3.5 (GCC) ) #1 Wed Jun 15 05:01:32 MSD 2011
1.9.2.7-rtn-r3080

ryzhov_al
16-12-2011, 17:51
Так я на ней вроде:
Linux version 2.6.22.19 (root@localhost) (gcc version 4.3.5 (GCC) ) #1 Wed Jun 15 05:01:32 MSD 2011
1.9.2.7-rtn-r3080За полгода многое (http://code.google.com/p/wl500g/source/detail?r=3124) изменилось (http://code.google.com/p/wl500g/source/detail?r=3505), обновляйтесь.

lly
16-12-2011, 17:54
За полгода многое (http://code.google.com/p/wl500g/source/detail?r=3124) изменилось (http://code.google.com/p/wl500g/source/detail?r=3505), обновляйтесь.
Как вариант, только сам opkg можно собрать каким-нибудь древним тулчейном на базе uClibc 0.9.30 который запустится везде, а затем выкачает новую uClibc-opt. Вот только надо ли?

ryzhov_al
16-12-2011, 19:12
Как вариант, только сам opkg можно собрать каким-нибудь древним тулчейном на базе uClibc 0.9.30 который запустится везде, а затем выкачает новую uClibc-opt. Вот только надо ли?Как скажешь, так и сделаю. Коль скоро ссылка в /etc/ipkg.conf когда-нибудь будет вести в новый репозиторий, можно оставить как есть. С определённого релиза всё будет работать, до - нет.

Кстати, уже "накопились" две причины для пересобрки библиотеки uClibc:

для включения -Wl,-rpath,/opt/lib.
для включения UCLIBC_HAS_LOCALE=y, так как без этого все ncurses-based приложения будут показывать крокозябры вместо кириллици - htop, rtorrent, ncurses-mc, screen и прочие.

Оба пункта спорные. Первый, например, позволит "развязать" прошивочные библиотеки с репозиторийными, что уберёт указанный в предыдущем посте косяк с opkg. "Развязка" потенциально обрадует томатовцев, но "отдалит" репозиторий от прошивки. Надо ли?

А с другой стороны, если не выполнить развязку, то придётся обеспечить синхронность релизов прошивки и репозитория, что в свою очередь, не удобно ни мне, ни пользователям. Выходит, что развязка и фиксация версии uClibc в какой-то момент неизбежна.

Чо делать? Куда бечь?

Zyxmon
16-12-2011, 20:56
Небольшое уточнение "screen -u" нормально работает с великим-могучим. Как и пропатченный microdc2 (ncurses программа) из под screen.

lly
17-12-2011, 07:14
Как скажешь, так и сделаю. Коль скоро ссылка в /etc/ipkg.conf когда-нибудь будет вести в новый репозиторий, можно оставить как есть. С определённого релиза всё будет работать, до - нет.
Для того, чтобы ответить однозначно надо проэкспериментировать с:
нашей старой rtn прошивкой с uClibc 0.9.30
TomatoUSB
родной ASUS с поддержкой Optware

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


Оба пункта спорные. Первый, например, позволит "развязать" прошивочные библиотеки с репозиторийными, что уберёт указанный в предыдущем посте косяк с opkg. "Развязка" потенциально обрадует томатовцев, но "отдалит" репозиторий от прошивки. Надо ли?

Первый пункт сильно зависит от второго и от ответа на предыдущий вопрос.

К сожалению, у меня пока нет времени экспериментировать с ncursesw, чтобы с полной уверенностью ответить на п.2 насчёт LOCALE. Ни в коем случае не спорю с Zyxmon, но это основное отличие в конфиге nslu2-linux Optware от нашего.

ryzhov_al
17-12-2011, 07:22
Небольшое уточнение "screen -u" нормально работает с великим-могучим. Как и пропатченный microdc2 (ncurses программа) из под screen.Может я поспешил с обобщением. К screen'у вопросов нет.

В последнем rtorrent'е исключили опцию encoding_list=utf-8, поэтому как screen не запускай, кириллические имена торрентов и файлов выглядят коряво. Вместо имени торрента (http://rutracker.org/forum/viewtopic.php?t=2803777)

*** Ундервуд (FLAC) ***вижу

*** Унде?~@в?~Cд (FLAC) ***
Cmp Pri Size Filename
Peer list \ 2002 ?????? ??????????????, ??????????
\ Scans
Info 100 9.2 M | img01.jpg
100 9.7 M | img02.jpg
File list 100 5.6 M | img03.jpg
100 5.4 M | img04.jpg
Tracker list 100 2.4 M | img05.jpg
/
Chunks seen 100 165.6 K | folder.jpg
100 1.5 K | ???????????????? - ?????? ??????????????, ?????
Transfer list 100 1.5 K | ???????????????? - ?????? ??????????????, ?????
100 284.7 M | ???????????????? - ?????? ??????????????, ?????
100 3.3 K | ???????????????? - ?????? ??????????????, ?????
/
\ 2003 ?????????????? ????????????
\ Scans
100 7.9 M | img01.jpg
100 6.9 M | img02.jpg
done 3730.3 MB Rate: 0.0 / 0.0 KB Uploaded: 1068.8 MB
Peers: 0(0) Min/Max: 100/200 Uploads: 8 U/I/C/A: 0/0/0/0 Failed: 0 [ :2997]
[Throttle 1500/1500 KB] [Rate 0.7/ 0.4 KB] [Port: 12345] [U 0/310] [D 0/310]
Напомню, что проблема есть лишь в терминале, с xml-rpc клиентами кириллица отображается нормально.

voidshah
17-12-2011, 15:13
Кстати, уже "накопились" две причины для пересобрки библиотеки uClibc:

для включения -Wl,-rpath,/opt/lib.
для включения UCLIBC_HAS_LOCALE=y, так как без этого все ncurses-based приложения будут показывать крокозябры вместо кириллици - htop, rtorrent, ncurses-mc, screen и прочие.


Имхо, надо. Почему отдалит от прошивки? В optware ведь так и сделано - либы uClibc находятся в /opt/lib. Либы uClibc надо хотя бы пересобрать для того, чтобы безболезненно поместить их в /opt/lib. А прошивочные так пусть и будут на /lib ссылаться. Чем такой вариант плох?

macek
21-12-2011, 15:28
Сограждане, а можно тут у вас спросить, поскольку тема релевантна моему вопросу.

Не нашёл как устроена в OpenWRT интеграция UCI в софт.

Может у кого есть опыт портирования пакетов под OpenWRT, есть ли природе какие-нибудь инструкции или примеры, как научить софтину читать конфигурацию из /etc/config, а не из традиционных мест? ;)

В контексте данной темы, как врт-шные пакеты будут вести себя на "неродной" платформе? или UCI со своей кухней тоже переедет в /opt?

ryzhov_al
21-12-2011, 15:46
В контексте данной темы, как врт-шные пакеты будут вести себя на "неродной" платформе? или UCI со своей кухней тоже переедет в /opt?Переедут в /opt. В отличие от ванильной OpenWRT здесь не будет /usr в jffs2.

xz_kostyan
31-12-2011, 18:41
При обновлении прошивки с d на rtn версию прошивки некоторые пакеты (http://wl500g.info/showthread.php?p=242798#post242798) из http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/ просто не работают (падают с SIGSEGV или лезут непонятные ошибки типа "нельзя выделить память"). Проверялись все доступные (http://code.google.com/p/wl500g/downloads/list?can=1&q=WL500gp-1.9.2.7-rtn&colspec=Filename+Summary+Uploaded+Size+DownloadCou nt) rtn-версии прошивок. На последней d-версии прошивки (развитие прекращено) vsftpd работает прекрасно. lighttpd же, судя по всему, в репозитории сломан полностью, откат на предыдущую версию (копирование файлов, содержащихся в пакете вручную, т. к. прошлой версии пакета я просто найти не смог) помогло.

Похоже, что библиотеки используемые при сборки rtn прошивки и библиотеки, используемые при сборке пакетов различаются, причем сильно. Может пора собирать 2 отдельные ветки пакетов для rtn и для d, а не скрещивать ежа с ужом? Потому как известно, что в этом случае получается.

Для модераторов: я специально создал новую тему чтобы люди, которые занимаются непосредственно сборкой и деплоем пакетов обратили на это внимание. Потому как среди флуда "ПАМАГИТЕЕ!!!11 НИЧЕГО НЕ РАБОТАЕТ!!11" данное сообщение затеряется.

ryzhov_al
01-01-2012, 06:12
При обновлении прошивки с d на rtn версию прошивки некоторые пакеты (http://wl500g.info/showthread.php?p=242798#post242798) из http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/ просто не работают (падают с SIGSEGV или лезут непонятные ошибки типа "нельзя выделить память").Не могу сказать, что каждый камень в репозиторий Optware - это ещё один повод перейти на репозиторий OpenWRT, но это как раз тот случай.

Вообще, жалобы на невозможность запустить актуальный софт на базе Optware сродни удивлению, почему не запускается новая игра на Windows 95. Повторю слова lly: стенд Optware протух до невозможности.

ЗЫ В новых прошивках желающих настроить установку пакетов "с нуля" будет ожидать сюрприз:)

xz_kostyan
01-01-2012, 12:30
ЗЫ В новых прошивках желающих настроить установку пакетов "с нуля" будет ожидать сюрприз:)

Наверно тогда стоит где-нибудь об этом написать. Потому как по умолчанию, вроде бы, в rtn остается optware репозиторий.

njachaj
09-01-2012, 08:10
Новый год, новая жизнь. Не пью, не курю, репозитарий меняю.
Первые впечатления самые лучшие- rtorrent запустился с ходу, с мордой пришлось повозиться, но потом выскочили две проблемки:
1. Закачка больших торрентов с кучей файлов,как правило, завершается с ошибкой:

"Download registered as completed, but hash check returned unfinished chunks"
и торрент переходит в состояние остановлено, закачано типа 98%.
Лечится перезагрузкой rtorrent, после чего он повторно скачивает бракованные проценты и все ок.
Насколько я понял это следствия бага ядра http://libtorrent.rakshasa.no/wiki/LibTorrentKnownIssues:

Linux version 2.6.19 appears to have a bug in the synching of mmapped files, leading to large numbers of failed chunks when downloading a torrent. Using rTorrent with kernel 2.6.19 is not recommended, but if an earlier kernel version is not an option, make sure to enable the "check_hash" option and manually restart torrents until all chunks pass the hash check. Kernel 2.6.20-rc3 has fixed this problem, so this version and later ones should be safe.

2. При проверке торрента перестает реагировать на клаву даже в screen. Надо терпеливо дождаться пока он придет в себя.

В остальном все прекрасно: закачки и раздачи на максимуме, за 8 дней ни одного падения (раньше 2-3 раза в сутки при количестве раздач > 30). Правда таким пингвинам как я настраивать с нуля тяжеловато, может чего и не доставил.
Премного вам благодарен.

ryzhov_al
10-01-2012, 18:54
Начиная с сегодняшней ревизии (http://code.google.com/p/wl500g/source/detail?r=3727), прошивка ветки 1.9.2.7-rtn будет использовать этот репозиторий.

Использование ПО несколько отличается от OpenWRT как по именованию пакетов, так и по их составу. Посмотрите в первом посте темы базовую информацию по переходу на новых репозиторий.

Хочу отметить, что одновременное использование репозиториев - прежнего Optware и нового OpenWRT - невозможно. В новом менеджере пакетов opkg есть проверка платформы, которая не позволит установить пакеты Optware на новый репозиторий, поэтому если при установке выкачанного откуда-то пакета вы получили сообщение "...incompatible with the architectures configured", то вы пытаетесь установить пакет из старого репозитория, что недопустимо.

TReX
11-01-2012, 04:34
Начиная с сегодняшней ревизии (http://code.google.com/p/wl500g/source/detail?r=3727), прошивка ветки 1.9.2.7-rtn будет использовать этот репозиторий.


На прошивке RT-N16-1.9.2.7-rtn-r3728 если делать все по инструкции из первого поста, при команде opkg update выдается ошибка о невозможности создать фаил в директории /opt/var/lock, проверка показала что директории var и var/lock нет, после ввода команд
mkdir -p /opt/var
mkdir -p /opt/var/lock
все стало хорошо, но как то неправильно все это )

P.S. Полный сброс естественно делался, /opt смонтирован из пустой папки.

ryzhov_al
11-01-2012, 05:03
Поправил, r257 (http://code.google.com/p/wl500g-repo/source/detail?r=257).

TReX
11-01-2012, 05:12
Поправил, r257 (http://code.google.com/p/wl500g-repo/source/detail?r=257).

И еще маленькая просьба, если это конечно не сложно, почему то не обнаружил в репозитарии tar и nano (редактор).

ryzhov_al
11-01-2012, 05:22
И еще маленькая просьба, если это конечно не сложно, почему то не обнаружил в репозитарии tar и nano (редактор).tar есть аплетом в прошивке. Если окажется, что он в чём-то не полноценный, то соберу полный.
nano соберу, но пока не разобрался, поддерживает ли OpenWRT'шный вариант UTF-8.

Upd. Добавил nano в репозиторий, r261 (http://code.google.com/p/wl500g-repo/source/detail?r=261). В OpenWRT'шном варианте поддержки юникода нет.

njachaj
14-01-2012, 06:48
Помогите cron разыскать.

tridog
14-01-2012, 07:17
Не могу мигрировать на новый репозиторий по причине отсутствия в нем vpnc. Планируется ли его добавить?

ryzhov_al
14-01-2012, 12:03
Помогите cron разыскать.Не вопрос:
$ which crond
Не могу мигрировать на новый репозиторий по причине отсутствия в нем vpnc. Планируется ли его добавить?Готово, r271 (http://code.google.com/p/wl500g-repo/source/detail?r=271). Пожалуйста, обязательно отпишитесь по результатам тестирования.

ЗЫ Добавил пакет pyLoad (http://pyload.org/) и поправил (http://www.wl500g.info/showthread.php?t=24932) пост по установке. Приятно осознавать, что русский язык в качалке появился благодаря форумчанам.

mbg
14-01-2012, 16:49
Очень не хватает 7zip. и bzip2 что-то не робит:
bzip2: can't load library 'libbz2.so.1.0' - хотя симлинк на месте.

И небольшой вопрос - мускуль робит (в коносли заходит). пхп робит. а вот пхп к мускулю не цепляется. в пхпмайадмин:
#2002 Невозможно подключиться к серверу MySQL

NetSpider
14-01-2012, 18:22
Перешел на новый репозиторий. Очень не хватает пакета openssh-sftp-server. Он позволял заходить по sftp на роутер.

ryzhov_al
14-01-2012, 21:05
и bzip2 что-то не робит:
bzip2: can't load library 'libbz2.so.1.0' - хотя симлинк на месте.Поправил, r279 (http://code.google.com/p/wl500g-repo/source/detail?r=279).
Очень не хватает 7zipДобавил, r280 (http://code.google.com/p/wl500g-repo/source/detail?r=280).
И небольшой вопрос - мускуль робит (в коносли заходит). пхп робит. а вот пхп к мускулю не цепляется. в пхпмайадмин:
#2002 Невозможно подключиться к серверу MySQLНеобходимо установить соответствующие модули для php:

$ opkg list | grep php | grep mysql

mbg
15-01-2012, 03:56
Поправил, r279 (http://code.google.com/p/wl500g-repo/source/detail?r=279).Добавил, r280 (http://code.google.com/p/wl500g-repo/source/detail?r=280).
Спасибо, все заработало.


Необходимо установить соответствующие модули для php:

$ opkg list | grep php | grep mysql
Дык все поставлено. Но все равно не выходит... Попробую поискать на профильных форумах.

ryzhov_al
15-01-2012, 06:16
Перешел на новый репозиторий. Очень не хватает пакета openssh-sftp-server. Он позволял заходить по sftp на роутер.Добавил, r282 (http://code.google.com/p/wl500g-repo/source/detail?r=282). Пожалуйста, обязательно отпишитесь о результатах тестирования.
Дык все поставлено. Но все равно не выходит... Попробую поискать на профильных форумах.
$ grep mysql.so /opt/etc/php.ini

Zyxmon
15-01-2012, 06:25
Пожалуйста, обязательно отпишитесь о результатах тестирования.
На всякий случай, для информации. dropbear подхватит openssh-sftp-server если он находится в папке, прописанной в #define SFTPSERVER_PATH (файл options.h в dropbear).

ryzhov_al
15-01-2012, 08:24
На всякий случай, для информации. dropbear подхватит openssh-sftp-server если он находится в папке, прописанной в #define SFTPSERVER_PATH (файл options.h в dropbear).Спасибо за подсказку. К счастью, при использовании репозитория OpenWRT совместно с энтузиасткой прошивкой openssh-sftp-server будет находиться на своём месте. Кто-то в своё время дальновидно постарался:

$ grep SFTPSERVER_PATH ./firmware-1.9.2.7-rtn-r3702/src/1.9.2.7-rtn/dropbear/000-build.patch
#ifndef SFTPSERVER_PATH
-#define SFTPSERVER_PATH "/usr/libexec/sftp-server"
+#define SFTPSERVER_PATH "/opt/libexec/sftp-server"



Очень не хватает 7zip.Кстати, p7zip IMHO, порт раскормленного windows-архиватора, не умеющий сохранять в архиве информацию об owner/group. Использовать на Linux стоит только от безысходности.

NetSpider
16-01-2012, 06:59
Добавил, r282 (http://code.google.com/p/wl500g-repo/source/detail?r=282). Пожалуйста, обязательно отпишитесь о результатах тестирования.

Установил пакет. Все прекрасно работает. Спасибо.

dis8848
16-01-2012, 08:08
Не могу перейти на новый репозиторий по причине отсутствия sane. Предполагается ли его добавить?

BcTpe4HbIu
17-01-2012, 17:53
openvpn после перехода на новый репозиторий:

[admin@WL500w root]$ openvpn
Usage message not available
[admin@WL500w root]$ openvpn --help
Usage message not available
[admin@WL500w root]$ openvpn --daemon --cd /opt/etc/openvpn --config openvpn.con
f
[admin@WL500w root]$ ps w |grep openvpn
822 admin 1376 S grep openvpn
:eek:

ПС: а openssl будет?)

ryzhov_al
19-01-2012, 11:05
PS deluge слишком ресурсоемок для таких железок.

...deluge, мягко говоря, не славится малым потреблением ресурсов. В отличие от поминавшихся transmission и rtorrent. Но, разумеется, если Вам таки хочется убедиться в этом лично, то никто Вас неволить не может.

...А вавилонские башни C++ классов плохо живут на embedded железе...
Отцы! Ну почему вы всегда правы?!:) Попробовал собрать и запустить на роутере deluge, для чего (почти уверен что) починил сломанный (https://dev.openwrt.org/ticket/6880) в OpenWRT rasterbar-libtorrent. Deluge представляет собой python-среду, управляющую через python-хуки библиотекой rblibtorent, которая в свою очередь написана с использованием boost libraries (http://www.boost.org/), в которой в свою очередь на широкую ногу используются C++ исключения.

Тщетно. Демон так и не взлетел. Всё заканчивалось либо Segmentation fault, либо...

[ERROR ] 12:04:55 main:226 dynamic module does not define init function (initlibtorrent)
Traceback (most recent call last):
File "/opt/lib/python2.6/site-packages/deluge/main.py", line 219, in start_daemon Daemon(options, args)
File "/opt/lib/python2.6/site-packages/deluge/core/daemon.py", line 136, in __init__ from deluge.core.core import Core
File "/opt/lib/python2.6/site-packages/deluge/core/core.py", line 36, in <module> from deluge._libtorrent import lt
File "/opt/lib/python2.6/site-packages/deluge/_libtorrent.py", line 59, in <module> import libtorrent as lt
ImportError: dynamic module does not define init function (initlibtorrent)

Но надо признать, что если бы взлетел, то летал бы низенько, а грацией не отличался бы от барражирующего тяжелого бомбарировщика Люфтваффе. Судите сами, один только web-интерфейс deluge потребляет памяти соизмеримо с pyLoad (http://www.wl500g.info/showthread.php?t=24932):

pmap -d 1233 | grep mapped
mapped: 35540K writeable/private: 27460K shared: 0K
В общем, откладываю в долгий ящик. У желающих продолжить изыскания все карты на руках (r285 (http://code.google.com/p/wl500g-repo/source/detail?r=285) - r296 (http://code.google.com/p/wl500g-repo/source/detail?r=296)), а пока возвращаю репозиторий на круги своя (r300 (http://code.google.com/p/wl500g-repo/source/detail?r=300)).

BcTpe4HbIu
19-01-2012, 12:01
эм.. А ftp клиента нет никакого? :confused:

ryzhov_al
19-01-2012, 12:15
Не могу перейти на новый репозиторий по причине отсутствия sane. Предполагается ли его добавить?
Готово, r302 (http://code.google.com/p/wl500g-repo/source/detail?r=302). Обязательно отпишитесь о результатах тестирования.

openvpn после перехода на новый репозиторий:Посмотрите инструкцию (https://forum.openwrt.org/viewtopic.php?pid=145557) по использованию openvpn в OpenWRT. Почему у меня всё работает?

$ opkg install openvpn
$ openvpn --genkey --secret static.key
$ insmod tun
$ openvpn --mktun --dev tap0
$ ifconfig tap0 0.0.0.0 promisc up
...
openvpn ./server.conf

Thu Jan 19 16:20:02 2012 OpenVPN 2.2.1 mipsel-unknown-linux-gnu [SSL] [LZO2] [EPOLL] built on Jan 19 2012
Thu Jan 19 16:20:02 2012 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Thu Jan 19 16:20:03 2012 Static Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Jan 19 16:20:03 2012 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jan 19 16:20:03 2012 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Jan 19 16:20:03 2012 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jan 19 16:20:03 2012 Socket Buffers: R=[110592->131072] S=[110592->131072]
Thu Jan 19 16:20:03 2012 TUN/TAP device tap1 opened
Thu Jan 19 16:20:03 2012 TUN/TAP TX queue length set to 100
Thu Jan 19 16:20:03 2012 Data Channel MTU parms [ L:1576 D:1450 EF:44 EB:4 ET:32 EL:0 ]
Thu Jan 19 16:20:03 2012 UDPv4 link local (bound): [undef]:1194
Thu Jan 19 16:20:03 2012 UDPv4 link remote: [undef]


ПС: а openssl будет?)Всегда был:
$ opkg list | grep openssl

эм.. А ftp клиента нет никакого? :confused:Добавил wput, r303 (http://code.google.com/p/wl500g-repo/source/detail?r=303).

BcTpe4HbIu
19-01-2012, 13:11
.
Посмотрите инструкцию (https://forum.openwrt.org/viewtopic.php?pid=145557) по использованию openvpn в OpenWRT. Почему у меня всё работает?

$ opkg install openvpn
$ openvpn --genkey --secret static.key
$ insmod tun
$ openvpn --mktun --dev tap0
$ ifconfig tap0 0.0.0.0 promisc up
...
openvpn ./server.conf

Thu Jan 19 16:20:02 2012 OpenVPN 2.2.1 mipsel-unknown-linux-gnu [SSL] [LZO2] [EPOLL] built on Jan 19 2012
Thu Jan 19 16:20:02 2012 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Thu Jan 19 16:20:03 2012 Static Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Jan 19 16:20:03 2012 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jan 19 16:20:03 2012 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu Jan 19 16:20:03 2012 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jan 19 16:20:03 2012 Socket Buffers: R=[110592->131072] S=[110592->131072]
Thu Jan 19 16:20:03 2012 TUN/TAP device tap1 opened
Thu Jan 19 16:20:03 2012 TUN/TAP TX queue length set to 100
Thu Jan 19 16:20:03 2012 Data Channel MTU parms [ L:1576 D:1450 EF:44 EB:4 ET:32 EL:0 ]
Thu Jan 19 16:20:03 2012 UDPv4 link local (bound): [undef]:1194
Thu Jan 19 16:20:03 2012 UDPv4 link remote: [undef]


Oops :o добавил подробностей - он заговорил что не знает disable-occ...

Спасибо)

Zyxmon
19-01-2012, 13:23
Если sane не заработает, нужно будет добавить


TARGET_LDFLAGS += \
-Wl,-rpath,/opt/lib/sane \

Это есть в optware.
По поводу ftp клиентов - не должно быть проблем с добавлением lftp и ncftp.

dis8848
19-01-2012, 14:09
Если sane не заработает, нужно будет добавить


TARGET_LDFLAGS += \
-Wl,-rpath,/opt/lib/sane \

Это есть в optware....это в командной строке вводить?

И еще. Вот по этой инструкции: http://wl500g.info/showthread.php?t=21162
требуется установка еще нескольких библиотек:

ipkg install libusb
ipkg install libtiff
ipkg install libjpeg
ipkg install libieee1284
эти зависимости в новом репозитории решены?
простите мне мой корявый английский :)

ryzhov_al
19-01-2012, 14:30
это в командной строке вводить?Нет, забудьте. Это замечание для сборки. Вы действительно поможете когда сообщите: заработал ли у вас sane или нет. Мне работоспособность sane проверить не на чем, а обратная связь очень важна.

И еще. Вот по этой инструкции: http://wl500g.info/showthread.php?t=21162
требуется установка еще нескольких библиотек:

ipkg install libusb
ipkg install libtiff
ipkg install libjpeg
ipkg install libieee1284
эти зависимости в новом репозитории решены?Решены. Установка sane-backends подтянет за собой все необходимые библиотеки. Только теперь ориентируйтесь на многочисленные инструкции для OpenWRT, коих в сети воз и маленькая тележка.

dis8848
19-01-2012, 14:33
Нет, забудьте. Это замечание для сборки. Вы действительно поможете когда сообщите: заработал ли у вас sane или нет. Мне работоспособность sane проверить не на чем, а обратная связь очень важна.
Решены. Установка sane-backends подтянет за собой все необходимые библиотеки. Только теперь ориентируйтесь на многочисленные инструкции для OpenWRT, коих в сети воз и маленькая тележка.спасибо за разъяснения. Обязательно проверю и отпишусь, поскольку переходить собрался, а без сканера не могу.
Планирую заняться в выходные этим вопросом.

BcTpe4HbIu
19-01-2012, 16:49
logrotate или чтонибудь подобное?

[admin@WL500w root]$ opkg list | grep logrotate
[admin@WL500w root]$

tin
20-01-2012, 00:06
А будет маленькая , но очень полезная утилитка clear ?

ryzhov_al
20-01-2012, 08:13
Oops :o добавил подробностей - он заговорил что не знает disable-occ...Я не могу от вас что-либо требовать, но я ожидаю, что вы самостоятельно читаете документацию по используемому софту. В этом заинтересованы исключительно вы и никто другой.
Предлагаю самостоятельно найти ответ на свой вопрос: себя же в итоге больше зауважаете.

logrotate или чтонибудь подобное?Проверьте работоспособность, r305 (http://code.google.com/p/wl500g-repo/source/detail?r=305)

a нельзя ли iftop добавить? )Можно добавить практически всё, что есть в OpenWRT, r306 (http://code.google.com/p/wl500g-repo/source/detail?r=306). Правда не цветной, из-за ncurses (?) без локалей.

А будет маленькая , но очень полезная утилитка clear ?Она вроде бы из состава util-linux? Если да, то сделаю, меня там ionice интересует.

BcTpe4HbIu
20-01-2012, 16:18
Я не могу от вас что-либо требовать, но я ожидаю, что вы самостоятельно читаете документацию по используемому софту. В этом заинтересованы исключительно вы и никто другой.
Предлагаю самостоятельно найти ответ на свой вопрос: себя же в итоге больше зауважаете.

кхм... вообще-то ответ я нашел перед тем как написал тот пост и документацию я тоже читал, спасибо.


Проверьте работоспособность, r305 (http://code.google.com/p/wl500g-repo/source/detail?r=305)

не туда статус писать хочет.


error: error creating state file /var/lib/logrotate.status: No such file or directory

BcTpe4HbIu
20-01-2012, 21:11
Тогда скажите нам, почему openvpn не воспринимает опцию --disable-occ?

Вероятно потому что собирался он с --enable-small?

syshead.h

/*
* Should we include OCC (options consistency check) code?
*/
#ifndef ENABLE_SMALL
#define ENABLE_OCC
#endif
options.c

#ifdef ENABLE_OCC
"--disable-occ : Disable options consistency check between peers.\n"
#endif

--------

#ifdef ENABLE_OCC
else if (streq (p[0], "disable-occ"))
{
VERIFY_PERMISSION (OPT_P_GENERAL);
options->occ = false;
}
#endif


это заодно объясняет почему он не выдает никаких сообщений.

ПС: а вопрос у меня был "почему он не заводится?", а не "почему он не знает об disable-occ?"

dis8848
21-01-2012, 07:29
при установке htop ругнулось:

[root@RT-N16 root]$ opkg install htop
Installing htop (1.0-1) to root...
Downloading http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/htop_1.0-1_rtn.ipk.
Configuring htop.
[root@RT-N16 root]$ htop
htop: can't load library 'libncursesw.so.5'

dis8848
21-01-2012, 08:10
По поводу sane.
Делал так.
Сначала по инструкции отсюда (http://code.google.com/p/wl500g-repo/wiki/Using):

$ mkdir /tmp/harddisk/opt
$ mount -o bind /tmp/harddisk/opt /opt

$ wget http://wl500g-repo.googlecode.com/svn/ipkg/switch_to_openwrt.sh
$ chmod +x ./switch_to_openwrt.sh
$ ./switch_to_openwrt.sh

$ opkg update
$ opkg install mc

echo "#!/bin/sh" > /usr/local/sbin/post-mount
echo "mount -o bind /tmp/harddisk/opt /opt" >> /usr/local/sbin/post-mount
Затем (немного изменив) по инструкции отсюда (http://wl500g.info/showthread.php?t=21162):

opkg install libusb
opkg install libtiff
opkg install libjpeg
opkg install libieee1284
при этом

[root@RT-N16 root]$ opkg install libieee1284
Unknown package 'libieee1284'.
Collected errors:
* opkg_install_cmd: Cannot install package libieee1284.
[root@RT-N16 root]$

также обратил внимание, что выполнение шага:
You have to change the user and group in the xinetd-script to your root-user.
My root-user is "admin".

vi /opt/etc/xinetd.d/saned

service saned
{
socket_type = stream
server = /opt/sbin/saned
protocol = tcp
user = admin
group = root
wait = no
disable = no
}

невозможно, поскольку каталог, файл отстутствуют.
Создал вручную, поместил туда файл с соответствующими настройками.
Затем:

flashfs save && flashfs commit && flashfs enable && reboot
и после этого затык:

[root@RT-N16 root]$ sane-find-scanner
-sh: sane-find-scanner: not found
[root@RT-N16 root]$ scanimage -L
-sh: scanimage: not found

Zyxmon
21-01-2012, 08:16
dis8848 Ориентируйтесь в настройке sane на тему - http://forum.zyxmon.org/topic82-sane-na-keenetic.html
с учетом разницы платформ и директорий.

dis8848
21-01-2012, 08:46
dis8848 Ориентируйтесь в настройке sane на тему - http://forum.zyxmon.org/topic82-sane-na-keenetic.html
с учетом разницы платформ и директорий.
оооо, воначо...
спасибо большое, будем попробовать..:confused:

ryzhov_al
21-01-2012, 08:47
ПС: а вопрос у меня был "почему он не заводится?", а не "почему он не знает об disable-occ?"Ну так если вы всё сами прекрасно понимаете, то какого лешего пишите про ругань на ключи, которых там и быть не должно? Зачем упоминать отсутствие справки? Прошу, поймите: когда вы что-то пишите, то это подразумевает некую реакцию. Поберегите своё и моё время, лучше потратьте его на помощь новичку. Посмотрите на предыдущую страницу - всё заводится.

при установке htop ругнулось:

htop: can't load library 'libncursesw.so.5'Поправил, r316 (http://code.google.com/p/wl500g-repo/source/detail?r=316).

не туда статус писать хочет.
error: error creating state file /var/lib/logrotate.status: No such file or directoryПоправил, r317 (http://code.google.com/p/wl500g-repo/source/detail?r=317).
как уже писал, имхо, бессмысленно.Согласен, но патч оставлю: вреда нет, а новички будут меньше шарахаться.

theMIROn
21-01-2012, 08:54
dis8848 Ориентируйтесь в настройке sane на тему - http://forum.zyxmon.org/topic82-sane-na-keenetic.html
с учетом разницы платформ и директорий.

на этом формуме полно тем про sane, достаточно поискать.
или там что-то совсем исключительно актуальное для нелюбителей нажать на search?

dis8848
21-01-2012, 09:12
или там что-то совсем исключительно актуальное для нелюбителей нажать на search?не отношу себя к "нелюбителям". Делал (указал по какой инструкции) на старом репозитории - всё прошло без проблем.
Сейчас получил:

[root@RT-N16 root]$ opkg install xinetd
Unknown package 'xinetd'.
Collected errors:
* opkg_install_cmd: Cannot install package xinetd.

то же самое и с
opkg install libieee1284

Zyxmon
21-01-2012, 09:32
или там что-то совсем исключительно актуальное для нелюбителей нажать на search?
Ничего исключительно. Просто та же версия (ибо репозитарий openwrt), тот же набор пакетов для sane.

ryzhov_al
21-01-2012, 09:55
не отношу себя к "нелюбителям". Делал (указал по какой инструкции) на старом репозитории - всё прошло без проблем.Посмотрите инструкции по настройке sane в OpenWRT, посмотрите инструкцию Zyxmon. Старая инструкция работать не будет, нельзя же зажмурившись, повторяя по обезьяньи шаги каких-то инструкций, рассчитывать на положительный результат? Придётся разобраться в том, что выполняет та или иная команда. Согласитесь, что никто, кроме вас в этом не заинтересован.

TReX
21-01-2012, 11:53
Посмотрите инструкции по настройке sane в OpenWRT, посмотрите инструкцию Zyxmon. Старая инструкция работать не будет, нельзя же зажмурившись, повторяя по обезьяньи шаги каких-то инструкций, рассчитывать на положительный результат? Придётся разобраться в том, что выполняет та или иная команда. Согласитесь, что никто, кроме вас в этом не заинтересован.

Ни одно благое дело (новый репозитарий) не остается безнаказным :D

dmig
21-01-2012, 12:06
ну вот, сподобился я наконец перейти на новый реп и с чистого листа переставить систему.
ничего, что на 1.9.2.7-rtn-r3702? а ежели чего, где взять более свежую сборку?

найденные баги:
пакет less -- требует libncursesw.so.5, однако зависимости нет (libncursesw не ставится)

нинашол:
colordiff, patch, patchutils, sudo, wakelan, tor, polipo, git, incron, man, man-pages

TReX
21-01-2012, 12:11
ну вот, сподобился я наконец перейти на новый реп и с чистого листа переставить систему.
ничего, что на 1.9.2.7-rtn-r3702? а ежели чего, где взять более свежую сборку?

найденные баги:
пакет less -- требует libncursesw.so.5, однако зависимости нет (libncursesw не ставится)

http://asus.vectormm.net/rtn/3748/ не спасет отца русской деморатии? ))

Коллеги, начиная с ревизии r3727 прошивки 1.9.2.7-rtn основным источником ПО для роутера будет наш собственный репозиторий пакетов OpenWRT. (с)

ryzhov_al
21-01-2012, 12:39
найденные баги:
пакет less -- требует libncursesw.so.5, однако зависимости нет (libncursesw не ставится)Поправил, r319 (http://code.google.com/p/wl500g-repo/source/detail?r=319).

нинашол:
colordiff, patch, patchutils, sudo, wakelan, tor, polipo, git, incron, man, man-pagesНичего этого не будет. Сообщество OpenWRT помешано на размерах пакетов, поэтому никаких мануалов, никаких средств нативной компиляции. Polipo, wakelan, tor чуть позже посмотрю.

dmig
21-01-2012, 13:05
http://asus.vectormm.net/rtn/3748/ не спасет отца русской деморатии? ))
спасибо :)


Ничего этого не будет. Сообщество OpenWRT помешано на размерах пакетов, поэтому никаких мануалов, никаких средств нативной компиляции.
это их половые трудности. у нас, как правило, есть hdd.

sudo мне бешено необходим, поскольку рут забанен. буду собирать сам.
incron и colordiff много кому пригодились бы.

ryzhov_al
21-01-2012, 13:38
это их половые трудности. у нас, как правило, есть hdd.Зачем man, если ни в один пакет не включены man-pages? Зачем интерфейсы ./include*.h, если нет никаких средств нативной компиляции? А если нет, то кроме средств отладки strace/ldd/gdb не нужны никакие diff/patch/git/svn.
Переходом на репозиторий OpenWRT мы также решили проблему разброда среди разношёрстных средств компиляции:
убогой нативной больше нет, так как на роутер возможно было портировать только старенького ивалида GCC 4.1.1,
в протухшей среде optware, несмотря на обилие в ней библиотек больше нет необходимости,
современный тулчейн энтузиастов получил великолепную обвязку в лице среды OpenWRT Buildroot, делающей доступными практически любые достижения сообщества OpenWRT.
Зачем же так настойчиво пытаться вернуться в старые времена?

dmig
21-01-2012, 14:12
насчёт man -- согласен, не критично, кроме того, всегда под рукой есть консоль, где этот ман можно глянуть.

diff/patch -- весьма необходимые в хозяйстве вещи. к сборке они мало относятся.

svn(сейчас не пользуюсь, так что нафик)/git/gitosis/gitolite -- нужны. я, например, держал на роутере свои репозитории. никакого отношения к протухшей среде сборки они не имеют.

мне кажется странным отношение к инструментам в репозитории -- тот же ffmpeg есть, а средств для хостинга кода - нет.

ryzhov_al
21-01-2012, 14:18
мне кажется странным отношение к инструментам в репозитории -- тот же ffmpeg есть, а средств для хостинга кода - нет.Почему же? Смотрите, вы первый кто их запросил, так что с базовым наполнением репозитория я не прогадал. Со времен добавлю необходимые пакеты.
Никто не говорит о том, что наполнение репозитория завершено. Никто не подразумевает, что состав репозитория подвержен каким-то религиозным уклонам. Нужен git? Будет git!

lly
21-01-2012, 14:18
diff/patch -- весьма необходимые в хозяйстве вещи. к сборке они мало относятся.

На самом роутере то они зачем? Заниматься на нём разработкой? IMHO беспереспективно.


svn(сейчас не пользуюсь, так что нафик)/git/gitosis/gitolite -- нужны. я, например, держал на роутере свои репозитории. никакого отношения к протухшей среде сборки они не имеют.
Не знаю как сервер svn, а git пожирает столько ресурсов, что роутер превращается в черепашку. Но на вкус и цвет товарища нет ;)

dmig
21-01-2012, 14:24
На самом роутере то они зачем? Заниматься на нём разработкой? IMHO беспереспективно.
какой разработкой???
к слову, diff использует тот же ipkg при обновлении конфигов (можно посмотреть разницу). нужны они исключительно для удобства -- сравнение конфигов никто не тменял ;)
собсно, diffutils есть в репе. patch и patchutils -- наверное пригодились бы.


Не знаю как сервер svn, а git пожирает столько ресурсов, что роутер превращается в черепашку. Но на вкус и цвет товарища нет ;)
никто не мешает использовать и того и другого через ssh (точнее, при этом используется sftp). как я собсно и делаю.

ryzhov_al
21-01-2012, 15:55
нинашол:
colordiff, patch, patchutils, sudo, wakelan, tor, polipo, git, incron, man, man-pagesДобавил: patch, r321 (http://code.google.com/p/wl500g-repo/source/detail?r=321),
sudo, r322 (http://code.google.com/p/wl500g-repo/source/detail?r=322),
tor, r323 (http://code.google.com/p/wl500g-repo/source/detail?r=323),
polipo, r324 (http://code.google.com/p/wl500g-repo/source/detail?r=324).
git, r325 (http://code.google.com/p/wl500g-repo/source/detail?r=325).Только прошу услугу за услугу: протестируйте перечисленные пакеты и напишите о (не)работе пакетов. Хотя бы одной строчкой.
Пакетов cofordiff, patchutils, incron, man, man-pages в ближайшее время не предвидится.

ЗЫ И насчёт wakelan: /usr/bin/ether-wake не?

dmig
21-01-2012, 16:15
спасибо! проверю.

ether-wake есть -- отлично! ничего другого не надо.

ещё бага: баш зависит от libiconv.so.2, но не ставит её
bash_completion лезет в /etc/bash_completion -- проблема в самом /etc/bash_completion, в нём прописан этот путь

чесгря, bash-completion я бы взял из optware -- там он ощутимо новее.

sshd при выходе странно ругается в лог:

Jan 21 21:23:23 sshd[656]: syslogin_perform_logout: logout() returned an error
Jan 21 21:23:23 sshd[656]: Received disconnect from 192.168.1.247: 11: disconnected by user

проблем при этом не заметил.

transmission-daemon тоже чем-то недоволен:

Jan 21 20:26:29 transmission-daemon[693]: UDP Failed to set receive buffer: requested 4194304, got 221184 (tr-udp.c:75)
Jan 21 20:26:29 transmission-daemon[693]: UDP Failed to set send buffer: requested 1048576, got 221184 (tr-udp.c:86)

...
а вот решение (странно, что наша версия о нём не говорит):

[14:11:27.930] UDP Failed to set receive buffer: requested 4194304, got 221184 (tr-udp.c:75)
[14:11:27.930] UDP Please add the line "net.core.rmem_max = 4194304" to /etc/sysctl.conf (tr-udp.c:80)
[14:11:27.930] UDP Failed to set send buffer: requested 1048576, got 221184 (tr-udp.c:86)
[14:11:27.930] UDP Please add the line "net.core.wmem_max = 1048576" to /etc/sysctl.conf (tr-udp.c:91)


sudo и патч работают прекрасно.
git зависит от man (git help ... -- можно потерпеть) и ругается на отсутствие чего-то...

fatal: Unable to find remote helper for 'https'

с какими ключами он собран? возможно это libcurl

dis8848
21-01-2012, 18:25
странно, поставил
opkg install sane-frontends
сразу заработало это:
sane-find-scanner
и это
scanimage -L
запустил через
SANE_CONFIG_DIR=/opt/etc/sane.d saned -d128
Потребовало прописать порт.
Прописал - в /etc/services

sane-port 6566/tcp saned # SANE network scanner daemon
после этого заработало в отладочном режиме.

теперь нужен xinetd

TReX
22-01-2012, 02:59
tar есть аплетом в прошивке. Если окажется, что он в чём-то не полноценный, то соберу полный.
nano соберу, но пока не разобрался, поддерживает ли OpenWRT'шный вариант UTF-8.

Upd. Добавил nano в репозиторий, r261 (http://code.google.com/p/wl500g-repo/source/detail?r=261). В OpenWRT'шном варианте поддержки юникода нет.

nano проверил, спасибо, так же очень порадовал nmap )
A вот tar какой то кривоватый в прошивке, на некоторых архивах спотыкается, если возможно, хотелось бы увидеть в репозитарии полный...

P.S. А если бы еще и aircrack-ng

dmig
22-01-2012, 14:24
вот описание причин ошибки sshd http://www.derkeiler.com/Mailing-Lists/securityfocus/Secure_Shell/2004-05/0024.html

у нас не выполняется ничего из описанных условий. похоже, где-то остался путь в виде /var/... или /etc/...

PS про dropbear знаю, но с ним были проблемы при использовании git+ssh -- не пробрасываются некоторые переменные окружения

заметил, что nano игнорирует свой /opt/etc/nanorc

Zyxmon
22-01-2012, 14:39
заметил, что nano игнорирует свой /opt/etc/nanorc
Скорее всего так собрано.
Можно отключить при сборке --enable-tiny, тогда еще и help будет.
ЗЫ Не важно с чем линковать (--disable-utf8) - с ncurses или ncursesw, все равно великий могучий правильно не показывает.

dmig
22-01-2012, 15:29
все равно великий могучий правильно не показывает.
да, с этим проблемы. ввод русских букв в консоли не работает -- readline видимо без юникода.

ryzhov_al
22-01-2012, 17:14
ввод русских букв в консоли не работает -- readline видимо без юникода.

$ как это русский в консоли не вводится?
-sh: как: not found
$ set
HOME='/usr/local/root'
IFS='
'
LANG='ru_RU.UTF-8'
LC_ALL='ru_RU.UTF-8'
LOGNAME='root'
PATH='/opt/usr/sbin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin'
PPID='21601'
PS1='[\u@\h \W]$ '
PS2='> '
PS4='+ '
PWD='/tmp/local/root'
SHELL='/bin/sh'
SSH_TTY='/dev/pts/0'
TERM='xterm'
TERMINFO='/opt/share/terminfo'
USER='root'
_='вводится?'

dmig
22-01-2012, 17:39
да, вводится, но с проблемами. я про bash говорю.
кстати, баш почему-то не хочет приглашение раскрашивать:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

ryzhov_al
22-01-2012, 18:06
да, вводится, но с проблемами. я про bash говорю.Да. Везде, где используется ncurses есть проблемы кириллицы в консоле. Насколько я понял, проблема тянется из-за отключенных (http://www.wl500g.info/showpost.php?p=242005&postcount=189) в uClibc локалей. Workaround'а я пока не придумал.


ещё бага: баш зависит от libiconv.so.2, но не ставит еёПоправил, r333 (http://code.google.com/p/wl500g-repo/source/detail?r=333).

Zyxmon
23-01-2012, 04:29
Поправил, r333 (http://code.google.com/p/wl500g-repo/source/detail?r=333).
Откуда эта зависимость взялась. У меня на другой платформе ее нет:

~$ ldd /media/DISK_A1/system/bin/bash
libncurses.so.5 => /media/DISK_A1/system/usr/lib/libncurses.so.5 (0x2aabf000)
libdl.so.0 => /lib/libdl.so.0 (0x2ab00000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2ab13000)
libc.so.0 => /lib/libc.so.0 (0x2ab32000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)

lly
23-01-2012, 06:35
Откуда эта (bash от ncurses) зависимость взялась.
Поддерживаю вопрос! Согласно скрипту configure от bash 4.2, ncurses обязательна только для платформы qnx.

ryzhov_al
23-01-2012, 07:09
Поддерживаю вопрос! Согласно скрипту configure от bash 4.2, ncurses обязательна только для платформы qnx.bash от ncurses не зависит, извините, что ввёл в заблуждение:

$ ldd /opt/bin/bash
libiconv.so.2 => /opt/lib/libiconv.so.2 (0x2aac0000)
libdl.so.0 => /lib/libdl.so.0 (0x2aad7000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aaea000)
libc.so.0 => /lib/libc.so.0 (0x2ab0c000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)Однако с кириллицей у него та же беда, как и в ncurses-based приложениях.
По make-файлу (https://dev.openwrt.org/browser/packages/utils/bash/Makefile) в OpenWRT видно, что изначально он зависел от libncurses и не зависел от libiconv. Возможно, что я что-то не правильно собрал. Обязательно проверю.

ЗЫ Результат $ make package/bash/compile V=99 2>&1 | gzip > ./bash_compile.gz во вложении.

Zyxmon
23-01-2012, 08:21
bash от ncurses не зависит, извините, что ввёл в заблуждение:.....

Вообще говоря, bash в openwrt от ncurses зависит, а от libiconv - не зависит. Смотрим:
https://dev.openwrt.org/browser/packages/utils/bash/Makefile
Читаем INSTALL из архива bash:

`--with-curses'
Use the curses library instead of the termcap library. This should
be supplied if your system has an inadequate or incomplete termcap
database.

Скрипт configure и вставляет зависимость от ncurses
примерно тут (config.log).


configure:30855: checking for tgetent in -ltermcap
....
configure:30897: $? = 1
configure:30923: checking for tgetent in -ltinfo
.....
configure:30965: $? = 1
.....
configure:30991: checking for tgetent in -lcurses
.....
configure:31033: $? = 0
....
configure:31141: checking which library has the termcap functions
configure:31144: result: using libcurses

Платформа у меня немного другая. Но странно.....

ryzhov_al
23-01-2012, 11:19
заметил, что nano игнорирует свой /opt/etc/nanorcПотому, что собран по OpenWRT'шным лекалам с ключом --enable-tiny.

да, с этим проблемы. ввод русских букв в консоли не работает -- readline видимо без юникода.У bash'а в сырцах своя собственная версия readline. С внешней libreadline отказывается линковаться, жалуясь на неактуальность последней. Странно это, так как имеющаяся в пакетах readline-5.2 определяется как readline-4.2.


Вообще говоря, bash в openwrt от ncurses зависит, а от libiconv - не зависит.
...
Платформа у меня немного другая. Но странно.....Взглянул в высланный вами config.log и обнаружил, что у вас configure не обнаруживает iconv.h и потому не использует libiconv. Ко всеобщей радости и (видимо) задумке команды OpenWRT. Как повернуть конфигурирование bash в это русло пока не додумался.

agros
23-01-2012, 19:39
ryzhov_al

планируется ли добавить nut?

itsme
25-01-2012, 04:03
Для посвящённых: для каждого из перечисленных шагов в моих Makefile'ах есть соответствующие цели. Все вышеперечисленные шаги можно сделать так:
$ mkdir ~/openwrt
$ cd ~/openwrt
$ svn co http://wl500g-repo.googlecode.com/svn/trunk/ ./rtn
$ cd ./rtn
$ make buildroot_install
$ sudo make toolchain_install
$ make
$ cd ../trunk
$ make tools/compile
$ make tools/install
$ make package/compile
$ cd ../rtn
$ make ipk_index

Попоробовал сделать по этой инструкции, получил такую ошибку:

$ make V=99 package/compile
WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!
make[1]: Entering directory `/home/itsme/openwrt/trunk'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/opkg'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/opkg'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/base-files-network'
WARNING: skipping base-files-network -- package not selected
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/base-files-network'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/base-files'
WARNING: skipping base-files -- package not selected
WARNING: skipping libssp -- package not selected
WARNING: skipping libgfortran -- package not selected
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/base-files'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/cyassl'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/cyassl'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/e2fsprogs'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/e2fsprogs'
make[2]: Entering directory `/home/itsme/openwrt/trunk/feeds/packages/libs/gettext'
WARNING: skipping libintl -- package not selected
make[2]: Leaving directory `/home/itsme/openwrt/trunk/feeds/packages/libs/gettext'
make[2]: Entering directory `/home/itsme/openwrt/trunk/feeds/packages/libs/libiconv'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/feeds/packages/libs/libiconv'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/libtool'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/libtool'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/ncurses'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/ncurses'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/ncurses'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/ncurses'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/ncurses'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/ncurses'
make[2]: Entering directory `/home/itsme/openwrt/trunk/feeds/packages/libs/aalib'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/feeds/packages/libs/aalib'
make[2]: Entering directory `/home/itsme/openwrt/trunk/feeds/packages/libs/alsa-lib'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/feeds/packages/libs/alsa-lib'
make[2]: Entering directory `/home/itsme/openwrt/trunk/feeds/packages/libs/apr'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/feeds/packages/libs/apr'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/zlib'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/zlib'
make[2]: Entering directory `/home/itsme/openwrt/trunk/feeds/packages/libs/libxml2'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/feeds/packages/libs/libxml2'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/ocf-crypto-headers'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/ocf-crypto-headers'
make[2]: Entering directory `/home/itsme/openwrt/trunk/package/openssl'
make[2]: Leaving directory `/home/itsme/openwrt/trunk/package/openssl'
make[2]: Entering directory `/home/itsme/openwrt/trunk/feeds/packages/net/aria2'
CFLAGS="-Os -pipe -mips32 -mtune=mips32 -I/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/opt/include -I/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/include -I/opt/brcm/hndtools-mipsel-uclibc/include " CXXFLAGS="-Os -pipe -mips32 -mtune=mips32 -I/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/opt/include -I/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/include -I/opt/brcm/hndtools-mipsel-uclibc/include " LDFLAGS="-L/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/opt/lib -L/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/lib -Wl,-rpath,/opt/lib -L/opt/brcm/hndtools-mipsel-uclibc/lib " make -j1 -C /home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/. AR=mipsel-uclibc-ar AS="mipsel-uclibc-gcc -c -Os -pipe -mips32 -mtune=mips32" LD=mipsel-uclibc-ld NM=mipsel-uclibc-nm CC="mipsel-uclibc-gcc" GCC="mipsel-uclibc-gcc" CXX="mipsel-uclibc-g++" RANLIB=mipsel-uclibc-ranlib STRIP=mipsel-uclibc-strip OBJCOPY=mipsel-uclibc-objcopy OBJDUMP=mipsel-uclibc-objdump SIZE=mipsel-uclibc-size CROSS="mipsel-uclibc-" ARCH="mipsel" ;
make[3]: Entering directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1'
make all-recursive
make[4]: Entering directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1'
Making all in po
make[5]: Entering directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/po'
make[5]: Leaving directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/po'
Making all in intl
make[5]: Entering directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/intl'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/intl'
Making all in lib
make[5]: Entering directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/lib'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/lib'
Making all in src
make[5]: Entering directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/src'
mipsel-uclibc-g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I../lib -I../intl -DLOCALEDIR=\"/opt/share/locale\" -DCA_BUNDLE=\"\" -DHAVE_CONFIG_H -I/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/usr/include -I/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/opt/include -I/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/opt/include/libxml2 -I/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/opt/include -I/home/itsme/openwrt/trunk/staging_dir/target-mipsel-rtn-linux-gnu/include -I/opt/brcm/hndtools-mipsel-uclibc/include -Os -pipe -mips32 -mtune=mips32 -MT SocketCore.o -MD -MP -MF .deps/SocketCore.Tpo -c -o SocketCore.o SocketCore.cc
SocketCore.cc: In member function 'bool aria2::SocketCore::isWritable(time_t)':
SocketCore.cc:601: error: 'logger_' was not declared in this scope
SocketCore.cc: In member function 'bool aria2::SocketCore::isReadable(time_t)':
SocketCore.cc:647: error: 'logger_' was not declared in this scope
make[5]: *** [SocketCore.o] Error 1
make[5]: Leaving directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/src'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1'
make[2]: *** [/home/itsme/openwrt/trunk/build_dir/target-mipsel-rtn-linux-gnu/aria2-1.14.1/.built] Error 2
make[2]: Leaving directory `/home/itsme/openwrt/trunk/feeds/packages/net/aria2'
make[1]: *** [package/feeds/packages/aria2/compile] Error 2
make[1]: Leaving directory `/home/itsme/openwrt/trunk'
make: *** [package/compile] Ошибка 2
$


В чем может быть проблема? Гугление не дало желаемого результата.

ryzhov_al
25-01-2012, 05:14
ryzhov_al
планируется ли добавить nut?Пока нет. На первый взгляд его не сложно сделать по аналогии (http://svn.nslu2-linux.org/svnroot/optware/trunk/make/nut.mk) с одноимённым пакетом из optware, но времени пока не хватает. Позже обязательно посмотрю.

agros
25-01-2012, 06:10
...
Пока нет. На первый взгляд его не сложно сделать по аналогии (http://svn.nslu2-linux.org/svnroot/optware/trunk/make/nut.mk) с одноимённым пакетом из optware, но времени пока не хватает. Позже обязательно посмотрю.

подожду, спасибо.

itsme
25-01-2012, 08:07
Вот здесь точно есть засада. Скопируйте ../rtn/fixes/buildroot/.config в ../trunk и снова выполните $ make package/compile. Пакет basefiles должен участвовать в оркестре

.config в обоих папках идентичен

Что еще можно сделать?

ryzhov_al
25-01-2012, 08:19
В чем может быть проблема? Гугление не дало желаемого результата.Вчера в транк добавился пакет aria2, см. changeset 29887 (https://dev.openwrt.org/changeset/29887). Одноимённый пакет из моего фида rtndev (http://code.google.com/p/wl500g-repo/source/browse/#svn%2Ffeeds%2Frtndev) больше не нужен. Выполните:
$ make menuconfig, снимите галку с пакета aria2, сохраните .config и повторите сборку репозитория:
$ make package/compileВ следующий раз, когда дело встанет на компиляции определённого пакета выполните

$ make package/aria2/compile V=99и смотрите причину ошибки. Пожалуйста, пользуйтесь инструкциями к среде OpenWRT Buildroot, их на любых языках - навалом.
ЗЫ Гуглите сильнее:)


git зависит от man (git help ... -- можно потерпеть)Так и должно быть. man'ов нет и не будет.

и ругается на отсутствие чего-то...

fatal: Unable to find remote helper for 'https'Всё верно. В OpenWRT git собран только с поддержкой протокола git://. Ни http://, ни https:// работать не будут.
с какими ключами он собран? возможно это libcurlС этими (https://dev.openwrt.org/browser/packages/net/git/Makefile). С curl он дружить не будет по той же причине. Мы никогда не сравняемся с возможностями большого компьютера. Отклоняться от мейнстрима OpenWRT без весомых причин не буду.

mbg
26-01-2012, 15:11
Не могу понять, что за сильные различия между OptWare и OpenWRT...
Не могу заставить работать скрипт обновлений нода. Сначала wget ругался на параметр -o - поменял на wget-nossl, заработало. Но никак не могу побороть:

sed: unsupported command I
в теме про скрипт читал, не нашел... Может есть решение?

ryzhov_al
26-01-2012, 15:31
Но никак не могу побороть:

sed: unsupported command IКоторый sed используется? /bin/sed из прошивки или /opt/bin/sed из пакетов? Первый, выполненный аплетом busybox очень даже может оказаться неполноценным. Прописывайте в скриптах полные пути. Воизбежание.

TReX
26-01-2012, 15:47
Который sed используется? /bin/sed из прошивки или /opt/bin/sed из пакетов? Первый, выполненный аплетом busybox очень даже может оказаться неполноценным. Прописывайте в скриптах полные пути. Воизбежание.

A как там дела с aircrack-ng можно будет добавить?

dis8848
28-01-2012, 06:59
Скажите, пожалуйста, планируется ли добавить xinetd ?

lucky:)
29-01-2012, 00:21
было бы неплохо для полноты увидеть Samba
для любителей устанавливать Windows XP по сети через PXE понадобится cabextract

pilers
29-01-2012, 07:42
Будет ли добавлен adduser?

mbg
30-01-2012, 07:09
Подскажите, плиз -
libfreetype в репозитории это то же самое что и FreeType 2 (http://www.freetype.org/) ?
и по поводу gd.so - ну никак не работает. не могу понять, либо это специфика пхп ветки 5.3 и надо что-то менять либо... логи чистые.
Если ошибся темой - скажите где спросить. Уже неделю мучаю...

ryzhov_al
30-01-2012, 07:26
Подскажите, плиз -
libfreetype в репозитории это то же самое что и FreeType 2 (http://www.freetype.org/) ?

$ grep URL ./trunk/feeds/packages/libs/freetype/Makefile
PKG_SOURCE_URL:=@SF/freetype
URL:=http://www.freetype.org/

и по поводу gd.so - ну никак не работает. не могу понять, либо это специфика пхп ветки 5.3 и надо что-то менять либо... логи чистые.
$ opkg install php5-mod-gdЗатем посмотрите если ли модуль в списке загруженных. Если нет, правьте конфигурационные файлы, если есть - терзайте модуль в профильной теме.

A вот tar какой то кривоватый в прошивке, на некоторых архивах спотыкается, если возможно, хотелось бы увидеть в репозитарии полный...Ок, r332 (http://code.google.com/p/wl500g-repo/source/detail?r=332).

P.S. А если бы еще и aircrack-ng
A как там дела с aircrack-ng можно будет добавить?Перебирать векторы инициализации WEP на роутере дело не благодарное, да и не уверен я, что aircrack-ng будет работать с чипсетом Broadcom. Проверьте обязательно, r345 (http://code.google.com/p/wl500g-repo/source/detail?r=345).

теперь нужен xinetd
Скажите, пожалуйста, планируется ли добавить xinetd ?Проверяйте работоспособность, r345 (http://code.google.com/p/wl500g-repo/source/detail?r=345).


ЗЫ. Коллеги, я с одного раза слышу, не стоит меня бомбить одинаковыми просьбами.

BcTpe4HbIu
30-01-2012, 08:37
[admin@WL500w root]$ tar
tar: can't load library 'libiconv.so.2'

[admin@WL500w root]$ find /opt/lib /lib /usr/lib -name libiconv.so.2
/opt/lib/libiconv.so.2

ryzhov_al
30-01-2012, 09:56
[admin@WL500w root]$ tar
tar: can't load library 'libiconv.so.2'Fixed, r347 (http://code.google.com/p/wl500g-repo/source/detail?r=347).

mbg
31-01-2012, 03:23
Затем посмотрите если ли модуль в списке загруженных. Если нет, правьте конфигурационные файлы, если есть - терзайте модуль в профильной теме.
Терзал модуль, получил ошибку:

Call to undefined function imagettfbbox()
Курил гугль, и нашел, что пхп сконфигурен без поддержки freetype. В выводе пхпинфо это видно. Как я понял, раздел gd в выводе phpinfo должен выглядеть так (http://wiki.waltercedric.com/index.php?title=Fatal_error:_Call_to_undefined_fun ction:_imagettfbbox()).
Можно поправить?

ryzhov_al
31-01-2012, 03:49
Можно поправить?Так (https://dev.openwrt.org/browser/packages/lang/php5/Makefile?rev=10191) модуль gd собран в OpenWRT:

ifneq ($(CONFIG_PACKAGE_php5-mod-gd),)
PKG_CONFIGURE_OPTS+= --with-gd=shared,"$(STAGING_DIR)/usr" \
--without-freetype-dir \
--with-jpeg-dir="$(STAGING_DIR)/usr" \
--with-png-dir="$(STAGING_DIR)/usr" \
--without-xpm-dir \
--without-ttf \
--without-t1lib \
--enable-gd-native-ttf \
--disable-gd-jis-convПоправить можно самостоятельной сборкой, т.к. я без веских причин от канонов OpenWRT отклоняться не буду.
Кроме того, я отлично помню, как генерация каждого thumbnail'а на WL-500gpv1 занимала ровно минуту.

mbg
31-01-2012, 04:20
Поправить можно самостоятельной сборкой, т.к. я без веских причин от канонов OpenWRT отклоняться не буду.
Кроме того, я отлично помню, как генерация каждого thumbnail'а на WL-500gpv1 занимала ровно минуту.
Например, без этого не работает vnstat... А тумбнайлы и не нужны :)
Самостоятельно собирать только кросс-компиляцией? make я в репозитории не нашел.

ryzhov_al
31-01-2012, 04:49
Например, без этого не работает vnstat... Oh, really? Поверю, что какой-то php frontend к vnstat действительно не работает, vnstat исправен, и картинки строит. См. HOW-TO (http://wiki.openwrt.org/doc/howto/vnstat).

mbg
31-01-2012, 04:54
Oh, really? Поверю, что какой-то php frontend к vnstat действительно не работает, vnstat исправен, и картинки строит. См. HOW-TO (http://wiki.openwrt.org/doc/howto/vnstat).
Сорри... Имел в виду именно фронтенд - vnStat PHP frontend.

ryzhov_al
31-01-2012, 05:37
Сорри... Имел в виду именно фронтенд - vnStat PHP frontend.vnStat PHP frontend был создан (http://www.sqweek.com/sqweek/index.php?p=1) в 2007 году - в те времена, когда vnstat не умел сам строить картинки. С 2009-го года vnstat сам научился (http://humdi.net/vnstat/CHANGES) это делать с помощью libgd, причём очень бодро.

По этой причине автор vnStat PHP frontend'а забросил своё детище два года назад. Форумчане делятся друг с другой рецептом работы PHP frontend'а лишь по той причине, что в репозитории optware находится (http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/vnstat_1.10-2_mipsel.ipk) предыдущая версия vnstat, в которой возможность построения графиков обрезана.

Самостоятельно собирать только кросс-компиляцией? make я в репозитории не нашел.На сайте репозитория - лишь набор патчей к среде сборки OpenWRT Buildroot. Make-файлы расположены в самой среде. Как всем этим воспользоваться написано во втором посте.

rss
31-01-2012, 18:32
Некоторое время назад смотрели на клиента gogoCLIENT, который не требует наличия прямого IP для установления туннеля. Из-за c++ получается довольно большой размер бинарника, поэтому поместить в прошивку без переписывания отдельных кусков его не получится. А вот поместить в optware вполне возможно - http://ipv6now.com.au/downloads.php и http://ipv6now.com.au/download/gw6c-6_0-RELEASE-src.tar

Подключать придётся скриптами, но, предположительно, проблем это вызвать не должно.

ryzhov_al
01-02-2012, 07:32
А вот поместить в optware вполне возможно - http://ipv6now.com.au/downloads.php и http://ipv6now.com.au/download/gw6c-6_0-RELEASE-src.tarНе вопрос, r351 (http://code.google.com/p/wl500g-repo/source/detail?r=351).

Upd. Инструкция по использованию - здесь (http://www.wl500g.info/showpost.php?p=245187&postcount=257).

PS Слово optware с некоторых пор - ругательное:)

itsme
01-02-2012, 10:11
Возможно ли добавить в репозиторий BitlBee?
http://www.bitlbee.org/

ryzhov_al
01-02-2012, 11:20
Возможно ли добавить в репозиторий BitlBee?
http://www.bitlbee.org/Пожалуйста, отпишитесь по результатам проверки, r353 (http://code.google.com/p/wl500g-repo/source/detail?r=353).

DarkTwin
01-02-2012, 11:41
Простите если не в ту тему.
В репозитории lighttpd версии 1.4.29, актуальная версия уже давно 1.4.30.

И еще вопрос.
раньше я cron ставил из репозитория, сейчас же он как бы установлен изначально.
Где находится файл конфигурации для него ?

ryzhov_al
01-02-2012, 12:29
Простите если не в ту тему.
В репозитории lighttpd версии 1.4.29, актуальная версия уже давно 1.4.30.Раз вы так внимательны к версии lighty, то наверняка знаете какие фичи и баги добавились в новой версии, а следовательно, знаете о причине, по которой новая версия в репозитории никак не появится.
И еще вопрос.
раньше я cron ставил из репозитория, сейчас же он как бы установлен изначально.
Где находится файл конфигурации для него ?Cм. в профильной теме (http://www.wl500g.info/showthread.php?t=21030&highlight=crond). Ищите упоминания о crond. Пожалуйста, учитие разницу между Paul Vixie's cron из старых пакетов и Matt Dillon's cron из прошивки.

Zyxmon
01-02-2012, 12:57
Со сборкой lighttpd версии 1.4.30 нет никаких проблем. Пакет будет рабочим. Openwrt'шнки часто тормозят при обновлении версий. Им нужно обеспечить совместимость с жутким зоопарком железа и софта. Иногда можно их и обогнать.

ryzhov_al
01-02-2012, 13:06
Со сборкой - абсолютно никаких. А вот с последующим использованием - есть (http://www.wl500g.info/showpost.php?p=242383&postcount=126). Автор ошибку признал и исправил (http://redmine.lighttpd.net/issues/2385), но фикс появится только в следующей версии.

Zyxmon
01-02-2012, 13:25
но фикс появится только в следующей версии.
А что нам стоит самим патч добавить. Новая версия выйдет, возможно, очень не скоро.
http://redmine.lighttpd.net/projects/lighttpd/repository/revisions/2822/diff

PS Спасибо за ссылки, как дойдут руки, соберу 1.4.30 с этим патчем.

theMIROn
01-02-2012, 13:42
Ну и бог с ним что занято, нас засудят чтоле?
Вопрос сохранения совместимости с optware как много более глобальной - намного важнее. Основной плюс optware - независимость от локальных тулчейнов, используемых в прошивках (Oleg target), а использование своего конкретного. Да, это приводит к большему расходу памяти, но who cares? Зато гибко и не приходится перекомпилировать ВСЕ пакеты при изменениях в прошивке/тулчейне. А ново-собранные пакеты просто могут оказаться нерабочими на более древних версиях прошивки из-за бинарной несовместимости ulibc.
Большая просьба про это не забывать.

P.s больший смысл имело бы обновление тулчейна в optware, либо создание нового таргета там же + доступ к нему.

Или я что-то упустил из виду?

ryzhov_al
01-02-2012, 18:16
Основной плюс optware - независимость от локальных тулчейнов, используемых в прошивках (Oleg target), а использование своего конкретного. Да, это приводит к большему расходу памяти, но who cares? Зато гибко и не приходится перекомпилировать ВСЕ пакеты при изменениях в прошивке/тулчейне.I care. Разрбасываться и без того малой памятью я бы не стал. Кроме того, процесс пересборки репозитория автоматизирован, пересобирай хоть десять раз на дню.
А ново-собранные пакеты просто могут оказаться нерабочими на более древних версиях прошивки из-за бинарной несовместимости ulibc.
Большая просьба про это не забывать.Да, всё это верно.
Однако это совсем не мешает развиваться и процветать OpenWRT. Посмотри: у них для каждого релиза свой репозиторий. И ничего, пользуются и не жужжат.

Любая фиксация тулчейна на веки вечные приведёт к потери актуальности инструментария через год-два, за примером дальше optware ходить не надо. Кроме того, нет никаких препятствий для дальнейшего использования optware, если пользователь того пожелает.

theMIROn
01-02-2012, 18:28
Да, всё это верно.
Однако это совсем не мешает развиваться и процветать OpenWRT. Посмотри: у них для каждого релиза свой репозиторий. И ничего, пользуются и не жужжат.
да, у них есть ресурсы. а у нас?


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

p.s переместить бы последние сообщения в более профильную тему

ryzhov_al
01-02-2012, 18:56
да, у них есть ресурсы. а у нас?Ресурсы на пересборку? Есть. Вон, в англоязычной ветке сейчас обезьяна с гранатой^W тулчейном репозиторий пересобирает. Тулчейн с третьего раза только нормально поставил, а с пересборкой справился. OpenWRT пускай свои пакеты отлаживает - мы их своим тулчейном будем пересобирать. Или хочешь убедить, что ресурсов нет и всё надо бросать? Фигушки.

как я себе это представляю - при апейте тулчейна в прошивке, с какой то задержкой (это нормально), может аналогично обновиться и тулчейн в репозитарии с перекомпиляцией пакетов.Пока остановились на следующей схеме: я обеспечиваю совместимость репозитория с последней прошивкой, доступной в разделе Downloads на гуглокоде. От вас, кулибины, только одно требование: чтобы рядом с той прошивкой лежал актуальный тулчейн, которым она собрана.

Все остальные товарищи, увлекающиеся nightly builds, как всегда сами принимают риски на себя, в том числе по бинарной несовместимости с репозиторием.

Зы. Вопрос с формулой и ритмичностью обновлений репозитория открыт. Репозиторий позволяет запаковать uClibc-библиотеки по пакетам и использовать их отдельно от прошивочных, на манер OpenWRT, надо только допилить ld/ld.so.conf патчем на манер optware. Но при этом, естественно, прежнего слияния в экстазе прошивки с репозиторием уже не будет.

Ззы. Тоже с планшета пишешь? Ошибки характерные:)

theMIROn
01-02-2012, 19:25
Ресурсы на пересборку? Есть. Вон, в англоязычной ветке сейчас обезьяна с гранатой^W тулчейном репозиторий пересобирает. Тулчейн с третьего раза только нормально поставил, а с пересборкой справился. OpenWRT пускай свои пакеты отлаживает - мы их своим тулчейном будем пересобирать. Или хочешь убедить, что ресурсов нет и всё надо бросать? Фигушки.

ты не понял.
ресурсы - на более менее полноценную (т.е. не как в optware последний месяц) всех rtn билдов, приходящихся на каждую смену/обновление тулчейна? имхо, ответ очевиден.


Пока остановились на следующей схеме: я обеспечиваю совместимость репозитория с последней прошивкой, доступной в разделе Downloads на гуглокоде. От вас, кулибины, только одно требование: чтобы рядом с той прошивкой лежал актуальный тулчейн, которым она собрана.
Т.е., фактически, сами разработчики или не пользуют обновления репозитория, или налетают на возможные проблемы, или пересобирают его самостоятельно? весьма неоптимально.


Все остальные товарищи, увлекающиеся nightly builds, как всегда сами принимают риски на себя, в том числе по бинарной несовместимости с репозиторием.
см. выше.


Зы. Вопрос с формулой и ритмичностью обновлений репозитория открыт. Репозиторий позволяет запаковать uClibc-библиотеки по пакетам и использовать их отдельно от прошивочных, на манер OpenWRT, надо только допилить ld/ld.so.conf патчем на манер optware. Но при этом, естественно, прежнего слияния в экстазе прошивки с репозиторием уже не будет.
ну вот и ответ,
причины, почему необходимо использовать uclibc пакет (а еще точнее все, что в нейтивно и сейчас используется в прошивке) с соответствующими зависимостями я описал выше, все логично.
а экстаз в любом случае прошел бы, у части пользователей, минимум.


Ззы. Тоже с планшета пишешь? Ошибки характерные:)
не, с дивана. видимо он тоже влияет :)

ryzhov_al
01-02-2012, 19:42
ты не понял.
ресурсы - на более менее полноценную (т.е. не как в optware последний месяц) всех rtn билдов, приходящихся на каждую смену/обновление тулчейна? имхо, ответ очевиден.Как это? Держать и параллельно обновлять репозитории для каждого билда, когда либо опубликованного на странице Downloads? Так и OpenWRT не делает. У них, AFAIK, после рождения очередного релиза прошивки репозиторий просто замораживается. Хочешь новых пакетов? Welcome to bleeding edge.

Так можно сделать и у нас: с выходом нового "релиза" на странице Downloads, замораживать развитие репозитория к предыдущему релизу и продолжать развитие репо для релиза текущего.

Правда я уже вычерпал пятую часть от максимального объёма для проекта на гуглокоде. Svn хранит все старые версии всех бинарных пакетов, и что со всем этим делать я пока не придумал.

Да,и что было с optware в последний месяц? Хочу всё знать.

vectorm
01-02-2012, 20:01
Это что, в таком варианте смысла в куче промежуточных версий прошивок не будет?
Собирать последнюю и параллельно пересобирать репозиторий под нее?
И для каждого релиза держать RO репозиторий ...
Тулчейн пересобрать не проблема, уже отточил (http://vectormm.net/routers/routery-asus/116-kompilyaciya-toolchain-dlya-routerov-asus.html) для себя.
Можно вообще в общий мегаскрипт прописать:
1. Проверяется версия тулчейна и пересобирается, если изменилась.
2. Собирается прошивка. Старая версия грохается.
3. Пересобирается репозиторий.
Единственный момент - времени будет уходить куча, часа 4 на полный цикл.
PS: место под SVN хранилище могу выделить.

theMIROn
01-02-2012, 20:39
Как это? Держать и параллельно обновлять репозитории для каждого билда, когда либо опубликованного на странице Downloads? Так и OpenWRT не делает. У них, AFAIK, после рождения очередного релиза прошивки репозиторий просто замораживается. Хочешь новых пакетов? Welcome to bleeding edge.

Так можно сделать и у нас: с выходом нового "релиза" на странице Downloads, замораживать развитие репозитория к предыдущему релизу и продолжать развитие репо для релиза текущего.

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


Да,и что было с optware в последний месяц? Хочу всё знать.Ничего? :)


Можно вообще в общий мегаскрипт прописать:
1. Проверяется версия тулчейна и пересобирается, если изменилась.
2. Собирается прошивка. Старая версия грохается.
3. Пересобирается репозиторий.

автоматизировать - не проблема.
проблема в прямой зависимости прошивка - пакеты.

в общем, имхо, единственный разумный путь - убрать зависимость пакетов от стандартных библиотек прошивки, в т.ч. uclibc, конечно.
после этого - каким именно тулчейном были собраны пакеты, обновлен ли он или нет, и как часто все обновляется - будет важно только для самого репозитория, как и должно быть.
разные сущности, в конце концов.

Spartach
07-02-2012, 12:12
Подскажите пожалуйста, планируется ли adduser?

в 2х словах не подскажете как пользователя создать для одной только цели, авторизация в встроенной samba?

lly
07-02-2012, 12:20
Подскажите пожалуйста, планируется ли adduser?
IMHO это абсолютно бесполезная утилита на роутере так как конфигурация не заточена на multi-user никак, а добавить одного-двух служебных пользователей можно и руками.

А кто может сам переконфигурировать систему, тот может и собрать useradd, usermod и все надстройки над ними...

Spartach
08-02-2012, 08:13
С adduser разобрался, спасибо.
Подскажите будет ли собрана SAMBA (не встроенная).

Feonik
09-02-2012, 11:38
Для использования репозитория OpenWRT на роутере необходимо:

1. Смонтировать директорию /opt на какой-либо (пустой!) носитель/папку и выполнить:

$ ipkg.sh update
$ ipkg.sh install opkg
после чего будет установлен менеджер пакетов opkg.

...

Работа репозитория гарантируется на последней прошивке ветки 1.9.2.7-rtn, доступной на странице скачивания.



Есть роутер Asus RT-N16, сразу после покупки поставил прошивку RT-N16-1.9.2.7-rtn-r3702.trx , с которой, как я понял из приведенной цитаты, заявлена работа репозитария OpenWRT.

После установки прошивки и настройки через web-интерфейс выполнил следующее:



mkdir -p /usr/local/sbin/

echo "#!/bin/sh" > /tmp/local/sbin/post-boot
cp /usr/local/sbin/post-boot /usr/local/sbin/pre-boot
cp /usr/local/sbin/post-boot /usr/local/sbin/post-mount
cp /usr/local/sbin/post-boot /usr/local/sbin/pre-shutdown
cp /usr/local/sbin/post-boot /usr/local/sbin/post-firewall
chmod +x /usr/local/sbin/p*

mkdir /tmp/local/opt
echo "mount /tmp/local/opt /opt" >> /tmp/local/sbin/pre-boot
mount /tmp/local/opt /opt

ipkg.sh update
ipkg.sh install opkg


В итоге получил такое сообщение:


ipkg_get_install: ERROR: Cannot find package opkg in /opt/lib/ipkg/lists
ipkg_get_install: Check the spelling and maybe run `ipkg update'.



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

ryzhov_al
09-02-2012, 11:57
Есть роутер Asus RT-N16, сразу после покупки поставил прошивку RT-N16-1.9.2.7-rtn-r3702.trx , с которой, как я понял из приведенной цитаты, заявлена работа репозитария OpenWRT.Это я вас ввёл в заблуждение. Поправил первый пост. Перепрошивайтесь:
Коллеги, начиная с ревизии r3727 (http://code.google.com/p/wl500g/source/detail?r=3727) прошивки 1.9.2.7-rtn основным источником ПО для роутера будет наш собственный репозиторий (http://code.google.com/p/wl500g-repo/) пакетов OpenWRT.

2All:
Коллеги, на данный момент мы "переварили" уже треть репозитория OpenWRT, причём его самую популярную и лучшую часть. Кроме того, имеем в своём распоряжении ряд (http://code.google.com/p/wl500g-repo/source/browse/#svn%2Ffeeds%2Frtndev) уникальных пакетов, не доступных в репозиториях на других прошивках.

Feonik
09-02-2012, 11:57
В итоге получил такое сообщение:


ipkg_get_install: ERROR: Cannot find package opkg in /opt/lib/ipkg/lists
ipkg_get_install: Check the spelling and maybe run `ipkg update'.



Помогла эта страница:
http://code.google.com/p/wl500g/source/detail?r=3727
"Modify /trunk/others/ipkg.conf"

Только для файла:
/etc/ipkg.conf


Это я вас ввёл в заблуждение. Поправил первый пост. Перепрошивайтесь:


Как я теперь понимаю, репозитарий еще не готов к использованию? И "перепрошивайтесь" -- это на какую прошивку теперь, на r3727 ? Пока я ее не смог найти.

ryzhov_al
09-02-2012, 12:16
Как я теперь понимаю, репозитарий еще не готов к использованию?Готов. Только если вы использовали ранее какой-то экзотический софт, то проверьте, есть ли он в новом репозитории.

И "перепрошивайтесь" -- это на какую прошивку теперь, на r3727 ? Пока я ее не смог найти.на r3727 или более новую. На сайте самой прошивки вы её не найдёте, см.:

http://wpte.kicks-ass.net/filebrowser/index.php?dir=Oleg+Firmware/Nightlys/1.9.2.7-rtn
http://asus.vectormm.net/rtn/
http://rtn.alegzz.ru/rtn/