PDA

Bekijk de volledige versie : Сборка собственной прошивки



Pages : 1 [2]

dmolokanov
03-03-2011, 13:06
make menuconfig
Все было так просто.
Все заработало. Спасибо всем, кто откликнулся!

voidshah
26-03-2011, 10:06
Не компилится прошивка с Toolchain (gcc 4.3.5 uClibc 0.9.30.1) K26 x86 build 2011.02.19 :(
На шаге 4.3 make выдает такое:

which: no mipsel-uclibc-gcc in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.4.5)
grep: /home/rt-n16/broadcom/src/linux/linux-2.6/include/linux/utsrelease.h: Нет такого файла или каталога
[ ! -d libbcmcrypto ] || make -C libbcmcrypto EXTRACFLAGS="-mips32 -mtune=mips32 -Wno-pointer-sign -DBCMWPA2 -DLINUX26"
find: `/home/rt-n16/broadcom/src/gateway/mipsel-uclibc/target': No such file or directory
make[1]: Entering directory `/home/rt-n16/broadcom/src/gateway/libbcmcrypto'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/rt-n16/broadcom/src/gateway/libbcmcrypto'
cd libusb10 && CFLAGS="-O2 -mips32 -mtune=mips32 -Wno-pointer-sign -DBCMWPA2 -DLINUX26" \
./configure --host=mipsel-linux --build=i686-pc-linux-gnu --prefix=/usr ac_cv_lib_rt_clock_gettime=no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for mipsel-linux-strip... mipsel-uclibc-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for mipsel-linux-gcc... mipsel-uclibc-gcc
checking whether the C compiler works... no
configure: error: in `/home/rt-n16/broadcom/src/gateway/libusb10':
configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** [libusb10/Makefile] Ошибка 77
C этим Toolchain (gcc 4.3.5 uClibc 0.9.30.1) x86 build 2010.12.24 - нормально компилится для RT-N16

voidshah
27-03-2011, 14:26
Никто не в курсе??? В чем кривизна моих рук?! Можно ли как-то этот туччейн самому собрать???

ryzhov_al
27-03-2011, 14:37
Никто не в курсе???
Видимо, не в курсе, так как с последним тулчейном всё замечтательно собирается. Не поленитесь:
стереть и распаковать заново исходники,
прописать в переменной PATH пути до бинарников нового тулчейна и убрать пути до бинарников старого.


В чем кривизна моих рук?!
Согласно определения (http://bse.sci-lib.com/article066256.html) кривизна измеряется в [1/м].

voidshah
27-03-2011, 14:42
Видимо, не в курсе, так как с последним тулчейном всё замечтательно собирается. Не поленитесь:
стереть и распаковать заново исходники,
прописать в переменной PATH пути до бинарников нового тулчейна и убрать пути до бинарников старого.


Согласно определения (http://bse.sci-lib.com/article066256.html) кривизна измеряется в [1/м].
Дык уже это все испробовано...
Ну а ссылочка рассмешила

AlexeyS
27-03-2011, 14:49
Дык уже это все испробовано...
Ну а ссылочка рассмешила

Он же ясно говорит, что не находит компилятор С.

voidshah
27-03-2011, 20:16
видать что-то мои руки поискривило:) Ну ничо уже подровнял - собирается!;)

BioS
06-04-2011, 13:06
при компиляции выдает


checking whether the C compiler works... no
configure: error: in `/home/xxx/wl500g/broadcom/src/gateway/libusb10':
configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** [libusb10/Makefile] Ошибка 77


в config.log


configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "libusb"
| #define PACKAGE_TARNAME "libusb"
| #define PACKAGE_VERSION "1.0.8"
| #define PACKAGE_STRING "libusb 1.0.8"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "libusb"
| #define VERSION "1.0.8"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }

как исправить?

vectorm
06-04-2011, 14:20
при компиляции выдает
как исправить?

Если для сборки используется hndtools-mipsel-uclibc-4.3.5-K26, то надо заменить хедер timerfd.h - http://code.google.com/p/wl500g/source/detail?r=2868
в "/opt/brcm/hndtools-mipsel-uclibc-4.3.5-K26"/include/sys/
(в кавычках примерный путь)

Если иное - то х.з.

UPD: У меня все версии 2880 собираются, час назад пробовал.

BioS
06-04-2011, 15:33
проблема решена

--------------------

чем отличается

hndtools-mipsel-uclibc-4.3.5-K26-2.tar.bz2

от

hndtools-mipsel-uclibc-4.3.5-3.tar.bz2

BolenB
06-04-2011, 16:06
чем отличается
hndtools-mipsel-uclibc-4.3.5-K26-2.tar.bz2
от
hndtools-mipsel-uclibc-4.3.5-3.tar.bz2

hndtools-mipsel-uclibc-4.3.5-K26-2.tar.bz2 для сборки только RTN версии
hndtools-mipsel-uclibc-4.3.5-3.tar.bz2 для сборки D и (или) RTN версии прошивки. ИМХО.

BioS
06-04-2011, 16:21
объясните на пальцах, как


надо заменить хедер timerfd.h

vectorm
06-04-2011, 18:35
объясните на пальцах, как
Открыть пальцами данный файл, и исправить его содержимое, как указано в ссылке.
Там указаны изменения в 3 файлах, но остальных двух нет в данной версии.

lly
06-04-2011, 19:05
Открыть пальцами данный файл, и исправить его содержимое, как указано в ссылке.
Там указаны изменения в 3 файлах, но остальных двух нет в данной версии.
timerfd.h относится только к K26 (для ядер 2.6 - как и написано на гуглкоде) и влияет только на функционирование libusb. На саму возможность сборки - никак не влияет.

Тулчейн K26 перевыложим, как сможем.

lamobot
07-04-2011, 09:33
Добрый день! Подскажите, что можно сделать с производительностью WAN-LAN на новых прошивках от энтузиастов. Прошивка Олега 1.9.2.7-10.7 и последняя заводская позволяют достичь скоростей порядка 91.5 мегабит вниз и 75 мегабит вверх. На последних прошивках с Google code роутер не разгоняется больше 75 вниз и 60 вверх. Можно как-то это исправить или отключить? Что такого нового туда добавили, что так снизило скорость? Процессор и память разогнаны. Роутер WL-500gP.
Спасибо.

BioS
07-04-2011, 17:21
скажите, как сделать бэкпорт драйвера из 2.6.33+

theMIROn
07-04-2011, 17:36
скажите, как сделать бэкпорт драйвера из 2.6.33+

какого куда зачем?

BioS
07-04-2011, 17:46
какого куда зачем?

валялась какая-то дешевая web-камера (которая соответственно с роутером не работает, но с desktop'ом все ок), вот решил попробовать прикрутить.

драйвер pac7302

lly
07-04-2011, 18:28
Подскажите, что можно сделать с производительностью WAN-LAN на новых прошивках от энтузиастов.
Почитать форум (я несколько раз отвечал на подобные письма) и, либо попытаться отключить новые фичи netfilter, либо заняться профилированием ядра...


драйвер pac7302
Совсем нахаляву - скорее всего не пройдёт.

Вариант №1 - попытаться включить pac7311 в текущей версии драйвера GSPCA (именно в нём поддержка этой камеры, о чём неплохо было бы сказать сразу).

Вариант №2 - действительно сбекпортить отдельный pac7302 (они разделились с pac7311 в 2.6.33). Здесь опять же два пути:

скопировать текущий pac7311.c и коммитами с kernel.org догнать до последней версии - не очень много, но поработать придётся (см. gspca/pac7302.c history (http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=drivers/media/video/gspca/pac7302.c;h=5615d7bd830455e8e1e269c94311601e6b4b8c 16;hb=HEAD))
взять pac7302.c/pac7311.c из последней версии ядра и спортировать (уровень V4L2 - 2.6.32) заменяя некоторые новые функции на их старые аналоги, по образу и подобию остальных модулей. Возможно, это более простой путь.

Про пошаговую инструкцию можно забыть сразу.

P.S. Не забыть поделиться с общественностью :)

BioS
07-04-2011, 19:45
а скажите, как пересобирать прошивку после изменения конфигурации ядра - все надо
заново пересобирать, или можно сделать, чтоб собрались только включенные модули?

AlexeyS
20-04-2011, 11:21
Для любителей экспериментов: собрал тучейн на основе ядра 2.6 и gcc 4.4.6. Проверил - размер прошивки получается чуть меньше, чем с тулчейном на основе gcc 4.3.5, залитая в роутер прошивка вполне работоспособна.

Брать тут: http://alxdm.dyndns-at-work.com:808/asus/toolchain/hndtools-mipsel-uclibc-4.4.6-K26.tar.gz

ryzhov_al
20-04-2011, 12:14
Для любителей экспериментов: собрал тучейн на основе ядра 2.6 и gcc 4.4.6.
Как?! Поделись алгоритмом. Что нужно сделать с исходниками uclibc и gcc для того, чтобы получился тулчейн?

AlexeyS
20-04-2011, 12:26
Как?! Поделись алгоритмом. Что нужно сделать с исходниками uclibc и gcc для того, чтобы получился тулчейн?

Да в общем-то ничего сложного, для старого сложнее было - приходилось сразу 2 версии собирать..
1. Копируем себе исходники svn checkout http://wl500g.googlecode.com/svn/toolchain/ ./toolchain
2. Патченные исходники ядра /whatever-you-want/broadcom/src/linux/linux-2.6 из дерева сборки прошивки после
$ cd /whatever-you-want/broadcom/src/1.9.2.7-d
$ make kernel
$ make
3. копируем ./toolchain/defconfig в ./toolchain/.config
и правим в нем путь к ядру, и версию gcc
5. Прячем всё из /opt
4. $ cd ./toolchain
$ make V=99
6. Готовый toolchain берём в /opt

ryzhov_al
20-04-2011, 12:54
AlexeyS, спасибо. Я думал, что он собирается from scratch. А здесь всплыл uclibc Broadcom'а/энтузиастов.

AlexeyS
20-04-2011, 12:59
AlexeyS, спасибо. Я думал, что он собирается from scratch. А здесь всплыл uclibc Broadcom'а/энтузиастов.

Просто система сборки сама скачивает uclibс, gcc, binutils и т.п. с сайтов производителей и применяет к ним патчи от Broadcom'а/энтузиастов ;-)

Vampik
20-04-2011, 22:23
Для любителей экспериментов: собрал тучейн на основе ядра 2.6 и gcc 4.4.6. Проверил - размер прошивки получается чуть меньше, чем с тулчейном на основе gcc 4.3.5, залитая в роутер прошивка вполне работоспособна.

Брать тут: http://alxdm.dyndns-at-work.com:808/asus/toolchain/hndtools-mipsel-uclibc-4.4.6-K26.tar.gz

Это для x86? Тоже попробовал собрать. Оказывается все не так уж сложно ;) Правда, для не знающих хочу добавить, что нужно помимо необходимых для сборки прошивки пакетов, также установить autoconf, automake (актуально для тех, у кого Linux - только виртуалка для сборки в минимальной конфигурации). А для получения тулчейна, идентичного вашему и гуглокодовскому, как оказалось, еще установить texinfo (без него тулчейн молча собирается, но отсутствуют .info файлы) и включить в конфиге gdb.
GCC 4.4.6 K26 x86: http://vampik.ru/wl500g/toolchain/hndtools-mipsel-uclibc-4.4.6-K26-r2905.tar.bz2
GCC 4.3.5 K26 x86: http://vampik.ru/wl500g/toolchain/hndtools-mipsel-uclibc-4.3.5-K26-r2905.tar.bz2 (собрал, т.к. насколько я помню, у версии с гуглокода какая-то проблема с libusb)

AlexeyS
21-04-2011, 08:09
Это для x86?

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

