51

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Zyxmon :

mesb, насколько понимаю речь о с++. Есть разные варианты сборки с++ программ, я не особенно разбирался. Посмотрите примеры и попробуйте по другому.

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

52

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

mesb :

вы примете в репу библиотеку с патчами которая у вас там уже есть?

После проверки mediatomb - другие собранные пакеты вроде от id3lib не зависят.

53

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Переставил тулчейн, сделал микроплатформу tmp (по аналогии со storage), прикрутил пока 2 пакета: dropbear(заработал, ок) и opkg
С opkg такой проблем - даю любую команду, получаю такую ругань в ответ:

/var/tmp/system/root # opkg list_installed
Package opkg version 576-4 has no valid architecture, ignoring.
Package wget version 1.12-2 has no valid architecture, ignoring.
Package busybox version 1.17.3-2 has no valid architecture, ignoring.
/var/tmp/system/root #

Что за ерунда?

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

54

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Dr.Acid, а почему Вы такие древности собираете? В репе давно более новые версии. У Вас opkg ругается на отсутствие прописанной архитектуры (или в пакете, или в конфиге) - см. по коду.

55

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Zyxmon :

Dr.Acid, а почему Вы такие древности собираете? В репе давно более новые версии. У Вас opkg ругается на отсутствие прописанной архитектуры (или в пакете, или в конфиге) - см. по коду.

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

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

Вроде всё как в оригинале(добавил только option force_space - раньше уже делал так для системы SIRAM, нужно для отключения контроля объёма(в tmp не работает определение свободного места))
А пакеты обычные получаются, из репы(например, "встроенный" wget-ssl):

/var/tmp/system/root # cat ../var/opkg/info/wget.control
Package: wget
Version: 1.12-2
Depends:
Provides:
Source: package/built/wget
Section: net
Status: unknown ok not-installed
Essential: no
Priority: optional
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Architecture: keenetic
Installed-Size: 139570
Description:  Wget is a network utility to retrieve files from the Web using http
 and ftp, the two most widely used Internet protocols. It works
 non-interactively, so it will work in the background, after having
 logged off. The program supports recursive retrieval of web-authoring
 pages as well as ftp sites -- you can use wget to make mirrors of
 archives and home pages or to travel the Web like a WWW robot.
 This package is built with SSL support.
/var/tmp/system/root #
/var/tmp/system/root # cat ../var/opkg/status
Package: opkg
Version: 576-4
Provides:
Status: install user installed
Architecture: keenetic
Conffiles:
 /tmp/system/etc/opkg.conf d0048c013dee33d14a3fac5b2ef9e0f9
Installed-Time: 1304967118

Package: wget
Version: 1.12-2
Provides:
Status: install user installed
Architecture: keenetic
Installed-Time: 1304967110

Package: busybox
Version: 1.17.3-2
Provides:
Status: install user installed
Architecture: keenetic
Installed-Time: 1304967101

/var/tmp/system/root #

Где что ещё посмотреть?

56

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Dr.Acid :

Могу и с r2 собрать, если поможет.

Я бы взял новый тулчейн, но старое ядро и оптимизацию. Выкинул бы патч для uclibc, но не думаю, что поможет.

Dr.Acid :

Где что ещё посмотреть?

Я же уже написал - сырцы.

57

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

следовал инструкции чтобы собрать toolchain
сначала сборка прерывалась на том что не мог найти linux-2.6.23-rt.tar.bz2 ни в одном из источников,
я скачал отсюда и положил в папку dl, после чего стал выдавать ошибку Makefile:414: *** mixed implicit and normal rules.  Stop.
ось мандрива 2011

58

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

zordon :

не мог найти linux-2.6.23-rt.tar.bz2 ни в одном из источников

Ссылка есть в wiki - http://zyxel.ru/agreementopensource
Файлы скачаются после регистрации Вашего кинетика на сайте zyxel. Что Вы скачали - неизвестно.
По поводу ошибки - гуглите. Под мандривой (версию не помню) я вроде все собирал, но очень давно. Возможно нужна другая версия Make на хост-системе.

