ASUS WL5xx: FW 1.9.2.7-d-rXXXX / обсуждение прошивки [RU] / firmware discussion [EN] | bip irc proxy
ASUS RT-N1x: FW 1.9.2.7-rtn-rXXXX / обсуждение прошивки [RU] / firmware discussion [EN] | fake ident daemon
Мелкий недостаток в части пакетов - отсутствие man'ов (можно добавить) при сборке ipk. Чуть неприятнее - дробление пакетов на маленькие подпакеты. Если всё ставится на usb носитель это ИМХО неправильно. Все это исправляется, часто очень просто. Но чем больше таких исправлений, тем дальше отход от openwrt.
1. Рекомендую сразу подумать на тему: "нужен ли update-alternatives". Если ответ "да" - сразу учесть и ввести нужные изменения, потом будет это сделать сложнее. В openwrt нет update-alternatives.
2. Пока писал п.1 забыл "полезную мыслю" №2. Вспомню - напишу.
Last edited by Omega; 11-09-2016 at 21:55.
Коллеги, репозиторий инициализирован. Для пробы необходимо смонтировать директорию /opt на какой-либо носитель (или папку) и выполнить:
после чего будет установлен менеджер пакетов opkg. Далее:Code:$ wget http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/switch_to_openwrt.sh $ chmod +x ./switch_to_openwrt.sh $ ./switch_to_openwrt.sh
Два нововведения:Code:$ 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.
У opkg есть реальные преимущества перед ipkg?
HOST_LDFLAGS/TARGET_LDFLAGS = "-Wl,-rpath /opt/lib" не подошли?2) Я пока не разобрался с формированием ключа rpath линковщика в OpenWRT Buildroot, поэтому пакеты не работоспособны без предварительного указания export LD_LIBRARY_PATH="/opt/usr/lib". Обязательно постараюсь в будущем избавиться от такого dirty hack'а.
Спасибо за инфу. Но всё же не советую часто синхронизироваться с OpenWRT в части кода сборки - у них понятие линейки Long Term Support отсуствует как класс, а экспериментаторы они те еще...
Ты хочешь задействовать эту универсально жирную байду config.guess/config.sub/config.rpath ? Ну дело твоё, но я бы пробил HOST_LDFLAGS/TARGET_LDFLAGS и не мучался.У них в есть некий алгоритм формирования ключа "-Wl,-rpath", надо просто его неспешно разобрать.
Файлы scripts/config.* в некоторых Makefile копируются в папки, где идет сборка пакета. rpath проще всего задать в include/package-defaults.mk (я вроде уже это писал).
Еще порекомендую убрать при сборке opkg патч, запрещающий обновлять все новые пакеты.
Вот это очень тонкий момент. Нужно 1000 раз подумать, как сделать правильнее.
http://keenetic.zyxmon.org/files/mc-4.7.5.3.tar.bz2
Вечером прибью.
Last edited by Omega; 11-09-2016 at 21:56.
ryzhov_al
Zyxmon всё расписал гораздо подробнее чем я, и добавить нечего.
О да. Мне развитие OpenWRT напоминает процесс эволюции, где есть место хаотическим изменениям отдельных фрагментов.
Но в любом случае, моё видение openwrt на роутере следующее: /opt на роутере - как корневая папка в openwrt иерархии. Другими словам, человек, перешедший с прошивки openwrt будет видеть в каталоге /opt привычную среду.
Кстати, выяснил. И тот и другой ключ они используют лишь ради генерации более компактного кода. Они вообще на размере помешаны! Например:
1) Никогда не включают интерфейсы библиотек в состав пакетов, что делает нативную компиляцию вовсе невозможной.
2) Используют свой sstrip дабы откусить от готовых elf-бинарников ещё несколько байт.
Может так и будет.
Я пока в работе update-alternatives нигде не видел, кроме случая установки/удаления optware'овского coreutils. В openwrt'шном coreutils упоминаний о нём нет. Может я просто пока не нашёл эти спрятанные грабли.
Ок, спасибо. А то я уже успел удивиться, когда выполнение opkg upgrade без указания конкретного пакета завершалось сообщением об ошибке.
Вариантов-то всего два:
- Правка путей внутри пакетов под optware'овский стандарт, начиная с ./configure --prefix=/opt. Он чреват поломкой среды сборки OpenWRT Biuldroot, в чём я убедился на собственном опыте.
- Пути сборки пакетов вовсе не трогать, просто "навязать" Buildroot'у свой ключ rpath способом, описанным выше. Да, ряд пакетов придётся править, но работы куда меньше. Чем этот путь опасен? Вроде ничем.
Скачал, md5 сходится.
Last edited by ryzhov_al; 11-11-2011 at 13:10.
Нативная компиляция очень проблематичная по ресурсам, поэтому они просто не стали её поддерживать. Optware'евский инвалид 4.1.1 отнюдь не лучший вариант.
Это легко отключается.2) Используют свой sstrip дабы откусить от готовых elf-бинарников ещё несколько байт.
Некоторые пакеты зашивают пути к библиотекам в бинарники, а некоторые не используют скрипт configure вообще и на config.rpath им наплевать.