vectorm
06-05-2011, 20:22
issue 226 (http://code.google.com/p/wl500g/issues/detail?id=226) можно вылечить не хирургическим путем?

~# ldd -v /версия К26-х64-3/hndtools-mipsel-uclibc-4.3.5-K26/bin/mipsel-uclibc-strip
/..../hndtools-mipsel-uclibc-4.3.5-K26/bin/mipsel-uclibc-strip: /lib/libc.so.6: version `GLIBC_2.11' not found (required by /..../hndtools-mipsel-uclibc-4.3.5-K26/bin/mipsel-uclibc-strip)
linux-vdso.so.1 => (0x00007fffa91ff000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f69d4fc5000)
libc.so.6 => /lib/libc.so.6 (0x00007f69d4c72000)
/lib64/ld-linux-x86-64.so.2 (0x00007f69d51dc000)

Version information:
/...../hndtools-mipsel-uclibc-4.3.5-K26/bin/mipsel-uclibc-strip:
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.7) => /lib/libc.so.6
libc.so.6 (GLIBC_2.11) => not found
libc.so.6 (GLIBC_2.2.5) => /lib/libc.so.6
/usr/lib/libz.so.1:
libc.so.6 (GLIBC_2.2.5) => /lib/libc.so.6
/lib/libc.so.6:
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2


ldd -v /версия К-26-2/hndtools-mipsel-uclibc-4.3.5-K26/bin/mipsel-uclibc-strip
linux-gate.so.1 => (0xf7720000)
libz.so.1 => /usr/lib32/libz.so.1 (0xf76fe000)
libc.so.6 => /lib32/libc.so.6 (0xf75ac000)
/lib/ld-linux.so.2 (0xf7721000)

Version information:
/..../hndtools-mipsel-uclibc-4.3.5-K26/bin/mipsel-uclibc-strip:
libc.so.6 (GLIBC_2.2.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
/usr/lib32/libz.so.1:
libc.so.6 (GLIBC_2.1.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
/lib32/libc.so.6:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2

lly
06-05-2011, 20:29
issue 226 (http://code.google.com/p/wl500g/issues/detail?id=226) можно вылечить не хирургическим путем?

А какая версия glibc в Debian Lenny x64? У меня - 2.11. Учитывая тот факт, что текущая 2.13, IMHO вполне нормально.

Лечится только пересборкой тулчейна.

vectorm
06-05-2011, 20:40
А какая версия glibc в Debian Lenny x64? У меня - 2.11. Учитывая тот факт, что текущая 2.13, IMHO вполне нормально.

Лечится только пересборкой тулчейна.

# dpkg -l |grep "C Library"
ii libc6 2.7-18lenny7 GNU C Library: Shared libraries
ii libc6-dev 2.7-18lenny7 GNU C Library: Development Libraries and Hea
ii libc6-i386 2.7-18lenny7 GNU C Library: 32bit shared libraries for AM
ii locales 2.7-18lenny7 GNU C Library: National Language (locale) da
ii locales-all 2.7-18lenny7 GNU C Library: Precompiled locale data
И новее у них не нашел. Ладно, посижу на старой версии тулчейна.

lly
06-05-2011, 20:48
libc6 2.7-18lenny7

И новее у них не нашел. Ладно, посижу на старой версии тулчейна.
Круто! 2007-й год :( У меня в доступе минимум glibc 2.9

Варианты:

пересобрать тулчейн самому, в принципе ничего сложного - надо иметь уже подготовленное(с нашими патчами) ядро от прошивки, поменять CONFIG_EXTERNAL_KERNEL_TREE и make
попросить владельцев раритетных glibc пересобрать тулчейн


P.S. В будущем, планируется переезд на gcc 4.4

voidshah
06-05-2011, 21:20
lly

toolchain: gcc 4.4: PR tree-optimization/48809 fix
А это как понимать? Подготовка к gcc 4.4?! Я уже собрал toolchain с gcc 4.4. Нормально работает. Пересобрать надо после таких Changes?

lly
06-05-2011, 21:29
lly

toolchain: gcc 4.4: PR tree-optimization/48809 fix
А это как понимать? Подготовка к gcc 4.4?! Я уже собрал toolchain с gcc 4.4. Нормально работает. Пересобрать надо после таких Changes?
Да. Читать описание баги по приведенной в патче ссылке, если кажется важным - пересобрать тулчейн.

theMIROn
06-05-2011, 22:21
# dpkg -l |grep "C Library"
ii libc6 2.7-18lenny7 GNU C Library: Shared libraries
ii libc6-dev 2.7-18lenny7 GNU C Library: Development Libraries and Hea
ii libc6-i386 2.7-18lenny7 GNU C Library: 32bit shared libraries for AM
ii locales 2.7-18lenny7 GNU C Library: National Language (locale) da
ii locales-all 2.7-18lenny7 GNU C Library: Precompiled locale data
И новее у них не нашел. Ладно, посижу на старой версии тулчейна.

debian 6.0 dist-upgrade


ii libc-bin 2.11.2-10 Embedded GNU C Library: Binaries
ii libc-dev-bin 2.11.2-10 Embedded GNU C Library: Development binaries
ii libc6 2.11.2-10 Embedded GNU C Library: Shared libraries
ii libc6-dev 2.11.2-10 Embedded GNU C Library: Development Libraries and Header Files
ii libc6-i686 2.11.2-10 Embedded GNU C Library: Shared libraries [i686 optimized]
ii locales 2.11.2-10 Embedded GNU C Library: National Language (locale) data [support]

BioS
08-05-2011, 06:22
а если toolchain собрать с gcc 4.6 работать будет?

lly
08-05-2011, 08:30
а если toolchain собрать с gcc 4.6 работать будет?
Если корректно добавишь поддержку gcc 4.6, пофиксишь ядро и приложения, то почему бы и нет.

А если речь идёт про хостовый gcc (о чём следовало сказать сразу), то советую глянуть на кол-во текущих багов 4.6.0 на gcc.gnu.org.

BioS
10-05-2011, 16:51
решил обновить прошивку, скачал последную версию, заодно и новый toolchain, но собираться не хочет

выдает вот что:


/usr/local/mips/bin/hndtools-mipsel-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.3.5/../../../../mipsel-linux-uclibc/bin/ld: warning: ld-uClibc.so.0, needed by /usr/local/mips/bin/hndtools-mipsel-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.3.5/../../../../mipsel-linux-uclibc/lib/libc.so, not found (try using -rpath or -rpath-link)
/usr/local/mips/bin/hndtools-mipsel-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.3.5/../../../../mipsel-linux-uclibc/lib/libc.so: undefined reference to `_dl_app_init_array'
/usr/local/mips/bin/hndtools-mipsel-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.3.5/../../../../mipsel-linux-uclibc/lib/libc.so: undefined reference to `_dl_loaded_modules'
/usr/local/mips/bin/hndtools-mipsel-uclibc/bin/../lib/gcc/mipsel-linux-uclibc/4.3.5/../../../../mipsel-linux-uclibc/lib/libc.so: undefined reference to `_dl_app_fini_array'
collect2: ld returned 1 exit status

voidshah
10-05-2011, 17:59
решил обновить прошивку, скачал последную версию, заодно и новый toolchain, но собираться не хочет
я делал как
тут (http://wl500g.info/showpost.php?p=230212&postcount=220)
все нормально собралось

ConstAntz
12-05-2011, 21:08
А где можно хапнуть trunk на r2381? на code.google нету :(

lly
12-05-2011, 21:32
А где можно хапнуть trunk на r2381? на code.google нету :(


svn -h checkout
http://svnbook.red-bean.com/

BioS
21-05-2011, 14:40
а без установки optware где взять librt.so.1

да, а что у вас выдает


ls -d /dev/usb?

BolenB
21-06-2011, 12:06
Не собирается toolchain r3086. Как я понял, не скачивается gcc-4.4.6.tar.bz2 из интернета.
P.S. Предыдущей ревизии toolchain собирается нормально.

lly
21-06-2011, 12:09
Не собирается toolchain r3086. Как я понял, не скачивается gcc-4.4.6.tar.bz2 из интернета.
Было бы замечательно увидеть лог
make V=99 чтобы не гадать на кофейной гуще.

BolenB
21-06-2011, 13:24
Было бы замечательно увидеть лог
make V=99 чтобы не гадать на кофейной гуще.
Прилагаю логи

voidshah
21-06-2011, 14:06
Да, подтверждаю! Не скачивается gcc-4.4.6.tar.bz2. Я его сам скачал и положил в /dl;)

lly
23-06-2011, 11:56
Прилагаю логи
Поправил в r3095.

aldore
28-07-2011, 15:46
Всем привет.
Вопрос такой: стоит задача скомпилировать прошивку с парой своих программ и запихать их в автозагрузку.

Прошивку я компилю энтузиастов патченную вампиком. Программы получается положить в /usr. Дальше стоит проблема как их запустить. У меня есть идея добавить в прошивку скрипт post-boot и туда записать вызов программ.

Но возникает проблема(далее речь пойдет о папке target):
В папке /usr лежит символьная ссылка ссылка local на папку tmp/local (которой нет). Получается что при установке прошивки на роутер каким то образом создается папка /tmp/local и в ней еще как минимум папка root.

Пытаюсь при компиляции создать в /tmp папки local, local/sbin и файл local/sbin/post-boot. Все удается но при установке прошивки файлы затираюстя.

В общем я в тупике. Подскажите как запихать в прошивку в павильное место файл post-boot или какие еще есть способы выполнить программу после загрузки роутера?

AndreyUA
28-07-2011, 16:05
Всем привет.
Вопрос такой: стоит задача скомпилировать прошивку с парой своих программ и запихать их в автозагрузку.

Прошивку я компилю энтузиастов патченную вампиком. Программы получается положить в /usr. Дальше стоит проблема как их запустить. У меня есть идея добавить в прошивку скрипт post-boot и туда записать вызов программ.

Но возникает проблема(далее речь пойдет о папке target):
В папке /usr лежит символьная ссылка ссылка local на папку tmp/local (которой нет). Получается что при установке прошивки на роутер каким то образом создается папка /tmp/local и в ней еще как минимум папка root.

Пытаюсь при компиляции создать в /tmp папки local, local/sbin и файл local/sbin/post-boot. Все удается но при установке прошивки файлы затираюстя.

В общем я в тупике. Подскажите как запихать в прошивку в павильное место файл post-boot или какие еще есть способы выполнить программу после загрузки роутера?
Для своих скомпиленых программ есть папка other, смотрите там makefile. Для запуска при старте см. папку rc (services.c services_ex.c)

BASik
02-08-2011, 03:50
Возможна ли сборка rtn прошивики с данными патчами?

http://www.atoptool.nl/downloadpatch.php

Если да, то что плохого в их включении в rtn прошивку?

atop - достаточно интересная и мощная утилита, почему бы не добавить ей несколько возможностей?


When atop is used on a system running a standard Linux-kernel, no information is available about the network-accesses per process and only limited information about disk-accesses per process. This means a.o. that the selection 'n' (show network-transfers per process) cannot be used, and that the columns shown in the generic screen are different.
For extended use of atop two kernel-patches are delivered.

http://wl500g.info/showpost.php?p=235438&postcount=238

Возможно ли?
прошивка rtn

lly
02-08-2011, 10:47
http://wl500g.info/showpost.php?p=235438&postcount=238

Возможно ли?
прошивка rtn
Стоило бы немножко конкретизировать вопрос - возможно в мейнстриме или вообще в принципе? ;)

Принципиально - конечно возможно. Практически, для включения в мейнстрим надо тестировать в какие накладные расходы выльется патч на net/socket.c. Аккаунтинг на диски, ввиду медленного USB, вообще не должен мешать.

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

aldore
02-08-2011, 13:52
Для своих скомпиленых программ есть папка other, смотрите там makefile. Для запуска при старте см. папку rc (services.c services_ex.c)

Что то у меня не совсем получается. У меня есть три файла которые лежат в папке others:


netserver - скомпиленая на роутере сишная прога
get_settings.sh
save_settings.sh


По аналогии вставил в /others/Makefile такие строчки


install -m 755 netserver $(INSTALLDIR)/usr/sbin/netserver
install -m 755 get_settings.sh $(INSTALLDIR)/usr/sbin/get_settings.sh
install -m 755 save_settings.sh $(INSTALLDIR)/usr/sbin/save_settings.sh


Все здорово, компилю прошивку, заливаю, захожу телнетом на роутер, делаю cd /usr/sbin, потом ls -l | grep netserver и вижу такую строку



-rwxr-xr-x 1 admin root 10876 Aug 2 11:20 netserver


Все вроде бы классно но при попытке написать ./netserver получаю такой ответ



[admin@WL-1caff7ae2f67 sbin]$ ls -l | grep netserver
-rwxr-xr-x 1 admin root 10876 Aug 2 11:20 netserver
[admin@WL-1caff7ae2f67 sbin]$ ./netserver
-sh: ./netserver: not found
[admin@WL-1caff7ae2f67 sbin]$


При том что get_settings.sh и save_settings.sh отрабатывают нормально. В чем мой косяк?

В общем разобрался в чем дело было.
По сколько я прогу компилил на роутере то он искал либы ld-uClibc.so.0 и libc.so.0 на роутере
в папке /opt/lib, а на момент запуска проги диск был не примонтрован и ниче не получалось.
Решение - компилить прогу на компе с помощью тулчейна.

BASik
03-08-2011, 03:16
Стоило бы немножко конкретизировать вопрос - возможно в мейнстриме или вообще в принципе? ;)

Принципиально - конечно возможно. Практически, для включения в мейнстрим надо тестировать в какие накладные расходы выльется патч на net/socket.c. Аккаунтинг на диски, ввиду медленного USB, вообще не должен мешать.

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

В конкретный тестовый билд для начала.
Готов протестировать.

Применение - посмотреть как rtorrent работает с диском сетью и памятью в зависимости от настроек.

Да и статистика лишней не бывает, если она собирается даром )

P.s Вопрос про openvpn server на роутере:
fastNAT уже может работать с openvpn? раньше были проблемы с tun.

lly
03-08-2011, 08:32
Применение - посмотреть как rtorrent работает с диском сетью и памятью в зависимости от настроек.

Заранее скажу - плохо. Ни одна из этих поделок не рассчитана на embedded системы.

Это для отладки, согласен. А дальше что - получили результаты, и? Зачем это конечному пользователю?

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


Да и статистика лишней не бывает, если она собирается даром )

Увы, не даром.


fastNAT уже может работать с openvpn? раньше были проблемы с tun.
пока нет

BASik
03-08-2011, 14:30
Заранее скажу - плохо. Ни одна из этих поделок не рассчитана на embedded системы.

И какие именно механизмы не подходят для embedded систем?
Это никак нельзя исправить (улучшить) в исходных кодах качалок?


Пока я вижу ситуацию так - мы можем помочь адаптировать патч atop под наше ядро для экспериментаторов, но в публичных билдах это нафиг не сдалось.
Альтернативное предложение : iotop (http://guichaz.free.fr/iotop/)


Iotop is a Python program with a top like UI used to show of behalf of which process is the I/O going on. It requires Python ≥ 2.5 (or Python ≥ 2.4 with the ctypes module) and a Linux kernel ≥ 2.6.20 with the TASK_DELAY_ACCT CONFIG_TASKSTATS, TASK_IO_ACCOUNTING and CONFIG_VM_EVENT_COUNTERS options on.
Это можно сделать малой кровью? (время на внесения изменения и накладные расходы при работе)

fastNAT + TUN
Можно ли их подружить теоретические, могу я помочь в этом?

lly
03-08-2011, 15:00
И какие именно механизмы не подходят для embedded систем?
Пожирание памяти, по всякому поводу и без повода.


Это никак нельзя исправить (улучшить) в исходных кодах качалок?

Можно, если найдётся тот, кто будет заниматься глобальной оптимизацией.


Альтернативное предложение : iotop (http://guichaz.free.fr/iotop/)


Это можно сделать малой кровью? (время на внесения изменения и накладные расходы при работе)

Не знаю, никогда не гонял ни питон на роутере, ни сам iotop.
Советую сперва погонять всё на большом линуксе (желательно на ядре не свежее 2.6.27), а уж потом, если понравиться, думать о переносе на роутер.

Патчи для atop готовы, могу подвесить отдельно или залить в SVN на гуглкоде с расширением .disabled для самостоятельной сборки.


fastNAT + TUN
Можно ли их подружить теоретические, могу я помочь в этом?
Конечно, но потребуется влезть в потроха ядра (netfilter+роутинг). Доки по fastNAT от броадкома, естественно, нет.

BASik
03-08-2011, 21:48
Патчи для atop готовы, могу подвесить отдельно или залить в SVN на гуглкоде с расширением .disabled для самостоятельной сборки.

Спасибо за такую оперативность!

то есть без самостоятельно сборки мне прошивки с патчем не получить?

Нельзя ли выпустить ревизию с этими патчами, которая автоматически соберёться на сайте с ночными сборками? или это чревато проблемами для тех кто не читает описания сборок?


Конечно, но потребуется влезть в потроха ядра (netfilter+роутинг). Доки по fastNAT от броадкома, естественно, нет.
Значит моей компетенции не хватит (

lly
04-08-2011, 08:27
то есть без самостоятельно сборки мне прошивки с патчем не получить?

Могу собрать, как время будет. Но это неоперативно и мне нужно знать под какой девайс собирать, из подписи? Отвечать лучше в личку.


или это чревато проблемами для тех кто не читает описания сборок?
именно.

theMIROn
04-08-2011, 15:27
Доки по fastNAT от броадкома, естественно, нет.
На вопросы по FastNAT ответить по почте, если необходимо.

theMIROn
10-08-2011, 12:43
Вечером выложу

Офтопик в этой теме, но...
Пора делать проверку на минимальную версию тулчейна при сборке.

TReX
10-08-2011, 13:51
Офтопик в этой теме, но...
Пора делать проверку на минимальную версию тулчейна при сборке.

Святые слова! ;) А то уже непонятно, глюки прошивки у night build или собирается на старом тулчейне!

lly
10-08-2011, 13:52
Святые слова! ;) А то уже непонятно, глюки прошивки у night build или собирается на старом тулчейне!
Есть идеи ЧТО проверять? Тупо номер ревизии - IMHO глупо.
uClibc 0.9.32 пока нестабильна, и пока гарантировать что-либо, я не возьмусь.

theMIROn
10-08-2011, 14:02
Есть идеи ЧТО проверять? Тупо номер ревизии - IMHO глупо.
uClibc 0.9.32 пока нестабильна, и пока гарантировать что-либо, я не возьмусь.

yeah, baby, yeah, минимальную версию gcc/uclibc/ревизию.
с опциональным форсом.

lly
10-08-2011, 14:08
минимальную версию gcc
зачем?

uclibc
ok

ревизию.
цивилизованный вариант определения ревизии тулчейна?

theMIROn
10-08-2011, 14:19
зачем?форсировать обновление древних тулчейнов с относительно актуальной uclibc, если информация о ревизии не доступна.

цивилизованный вариант определения ревизии тулчейна?
сейчас и не цивилизованного то нет...

lly
10-08-2011, 14:30
Продолжаем offtopic.

сейчас и не цивилизованного то нет...
И каким тебе видится цивилизованный путь?


#error "Y0u u$e too 0ld t00lchain"
при "make" покатит? Или нужна расшифровка?

theMIROn
10-08-2011, 14:34
И каким тебе видится цивилизованный путь?
info.mk +, м.б., ревизия в gcc -v.



#error "Y0u u$e too 0ld t00lchain"
при "make" покатит? Или нужна расшифровка?
норм :) + линк где взять новый.

lly
10-08-2011, 14:42
info.mk
И как его искать?

ревизия в gcc -v.
это самое простое, с версией uclibc чуть сложнее

theMIROn
10-08-2011, 14:51
И как его искать?
$(dirname $(which $(CC)))/../info.mk?

lly
10-08-2011, 14:57
$(dirname $(which $(CC)))/../info.mk?
Ну как вариант... что-то смущает, но не могу сформулировать, что именно.

TReX
11-08-2011, 05:52
http://asus.vectormm.net/rtn/3191/

Собрана с обновлённым тулчейном.

Спасибо за хороший night builder ) А минимальная версия gcc соответствует требованиям разработчиков?