59

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Zyxmon :
zordon :

не мог найти linux-2.6.23-rt.tar.bz2 ни в одном из источников

Ссылка есть в wiki - http://zyxel.ru/agreementopensource
Файлы скачаются после регистрации Вашего кинетика на сайте zyxel. Что Вы скачали - неизвестно.
По поводу ошибки - гуглите. Под мандривой (версию не помню) я вроде все собирал, но очень давно. Возможно нужна другая версия Make на хост-системе.

да, я не до конца распаковал скачанный архив
спасибо, установка make 3.81 помогла, а 3.82 ругается

60

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Ладно - dropbear и busybox под /tmp собраны, возвращаясь к opkg,
Вот что у меня получилось(и это с оригинальным Makefile):

/var/tmp/system/root # opkg -f /tmp/system/etc/opkg.conf print-architecture
arch all 1
arch noarch 1
arch keenetic-tmp 10
/var/tmp/system/root #

Теперь понятно, почему он ругается на архитектуру, вопрос - как исправить(вернуть arch keenetic)?
Откуда он это берёт, и можно ли это поправить?

61

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Dr.Acid :

можно ли это поправить?

http://wiki.openwrt.org/doc/techref/opk … hitectures

62

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Zyxmon :
Dr.Acid :

можно ли это поправить?

http://wiki.openwrt.org/doc/techref/opk … hitectures

Спасибо(я правда, несколько другое имел ввиду, но так возможно, даже лучше будет). Вроде заработало! smile
Да, работает - nano (из старого репозитория) успешно встал в /tmp и работает!  cool

upd
Единственное, что теперь бы мне выяснить - как это всё у меня всё-таки собрано: с r2 или без?
Вроде как должно быть без, а там х.з...

Отредактировано Dr.Acid (2013-01-08 21:13:48)

63

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Вот, для этого проекта хочу сделать, чтобы mdev работал с файлом конфигурации /tmp/mdev.conf Сам mdev входит в busybox
Нашел исходник (/home/acid/zyxmon_toolchain/build_dir/target-mipsel_r2_uClibc-0.9.30.3/busybox-tmp/busybox-1.19.4/util-linux/mdev.c) поправил там путь, собираю busybox (с mdev, естессно) смотрю его - путь не поменялся, смотрю mdev.c - тоже путь старый.
Вопросы:
1) Возможно ли?
2) Где и что для этого менять? Это будет исходник, или где-то ещё можно(Makefile)?
3) Можно ли собрать mdev в виде отдельного бинарника(так удобней будет)?

64

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Dr.Acid :

1) Возможно ли?
2) Где и что для этого менять? Это будет исходник, или где-то ещё можно(Makefile)?

1. Если сделана ошибка.
2. В разных проектах по разному - или patch или редактирование Makefile.
3. Соберите busybox из одного апплета.

65

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Zyxmon :

1. Если сделана ошибка.
2. В разных проектах по разному - или patch или редактирование Makefile.
3. Соберите busybox из одного апплета.

1) В смысле? Я так понимаю, тот исходник - временный файл, при запуске компилляции переписывается. Где "сидит" настоящий?
2) А как в "нашем"?
3) Это понятно(хотя и выглядит чудно и убого). Ну, в принципе, могу и обычный busybox собрать, просто mdev включу(надо подумать, может ещё чего включить нужно будет...)

UPD
Ура! Собрался... smile

66

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Ладно, следующая(важная!) проблема. Когда-то(уже давненько) (вродебы)сделал платформу( в тулчейне Заксел) для Лайта rev.B. Цель - сборка модулей. Выставил для ядра нужные параметры, вродебы всё нормально - сборка проходит.
Но: модуль nls_base.ko не собирается. В make kernel_menuconfig строка выглядит так:

--- Base native language support

при этом туда ничего не ставится(а хочется поставить M).
В самом конфиге(том что /build_dir/linux-keenetic_lite_B/linux-2.6.23-rt/.config) так:

# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m

