сd /rwfs wget http://cloud.github.com/downloads/w422g/wive-ng-iftop/iftop chmod +x iftop ./iftopДля сборки будем использовать Ubuntu-10.04 и gcc 4.4.3. Прошивка роутера - uClinux, собранный под MIPS (RTL8762/R3000), поэтому нам понадобится toolchain (набор утилит для кроссплатформенной сборки под нужную архитектуру). К сожалению, mips-бинарники iftop из dd-wrt/openwrt/debian не работают на данной платформе, но нам повезло - исходники wive-ng содержат всё, что необходимо. По аналогии с iftop мы сможем собрать и любые другие утилиты.
Сборка wive-ng
Можно скачать исходники wive-ng одним файлом (snapshot):
http://wive-ng.git.sourceforge.net/git/gitweb.cgi?p=wive-ng/wive-ng;a=tree (~90MB)
Или вытянуть через git:
git clone git://wive-ng.git.sourceforge.net/gitroot/wive-ng/wive-ngПо умолчанию вся сборка происходит в /opt/Wive. Кроме того придётся немного изменить исходники, т.к. они не учитывают наличие каталогов в /usr/local. Вот примерная последовательность действий:
sudo apt-get install flex bizon mkdir -p /opt/Wive/toolchain/nonmips-tcb/toolchain_build_mips/ccache-2.4/cache /opt/Wive/compile: export PATH=/opt/Wive/toolchain/bin:$PATH export CFLAGS=-D_FORTIFY_SOURCE=0 /opt/Wive/config: REBUILDTOOLCHAIN=YES /opt/Wive/kernel/Makefile: CROSSPATH = /opt/Wive/toolchain/bin/ cd /opt/Wive ./compileПрошивка должна собраться без ошибок, но не пытайтесь заливать её в роутер, она не предназначена для данного устройства. Cборка wive-ng нам нужна только для того, чтобы получить работоспособный toolchain и нужные зависимости под mips-архитектуру (в частности, libpcap).
Сборка iftop
Качаем последние исходники iftop и ncurses, кладём их в /opt/Wive/APP/iftop и /opt/Wive/APP/iftop/ncurses соответственно.
Исходники можно взять тут:
http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz http://ftp.gnu.org/gnu/ncurses/ncurses-5.7.tar.gzДальше нужно создать правила для сборки.
sudo apt-get install libpcap-dev ncurses-dev cd /opt/Wive/APP/iftop ./configure cd /opt/Wive/APP/iftop/ncurses ./configureБиблиотеки придётся указать явно:
/opt/Wive/APP/iftop/Makefile: DEFAULT_INCLUDES = -I. -I$(srcdir) -I./ncurses/include -I../tcpdump/libpcap LIBS = -lm -lpthread ./ncurses/lib/libncurses.a ../tcpdump/libpcap/libpcap.aТакже придется добавить свои настройки (в середину, так, чтобы перекрыть старые):
/opt/Wive/APP/iftop/Makefile, /opt/Wive/APP/iftop/ncurses/ncurses/Makefile: include ../../.config # (для iftop) или include ../../../../.config для ncurses KERNELSRC = $(WIVEROOT)/kernel INCLUDEALL = $(CROSSPATH)/mips-linux-uclibc/include export CFLAGS = -Os -g -Wall -Os -fPIC -Wall -g -D__MIPSEB__ \ -fPIC -fomit-frame-pointer -mno-memcpy -DLINUX -DUSE_KERNEL -I$(INCLUDEALL) export CC = $(CROSS_COMPILE)gcc $(CFLAGS) export LD = $(CROSS_COMPILE)ld export AR = $(CROSS_COMPILE)ar export STRIP = $(CROSS_COMPILE)strip export OBJCOPY = $(CROSS_COMPILE)objcopy export INCLUDEDIR=$(INCLUDEALL)Пишем скрипт для сборки и собираем:
/opt/Wive/APP/iftop/compile: export PATH=/opt/Wive/toolchain/bin:$PATH export CFLAGS=-D_FORTIFY_SOURCE=0 cd ncurses/ncurses/ make cd ../../ make /opt/Wive/toolchain/bin/mips-linux-uclibc-strip ./iftopЕсли будут проблемы с запуском вспомогательных утилит ncurses (make_hash/make_keys), соберите их x86 версии и закомментируйте их пересборку под MIPS. На всякий случай вот исходники со всеми изменениями: https://github.com/w422g/wive-ng-iftop. Там же лежит бинарник iftop для W422G (и, вероятно, любых big-endian мипсов).
Как его запустить? Самое простое - скачать его c помощью wget на пользовательский раздел (rwfs). Следуюшие команды нужно выполнить уже в консоли самого модема (в данном случае W422G_v3).
сd /rwfs wget http://cloud.github.com/downloads/w422g/wive-ng-iftop/iftop chmod +x iftop ./iftopIftop показывает нам текущую скорость для всех открытых соединений по всем клиентам, подключенным к роутеру, а также общую скорость канала. Можно использовать опцию -i <iface> для выбора интерфейса и ключ -B для показа скорости в килобайтах, а не килобитах.
/rfws/iftop -i br0 -BВыглядит это примерно так:
Что касается кастомных прошивок, то собрать их довольно сложно, т.к. на сайте проекта выкладываются только бинарные сборки и исходники ветки LAN110v2/LAN410v2/USBv3. Исходников нужной версии wive-ng-dsl (для устройств W422G_v3/W530G/W532G) в настоящее время нет в публичном доступе (может быть даже никогда и не будет - из за проблем с проприетарными драйверами realtek).
Комментариев нет:
Отправить комментарий