vectorm
11-08-2011, 18:39
Спасибо за хороший night builder ) А минимальная версия gcc соответствует требованиям разработчиков?
Конечно :)
Если бы не соблюлись требования - тулчейн бы не собрался.
Пересобирал из-за issue 226 (http://code.google.com/p/wl500g/issues/detail?can=1&q=226&colspec=ID%20Type%20Status%20Priority%20Owner%20Su mmary%20Opened&id=226).
Кому интересно - выложил тут (http://asus.vectormm.net/compiled%20tools/hndtools-mipsel-uclibc-4.4.6-K26.tar.gz).

b0bbykey
15-08-2011, 10:38
Ребят, подскажите, мне нужно чтобы на asus wl500gpv2 (сейчас стоит проша 1.9.2.7-rtn-r3121) заработали inotify-tools. По-видимомоу для них нужна включенные CONFIG_INOTIFY CONFIG_INOTIFY_USER, не знаю правда модулем или в ядро, у меня на debian squeeze они в ядро вкомпилены). Поискал эти модули наудачу в modules-1.9.2.7-rtn-r3121-MIPS32r1.tgz modules-1.9.2.7-rtn-r3121-MIPS32r2.tgz, не нашел. В связи с этим неск вопросов.
1. искал config, с которым собрано ядро этой прошивки, не нашел (в дебиане он лежит в /boot, есть также опция которая вставляет его в /proc/config.gz, там я тоже не нашел, видимо это опция отключена). Где посмотреть конфиг?
2. Если опции отключены надо пересобирать да? Нашел какие-то тулчейны, где бы доку найти как все это делать. Сборок особо не боюсь, пару лет просидел под слакварей, где приходилось частенько пересобирать, думаю разберусь. Но доку бы хотелось )
3. Опять же если опции отключены можно ли схалтурить и попросить кого-то собрать скажем 3191 релиз с этой опцией включенной для asus wl500gpv2 и RT-16 ?
4. Как происходит процесс сборки софта для этого роутера? надо будет собирать inotify-tools, не на самом же роутере?

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

AndreyUA
15-08-2011, 11:42
Ребят, подскажите, мне нужно чтобы на asus wl500gpv2 (сейчас стоит проша 1.9.2.7-rtn-r3121) заработали inotify-tools. По-видимомоу для них нужна включенные CONFIG_INOTIFY CONFIG_INOTIFY_USER, не знаю правда модулем или в ядро, у меня на debian squeeze они в ядро вкомпилены). Поискал эти модули наудачу в modules-1.9.2.7-rtn-r3121-MIPS32r1.tgz modules-1.9.2.7-rtn-r3121-MIPS32r2.tgz, не нашел. В связи с этим неск вопросов.
1. искал config, с которым собрано ядро этой прошивки, не нашел (в дебиане он лежит в /boot, есть также опция которая вставляет его в /proc/config.gz, там я тоже не нашел, видимо это опция отключена). Где посмотреть конфиг?
2. Если опции отключены надо пересобирать да? Нашел какие-то тулчейны, где бы доку найти как все это делать. Сборок особо не боюсь, пару лет просидел под слакварей, где приходилось частенько пересобирать, думаю разберусь. Но доку бы хотелось )
3. Опять же если опции отключены можно ли схалтурить и попросить кого-то собрать скажем 3191 релиз с этой опцией включенной для asus wl500gpv2 и RT-16 ?
4. Как происходит процесс сборки софта для этого роутера? надо будет собирать inotify-tools, не на самом же роутере?

прошу прощения если вопросы глупые, но я пошукал и в темах и фак. Конкретных инструкций и ответов не нашел. Тыкайте в ртфм если я что-то проглядел, не обижусь. Спасибо за внимание.
Почитайте эту тему сначала и вот несколько ссылок. Плюс поиском пройдитесь по форуму после прочтения.
http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware
http://www.hub.ru/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D 0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0 %BC%D0%BC_%D0%B4%D0%BB%D1%8F_%D0%BC%D0%B0%D1%80%D1 %88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%B E%D1%80%D0%B0
http://wl500g.info/showthread.php?t=7290