и в CONFIG_NLS m не ставится(тоесть, сбрасывается обратно при сборке).
Подскажите, куда его "пнуть", чтобы nls_base.ko собрался - без него ведь никуда sad
Или стоит попробовать прикрутить это дело к тулчейну Zyxmonа?

67

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Dr.Acid, конфигурация ядра задается в других местах.
Например, комбинируется из двух конфигов в папках в http://zyxel-keenetic-packages.googleco … x/keenetic и в http://zyxel-keenetic-packages.googleco … ux/generic
Или задается в "make menuconfig" при наличии соответствующего модуля в папке
http://zyxel-keenetic-packages.googleco … l/modules/

НЕ РЕДАКТИРУЙТЕ конфигурацию руками, это моветон.

68

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Zyxmon :

НЕ РЕДАКТИРУЙТЕ конфигурацию руками, это моветон.

Да я ж понимаю! - Это уж я от отчаянья smile
Спасибо - буду разбираться.

69

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Dr.Acid, конфиг ядра собирается из трех вышеуказанных мест. Должны быть удовлетворены зависимости сборки модулей. Чтобы модуль ядра собрался в виде ipk нужен соответствующий модуль в папке package/kernel/modules/
Если его нет, можно взять в ветке Backfire в openwrt. Может потребуется отредактировать его.

70

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Zyxmon, спасибо, ipk мне не нужен(во всяком случае, пока) - мне бы бинарничек.
1) В target/linux/generic всё вроде нормально: и в config-default и в config-2.6.23 стоит CONFIG_NLS=m
2) В target/linux/keenetic_lite_B (назвал так) хуже: в config-2.6.23 стоит CONFIG_NLS=y и m не ставится
3) nls.mk скопировал, в "make menuconfig" включил M, но не помогло - nls_base.ko так и не собрался.
Может, какой-нибудь сброс надо сделать, или ещё чего?

Что интересно, для Лайта А(и 4ж А) всё собирается без проблем.

71

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Dr.Acid, если не делать ipk, то бинарники будут без стрипа. Удаляйте папку, где собирается ядро в build_dir перед make. Смотрите там в корне разные (промежуточные) варианты конфига и разбирайтесь где проблема, может зависимость сбрасывает флаг.

72

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Zyxmon :

Смотрите там в корне разные (промежуточные) варианты конфига и разбирайтесь где проблема, может зависимость сбрасывает флаг.

А вот тут уже ничего не понятно. В корне чего? Какие промежуточные конфиги(да и что с ними сделать можно?)? И главное, какая зависимость может это сбросить?
Вот, в nls.mk в самом начале есть:

define AddDepends/nls
  DEPENDS+= +kmod-nls-base
endef

  kmod-nls-base - это оно? Что это, где его посмотреть можно?
Думаю, если это правильно работает для 4ж/лайта, значит я просто что-то куда-то не докопировал.
Кстате, вот если выбрать кинетик(простой), то в kernel_menuconfig у него nls-base тоже не ставится. Ну для него это правильно - как я понимаю, всё вшито в ядро(хотя это по идее * должна быть).

73

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

У меня сейчас (в Makefile)
BOARD:=keenetic_lite_B
BOARDNAME:=ZyXEL Keenetic Lite rev.B
Это нормальные названия(особенно ZyXEL Keenetic Lite rev.B) не страшно, что точка?

74

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Dr.Acid, в корне папки, где ядро собирается.
Зависимости смотреть в папке с ядром или на kernel.org.

75

Re: Собираем приложения для Keenetic самостоятельно (для программистов).

Zyxmon :

Dr.Acid, в корне папки, где ядро собирается.
Зависимости смотреть в папке с ядром или на kernel.org.

Ладно, такой глупый(уточняющий) вопрос: А где ядро собирается(может, я не там ищу?)
Я так думаю(по наличию vmlinux, vmlinux.elf, vmlinux.lzma), что в моем случае это /build_dir/linux-keenetic_lite_B
Либо (по наличию конфига) в /build_dir/linux-keenetic_lite_B/linux-2.6.23-rt
Но там в конфиге всё нормально - стоит m

Отредактировано Dr.Acid (2013-01-29 21:25:32)