voidshah
26-08-2011, 16:29
[ ! -d utils ] || make -C utils install INSTALLDIR=/home/rt-n16/broadcom/src/gateway/mipsel-uclibc/install/utils
make[1]: Entering directory `/home/rt-n16/broadcom/src/gateway/utils'
mipsel-uclibc-gcc -s -Os -I/home/rt-n16/broadcom/src/include -I/home/rt-n16/broadcom/src/gateway/shared -isystem/home/rt-n16/broadcom/src/linux/linux-2.6/include -Wall -Wl,-rpath /lib -o hub-ctrl -I/home/rt-n16/broadcom/src/gateway/libusb10/libusb -I/home/rt-n16/broadcom/src/gateway/libusb10/ -L/home/rt-n16/broadcom/src/gateway/nvram -lnvram -L/home/rt-n16/broadcom/src/gateway/libusb10/libusb/.libs -lusb-1.0 hub-ctrl.c
hub-ctrl.c: In function 'hub_port_status':
hub-ctrl.c:94: warning: pointer targets in passing argument 6 of 'libusb_control_transfer' differ in signedness
/home/rt-n16/broadcom/src/gateway/libusb10/libusb/libusb.h:1121: note: expected 'unsigned char *' but argument is of type 'char *'
hub-ctrl.c: In function 'usb_find_hubs':
hub-ctrl.c:199: warning: pointer targets in passing argument 6 of 'libusb_control_transfer' differ in signedness
/home/rt-n16/broadcom/src/gateway/libusb10/libusb/libusb.h:1121: note: expected 'unsigned char *' but argument is of type 'char *'
/home/rt-n16/broadcom/src/gateway/libusb10/libusb/.libs/libusb-1.0.so: undefined reference to `timerfd_create'
/home/rt-n16/broadcom/src/gateway/libusb10/libusb/.libs/libusb-1.0.so: undefined reference to `timerfd_settime'
collect2: ld returned 1 exit status
make[1]: *** [hub-ctrl] Error 1
make[1]: Leaving directory `/home/rt-n16/broadcom/src/gateway/utils'
make: *** [utils-install] Ошибка 2
mv: невозможно выполнить stat для «mipsel-uclibc/*.trx»: Нет такого файла или каталога
вот такая ошибка при сборке r3220 for RT-N16
Чего бы это значило? Никогда ранее такого не наблюдал.
Пы.Сы. И еще такая фигня - после перепршивки (не помню с какой прошивки началось) - роутер сам не заводится. Помогает только выдергивание питания. Сброс настроек сделать?!

theMIROn
26-08-2011, 17:02
вот такая ошибка при сборке r3220 for RT-N16
Чего бы это значило? Никогда ранее такого не наблюдал.
тулчейн обновлять нужно

voidshah
26-08-2011, 17:10
тулчейн обновлять нужно

Дык скомпилил тучнейн новый перед этим:confused: Еще раз ща попробую собрать последний тулчейн

theMIROn
26-08-2011, 17:40
Дык скомпилил тучнейн новый перед этим:confused: Еще раз ща попробую собрать последний тулчейн

собирать нужно с указанием linux-2.6 tree.

voidshah
26-08-2011, 18:08
CONFIG_EXTERNAL_KERNEL_TREE="/home/rt-n16/broadcom/src/linux/linux-2.6/"
Оно?
Или так надо?

# CONFIG_LINUX_2_4 is not set
CONFIG_LINUX_2_6=yтут еще такое выползло

Download failed.
--2011-08-26 19:03:39-- ftp://ftp.leo.org/pub/comp/os/unix/gnu/binutils-2.21.1.tar.bz2
=> `-'
Resolving ftp.leo.org... failed: Name or service not known.
wget: unable to resolve host address `ftp.leo.org'
Download failed.
No more mirrors to try - giving up.
make[3]: *** [/home/rt-n16/toolchain/dl/binutils-2.21.1.tar.bz2] Error 2
make[3]: Leaving directory `/home/rt-n16/toolchain/toolchain/binutils'
make[2]: *** [toolchain/binutils/prepare] Error 2
make[2]: Leaving directory `/home/rt-n16/toolchain'
make[1]: *** [/home/rt-n16/toolchain/staging_dir/mipsel/stamp/.toolchain_install] Error 2
make[1]: Leaving directory `/home/rt-n16/toolchain'
make: *** [world] Ошибка 2
А на ftp.gnu.org/gnu/binutils/ нет binutils-2.21.1.tar.bz2, а есть binutils-2.21.1а.tar.bz2:confused:
Кста - его сегодня туда залили, а 2.21.1 - убрали наверное

BcTpe4HbIu
26-08-2011, 18:58
Пы.Сы. И еще такая фигня - после перепршивки (не помню с какой прошивки началось) - роутер сам не заводится. Помогает только выдергивание питания. Сброс настроек сделать?!

Тоже такая фигня, причем уже очень давно.

voidshah
26-08-2011, 19:09
А сброс пробовал. Оно то особо не напрягает, но как-то не нормально, имхо.

theMIROn
26-08-2011, 19:26
А на ftp.gnu.org/gnu/binutils/ нет binutils-2.21.1.tar.bz2, а есть binutils-2.21.1а.tar.bz2:confused:
Кста - его сегодня туда залили, а 2.21.1 - убрали наверное
2.20.1 тоже
r3223

voidshah
26-08-2011, 19:36
theMIROn
Спасибо!
А что про это скажите?
после перепршивки (не помню с какой прошивки началось) - роутер сам не заводится
И за linux-2.6 tree - комент бы;)

voidshah
17-09-2011, 11:12
theMIROn

после перепршивки (не помню с какой прошивки началось) - роутер сам не заводится


Кста, вроде решилось! Толи мое шаманство, толи разрабов - не знаю:)

изменил pre-shutdown так

#!/bin/sh

/opt/etc/init.d/rc.unslung stop

sleep 10s

for i in `cat /proc/mounts | awk '/ext3/,/fuseblk/{print($2)}'` ; do
mount -o remount,ro $i
done

swapoff -a

sleep 1s

еще S08samba подрихтовал так

#!/bin/sh

start() {
echo "starting nmbd:"
/opt/sbin/nmbd -D
echo "Starting smbd:"
/opt/sbin/smbd -D
}

stop() {
if [ -n "`pidof smbd`" ] ; then
echo "Stopping smbd:"
killall smbd
fi

if [ -n "`pidof nmbd`" ] ; then
echo "Stopping nmbd:"
killall nmbd
fi
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 4
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac

Все! Теперь после перепрошивки нормально рестартит:)

mowgli
09-10-2011, 03:01
Сайт kernel.org так и не работает.
Пока его заменяет https://github.com/torvalds/linux/
Но там нет ядра 2.6.22.19. Есть какое-то Linux 2.6.22-rc7.
Пойдёт для сборки rtn прошивки?

ConstAntz
09-10-2011, 06:25
Сайт kernel.org так и не работает.
Пока его заменяет https://github.com/torvalds/linux/
Но там нет ядра 2.6.22.19. Есть какое-то Linux 2.6.22-rc7.
Пойдёт для сборки rtn прошивки?

беглый гуглопоиск:
ftp://ftp.obspm.fr/pub/linux/kernels/2.6/linux-2.6.22.19.tar.bz2
http://download.filesystems.org/linux/kernel/v2.6/
http://ftp.inf.utfsm.cl/pub/Linux/kernel/v2.6/


ну или к vectorm`у на поклон;)

BolenB
09-10-2011, 15:46
Начиная с версии r3410 сборка прошивки затыкается на шаге 4.1 (make kernel).
лог:

./142-fs-binfmt.patch
patching file fs/binfmt_elf.c
Hunk #1 succeeded at 419 (offset -82 lines).
./142-fs-bufhead.patch
patching file fs/buffer.c
Hunk #1 succeeded at 2183 (offset -11 lines).
Hunk #2 succeeded at 2992 (offset 2 lines).
Hunk #3 succeeded at 3056 (offset -11 lines).
patching file include/linux/buffer_head.h
./142-fs-iget.patch
patching file Documentation/filesystems/porting
patching file fs/bad_inode.c
patching file include/linux/fs.h
Hunk #1 succeeded at 1723 (offset -57 lines).
./142-fs-inotify.patch
patching file fs/inotify.c
Hunk #1 succeeded at 135 (offset -21 lines).
./142-fs-part-stat.patch
Can not apply ./142-fs-part-stat.patch cleanly
make[1]: *** [patch] Ошибка 1
make[1]: Выход из каталога `/opt/broadcom/src/1.9.2.7-rtn/kernel-2.6'
make: *** [kernel-patch] Ошибка 2

MrGalaxy
15-10-2011, 20:13
Здравствуйте!
Попытался тут собрать прошивку и получил ругань на этапе make kernel:

make[1]: Выход из каталога `/tmp/fw/broadcom/src/1.9.2.7-rtn/kernel-2.6'
make -C kernel-2.6 patch
make[1]: Вход в каталог `/tmp/fw/broadcom/src/1.9.2.7-rtn/kernel-2.6'
Preparing kernel ...
Looking for last applied patch
Patching /tmp/fw/broadcom/src/linux/linux-2.6 with buildhost.patch
buildhost.patch
Can not apply buildhost.patch cleanly
make[1]: *** [patch] Ошибка 1
make[1]: Выход из каталога `/tmp/fw/broadcom/src/1.9.2.7-rtn/kernel-2.6'
make: *** [kernel-patch] Ошибка 2
mrgalaxy@mrgalaxy-desktop:/tmp/fw/broadcom/src/1.9.2.7-rtn$
Из-за чего эта ошибка возникла?

theMIROn
15-10-2011, 20:26
/tmp/fw/broadcom/src/linux/linux-2.6
видимо там что-то левое

MrGalaxy
16-10-2011, 06:51
видимо там что-то левое
Брал отсюда:
http://www.kernel.org/pub/linux/kernel/v2.6/

ConstAntz
16-10-2011, 08:58
Брал отсюда:
http://www.kernel.org/pub/linux/kernel/v2.6/

там нет 2.6.22.19, нужно именно оно

MrGalaxy
16-10-2011, 09:29
там нет 2.6.22.19, нужно именно оно

Спасибо, понятно.
Чем же тогда мастера-разработчики пользуются?
Здесь (http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware) ссылка мёртвая. Вот я и скачал ядро поновее...:confused:

ConstAntz
16-10-2011, 10:12
Спасибо, понятно.
Чем же тогда мастера-разработчики пользуются?
Здесь (http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware) ссылка мёртвая. Вот я и скачал ядро поновее...:confused:

либо ждать когда появиться на kernel.org, либо пост #346 (http://wl500g.info/showpost.php?p=238685&postcount=346) этой темы

vectorm
16-10-2011, 12:37
Я себе про запас скачал linux-2.6.22.19.tar.bz2 (http://asus.vectormm.net/compiled%20tools/linux-2.6.22.19.tar.bz2) :) , когда обнаружил, что с зеркал промежуточные версии потерли.
И, кому надо, linux-2.4.37.11.tar.bz2 (http://asus.vectormm.net/compiled%20tools/linux-2.4.37.11.tar.bz2)
Тут еще периодически обновляемый (updated 17.10.11) x64 toolchain (http://asus.vectormm.net/compiled%20tools/hndtools-mipsel-uclibc-4.4.6-K26-x64.tar.bz2)

Varkus
16-10-2011, 13:58
я думал у меня одного такие проблемы с поиском промежуточных версий.
ну я уже всё нашел и откомпилил.


buildhost.patch
Can not apply buildhost.patch cleanly
у меня такое один раз было когда с просони



Сообщение от MrGalaxy
/tmp/fw/broadcom/src/linux/linux-2.6

видимо там что-то левое

т.е. путь неправильно указал

MrGalaxy
16-10-2011, 14:54
ConstAntz,
Vectornm,
спасибо, скачал.

Desenix
17-10-2011, 20:03
В исходниках прошивок draitek есть модифицированный madwimax. С ним будет проще, поскольку переделывать существенно меньше.

В целом, возни будет много, а вот сколько нашим операторам WiMAX жить осталось - никто не знает....

Да уже проблемы со сборкой, пишут

вам нужно ядро linux-2.6.22.19.tar.bz2
а по ссылке такого ядра уже нет, осталось только 2.6.22, приехали.

vectorm
17-10-2011, 20:26
Да уже проблемы со сборкой, пишут

а по ссылке такого ядра уже нет, осталось только 2.6.22, приехали.
А чуть ниже (http://wl500g.info/showpost.php?p=239099&postcount=354) посмотреть? ;)
Специальная же тема есть, в нее перенес.

Desenix
18-10-2011, 05:03
А чуть ниже (http://wl500g.info/showpost.php?p=239099&postcount=354) посмотреть? ;)
Специальная же тема есть, в нее перенес.
Хороший запас в берлоге,

UPD2: сделал всё по инструкции, стало собираться, сразу лень было инструкцию переделывать :)

Desenix
18-10-2011, 14:25
Сборка модуля ядра
Пробую собрать модуль ядра для этой платформы, вытащил папку с исходниками только модуля. Если её собирать для x86, всё проходит нормально. Собрал по инструкциям прошивку, т.е. отдельно нет проблем. Теперь настала очередь модуля под архитектуру mips, перенастроил ему пути для сборки и вот что получаю в ответ на make

make -Wall O=/WL520G/broadcom/src/linux/linux-2.6.22.19 -C /WL520G/broadcom/src/linux/linux-2.6.22.19 SUBDIRS=/WL520G/tmp/usb modules
make[1]: Вход в каталог `/WL520G/broadcom/src/linux/linux-2.6.22.19'

ERROR: Kernel configuration is invalid.
include/linux/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.


WARNING: Symbol version dump /WL520G/broadcom/src/linux/linux-2.6.22.19/Module.symvers
is missing; modules will have no dependencies and modversions.
Что то ещё не хватает.

UPD1: Посмотрел отладочные логи make -d он не находит файла auto.conf а его ни где нет, как быть?

lly
18-10-2011, 14:38
В доке ядра Documentation/kbuild/modules.txt есть все ответы на подобные вопросы.

Ну и Makefile не рассчитанный на кросс-компиляцию тоже бывает :(

Desenix
18-10-2011, 19:38
Как модуль ядра собрал, правда пришлось вот эти ошибки

/WL500G/broadcom/wimax/usb/Interface/usb/InterfaceInit.c: In function 'usbbcm_device_probe':
/WL500G/broadcom/wimax/usb/Interface/usb/InterfaceInit.c:347: error: 'struct usb_device' has no member named 'autosuspend_delay'
/WL500G/broadcom/wimax/usb/Interface/usb/InterfaceInit.c:355: error: 'struct usb_device' has no member named 'autosuspend_disabled'
/WL500G/broadcom/wimax/usb/Interface/usb/InterfaceInit.c:373: error: 'struct usb_device' has no member named 'autosuspend_disabled'
за комментировать,
но и тут меня ждал облом, оказывается у меня в роутере ядро 2.4, а собрал для 2.6, теперь не проверить.
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.37.11.tar.bz2
Not Found

lly
18-10-2011, 19:54
Desenix
Я тебя еще расстрою, основные проблемы будут не с модулем ядра, а с их уродским user-space демоном.

vectorm
18-10-2011, 20:27
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.37.11.tar.bz2
Not Found
linux-2.4.37.11.tar.bz2 (http://asus.vectormm.net/compiled%20tools/linux-2.4.37.11.tar.bz2)

Desenix
19-10-2011, 06:53
в 2.6 всё чудесным образом само собралось, а в 2.4 опять 25
Кто мне объяснит, почему при сборке прошивки make разговариват по английски, а при сборке модуля по русски?
пример

make[3]: Leaving directory `/WL500GP/broadcom/src/linux/linux-2.4.37.11/fs/fuse'
make[2]: Leaving directory `/WL500GP/broadcom/src/linux/linux-2.4.37.11'
make[1]: Leaving directory `/WL500GP/broadcom/src/linux/linux-2.4.37.11/fs/fuse'
.............
make[2]: Вход в каталог `/WL500GP/broadcom/wimax/usb'
make[2]: *** Нет правила для сборки цели `modules'. Останов.
make[2]: Выход из каталога `/WL500GP/broadcom/wimax/usb'
make[1]: *** [_mod_/WL500GP/broadcom/wimax/usb] Ошибка 2
make[1]: Выход из каталога `/WL500GP/broadcom/src/linux/linux-2.4.37.11'

lly
19-10-2011, 08:17
в 2.6 всё чудесным образом само собралось, а в 2.4 опять 25
С вероятностью 99% под 2.4 без масштабной допилки и не соберётся. И способ сборки внешних модулей там отличается от 2.6.


Кто мне объяснит, почему при сборке прошивки make разговариват по английски, а при сборке модуля по русски?
Где-то выставляется русская локаль.

Desenix
19-10-2011, 08:24
С вероятностью 99% под 2.4 без масштабной допилки и не соберётся. И способ сборки внешних модулей там отличается от 2.6.
Где-то выставляется русская локаль.
Тут до допилки ещё даже не дошло, пишет что не видит чего собирать, а в исходниках встречается проверка версии ядра.
Мне бы понять что в Makefile надо поменять, чтоб сборка началась.

lly
19-10-2011, 08:28
Мне бы понять что в Makefile надо поменять, чтоб сборка началась.
Поищи примеры по ключевому слову Rules.make и в доке на 2.4
Помниться один был в accel-pptp-git-20100829 (http://wl500g.googlecode.com/svn/branches/d/accel-pptp/accel-pptp-git-20100829.tar.bz2) в kernel/driver/Makefile, но могу и ошибаться.

Desenix
19-10-2011, 08:52
Поищи примеры по ключевому слову Rules.make и в доке на 2.4
Помниться один был в accel-pptp-git-20100829 (http://wl500g.googlecode.com/svn/branches/d/accel-pptp/accel-pptp-git-20100829.tar.bz2) в kernel/driver/Makefile, но могу и ошибаться.
В ядре только док-я по составлению Makefile, по ссылке нашёл вот это
include $(KDIR)/Rules.make
не то.
Вот исходный Makefile

KERNEL_VER := $(shell uname -r)
KDIR := /lib/modules/$(KERNEL_VER)/build
KSRC := /lib/modules/$(KERNEL_VER)/source
INSTALL_DIR := /lib/modules/$(KERNEL_VER)/
TARGET_DRV := drxvi314
INTERFACE := Interface/usb/
COMMON := Common/
EXTRA_CFLAGS := -I$(src)/Include/
EXTRA_LDFLAGS := -s

ANDROID :=
EXTRAFLAGS := -Wall O=$(KDIR)

ifeq ($(ANDROID), y)
EXTRAFLAGS =
endif

ifneq ($(KERNELRELEASE),)

obj-m = $(TARGET_DRV).o

$(TARGET_DRV)-objs := $(INTERFACE)InterfaceDld.o \
$(INTERFACE)InterfaceIdleMode.o $(INTERFACE)InterfaceInit.o\
$(INTERFACE)InterfaceRx.o\
$(INTERFACE)InterfaceIsr.o\
$(INTERFACE)InterfaceMisc.o $(INTERFACE)InterfaceTx.o\
$(COMMON)Arp.o $(COMMON)CmHost.o $(COMMON)Debug.o\
$(COMMON)IPv6Protocol.o $(COMMON)Qos.o $(COMMON)Transmit.o\
$(COMMON)Bcmnet.o $(COMMON)DDRInit.o $(COMMON)HandleControlPacket.o\
$(COMMON)LeakyBucket.o $(COMMON)Misc.o $(COMMON)sort.o\
$(COMMON)Bcmchar.o $(COMMON)hostmibs.o $(COMMON)PHSModule.o $(COMMON)BufferDld.o\
$(COMMON)Osal_Misc.o $(COMMON)led_control.o $(COMMON)nvm.o $(COMMON)vendorspecificextn.o

else

PWD:= $(shell pwd)
default:
$(MAKE) $(EXTRAFLAGS) -C $(KSRC) SUBDIRS=$(PWD) modules

rm -f *.o *.mod.* .*.cmd
install:
cp $(TARGET_DRV).ko $(INSTALL_DIR)
clean:
find . -name \*.o -exec rm -rf '{}' ';'
find . -name .\*.o.cmd -exec rm -rf '{}' ';'
find . -name \*.*~ -exec rm -rf '{}' ';'
find . -name \*.*.bak -exec rm -rf '{}' ';'
rm -f *.ko *.o *.mod.* .*.cmd
rm -fr .tmp_versions
rm -rf Module.symvers
endif
хочу понять при каких суловиях выполняется условие ifneq ($(KERNELRELEASE),)
Почему в 2.4 не знает что собирать, а в 2.6 знает.

lly
19-10-2011, 09:02
хочу понять при каких суловиях выполняется условие ifneq ($(KERNELRELEASE),)

info make
И читать до полного понимания/опупения. Подсказка - этот Makefile парсится несколько раз.


Почему в 2.4 не знает что собирать, а в 2.6 знает.
Потому что в 2.6 много доделали, а приведённый файл не рассчитан на 2.4.

ConstAntz
19-10-2011, 12:50
хочу понять при каких суловиях выполняется условие ifneq ($(KERNELRELEASE),)
Почему в 2.4 не знает что собирать, а в 2.6 знает.
В условии опущен аргумент после запятой, и идет сравнение первого аргумента с ничем. Если переменную объявить чем либо - условие становится истинным и выполняется блок до else. Если этого не делать - выполняется второй блок else-endif. Что тут непонятного?

Desenix
19-10-2011, 13:13
В условии опущен аргумент после запятой, и идет сравнение первого аргумента с ничем. Если переменную объявить чем либо - условие становится истинным и выполняется блок до else. Если этого не делать - выполняется второй блок else-endif. Что тут непонятного?
о другом спрашивал, очень частично ответил

Подсказка - этот Makefile парсится несколько раз.

а по существу ни кто.
посмотрел примеры Makefile для сборки модулей под ядро 2.4, они по сути совпадают с приведённым, но почему-то make упорно не замечает строчки с $(TARGET_DRV)-objs и obj-m , т.е.

make[2]: Вход в каталог `/WL500GP/broadcom/wimax/usb'
make[2]: *** Нет правила для сборки цели `modules'. Останов.
make[2]: Выход из каталога `/WL500GP/broadcom/wimax/usb'

vectorm
19-10-2011, 13:35
посмотрел примеры Makefile для сборки модулей под ядро 2.4, они по сути совпадают с приведённым, но почему-то make упорно не замечает строчки с $(TARGET_DRV)-objs и obj-m , т.е.
А

KERNEL_VER := $(shell uname -r)
не меняли?
Я сам программер еще тот, но мне кажется, что в таком варианте будет пытаться собраться непойми что из каши для обеих веток ядра.
А не проще прошивку роутера на rt-n версию сменить?

Desenix
19-10-2011, 13:49
А

KERNEL_VER := $(shell uname -r)
не меняли?
Я сам программер еще тот, но мне кажется, что в таком варианте будет пытаться собраться непойми что из каши для обеих веток ядра.
А не проще прошивку роутера на rt-n версию сменить?
Это все менял в первую очередь, сейчас у меня что-то вроде этого варианта http://rus-linux.net/MyLDP/BOOKS/ldd2/0/LinuxDeviceDrivers.html (см. внизу).
или тут http://www.linuxkernel.ru/?q=node/215 такой же пример Makefile.
Ситуация не изменилась.

Есть один интересный момент. если в папку с Makefile положить файл modules, то пишет уже другое

make[2]: Вход в каталог `/WL500GP/broadcom/wimax/usb'
make[2]: Цель `modules' не требует выполнения команд.
make[2]: Выход из каталога `/WL500GP/broadcom/wimax/usb'

UPD1: похоже где-то в ядре кривизна, эта "цель" не должна быть у меня в Makefile, вот поэтому не собирается.

Desenix
20-10-2011, 09:44
мда, не понятно, как тогда прошивка собралась...

/WL500GP/broadcom/src/linux/linux-2.4.37.11/include/linux/compiler.h:63:2: error: #error "GCC >= 4.2 miscompiles kernel 2.4, do not use it!"
/WL500GP/broadcom/src/linux/linux-2.4.37.11/include/linux/compiler.h:64:2: error: #error "While the resulting kernel may boot, you will encounter random bugs"
/WL500GP/broadcom/src/linux/linux-2.4.37.11/include/linux/compiler.h:65:2: error: #error "at runtime. Only versions 2.95.3 to 4.1 are known to work reliably."
/WL500GP/broadcom/src/linux/linux-2.4.37.11/include/linux/compiler.h:66:2: error: #error "To build with another version, for instance 3.3, please do"
/WL500GP/broadcom/src/linux/linux-2.4.37.11/include/linux/compiler.h:67:2: error: #error " make bzImage CC=gcc-3.3 "

genych
01-11-2011, 22:11
При сборке билда на этапе make в каталоге "broadcom/src/1.9.2.7-rtn", получаю ошибку
Нет правила для сборки цели `pptp/pptp-1.7.1.tar.gz' Система Linux Mint 11 Katya. Как поправить?

voidshah
02-11-2011, 00:36
При сборке билда на этапе make в каталоге "broadcom/src/1.9.2.7-rtn", получаю ошибку
Нет правила для сборки цели `pptp/pptp-1.7.1.tar.gz' Система Linux Mint 11 Katya. Как поправить?

в broadcom/src/1.9.2.7-rtn/Makefile
удалить - PPTP=pptp-1.7.1
и
custom: $(TOP)/.config loader busybox dropbear dnsmasq p910nd samba iproute2 iptables \
ppp pptp rp-l2tp rp-pppoe accel-pptp xl2tpd \
nfs-utils portmap radvd quagga ucd-snmp igmpproxy vsftpd udpxy \
bpalogin bridge ez-ipupdate inadyn httpd libjpeg lib LPRng \
misc netconf nvram others rc mjpg-streamer udev hotplug2 \
scsi-idle libusb usb_modeswitch wimax lltd tcpdump ntfs-3g \
shared upnp miniupnpd utils wlconf www libbcmcrypto asustrx cdma \
sysfsutils e2fsprogs wpa_supplicant lanauth authcli
заменить на accel-pptp

пока так, а далее lly подправит:)
у меня прошивка собралась, ща проверю на работоспособность
Пы.Сы. Все работает, ток у меня не pptp соединение

TReX
02-11-2011, 02:13
Подкосила прошивку 3549 (((

theMIROn
02-11-2011, 07:10
ppp pptp rp-l2tp rp-pppoe accel-pptp xl2tpd \
заменить на accel-pptp
не надо ничего заменять

alegzz
02-11-2011, 07:33
а как надо? я скачал pptp-1.7.1.tar.gz и положил куда просят

voidshah
02-11-2011, 08:03
не надо ничего заменять
а ну да - пропустил тож, значит просто удалить. иначе pptp не найдется, его ведь в trunk нет...

genych
02-11-2011, 20:36
1.9.2.7-rtn-r3552 - полет нормальный )) Теперь все отлично собралось и работает.

Robo
13-11-2011, 10:33
make images в gateway приводит к ошибкам:

No rule to make target 'arch/mips/brcm-boards/bcm947xx/../../../../../../shared/hndmips.o
Что делать?

Redfield
13-11-2011, 19:16
Наткнулся на баг, вроде как пофикшенный, но слегка попозже последней готовой сборки для моей приспособы (при подключении к Пчелайну скисал поиск хоста по символьному имени).

Для сборки прошивки сделал виртуалку, поставил на неё Дебиан, напхал в него недостающие пакеты.

после команды make install получил на выходе


Creating little endian 3.0 filesystem on /home/redfield/build-root/broadcom/src/gateway/mipsel-uclibc/target.cramfs, block size 65536.
make: *** [package-WL520gu] Ошибка сегментирования

и почуствовал себя обманутым...

Как образумить это бессовестное виртуальное устройство?

dimonb
25-11-2011, 21:57
make images в gateway приводит к ошибкам:

Что делать?

Похоже, что какой-то баг сборки. Исходники ядра должны лежать в той же папке, что и симлинк на них. Т.е.

linux/
linux-2.6 -> linux-2.6.22.19
linux-2.6.22.19

мне помогло :)

Vampik
26-11-2011, 07:58
Наткнулся на баг, вроде как пофикшенный, но слегка попозже последней готовой сборки для моей приспособы (при подключении к Пчелайну скисал поиск хоста по символьному имени).

Для сборки прошивки сделал виртуалку, поставил на неё Дебиан, напхал в него недостающие пакеты.

после команды make install получил на выходе


и почуствовал себя обманутым...

Как образумить это бессовестное виртуальное устройство?

Баг в squashfs-lzma, не пофикшенный, но в качестве workaround'а (по крайней мере, мне помогло) - внесите изменение в Makefile.top:

--- Makefile.top Wed Nov 23 20:14:24 2011
+++ Makefile.top Thu Nov 24 13:53:42 2011
@@ -415,7 +415,7 @@
$(MAKE) modules_install-$*
# Prepare filesystem
cd $(TARGETDIR) && $(TOP)/misc/rootprep.sh
- $(LINUXDIR)/scripts/squashfs/mksquashfs-lzma $(TARGETDIR) $(PLATFORMDIR)/target.cramfs -all-root -noappend -nopad
+ $(LINUXDIR)/scripts/squashfs/mksquashfs-lzma $(TARGETDIR) $(PLATFORMDIR)/target.cramfs -all-root -noappend -nopad -no-duplicates
rm -f $(PLATFORMDIR)/$*-$(RELEASE).trx
$(MAKE) -C $(SRCBASE)/asustrx CC=$(HOSTCC)
ifeq ($(CONFIG_LOADER),y)

lly
27-11-2011, 07:19
Баг в squashfs-lzma, не пофикшенный,
Ты так и не ответил на http://wl500g.info/showpost.php?p=241185&postcount=5630 - не помогло? (можно в личку)

Regulirovschik
27-11-2011, 09:50
У меня почему-то не работают симлинки в формате Little-endian UTF-16 Unicode text:
Поменял созданные вручную, но все как-то не хочется менять. Их много. При сборке - make из .../broadcom/src/gateway:

/opt/brcm/hndtools-mipsel-uclibc-4.3.5/lib/gcc/mipsel-linux-uclibc/4.3.5/../../../../mipsel-linux-uclibc/lib/libgcc_s.so: file not recognized: File format not recognized

Думаю, что проблема решится, если заставить систему (Linux crunchbang 2.6.39-bpo.2-686-pae #1 SMP Thu Aug 4 11:02:22 UTC 2011 i686 GNU/Linux) опознавать эти линки.
Решено: tar -C /opt/brcm -jxvf hndtools-mipsel-uclibc-4.3.5-3.tar.bz2 ))

Redfield
28-11-2011, 05:31
Баг в squashfs-lzma, не пофикшенный, но в качестве workaround'а (по крайней мере, мне помогло) - внесите изменение в Makefile.top
Спасибо, сработало, прошивка собралась.
Соберусь с духом - буду запихивать её в роутер :)

UPD.
Птичка зачирикала. Два ip на одно символьное имя теперь воспринимает как должное.
Ещё раз благодарю за помощь.

rost-80
22-12-2011, 19:42
Поставил на выделенную тачку Федорку седьмую с целью попробовать скомпилить прошивку самостоятельно на ядре 2.6.
Следую руководству отсюда: http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware?wl=ru


[root@localhost 1.9.2.7-rtn]# svn checkout http://wl500g.googlecode.com/svn/trunk/ /root/src/broadcom/src/1.9.2.7-rtn
Checked out revision 3700.

Дошел до

# Сборка

$ cd /whatever-you-want/broadcom/src/1.9.2.7-d
$ make kernel
Получаю:


применяется много патчей...
....
Can not apply ./125-fs-splice_read.patch cleanly
make[1]: *** [patch] Error 1
make[1]: Leaving directory `/root/src/broadcom/src/1.9.2.7-rtn/kernel-2.6'
make: *** [kernel-patch] Error 2
[root@localhost 1.9.2.7-rtn]#

Куда копать?

lly
23-12-2011, 07:32
Куда копать?
В сторону тухлых patchutils или дорихтовывать патч до совместимости с ними.

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

rost-80
23-12-2011, 08:10
lly
Какой дистрибутив порекомендуете?

lly
23-12-2011, 08:19
lly
Какой дистрибутив порекомендуете?
Идеала нет :( В данный момент лично я использую OpenSUSE 11.3, но не могу сказать, что я её настроил под себя за 5 минут.
Совершенно аналогично с RedHat (используем на работе), про остальные ничего не скажу.

theMIROn
23-12-2011, 10:02
К слову, у меня debian squeeze

Redfield
23-12-2011, 11:16
lly
Какой дистрибутив порекомендуете?

У меня последний Дебиан поставился на виртуалку и собрал прошивку практически без проблем.
Ничего не допиливал (не считая установки девелоперских пакетов, которые всё равно пришлось бы ставить для сборки VMWare Tools).

Единственный приключившийся затык был решён страницей ранее.

rost-80
24-12-2011, 12:20
Поставил Fedora 16 LXDE.
Все прекрасно скомпилилось под рутом. Залил в роутер, работает.
lly, вы мне файлик волшебный обещали... :)

ryzhov_al
13-01-2012, 09:52
В продолжении разговора (http://www.wl500g.info/showpost.php?p=242987&postcount=216).

Но это значит, что мы возвращаемся к исходной позиции - дряхлые(кривые) patchutils которые не могут корректно отработать 149-fs-xfs.patch и удалить fs/xfs/Kbuild и fs/xfs/Makefile-linux-2.6lly, где ещё пробуксовали patch-utils, кроме fs/xfs? Вот перечень пустых файлов в дереве сборки прошивки:


$ cd /whatever-you-want/broadcom/src/1.9.2.7-rtn
$ make kernel
$ make
$ cd /whatever-you-want/broadcom/src/
$ find . -empty -type f | grep -v "cvsignore"
./1.9.2.7-rtn/brcm-src-2.6/include/bcmcrypto/bcmccx.h
./1.9.2.7-rtn/brcm-src-2.6/include/bcmcrypto/ccx.h
./1.9.2.7-rtn/brcm-src-2.6/include/bcmcrypto/.svn/text-base/ccx.h.svn-base
./1.9.2.7-rtn/brcm-src-2.6/include/bcmcrypto/.svn/text-base/bcmccx.h.svn-base
./linux/linux-2.6.22.19/fs/udf/fsync.c
./linux/linux-2.6.22.19/fs/udf/crc.c
./linux/linux-2.6.22.19/fs/xfs/Kbuild
./linux/linux-2.6.22.19/fs/xfs/linux-2.6/xfs_vfs.c
./linux/linux-2.6.22.19/fs/xfs/linux-2.6/spin.h
./linux/linux-2.6.22.19/fs/xfs/linux-2.6/sema.h
./linux/linux-2.6.22.19/fs/xfs/support/move.h
./linux/linux-2.6.22.19/fs/xfs/support/move.c
./linux/linux-2.6.22.19/fs/xfs/Makefile-linux-2.6
./linux/linux-2.6.22.19/fs/xfs/xfs_behavior.h
./linux/linux-2.6.22.19/fs/xfs/xfs_iocore.c
./linux/linux-2.6.22.19/fs/xfs/xfs_behavior.c
./linux/linux-2.6.22.19/mm/filemap.h
./linux/linux-2.6.22.19/include/linux/udf_fs.h
./linux/linux-2.6.22.19/include/linux/udf_fs_sb.h
./gateway/e2fsprogs/include/nonunix/sys/wait.h
./gateway/e2fsprogs/include/nonunix/sys/ioctl.h
./gateway/e2fsprogs/include/nonunix/sys/file.h
./gateway/e2fsprogs/include/nonunix/sys/socket.h
./gateway/e2fsprogs/include/nonunix/sys/param.h
./gateway/e2fsprogs/include/nonunix/sys/resource.h
./gateway/e2fsprogs/include/nonunix/dirent.h
./gateway/e2fsprogs/include/nonunix/termios.h
./gateway/wpa_supplicant/wpa_supplicant/doc/docbook/manpage.links
./gateway/ntfs-3g/m4/.keep
./gateway/accel-pptp/pppd_plugin/TODO
./gateway/accel-pptp/pppd_plugin/ChangeLog
./gateway/accel-pptp/pppd_plugin/NEWS
./gateway/accel-pptp/pppd_plugin/README
./gateway/accel-pptp/pptpd-1.3.3/NEWS
./gateway/accel-pptp/kernel/driver/TODO
./gateway/accel-pptp/kernel/driver/ChangeLog
./gateway/accel-pptp/kernel/driver/NEWS
./gateway/accel-pptp/kernel/driver/README
./gateway/LPRng/TESTSUPPORT/LPD/t1/dfA517taco
./gateway/LPRng/TESTSUPPORT/LPD/t1/cfA001taco
./gateway/LPRng/TESTSUPPORT/LPD/t1/dfA506taco
./gateway/LPRng/TESTSUPPORT/LPD/t1/log
./gateway/LPRng/TESTSUPPORT/LPD/t1/accnt
./gateway/LPRng/TESTSUPPORT/LPD/t2/log
./gateway/LPRng/DOCS/LPRng-Reference.out
./gateway/samba/packaging/SGI/STATUS..LCK
./gateway/samba/source/bin/.dummy
./gateway/samba/Read-Manifest-Now
./gateway/dropbear/libtommath/logs/invmod.log
./gateway/dropbear/libtommath/poster.out
./gateway/dropbear/debian/dropbear.default
Какие файлы из перечня необходимо подтереть для корректной сборки?

Для информации: последняя Ubuntu со всеми security-фиксами, patch v.2.6.1.

lly
13-01-2012, 10:32
lly, где ещё пробуксовали patch-utils, кроме fs/xfs? Вот перечень пустых файлов в дереве сборки прошивки:
Везде, где есть удаление исходного файла в патче. Но критично только ядро.

Какие файлы из перечня необходимо подтереть для корректной сборки?
Кроме xfs'ных - никакие.

freddd
27-01-2012, 19:05
Всем привет.
Собираю прошивку по этой (http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware) инструкции
Путь для тулчейна вроде указал
$ export PATH=$PATH:/opt/brcm/hndtools-mipsel-uclibc/bin

Но все равно вываливает на

make[1]: mipsel-uclibc-ld: Command not found
make[1]: *** [libbcmcrypto.so] Error 127
make[1]: Leaving directory `/home/fed/openwrt_stuff/broadcom/src/gateway/libbcmcrypto'
make: *** [libbcmcrypto] Ошибка 2

Что может быть не так? Тут на форуме не нашел. Помогите.

freddd
29-01-2012, 15:04
Решил проблему компилированием своего toolchain
Важно, что все make необходимо делать не от суперюзера.

lly
29-01-2012, 16:22
Решил проблему компилированием своего toolchain

Это говорит от том, что либо была перепутана архитектура тулчейна (на 32-х битный линукс поставили x86_64 тулчейн) или в данном дистрибутиве(каком?) очень тухлая glibc. Но по исходному описанию проблемы про это никак не догадаться.

freddd
29-01-2012, 16:57
Дистрибутив Ubuntu, система 64 битная.
Скорее всего проблема была в том, что пытался делать make супер-юзером. Долго искал, прежде чем сделал chown -R newuser:newuser /папка
и все пошло.

lly
30-01-2012, 08:27
freddd
Запросто могут быть для root'а другие пути к библиотекам и/или включены какие-то политики SElinux.

sector119
01-02-2012, 10:08
Есть ли возможность собрать на основе ядра 2.6.39.4 ?
Или только 2.6.22.19 как рекомендуется в http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware ?

lly
02-02-2012, 07:55
Есть ли возможность собрать на основе ядра 2.6.39.4 ?

Вы явно поленились почитать форум и, исходя из формулировки вопроса, эту работу не осилите. В любом случае, функциональность драйвера Wi-Fi будет потеряна.

Нужно последнее ядро - используйте OpenWRT.

AndreyUA
27-05-2012, 19:42
Господа, а где правильно сделать #define DEBUG чтобы собрать прошивку с дебагом?

lly
27-05-2012, 19:57
Господа, а где правильно сделать #define DEBUG чтобы собрать прошивку с дебагом?
С дебагом чего именно? Глобального define'а нет, да и не нужен он. Для ядра, очевидно, в linux/linux-2.6/.config , для большинства пакетов - в их собственных Makefile'ах.

AndreyUA
27-05-2012, 20:31
С дебагом чего именно? Глобального define'а нет, да и не нужен он. Для ядра, очевидно, в linux/linux-2.6/.config , для большинства пакетов - в их собственных Makefile'ах.
Ясно, спасибо. Нужен дебаг для rc. Думал, что есть глобальный дефайн, но я его не вижу.

lly
27-05-2012, 20:50
Нужен дебаг для rc. Думал, что есть глобальный дефайн, но я его не вижу.
Строчка в rc/Makefile

#CFLAGS += -g -DDEBUG -DDEBUG_TO_SYSLOG
не бросилась в глаза?

AndreyUA
27-05-2012, 21:01
Бросилась, только я получил

mipsel-uclibc-gcc -o rc rc.o init.o interface.o network.o services.o udhcpc.o ppp.o crc.o mtd.o common_ex.o network_ex.o firewall.o services_ex.o manu_ex.o http_ex.o watchdog.o sendalarm.o udhcpc_ex.o bigpond.o qos.o auth.o firewall_ex.o wimax.o usbmodem.o usbnet.o rcamd.o -L/usr/src/broadcom/src/gateway/nvram -lnvram -L/usr/src/broadcom/src/gateway/shared -lshared -lcrypt -lpthread -Wl,-rpath /lib
sendalarm.o: In function `sendalarm_main':
/usr/src/broadcom/src/gateway/rc/sendalarm.c:174: warning: gethostbyname is obsolescent, use getnameinfo() instead.
rc.o: In function `rc_signal':
/usr/src/broadcom/src/gateway/rc/rc.c:674: undefined reference to `cprintf_syslog'
/usr/src/broadcom/src/gateway/rc/rc.c:686: undefined reference to `cprintf_syslog'
/usr/src/broadcom/src/gateway/rc/rc.c:682: undefined reference to `cprintf_syslog'
/usr/src/broadcom/src/gateway/rc/rc.c:678: undefined reference to `cprintf_syslog'
/usr/src/broadcom/src/gateway/rc/rc.c:670: undefined reference to `cprintf_syslog'
rc.o:/usr/src/broadcom/src/gateway/rc/rc.c:511: more undefined references to `cprintf_syslog' follow
collect2: ld returned 1 exit status
make[1]: *** [rc] Error 1
make[1]: Leaving directory `/usr/src/broadcom/src/gateway/rc'
make: *** [rc] Ошибка 2

ConstAntz
27-05-2012, 21:18
Бросилась, только я получил

...
/usr/src/broadcom/src/gateway/rc/rc.c:674: undefined reference to `cprintf_syslog'
...



rm rc.o && make

AndreyUA
28-05-2012, 08:08
rm rc.o && makeНе помогло. Помогло раскомментить дебаг в shared/Makefile Я так понимаю, что вот тут дефайн http://code.google.com/p/wl500g/source/search?q=cprintf_syslog&origq=cprintf_syslog&btnG=Search+Trunk
Вечерком попробую залить.

staticroute
30-05-2012, 18:11
Дистрибутив Ubuntu, система 64 битная.
Скорее всего проблема была в том, что пытался делать make супер-юзером. Долго искал, прежде чем сделал chown -R newuser:newuser /папка
и все пошло.

Проблема в том, что тулчейн собран на 32-х битной системе, а у вас 64-х. Это кстати нигде не указано в wiki, не мешало бы добавить, чтобы не тратить лишнее время на выяснение новым людям, кто захочет собрать.

Для исправления ситуации можно не рекомпилить тулчейн, а поставить поддержку запуска 32-х битных приложений, на дебиане или убунту это:


sudo apt-get install ia32-libs

BioS
07-06-2012, 14:21
давно не обновлялся. после того, как сегодня обновился


flashfs commit

выдает


/dev/mtd/4: No such file or directory


$ ls /dev/mtd
0 1 2 3 block0 block2
0ro 1ro 2ro 3ro block1 block3

lly
07-06-2012, 14:37
давно не обновлялся. после того, как сегодня обновился
Небось в DIR-320 заливаете? Прошивка великовата стала, см. issue 326 (http://code.google.com/p/wl500g/issues/detail?id=326)

BioS
07-06-2012, 14:47
Небось в DIR-320 заливаете? Прошивка великовата стала, см. issue 326 (http://code.google.com/p/wl500g/issues/detail?id=326)

нет, wl500gp v1

lly
07-06-2012, 15:03
нет, wl500gp v1
Ну так вы же не потрудились указать ни модель роутера, ни какие ревизии(билды) пробовали. Гадать на кофейной гуще дело неблагодарное.

P.S. На моих WL500gPV1 и RT-N16 flashfs есть.

staticroute
07-06-2012, 15:06
давно не обновлялся. после того, как сегодня обновился


flashfs commit

выдает


/dev/mtd/4: No such file or directory


$ ls /dev/mtd
0 1 2 3 block0 block2
0ro 1ro 2ro 3ro block1 block3

Сами собирали прошивку или где-то взяли pre-compiled ?

Я на r4298, полет нормальный. Была такая проблема на чьей-то сборке.

BioS
07-06-2012, 15:10
собирал сам. r4309

единственное изменение - ext4 не в виде модуля

прошивка весит 5,9мб - много?

lly
07-06-2012, 15:21
собирал сам. r4309
А билды от vectormm или wpte работают?

Судя по тому, что это уже вторая жалоба на самосбор, похоже на проблему на хосте(сборочном стенде). Может хостовые библиотеки какие обновились?


прошивка весит 5,9мб - много?
нормально.

BioS
07-06-2012, 15:26
А билды от vectormm или wpte работают?


где их взять?

Vampik
07-06-2012, 17:16
Небось в DIR-320 заливаете? Прошивка великовата стала, см. issue 326 (http://code.google.com/p/wl500g/issues/detail?id=326)


<skipped>
0x00040000-0x003f0000 : "linux"
<skipped>
0x003e0000-0x003f0000 : "flashfs"
<skipped>

Кстати, не правда. 0x003e0000 - 0x00040000 = 0x003a0000 = 3801088 байт. И такое же ограничение установлено в makefile для всех 4 МБ моделей. Если прошивка будет больше, она просто не соберется без увеличения ограничения в makefile (и тогда она действительно залезет на flashfs).

ConstAntz
17-06-2012, 14:26
плановый переезд вызвал проблемы с последним тулчейном (http://wl500g.googlecode.com/files/hndtools-mipsel-uclibc-4.5.3-K26-r4179.tar.bz2)

fake@wl500g-compiler:~/develop/broadcom/src/gateway$ make
[ ! -d libbcmcrypto ] || make -C libbcmcrypto GLOBAL_OPTIONS="-DUSB_SUPPORT -DQOS -DWPA2_WMM -DASUS_EXT" EXTRACFLAGS="-mips32 -mtune=mips32 -Wno-pointer-sign -DBCMWPA2 -DLINUX26"
find: `/home/fake/develop/broadcom/src/gateway/mipsel-uclibc/target': No such file or directory
make[1]: Entering directory `/home/fake/develop/broadcom/src/gateway/libbcmcrypto'
mipsel-uclibc-ld -shared -o libbcmcrypto.so /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/aes.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/aeskeywrap.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/rijndael-alg-fst.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/dh.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/bn.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/sha1.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/passhash.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/prf.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/md5.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/hmac.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/rc4.o /home/fake/develop/broadcom/src/gateway/libbcmcrypto/prebuilt/random.o
make[1]: mipsel-uclibc-ld: Command not found
make[1]: *** [libbcmcrypto.so] Error 127
make[1]: Leaving directory `/home/fake/develop/broadcom/src/gateway/libbcmcrypto'
make: *** [libbcmcrypto] Error 2
руководствовался инструкцией (http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware), но, похоже, где-то "накосячил"...

fake@wl500g-compiler:~/develop/broadcom/src/gateway$ ls /opt/brcm/hndtools-mipsel-uclibc/bin/ -la
total 12780
drwxr-xr-x 2 fake fake 4096 Jun 10 15:16 .
drwxr-xr-x 10 fake fake 4096 Jun 10 15:16 ..
lrwxrwxrwx 1 fake fake 29 Jun 10 15:16 mipsel-linux-addr2line -> mipsel-linux-uclibc-addr2line
lrwxrwxrwx 1 fake fake 22 Jun 10 15:16 mipsel-linux-ar -> mipsel-linux-uclibc-ar
lrwxrwxrwx 1 fake fake 22 Jun 10 15:16 mipsel-linux-as -> mipsel-linux-uclibc-as
lrwxrwxrwx 1 fake fake 23 Jun 10 15:16 mipsel-linux-c++ -> mipsel-linux-uclibc-c++
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-linux-c++filt -> mipsel-linux-uclibc-c++filt
lrwxrwxrwx 1 fake fake 16 Jun 10 15:16 mipsel-linux-cc -> mipsel-linux-gcc
lrwxrwxrwx 1 fake fake 23 Jun 10 15:16 mipsel-linux-cpp -> mipsel-linux-uclibc-cpp
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-linux-elfedit -> mipsel-linux-uclibc-elfedit
lrwxrwxrwx 1 fake fake 23 Jun 10 15:16 mipsel-linux-g++ -> mipsel-linux-uclibc-g++
lrwxrwxrwx 1 fake fake 23 Jun 10 15:16 mipsel-linux-gcc -> mipsel-linux-uclibc-gcc
lrwxrwxrwx 1 fake fake 29 Jun 10 15:16 mipsel-linux-gcc-4.5.3 -> mipsel-linux-uclibc-gcc-4.5.3
lrwxrwxrwx 1 fake fake 26 Jun 10 15:16 mipsel-linux-gccbug -> mipsel-linux-uclibc-gccbug
lrwxrwxrwx 1 fake fake 24 Jun 10 15:16 mipsel-linux-gcov -> mipsel-linux-uclibc-gcov
lrwxrwxrwx 1 fake fake 25 Jun 10 15:16 mipsel-linux-gprof -> mipsel-linux-uclibc-gprof
lrwxrwxrwx 1 fake fake 22 Jun 10 15:16 mipsel-linux-ld -> mipsel-linux-uclibc-ld
lrwxrwxrwx 1 fake fake 26 Jun 10 15:16 mipsel-linux-ld.bfd -> mipsel-linux-uclibc-ld.bfd
lrwxrwxrwx 1 fake fake 22 Jun 10 15:16 mipsel-linux-nm -> mipsel-linux-uclibc-nm
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-linux-objcopy -> mipsel-linux-uclibc-objcopy
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-linux-objdump -> mipsel-linux-uclibc-objdump
lrwxrwxrwx 1 fake fake 26 Jun 10 15:16 mipsel-linux-ranlib -> mipsel-linux-uclibc-ranlib
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-linux-readelf -> mipsel-linux-uclibc-readelf
lrwxrwxrwx 1 fake fake 24 Jun 10 15:16 mipsel-linux-size -> mipsel-linux-uclibc-size
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-linux-strings -> mipsel-linux-uclibc-strings
lrwxrwxrwx 1 fake fake 25 Jun 10 15:16 mipsel-linux-strip -> mipsel-linux-uclibc-strip
-rwxr-xr-x 1 fake fake 723300 Jun 10 15:16 mipsel-linux-uclibc-addr2line
-rwxr-xr-x 2 fake fake 746408 Jun 10 15:16 mipsel-linux-uclibc-ar
-rwxr-xr-x 2 fake fake 1157480 Jun 10 15:16 mipsel-linux-uclibc-as
-rwxr-xr-x 2 fake fake 218996 Jun 10 15:16 mipsel-linux-uclibc-c++
-rwxr-xr-x 1 fake fake 721732 Jun 10 15:16 mipsel-linux-uclibc-c++filt
-rwxr-xr-x 1 fake fake 217588 Jun 10 15:16 mipsel-linux-uclibc-cpp
-rwxr-xr-x 1 fake fake 21104 Jun 10 15:16 mipsel-linux-uclibc-elfedit
-rwxr-xr-x 2 fake fake 218996 Jun 10 15:16 mipsel-linux-uclibc-g++
-rwxr-xr-x 2 fake fake 216756 Jun 10 15:16 mipsel-linux-uclibc-gcc
-rwxr-xr-x 2 fake fake 216756 Jun 10 15:16 mipsel-linux-uclibc-gcc-4.5.3
-rwxr-xr-x 1 fake fake 16512 Jun 10 15:15 mipsel-linux-uclibc-gccbug
-rwxr-xr-x 1 fake fake 26380 Jun 10 15:16 mipsel-linux-uclibc-gcov
-rwxr-xr-x 1 fake fake 787044 Jun 10 15:16 mipsel-linux-uclibc-gprof
lrwxrwxrwx 1 fake fake 26 Jun 10 14:56 mipsel-linux-uclibc-ld -> mipsel-linux-uclibc-ld.bfd
-rwxr-xr-x 2 fake fake 1697768 Jun 10 15:16 mipsel-linux-uclibc-ld.bfd
-rwxr-xr-x 2 fake fake 733092 Jun 10 15:16 mipsel-linux-uclibc-nm
-rwxr-xr-x 2 fake fake 885732 Jun 10 15:16 mipsel-linux-uclibc-objcopy
-rwxr-xr-x 2 fake fake 1028868 Jun 10 15:16 mipsel-linux-uclibc-objdump
-rwxr-xr-x 2 fake fake 746472 Jun 10 15:16 mipsel-linux-uclibc-ranlib
-rwxr-xr-x 1 fake fake 278884 Jun 10 15:16 mipsel-linux-uclibc-readelf
-rwxr-xr-x 1 fake fake 724996 Jun 10 15:16 mipsel-linux-uclibc-size
-rwxr-xr-x 1 fake fake 723876 Jun 10 15:16 mipsel-linux-uclibc-strings
-rwxr-xr-x 2 fake fake 885732 Jun 10 15:16 mipsel-linux-uclibc-strip
lrwxrwxrwx 1 fake fake 29 Jun 10 15:16 mipsel-uclibc-addr2line -> mipsel-linux-uclibc-addr2line
lrwxrwxrwx 1 fake fake 22 Jun 10 15:16 mipsel-uclibc-ar -> mipsel-linux-uclibc-ar
lrwxrwxrwx 1 fake fake 22 Jun 10 15:16 mipsel-uclibc-as -> mipsel-linux-uclibc-as
lrwxrwxrwx 1 fake fake 23 Jun 10 15:16 mipsel-uclibc-c++ -> mipsel-linux-uclibc-c++
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-uclibc-c++filt -> mipsel-linux-uclibc-c++filt
lrwxrwxrwx 1 fake fake 23 Jun 10 15:16 mipsel-uclibc-cpp -> mipsel-linux-uclibc-cpp
lrwxrwxrwx 1 fake fake 23 Jun 10 15:16 mipsel-uclibc-g++ -> mipsel-linux-uclibc-g++
lrwxrwxrwx 1 fake fake 23 Jun 10 15:16 mipsel-uclibc-gcc -> mipsel-linux-uclibc-gcc
lrwxrwxrwx 1 fake fake 29 Jun 10 15:16 mipsel-uclibc-gcc-4.5.3 -> mipsel-linux-uclibc-gcc-4.5.3
lrwxrwxrwx 1 fake fake 24 Jun 10 15:16 mipsel-uclibc-gcov -> mipsel-linux-uclibc-gcov
lrwxrwxrwx 1 fake fake 25 Jun 10 15:16 mipsel-uclibc-gprof -> mipsel-linux-uclibc-gprof
lrwxrwxrwx 1 fake fake 22 Jun 10 15:16 mipsel-uclibc-ld -> mipsel-linux-uclibc-ld
-rwxr-xr-x 1 fake fake 16020 Jun 10 15:16 mipsel-uclibc-ldconfig
-rwxr-xr-x 1 fake fake 8356 Jun 10 15:16 mipsel-uclibc-ldd
lrwxrwxrwx 1 fake fake 22 Jun 10 15:16 mipsel-uclibc-nm -> mipsel-linux-uclibc-nm
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-uclibc-objcopy -> mipsel-linux-uclibc-objcopy
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-uclibc-objdump -> mipsel-linux-uclibc-objdump
lrwxrwxrwx 1 fake fake 26 Jun 10 15:16 mipsel-uclibc-ranlib -> mipsel-linux-uclibc-ranlib
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-uclibc-readelf -> mipsel-linux-uclibc-readelf
lrwxrwxrwx 1 fake fake 24 Jun 10 15:16 mipsel-uclibc-size -> mipsel-linux-uclibc-size
lrwxrwxrwx 1 fake fake 27 Jun 10 15:16 mipsel-uclibc-strings -> mipsel-linux-uclibc-strings
lrwxrwxrwx 1 fake fake 25 Jun 10 15:16 mipsel-uclibc-strip -> mipsel-linux-uclibc-strip


ткните мордою лица, ЧЯДНТ

MercuryV
17-06-2012, 15:02
find: `/home/fake/develop/broadcom/src/gateway/mipsel-uclibc/target': No such file or directory

ткните мордою лица, ЧЯДНТ


$ echo $PATH
если в выводе отсутствует /opt/brcm/hndtools-mipsel-uclibc/bin - значит пропустили пункт 3.3 инструкции (https://code.google.com/p/wl500g/wiki/CompilingCustomFirmware)

ConstAntz
17-06-2012, 15:21
$ echo $PATH
если в выводе отсутствует /opt/brcm/hndtools-mipsel-uclibc/bin - значит пропустили пункт 3.3 инструкции (https://code.google.com/p/wl500g/wiki/CompilingCustomFirmware)
предвидел, но не успел приклеить. Причина, как всегда, где-то рядом...

fake@wl500g-compiler:~/develop/broadcom/src/gateway$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/opt/brcm/hndtools-mipsel-uclib/bin



find: `/home/fake/develop/broadcom/src/gateway/mipsel-uclibc/target': No such file or directory
это всего-лишь варнинг при первой сборке.

upd:пардон: забыл к /opt/brcm/hndtools-mipsel-uclib /opt/brcm/hndtools-mipsel-uclibc приклеить (во флудильню?)

ConstAntz
17-06-2012, 17:02
продолжая тему "компиляции с нуля" (http://wl500g.info/showthread.php?7290-%D1%EE%E7%E4%E0%ED%E8%E5-%F1%EE%E1%F1%F2%E2%E5%ED%ED%EE%E9-%EF%F0%EE%F8%E8%E2%EA%E8&p=251998#post251998): результат сборки выдал это:
# Prepare filesystem
cd /home/fake/develop/broadcom/src/gateway/mipsel-uclibc/target && /home/fake/develop/broadcom/src/gateway/misc/rootprep.sh
/home/fake/develop/broadcom/src/linux/linux-2.6/scripts/squashfs/mksquashfs-lzma /home/fake/develop/broadcom/src/gateway/mipsel-uclibc/target /home/fake/develop/broadcom/src/gateway/mipsel-uclibc/target.cramfs \
-all-root -noappend -nopad -pf /home/fake/develop/broadcom/src/gateway/misc/rootprep.files
Parallel mksquashfs: Using 1 processor
Creating little endian 3.1 filesystem on /home/fake/develop/broadcom/src/gateway/mipsel-uclibc/target.cramfs, block size 131072.
[================================================== ================================================== =========================================|] 705/705 100%
Exportable Little endian filesystem, data block size 131072, compressed data, compressed metadata, compressed fragments, duplicates are removed
Filesystem size 4630.99 Kbytes (4.52 Mbytes)
29.26% of uncompressed filesystem size (15828.46 Kbytes)
Inode table size 5982 bytes (5.84 Kbytes)
21.49% of uncompressed inode table size (27836 bytes)
Directory table size 7622 bytes (7.44 Kbytes)
54.00% of uncompressed directory table size (14114 bytes)
Number of duplicate files found 51
Number of inodes 884
Number of files 641
Number of fragments 58
Number of symbolic links 199
Number of device nodes 5
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 39
Number of uids 1
root (0)
Number of gids 0
rm -f /home/fake/develop/broadcom/src/gateway/mipsel-uclibc/RT-N16-1.9.2.7-rtn-r4379.trx
make -C /home/fake/develop/broadcom/src/asustrx CC=gcc
make[1]: Entering directory `/home/fake/develop/broadcom/src/asustrx'
gcc -I/home/fake/develop/broadcom/src/include -o asustrx asustrx.c
make[1]: Leaving directory `/home/fake/develop/broadcom/src/asustrx'
/home/fake/develop/broadcom/src/asustrx/asustrx -p RT-N16 -v 1.9.2.7 -m 16384000 \
-o /home/fake/develop/broadcom/src/gateway/mipsel-uclibc/RT-N16-1.9.2.7-rtn-r4379.trx \
loader/loader.gz /home/fake/develop/broadcom/src/gateway/mipsel-uclibc/vmlinuz /home/fake/develop/broadcom/src/gateway/mipsel-uclibc/target.cramfs
mjn3's trx replacement - v0.81, modified to pack ASUS compatible trx
WARNING: maxlen exceeds default maximum! Beware of overwriting nvram!

Finished building RT-N16 firmware version 1.9.2.7 (1.9.2.7-rtn-r4379)

нам, дироводам, пофиг, а вот остальным?

lly
17-06-2012, 17:06
продолжая тему "компиляции с нуля" (http://wl500g.info/showthread.php?7290-%D1%EE%E7%E4%E0%ED%E8%E5-%F1%EE%E1%F1%F2%E2%E5%ED%ED%EE%E9-%EF%F0%EE%F8%E8%E2%EA%E8&p=251998#post251998): результат сборки выдал это:

А вы на каком уровне хотите вести дискуссию? Как "чайник"? Не прокатит, по крайней мере я откажусь.

А если хотите вникнуть, не побрезгуйте - загляните в asustrx.

ConstAntz
17-06-2012, 18:59
А если хотите вникнуть, не побрезгуйте - загляните в asustrx.

Он, вроде как, с

r2656 by lly.dev on Feb 22, 2011
не изменялся и на ревизиях из подписи этого предупреждения не было.


А вы на каком уровне хотите вести дискуссию? Как "чайник"? Не прокатит, по крайней мере я откажусь.

Я такой и не обижусь. Очень сожалею, что задел за "живое".

theMIROn
17-06-2012, 19:43
$ echo $PATH
если в выводе отсутствует /opt/brcm/hndtools-mipsel-uclibc/bin - значит пропустили пункт 3.3 инструкции (https://code.google.com/p/wl500g/wiki/CompilingCustomFirmware)

начиная с к4380 пункт 3.3 упразднен, вручную PATH менять не нужно

путь к тулчейну должен находиться в src/gateway/.config
значение по умолчанию:
TOOLCHAIN=/opt/brcm/hndtools-mipsel-uclibc

если оно не там, а например в /opt/brcm/hndtools-mipsel-uclibc-4.5.3-K26, то
1. или редактируем .config и выполняем make oldconfig в src/gateway
2. или выполняем make menuconfig и меняем путь в подменю Environment/Target toolchain

ale_xb
27-07-2012, 22:21
прошу прощения за офтоп, но именно на этом форуме мне удавалось ранее получать адекватную помощь по роутеру в частности и по "Linux для чайника" в общем. Надеюсь на это и сейчас.
Собственно проблема: Имеется готовое ядро (исходников, увы, нет) + образ initrd (SqushFS) для загрузки на бездисковую станцию с помощью PXE. Требуется скомпилировать и добавить (insmod) в этом комплект драйвер USB устройства. Общий вопрос: как к этому правильно подойти? А вот, что я пытался сделать:
1.Разобрал (unsqushfs) имеющийся initrd. Для самопроверки снова собрал полученный набор каталогов и файлов (mksqushfs). В результате создался образ initrd мЕньшего размера, чем исходный (разные версии squshfs-tools ?). C воссозданным таким способом initrd загрузка станции не проходит, получаю kernel panic: не удается смонтировать rootfs. Что-то я неверно делаю или следует искать правильную, вероятно, более младшую версию tools? Или просто собирать нужно с какой-то "хитрой" опцией mksquashfs?
2.Судя по содержимому initrd, все загружаемые модули в нем - для ядра 2.4 (расширение "o"). Я для компиляции драйвера использовал ОС с ядром 2.6 (получил модуль с расширением "ko" + еще "какие-то файлы"). Это нельзя будет использовать? Если нет, как мне скомпилировать драйвер для ядра 2.4 в ОС с ядром 2.6? Если можно, то как его правильно грузить в ядро 2.4?

Еще раз прошу прощения за офтоп, полагаю все же, что в какой-то мере этот пост можно отнести к теме компиляции собственных прошивок.
PS. Можно и в ЛС.

staticroute
28-07-2012, 22:08
прошу прощения за офтоп, но именно на этом форуме мне удавалось ранее получать адекватную помощь по роутеру в частности и по "Linux для чайника" в общем. Надеюсь на это и сейчас.
Собственно проблема: Имеется готовое ядро (исходников, увы, нет) + образ initrd (SqushFS) для загрузки на бездисковую станцию с помощью PXE. Требуется скомпилировать и добавить (insmod) в этом комплект драйвер USB устройства. Общий вопрос: как к этому правильно подойти? А вот, что я пытался сделать:
1.Разобрал (unsqushfs) имеющийся initrd. Для самопроверки снова собрал полученный набор каталогов и файлов (mksqushfs). В результате создался образ initrd мЕньшего размера, чем исходный (разные версии squshfs-tools ?). C воссозданным таким способом initrd загрузка станции не проходит, получаю kernel panic: не удается смонтировать rootfs. Что-то я неверно делаю или следует искать правильную, вероятно, более младшую версию tools? Или просто собирать нужно с какой-то "хитрой" опцией mksquashfs?
2.Судя по содержимому initrd, все загружаемые модули в нем - для ядра 2.4 (расширение "o"). Я для компиляции драйвера использовал ОС с ядром 2.6 (получил модуль с расширением "ko" + еще "какие-то файлы"). Это нельзя будет использовать? Если нет, как мне скомпилировать драйвер для ядра 2.4 в ОС с ядром 2.6? Если можно, то как его правильно грузить в ядро 2.4?

Еще раз прошу прощения за офтоп, полагаю все же, что в какой-то мере этот пост можно отнести к теме компиляции собственных прошивок.
PS. Можно и в ЛС.

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

почитайте, что такое initrd и как он создается, станет понятнее все.

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

theHellDog
08-09-2012, 20:40
Всем доброго времени суток.

Взял пару дней назад RT-N16, прошил тут-же прошивку от энтузиастов (билд 4591) и вот есть пару вопросов:

Можно ли модули (http://asus.vectormm.net/rtn/4591/modulesR2.tar.gz) записать в flashfs не пересобирая прошивку самому? (благо для них у n16-ого должно хватить места в ROM) (или как их вообще более правильно подключить?)
Как бы сделать доступ к вебморде через WAN?


Спасибо.

Vampik
08-09-2012, 21:50
Как бы сделать доступ к вебморде через WAN?



На странице веб-интерфейса Internet Firewall - Basic Config есть пункт Enable Web Access from WAN. Однако я бы крайне не рекомендовал так делать, т.к. веб-интерфейс дырявый и не имеет никакой защиты от взлома.
Если вам нужен доступ к веб-интерфейсу из WAN, можно настроить доступ по SSH из WAN (с использованием ключей, запретив авторизацию по паролю и сменив порт на нестандартный) и воспользоваться перенаправлением портов через SSH. Это сложно, но достаточно безопасно.

ConstAntz
08-09-2012, 22:03
Можно ли модули (http://asus.vectormm.net/rtn/4591/modulesR2.tar.gz) записать в flashfs не пересобирая прошивку самому? (благо для них у n16-ого должно хватить места в ROM)


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

theHellDog
09-09-2012, 10:02
Конечно можно. Только придется, используя команду insmod, указывать полный путь к распакованному модулю (при этом, все зависимости вставляемого модуля ужЕ должны быть удовлетворены)
Ладно)

Потратил вчера весь вечер, но собрал свой тулчейн для mipsel (благо на генте через crossdev это не слишком сложно)… даже собрал прошивку (все по дефолту), вроде бы все откомпилилось нормально, еще не пробовал прошивать. (изучаю тему по восстановлению, а то мало ли чего.)

И вот после всего этого возник вопрос: как бы точно определить сколько еще места в ROM мне всего доступно в моем n16-ом ? (А то у меня уже есть несколько идей чего можно бы засунуть туда)

ConstAntz
09-09-2012, 12:16
как бы точно определить сколько еще места в ROM мне всего доступно в моем n16-ом ?
точно не получится.
Всё будет зависеть от степени сжимаемости добавляемого материала, т.к. на последнем этапе идет сжатие/компрессия данных.
Но есть и подсказка, при превышении максимально допустимого размера сборка остановиться.

theHellDog
09-09-2012, 12:53
точно не получится.
Всё будет зависеть от степени сжимаемости добавляемого материала, т.к. на последнем этапе идет сжатие/компрессия данных.
Но есть и подсказка, при превышении максимально допустимого размера сборка остановиться.

Я имел ввиду как можно точно определить сколько я могу засунуть своих данных в ROM на конкретном роутере.

Да и как так? Тоесть неважно сколько объем ROM (неважно какой роутер) и есть просто максимальный размер прошивки?

В общем меня интересует такого (http://wl500g.info/showpost.php?p=159260&postcount=1503) рода инфа только для n16-ого.
Например: на сколько я могу раздуть rootfs? (с учетом того что область для хранения образа прошивки тоже имеет какието пределы.)

*на данный момент размер rootfs - 4.5мб

[admin@RT-N16 root]$ df -h
Filesystem Size Used Available Use% Mounted on
rootfs 4.5M 4.5M 0 100% /
/dev/root 4.5M 4.5M 0 100% /
devfs 100.0K 4.0K 96.0K 4% /dev
tmpfs 61.9M 148.0K 61.8M 0% /tmp
/dev/discs/disca/part1
29.9G 16.0K 29.9G 0% /tmp/mnt/disca_1
[admin@RT-N16 root]$

Еще меня интересует — почему tmpfs имеет размер в 61.9мб?

Vampik
09-09-2012, 16:00
собрал свой тулчейн для mipsel (благо на генте через crossdev это не слишком сложно)

Вы точно собрали то, что нужно? Какой еще crossdev? Нужно всего лишь стянуть toolchain из svn, поправить .config и запустить make.



Еще меня интересует — почему tmpfs имеет размер в 61.9мб?

Это RAM-диск.

Максимальный размер прошивки для RT-N16 (kernel + rootfs) в Makefile определен как 16384000 байт. Возможно, фактически можно больше, т.к. там флешка на 32 МБ.

theHellDog
09-09-2012, 16:54
Вы точно собрали то, что нужно? Какой еще crossdev? Нужно всего лишь стянуть toolchain из svn, поправить .config и запустить make.
Думаю, что точно, так как я занимаюсь кросс-компиляцией пакетов "для виндовса из линукса".
А crossdev это офф утилита для gentoo linux по сборке своих «тулчейнов» для кросс-компиляции кода под любую архитектуру которую держит gcc.



Это RAM-диск.
Максимальный размер прошивки для RT-N16 (kernel + rootfs) в Makefile определен как 16384000 байт. Возможно, фактически можно больше, т.к. там флешка на 32 МБ.
Спасибо.

Vampik
09-09-2012, 17:10
А crossdev это офф утилита для gentoo linux по сборке своих «тулчейнов» для кросс-компиляции кода под любую архитектуру которую держит gcc.

Я сам пользуюсь Gentoo Linux, и думаю, что crossdev соберет вам кросс-компилятор на базе библиотек и заголовков хостовой машины.

theHellDog
09-09-2012, 17:40
Я сам пользуюсь Gentoo Linux, и думаю, что crossdev соберет вам кросс-компилятор на базе библиотек и заголовков хостовой машины.
Все так, crossdev по умолчанию так и делает, но собирать он может на базе чего угодно… добавить пару параметров и будет вам среда с uclibc и нужными версиями пакетов и их заголовочных файлов.

mityny
21-10-2012, 15:24
пересборка ядра 2.6.22.19
прошивка tomato-K26USB-1.28.0541-MIPSR2-8M-rus.trx
делал все по инструкции по инструкции
http://code.google.com/p/wl500g/source/browse/wiki/ru/CompilingCustomFirmware.wiki?r=3857

а имеено закачивал следующие программы версий, так как в инструкции те которые были предложены версии устарели и на просторах интернета их нет.
Ядро Linux
wget http://wl500g.googlecode.com/files/linux-2.6.22.19.tar.bz2

Toolchain (компилятор + библиотеки + утилиты)
wget http://vampik.ru/wl500g/toolchain/hndtools-mipsel-uclibc-4.4.6-K26-r3750.tar.bz2

опишу подробно что я сделал

исходники линукса
скачал и разархивировал в папку и создал ссылку (/opt/whatever-you-want/broadcom/src/linux)
wget http://wl500g.googlecode.com/files/linux-2.6.22.19.tar.bz2

tar -C /opt/whatever-you-want/broadcom/src/linux -jxvf linux-2.6.22.19.tar.bz2
ln -sf linux-2.6.22.19 /opt/whatever-you-want/broadcom/src/linux/linux-2.6

Toolchain
wget http://vampik.ru/wl500g/toolchain/hndtools-mipsel-uclibc-4.4.6-K26-r3750.tar.bz2
tar -C /opt/brcm -jxvf /opt/hndtools-mipsel-uclibc-4.4.6-K26-r3750.tar.bz2
ln -sf hndtools-mipsel-uclibc-4.4.6-K26 /opt/brcm/hndtools-mipsel-uclibc

Получение исходников прошивки
svn checkout http://wl500g.googlecode.com/svn/trunk/ /opt/whatever-you-want/broadcom/src/1.9.2.7-rtn

# Добавить путь к Toolchain (можно внести в личный .profile для удобства)
выполнил в консоли
export PATH=$PATH:/opt/brcm/hndtools-mipsel-uclibc/bin

4. Сборка и компиляция ==
# Сборка
cd /opt/whatever-you-want/broadcom/src/1.9.2.7-rtn
make kernel
вот тут и возникает ошибка
лог привожу

root@unknown:/opt/whatever-you-want/broadcom/src/1.9.2.7-rtn# make kernel
make -C brcm-src-2.6 wl
make[1]: Entering directory `/opt/whatever-you-want/broadcom/src/1.9.2.7-rtn/brcm-src-2.6'
tar -C . -cf - wl | tar -C /opt/whatever-you-want/broadcom/src --recursive-unlink -xf -
tar: unrecognized option `--recursive-unlink'
BusyBox v1.18.4 (2011-12-24 17:30:35 CST) multi-call binary.

Usage: tar -[cxtzjvO] [-X FILE] [-f TARFILE] [-C DIR] [FILE]...

Create, extract, or list files from a tar file

Operation:
c Create
x Extract
t List
Options:
f Name of TARFILE ('-' for stdin/out)
C Change to DIR before operation
v Verbose
z (De)compress using gzip
j (De)compress using bzip2
O Extract to stdout
h Follow symlinks
X File with names to exclude
T File with names to include

make[1]: *** [wl] Error 1
make[1]: Leaving directory `/opt/whatever-you-want/broadcom/src/1.9.2.7-rtn/brcm-src-2.6'
make: *** [wl] Error 2
root@unknown:/opt/whatever-you-want/broadcom/src/1.9.2.7-rtn#


вот дальше не могу сдвинуться , что скажите мне делат? помогите!
p/s:
Мне надо, это для того чтобы связать сотовый телефон с роутером по блютуз каналу, и в дальнейшем передавать по блютус "голос" на астериск
вот в статье прочитал какие модули для этого необходимы http://wl500g.info/showthread.php?3681-Bluetooth-%E2-wl500gP-%E2-2011&p=226291#post226291 может проще даже будет кто мне эти модули предоставит, а то в инете не нашел

lly
21-10-2012, 17:00
Остановиться и еще раз прочитать инструкцию. Ни одну прошивку на самом роутере собрать нельзя.
А еще лучше - почитать форум перед тем как писать в него.

P.S. Более того, модули нашего ядра не полезут в томату.

aeforeve
11-12-2012, 11:32
lly

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

с тулчайном
hndtools-mipsel-uclibc-4.6.3-K26-x86_64-r4745.tar.bz2
и с последними патчами из svn

оно все собираеться - и заливаеться в роутер (n16)
но при работе глюки

из щамеченных
неработает сборшик зомбей у инита - и ipkg.sh немогет update - sed выпадет в сигфолт

на ваших сборках - который 4667 - этих проблем нет
в чем ошибка сборки ? и как собрать правильно
(сдаеться мне что я както нетак собирал)

lly
11-12-2012, 11:56
из щамеченных
неработает сборшик зомбей у инита - и ipkg.sh немогет update - sed выпадет в сигфолт

Первый признак мусорных библиотек, например uClibc от Opware, на роутере.

А более по приведённым симптомам сказать невозможно.

aeforeve
11-12-2012, 12:02
Первый признак мусорных библиотек, например uClibc от Opware, на роутере.

А более по приведённым симптомам сказать невозможно.

собиралось то по инструкции на сайте - ничего дополнительно неставилось
только тулчейн другой - того что на сайте указан в инструкции больше нема

lly
11-12-2012, 13:05
собиралось то по инструкции на сайте - ничего дополнительно неставилось
только тулчейн другой - того что на сайте указан в инструкции больше нема
Могу только повторить - на основании изложенных симптомов, сказать нечего.

P.S. У одного товарища некорректно собирается mksquashfs-lzma хостовым gcc 4.7.1, у меня было аналогично на gcc 4.5.0, но там симтомы абсолютно другие - либо не грузится совсем, либо даёт ошибки squashfs.

aeforeve
11-12-2012, 13:39
Могу только повторить - на основании изложенных симптомов, сказать нечего.

P.S. У одного товарища некорректно собирается mksquashfs-lzma хостовым gcc 4.7.1, у меня было аналогично на gcc 4.5.0, но там симтомы абсолютно другие - либо не грузится совсем, либо даёт ошибки squashfs.
да действительно - затесалась нета библиотека - и она была причиной несборки зомбей
вычистил - но проблема падения sed(busybox)-а осталась


bash -x /usr/bin/ipkg.sh update
...
+ mkdir -p /tmp/ipkg
+ mkdir -p //opt/tmp/ipkg
+ ipkg_update
+ [ ! -e /opt/lib/ipkg/lists ]
+ local err=
+ ipkg_src_names
+ sed -ne s/^src[[:space:]]\+\([^[:space:]]\+\).*/\1/p
Segmentation fault
+ [ -n ]
+ return 0
+ ls //opt/tmp/ipkg
заменил текущий бузибокс на бинарник от старой сбоки
1.20.2 -> 1.19.3
ошибка исчезла просто бинарник - без компиляции

lly
11-12-2012, 17:55
но проблема падения sed(busybox)-а осталась
Сломали в апстриме, бывает. Будем смотреть.

Updated: сломан ash в коммите 4ba6c5d3 (http://git.busybox.net/busybox/commit/?id=4ba6c5d3ba3d2c7922aff6b5c2e73b8325f1cf17) (наш r4727). Нарушается проверка g_stacknxt < (char *)p в stunalloc()

steq2
16-01-2013, 09:02
Всем привет! Столкнулся в необходимостью кастомной сборки прошивки. Пытаюсь собрать по руководству из поста #3 под убунтой. Дошёл до этого пункта.

# cd /opt/broadcom/src/wl500g-1.9.2.7-10 && make kernel && make

make kernel выполняется без каких-либо проблем, но при выполнении make получаю:

tar xjf loader-0.04.tar.bz2 -C /opt/broadcom/src/gateway
mv /opt/broadcom/src/gateway/loader-0.04 /opt/broadcom/src/gateway/loader
tar xjf dropbear-0.50.tar.bz2 -C /opt/broadcom/src/gateway
patch -d /opt/broadcom/src/gateway/dropbear-0.50 -p1 < dropbear-0.50.patch
patching file options.h
Hunk #1 succeeded at 21 (offset 5 lines).
Hunk #2 succeeded at 112 (offset 15 lines).
Hunk #3 succeeded at 209 with fuzz 2 (offset 30 lines).
patching file scp.c
patching file options.h
Hunk #1 succeeded at 204 (offset 19 lines).
cd /opt/broadcom/src/gateway/dropbear-0.50 && \
CC=mipsel-uclibc-gcc ./configure --host=mipsel-linux --disable-zlib --disable-shadow \
--disable-lastlog --disable-utmp --disable-utmpx --disable-wtmp --disable-wtmpx \
--disable-libutil --disable-loginfunc --disable-pututline --disable-pututxline
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
checking for mipsel-linux-gcc... mipsel-uclibc-gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** [/opt/broadcom/src/gateway/dropbear/config.h] Error 77


кусок config.log


configure:1327: checking for mipsel-linux-gcc
configure:1353: result: mipsel-uclibc-gcc
configure:1635: checking for C compiler version
configure:1638: mipsel-uclibc-gcc --version </dev/null >&5
./configure: line 1639: mipsel-uclibc-gcc: command not found
configure:1641: $? = 127
configure:1643: mipsel-uclibc-gcc -v </dev/null >&5
./configure: line 1644: mipsel-uclibc-gcc: command not found
configure:1646: $? = 127
configure:1648: mipsel-uclibc-gcc -V </dev/null >&5
./configure: line 1649: mipsel-uclibc-gcc: command not found
configure:1651: $? = 127
configure:1674: checking for C compiler default output file name
configure:1677: mipsel-uclibc-gcc conftest.c >&5
./configure: line 1678: mipsel-uclibc-gcc: command not found
configure:1680: $? = 127
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:1719: error: C compiler cannot create e

Почитав тему понял, что такая ошибка может возникать при отсутствии build-essential, но у меня все пакеты из руководства установлены. Такую ошибку когда-то давно получал, когда забыл прописывать всё необходимое в PATH, сейчас же всё прописано и проверено по 10 раз. Грешу на что-то фундаментальное, дайте совет новичку :D

r3b
21-01-2013, 10:09
Перепост из темы "Скомпилируйте пожалуйста", т.к. там я жду уже ооооочень долго и считаю, что тема просто заброшена.

Здравствуйте уважаемое сообщество. Помогите пожалуйста разобраться с проблемой.

Проблема заключается в установке e2fsprogs, которая, как я понимаю, не обнаруживает библиотек после компиляции

оригинал ошибки:

install -D e2fsprogs/lib/libblkid.so.1.0 /opt/broadcom/src/gateway/mipsel-uclibc/install/e2fsprogs/usr/lib/libblkid.so.1.0
install: cannot stat `e2fsprogs/lib/libblkid.so.1.0': No such file or directory
make: *** [e2fsprogs-install] Error 1

uname -a

Linux debian 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 GNU/Linux

toolchain

wget http://wl500g.googlecode.com/files/hndtools-mipsel-uclibc-4.6.3-K26-x86_64-r4745.tar.bz2

echo $PATH

/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/opt/brcm/hndtools-mipsel-uclibc/bin

собственно и ядро и тулчайн лежат в соответствии с путями описанными в руководстве (https://code.google.com/p/wl500g/wiki/CompilingCustomFirmware) рекомендациями

код беру из svn, пробовал разные версии 4667, 4745, 4772 и текущую из транка. Пробовал разные тулчейны и разные оси(debian, ubuntu desktop, ubuntu server), причем с x86,amd64.

Заранее спасибо.

lly
21-01-2013, 10:59
Перепост из темы "Скомпилируйте пожалуйста", т.к. там я жду уже ооооочень долго и считаю, что тема просто заброшена.
Нет, просто на просьбы вида "соберите мне сервер WoW для WL500g" уже ни у кого сил отвечать нет.


Здравствуйте уважаемое сообщество. Помогите пожалуйста разобраться с проблемой.

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

steq2
Вряд ли кто вспомнит особенности старого тулчейна от Олега.

r3b
25-01-2013, 08:21
Нет, просто на просьбы вида "соберите мне сервер WoW для WL500g" уже ни у кого сил отвечать нет.
Ваша проблема в другом - вы, прочитав ошибку, даже не проверили, а собрались ли e2fsprogs успешно(есть ли запрашиваемый файл и т.п.). Надеятся что кто-то по шагам вам будет ассистировать конечно можно, но шансов очень мало.
steq2
Вряд ли кто вспомнит особенности старого тулчейна от Олега.

Всё собралось. Проверил почему не собиралось e2fsprogs и всё встало на свои места. Извините, что попросил Вас тыкнуть меня носом.

У меня ещё другой вопрос относительно модуля ipt_ROUTE. Так как модуль ipt_ROUTE исключён из сборки, есть ли адекватная замена функционалу ipt_ROUTE в текущей прошивке. Единственный вариант, который я вижу - это сборка модуля xt_TEE, но пока у меня возникли проблемы со сборкой. Быть может есть другой вариант имеющийся в прошивке и заменяющий функционал модуля. Под функционалом, я имею ввиду копирование трафика и пересылка его на определённый ip ну или полноценный port mirroring или иной другой способ дублировать фрэймы или пакеты на конкретный физический порт или адрес.

lly
25-01-2013, 09:54
У меня ещё другой вопрос относительно модуля ipt_ROUTE. Так как модуль ipt_ROUTE исключён из сборки, есть ли адекватная замена функционалу ipt_ROUTE в текущей прошивке. Единственный вариант, который я вижу - это сборка модуля xt_TEE, но пока у меня возникли проблемы со сборкой.
Удалить модуль решили мейнтейнеры iptables, в апстриме его нет.
http://marc.info/?l=netfilter&m=125734303207741&w=2
http://bugzilla.netfilter.org/show_bug.cgi?id=623
остальные дискуссии искать в гугле

Поддержку xt_TEE надо бэкпортить, никто этим просто не занимался. Желающих помочь тоже не было замечено...

voidshah
26-01-2013, 17:54
Долго, так сказать, бездельничал... И вот решил новый тулчейн собрать...
И на тебе

.....
Sources prepared for compilation


cd ../../../toolchain

sed -e 's%/home/lly/Wl500/rt-n%/home/rt-n16/broadcom/src%g' defconfig > .config

rm defconfig
#make menuconfig
make V=99


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

И куда копать?!?!?! Чо ему надо???

Vampik
26-01-2013, 20:12
Долго, так сказать, бездельничал... И вот решил новый тулчейн собрать...
И на тебе


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

И куда копать?!?!?! Чо ему надо???


У вас случайно не Gentoo? Мейнтейнеры подсунули новую сборку make с патчами из git'а, которые ломают сборку тулчейна. Нужно даунгрейдить sys-devel/make с 3.82-r4 до 3.82-r3.

Конкретно вот из-за этого патча http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-devel/make/files/make-3.82-construct-command-line.patch


export SHELL=/usr/bin/env bash -c '. $(TOPDIR)/include/shell.sh; eval "$$2"' --
вместо

/usr/bin/env bash -c '. /home/user/wl500g/toolchain/include/shell.sh; eval "$2"'
раскрывается в

/usr/bin/env bash -c '. /home/user/wl500g/toolchain/include/shell.sh\; eval \"\$2\"'

P.S. Даунгрейд поможет только временно, нужно как-то править makefile.

voidshah
26-01-2013, 20:15
У вас случайно не Gentoo?

Оно самоё! Эх...

Vampik
26-01-2013, 20:18
Оно самоё! Эх...

Ну тогда самый простой вариант



>=sys-devel/make-3.82-r4


emerge -1av make

и тулчейн соберется ;)

voidshah
26-01-2013, 20:42
Ну тогда самый простой вариант




emerge -1av make

и тулчейн соберется ;)

спс, знаю. замаскировать, потом пересобрать...

Евгений Л
26-02-2013, 00:17
Прошу уважаемых девелоперов ответить на вопросы линукс-чайника:
1)Есть ли смысл пересобирать тулчейн для компиляции свежих прошивок? Если да, то, пожалуйста подскажите, где взять годный мануал для этого? Для того чтобы научиться собирать прошивку я потратил около 4 ночей, но зато понял что именно делает каждая команда в консоли, хотелось бы почитать более развернуто про тулчейн.
2) Пробовал оптимизировать компиляцию(make) при помощи параметра -j4(у меня 4-хъядерник), в итоге прошивка не собирается, хотя команды выполняются последовательно в скрипте.В чём тут проблема?
3) У пользователей есть проблемы с отвалом WiFi и работой модемов. Как помочь процессу отладки? Существуют ли варианты debug-сборок? Какая информация Вам нужна для отладки этих проблем?

staticroute
26-02-2013, 05:47
Прошу уважаемых девелоперов ответить на вопросы линукс-чайника:
1)Есть ли смысл пересобирать тулчейн для компиляции свежих прошивок? Если да, то, пожалуйста подскажите, где взять годный мануал для этого? Для того чтобы научиться собирать прошивку я потратил около 4 ночей, но зато понял что именно делает каждая команда в консоли, хотелось бы почитать более развернуто про тулчейн.
2) Пробовал оптимизировать компиляцию(make) при помощи параметра -j4(у меня 4-хъядерник), в итоге прошивка не собирается, хотя команды выполняются последовательно в скрипте.В чём тут проблема?
3) У пользователей есть проблемы с отвалом WiFi и работой модемов. Как помочь процессу отладки? Существуют ли варианты debug-сборок? Какая информация Вам нужна для отладки этих проблем?

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

2. так не выйдет, make -j4 сработает только для ядра, нужно патчить gateway/Makefile, так как только оно (насколько я помню) поддерживает параллельную компиляцию.

3. дебаггингом, сборок толком нету, смотреть в сторону OProfile, распаивать serial-консоль, также можно при помощи netconsole попытаться (в последнем случае у меня не получилось толком сохранить информацию перед ребутом).

lly
26-02-2013, 07:16
Прошу уважаемых девелоперов ответить на вопросы линукс-чайника:
1)Есть ли смысл пересобирать тулчейн для компиляции свежих прошивок? Если да, то, пожалуйста подскажите, где взять годный мануал для этого? Для того чтобы научиться собирать прошивку я потратил около 4 ночей, но зато понял что именно делает каждая команда в консоли, хотелось бы почитать более развернуто про тулчейн.
Мануал никто не сподобился написать. Принципиально, это просто автоматизация сборки gcc + uClibc с зависимостями.


2) Пробовал оптимизировать компиляцию(make) при помощи параметра -j4(у меня 4-хъядерник), в итоге прошивка не собирается, хотя команды выполняются последовательно в скрипте.В чём тут проблема?
staticroute прав, надо переделывать Makefile.top (он же gateway/Makefile). Так как вопрос не принципиальный, то никто и не сделал.


3) У пользователей есть проблемы с отвалом WiFi и работой модемов. Как помочь процессу отладки? Существуют ли варианты debug-сборок? Какая информация Вам нужна для отладки этих проблем?
Для начала разделить проблемы блоба драйвера WiFi, с которым мы ничего сделать не можем, за исключением правки общих компонент Broadcom SDK в shared/ и модемов, где все исходники доступны.

Универсальных debug-сборок и быть не может, поэтому их и нет. Отладка включается в той компоненте, которую собираемся отлаживать - linux/linux-2.6/.config для ядра, rc/Makefile для rc и т.д.

ZekaCool
14-03-2013, 21:54
gateway/bridge/libbridge/Makefile на 40 строке:
$(CC) $(CFLAGS) $(INCLUDE) -c $<

$(INCLUDE) не переопреляется, берется из системного окружения. Intel компоненты разработки пишут в эту переменную путь до себя любимых, причем без ключа "-I" и компилятор ругается на сформированную строку.
Можно что-нибудь поменять в этом месте? Нужны ли пути INCLUDE? У меня без них собралось.

lly
15-03-2013, 08:02
gateway/bridge/libbridge/Makefile на 40 строке:
$(CC) $(CFLAGS) $(INCLUDE) -c $<

$(INCLUDE) не переопреляется, берется из системного окружения. Intel компоненты разработки пишут в эту переменную путь до себя любимых, причем без ключа "-I" и компилятор ругается на сформированную строку.
Можно что-нибудь поменять в этом месте? Нужны ли пути INCLUDE? У меня без них собралось.
Cygwin? Не проверяли.

Так сделано авторами bridge-utils и есть до сих пор в основной ветке. Поменять можно, вопрос на что - на пусто или "-I@INCLUDE@" ?

ZekaCool
17-03-2013, 16:30
Cygwin? Не проверяли.

Так сделано авторами bridge-utils и есть до сих пор в основной ветке. Поменять можно, вопрос на что - на пусто или "-I@INCLUDE@" ?

Извиняюсь, понадеялся на телепатов. Собирал toolchain'ом версии 4.6.3-K26-r4755.x86 в linux.
Скорее всего INCLUDE там остался из шаблона Makefile. Библиотека собралась и без этого ключа.
Если я один такой, тогда ничего делать не надо. Когда такая ошибка появляется, я знаю как ее устранить ;)

lly
17-03-2013, 17:44
Скорее всего INCLUDE там остался из шаблона Makefile. Библиотека собралась и без этого ключа.
Если я один такой, тогда ничего делать не надо. Когда такая ошибка появляется, я знаю как ее устранить ;)
Да можно и сделать, нам не сложно. Вопрос был как лучше тому, у кого проблемы.
Добавление

INCLUDE =
в libbridge/Makefile.in помогает?

AlexeyS
15-05-2013, 21:23
Ради прикола собрал энтузиастский toolchain под платформу powerpc (WD My Book Live). Тормозит конечно, но работает. Если кого заинтересует, могу выложить.

ryzhov_al
16-05-2013, 19:55
Ради прикола собрал энтузиастский toolchain под платформу powerpc (WD My Book Live). Тормозит конечно, но работает. Если кого заинтересует, могу выложить.Зачем?!:) Кстати, ко мне приехала вторая скорлупа от MBL без диска и я начал бесчеловечные опыты (http://code.google.com/p/mbl-common/wiki/PureDebianIntro) по сборки актуального ядра и установки последней Debian Wheezy.

ЗЫ Ради такого дела, даже сделал первый свой в жизни пул-реквест (https://github.com/torvalds/linux/pull/33) для linux kernel, поправляющий сборку криптодвижка для APM82181.

lly
16-05-2013, 20:05
Зачем?!:)
Я тоже пока не понимаю ;) Это может иметь смысл только в том случае, если хочется использовать uClibc, ну и некоторые бекпорты gcc от нас и OpenWRT.

AlexeyS
16-05-2013, 22:01
Зачем?!:) для извращенцев, желающих собрать прошивку роутера на nas ;-)

Кстати, ко мне приехала вторая скорлупа от MBL без диска и я начал бесчеловечные опыты по сборки актуального ядра и установки последней Debian Wheezy. Видел, видел... )

Netscape
19-05-2014, 17:43
На странице https://code.google.com/p/wl500g/wiki/CompilingCustomFirmware
все понятно.
Только нужно собрать под mipselsf.
Патчи выложены здесь https://github.com/Entware/entware/tree/master/toolchain/patches-mipselsf
Только не пойму что патчить... :(
Может разъясните?