ВНИМАНИЕ! ВСЕ ДЕЙСТВИЯ ВЫ ВЫПОЛНЯЕТЕ НА СВОЙ РИСК И СТРАХ!

Итак, в веб-интерфейсе отключаем FTP и Samba, сохраняем настройки и перезагружаемся. Подключаем HDD, а только затем включаем роутер. Через терминал заходим на роутер.

В Винде :

Пуск--Выполнить--CMD, enter--telnet 192.168.1.1(при условие что это адрес роутера) ,enter-- Ваш логин, enter--Ваш пороль ,enter

Смотрим какие устройства смонтированы:

df

Должно выдать:

Filesystem 1k-blocks Used Available Use% Mounted on

/dev/root 3% /

Даем команду на загрузку USB-модуля и драйверов HDD

insmod scsi_mod && insmod sd_mod && insmod usb-storage

Создаем разделы на HDD (1 - swap [128Mb], 2 - system [512 Mb], 3 - data [все оставшееся место]):

fdisk /dev/discs/disc0/disc

m - помощь

p - просмотр разделов

d - удаление раздела

n - создание раздела

Создаем swap: n `enter` p `enter` 1 `enter` `enter` +128M `enter` t `enter` 82 `enter`

Создаем system: n `enter` p `enter` 2 `enter` `enter` +512M `enter`

Создаем data: n `enter` p `enter` 3 `enter` `enter` `enter`

Сохраняем все изменения и выходим: w `enter`

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

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

Далее…

Смотрим разделы диска

fdisk - l

Выдаст что-то вроде:

Disk /dev/scsi/host0/bus0/target0/lun0/disc: 40.0 GB, bytes

64 heads, 32 sectors/track, 38154 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Device Boot Start End Blocks Id

System

/dev/scsi/host0/bus0/target0/lun0/part2 Linux swap

НЕ нашли? Не то? Что вы ищете?

/dev/scsi/host0/bus0/target0/lun0/part2 3 Linux

/dev/scsi/host0/bus0/target0/lun0/part3 08 83 Linux

Включаем swap (первая команда его создает, а вторая - активирует):

mkswap /dev/discs/disc0/part1

swapon /dev/discs/disc0/part1

Командой free можно выяснить сколько использовано оперативной памяти роутера,

и как используется swap.

Теперь форматируем оставшиеся разделы (system и data)

mke2fs - j /dev/discs/disc0/part2

mke2fs - j /dev/discs/disc0/part3

2) Установка базового набора программ

Монтируем разделы (и system, и data):

mkdir /tmp/harddisk

mount /dev/discs/disc0/part2 /opt

mount /dev/discs/disc0/part3 /tmp/harddisk

Создаем директорию и файлы для скриптов автозапуска и делаем их исполняемыми

mkdir - p /usr/local/sbin/

touch /usr/local/sbin/post-boot

touch /usr/local/sbin/post-firewall

touch /usr/local/sbin/post-mount

touch /usr/local/sbin/pre-shutdown

touch /usr/local/sbin/pre-mount

touch /usr/local/sbin/ez-setup

chmod +x /usr/local/sbin/*

Создаем директорию и файл для скриптов, которые генерируются при установке программ, и делаем их исполняемыми

mkdir /opt/etc

mkdir /opt/etc/init. d

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

chmod +x /opt/etc/init. d/rc. unslung

Устанавливаем программы (в прошивке от 1.9.2.7-8 уже указан правильный депозитарий)

ipkg. sh update

ipkg. sh install ipkg-opt

ipkg update

Устанавливаем файл-менеджер. Желательно установить и ncurses.

ipkg install ncurses

ipkg install mc

Для последующей корректной работы Midnight Commander вводим команды:

echo "export TERMINFO=/opt/share/terminfo">>/opt/etc/profile

echo "alias mc=\"mc - c\"">>/opt/etc/profile

chmod +x /opt/etc/profile

Редактируем файлы автозапуска

До перезагрузки Midnight Commander запускается так TERM="linux" mc , после перезагрузки - mc

Функциональные клавиши (F1 - F10) работают через ESC (к примеру F10 = ESC потом 0)

На строчку вверх – Ctrl +P

На строчку вниз - Ctrl +N

Выбрать – Enter

Просмотр файла - ESC потом 3

Редактировать файл- ESC потом 4

Сохранить файл после редактирования - ESC потом 2

Выйти из редактирования файла - ESC потом 0

Копировать файл- ESC потом 5

Удалить файл- ESC потом 8

Переход между окнами Midnight Commander – Tab

И т. д…

Редактируем rc.unslung (лежит тут - /opt/etc/init. d/)

#! /bin/sh

# Start/stop all init scripts in /opt/etc/init. d

# starting them in numerical order and

# stopping them in reverse numerical order

#

if [ $# - ne 1 ]; then

printf "Usage: $0 {start|stop}\n" >&2

exit 1

fi

daemons=`echo $(/usr/bin/dirname $0)/S??*`

[ $1 = "stop" ] && daemons=`echo $daemons | /usr/bin/tr " " "\n" | /usr/bin/sort - r`

for i in $daemons; do

# Ignore dangling symlinks (if any).

[ ! - f "$i" ] && continue

case "$i" in

*.sh)

# Source shell script for speed.

(

trap - INT QUIT TSTP

set $1

. $i

)

;;

*)

# No sh extension, so fork subprocess.

$i $1

;;

esac

done

Редактируем файлы post-firewall post-mount pre-shutdown pre-mount лежат сдесь /usr/local/sbin/

Устанавливаем пакеты:

ipkg install lsof

ipkg install findutils

post-firewall

#!/bin/sh

iptables - I INPUT - p tcp --dport 51778 - j ACCEPT Проброс порта rTorrent

iptables - I SECURITY - p udp --dport 16049:16051 - j RETURN Проброс портов STRONG DC

post-mount

#! /bin/sh

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

pre-mount

#! /bin/sh

swapon - a

for i in `/usr/bin/awk '/ext3/{print($1)}' /etc/fstab`

do

/bin/grep - q $i /proc/mounts || /sbin/e2fsck - p $i 2>&1 | /usr/bin/logger - t e2fsck

done

pre-shutdown

#! /bin/sh

logger - t pre-shutdown "$* started."

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

sleep 10s

sync

for i in `cat /proc/mounts | sort - r | awk '/ext3/{print($1)}'`

do

[ - n "`/opt/sbin/lsof - t "$i"`" ] &&

/opt/sbin/lsof - t "$i" | sort - nr | xargs kill -9

sleep 2s

/bin/mount –o remount, ro $i

done

swapoff - a

sleep 1s

ez-setup - Выключение роутера красной кнопкой ez-setup нажать кнопку на 2-4 секунды, пока не погаснет индикатор питания, потом можно отпускать...

#!/bin/sh

halt

Реализуем монтирование HDD посредством fstab

touch /usr/local/.files

echo "/etc/fstab" >> /usr/local/.files

touch /etc/fstab

echo "/dev/discs/disc0/part1 none swap sw 0 0" >> /etc/fstab

echo "/dev/discs/disc0/part2 /opt ext3 rw, noatime 1 1" >> /etc/fstab

echo "/dev/discs/disc0/part3 /tmp/mnt/disc0_3 ext3 rw, noatime 1 1" >> /etc/fstab

Сохраняем все изменения:

flashfs save && flashfs commit && flashfs enable

Включаем Samba(All partition) через вэб-интерфейсе и перегружаем роутер. После ребута в мс будут работать стрелки управления. В Винде подключаем сетевой диск Мой компьютер>>Сервис>>Подключить сетевой диск… Теперь по Самбе мы можем положить файлы на сетевой диск чтобы через Midnight Commander копировать в нужные директории файлы и бинарник (смотри команды Midnight Commander описанные выше) любезно предоставленными Novik .

Я рекомендую это сделать чтобы избежать недоразумений , копировать готовые файлы в нужные директории и при необходимости их редактировать. Тобишь в одном окне МС мы открываем tmp/mnt/disc0_3 (сюда Вы положите через Самбу готовые файлы ) переходим в другое окно (Тав) и открываем директории куда надо скопировать файлы, и копируем с заменой (ESC потом 5 )

Устанавливаем lighttpd

ipkg install lighttpd

ipkg install php-fcgi

Идем редактировать конфигурационные файлы. Лежат они в /opt/etc/lighttpd/

Открываем /opt/etc/lighttpd/lighttpd.conf

делаем следующее:

a) секция server. modules, раскомментируем (убираем # в начале строчки) позиции

"mod_access"

"mod_auth"

"mod_cgi"

"mod_scgi",

"mod_accesslog"

Если к/л строчек нет - добавить.

б) В server. document-root указываем, где у нас корень www будет. Так:

server.document-root = "/opt/share/www/"

(если директории нет - создать)

в) server. errorlog = "/opt/var/log/lighttpd/error. log"

accesslog.filename = "/opt/share/www/log/access.log"

г) server.port = 8081

д) Добовляем в конец файла секцию scgi.server и оформляем следующим образом:

scgi. server = (

"/RPC2" =>

( "127.0.0.1" =>

(

"host" => "127.0.0.1",

"port" => 5000,

"check-local" => "disable"

)

)

)

е) Открываем /opt/etc/lighttpd/conf.d/10-php-fcgi.conf и раскомментируем там все(убираем # в начале строчки).

Создаём соотв. Директорию куда будут писатся ошибки:

mkdir -p /opt/share/www/log/

touch /opt/share/www/log/access. log

Готовые файлы : http://wl500g. info/attachment. php? attachmentid=3038&d=

3) Все, готово. Неплохо бы проверить, как это работает. Для этого пишем

/opt/etc/init.d/S80lighttpd start

и лезем (из внутренней по отношению к роутеру сети!) браузером по адресу

http://192.168.1.1:8081

Если показало что-то вразумительное - сервер таки запустился, ура. Если нет, начинаем пляски с бубном вокруг файлов, пути к которым описаны выше в пункте 2) в).

Скачать архив отсюда - http://*****/nvk/stuff/novik/rtorrent/rtorrent. tar. gz

И развернуть в корень директории веб-сервера. (Положить разархивированную папку rtorrent в /opt/share/www/ )

Устанавливаем рТОРРЕНТ

ipkg install rtorrent

после

http://*****/nvk/stuff/novik/rtorrent/rtorrent. gz - собственно rtorrent, файл из архива положить в /opt/bin,

после чего сказать chmod a+x /opt/bin/rtorrent

http://*****/nvk/stuff/novik/rtorrent/libtorrent. tar. gz - библиотека libtorrent, три файла из архива положить в /opt/lib

создать его рабочие директории

mkdir /tmp/harddisk/torrent

mkdir /tmp/harddisk/torrent/dl

mkdir /tmp/harddisk/torrent/work

mkdir /tmp/harddisk/torrent/session

В файле rtorrent.conf находящемся в /opt/etc/ надо поправить рабочие директории rtorrentа

# Default directory to save downloaded files. Note it doesn't support

# space yet.

directory = /opt/share/torrent/work/ на /tmp/harddisk/torrent/work

# Watch a directory for new torrents, and stop those that have been deleted.

schedule = watch_directory,5,5,load_start=/opt/share/torrent/dl/*.torrent на /tmp/harddisk/torrent/dl

schedule = untied_directory,5,5,stop_untied=

# Default session directory. Make sure you don't run multiple instance

# of rtorrent using the same session directory. Perhaps using a

# relative path?

session = /opt/share/torrent/session на /tmp/harddisk/torrent/session

# Port range to use for listening.

port_range =

# Start opening ports at a random position within the port range.

port_random = no

Устанавливаем adduser

1)ipkg install adduser

2) mkdir -p /opt/home/p2p

сделать домашний каталог пользователю p2p

3) adduser --home /opt/home/p2p p2p

добавить пользователя p2p. Спросит пароль - вводите на Ваше усмотрение, он Вам в дальнейшем не понадобится.

4) chown p2p /opt/home/p2p

chown p2p /tmp/harddisk/torrent/dl

chown p2p /tmp/harddisk/torrent/work

chown p2p /tmp/harddisk/torrent/session

chmod a+r /opt/etc/rtorrent. conf

chmod a+x /opt/bin/rtorrent

передать во владение пользователю p2p его home каталог и рабочие директории rtorrent, разрешить всем читать файл конфигурации rtorrent, разрешить всем выполнять rtorrent.

5) Файл /opt/etc/init.d/S99rtorrent оформляем следующим образом:

#!/bin/sh

user="p2p"

config="/opt/etc/rtorrent. conf"

options="-n - o import=/opt/etc/rtorrent. conf"

base="/opt/share/torrent"

srnname="rtorrent"

logfile="/opt/var/log/rtorrentInit. log"

PATH=/opt/bin:/opt/sbin:/usr/bin:/sbin:/bin:/usr/sbin

DESC="rtorrent"

NAME=rtorrent

DAEMON=$NAME

SCRIPTNAME=/etc/init. d/$NAME

# Do not proceed unless some apps are available.

test - x /opt/bin/screen || ( echo "screen not found." | tee - a "$logfile" >&2 ; exit 2 )

test - x /opt/bin/su - o - x /bin/su || ( echo "su not found." | tee - a "$logfile" >&2 ; exit 2 )

checkcnfg() {

exists=0

for i in `echo "$PATH" | tr ':' '\n'` ; do

if [ - f $i/$NAME ] ; then

exists=1

break

fi

done

if [ $exists - eq 0 ] ; then

echo "cannot find rtorrent binary in PATH $PATH" | tee - a "$logfile" >&2

exit 3

fi

if ! [ - r "${config}" ] ; then

echo "cannot find readable config ${config}. check that it is there and permissions are appropriate" | tee - a "$logfile" >&2

exit 3

fi

session=`getsession "$config"`

if ! [ - d "${session}" ] ; then

echo "cannot find readable session directory ${session} from config ${config}. check permissions" | tee - a "$logfile" >&2

exit 3

fi

}

d_start() {

[ - d "${base}" ] && cd "${base}"

stty stop undef && stty start undef

su - c "screen - ls | grep - sq "\.${srnname}[[:space:]]" " ${user} || su - c "screen - dm - S ${srnname} 2>&1 1>/dev/null" ${user} | tee - a "$logfile" >&2

# this works for the screen command, but starting rtorrent below adopts screen session gid

# even if it is not the screen session we started (e. *****nning under an undesirable gid

#su - c "screen - ls | grep - sq "\.${srnname}[[:space:]]" " ${user} || su - c "sg \"$group\" - c \"screen - fn - dm - S ${srnname} 2>&1 1>/dev/null\"" ${user} | tee - a "$logfile" >&2

su - c "screen - S "${srnname}" - X screen rtorrent ${options} 2>&1 1>/dev/null" ${user} | tee - a "$logfile" >&2

}

d_stop() {

session=`getsession "$config"`

if ! [ - s ${session}/rtorrent. lock ] ; then

return

fi

pid=`cat ${session}/rtorrent. lock | awk - F: '{print($2)}' | sed "s/[^0-9]//g"`

if ps - A | grep - sq ${pid}.*rtorrent ; then # make sure the pid doesn't belong to another process

kill - s INT ${pid}

fi

}

getsession() {

session=`awk '/^[[:space:]]*session[[:space:]]*=[[:space:]]*/{print($3)}' "$config"`

echo $session

}

checkcnfg

case "$1" in

start)

echo - n "Starting $DESC: $NAME"

d_start

echo "."

;;

stop)

echo - n "Stopping $DESC: $NAME"

d_stop

echo "."

;;

restart|force-reload)

echo - n "Restarting $DESC: $NAME"

d_stop

sleep 1

d_start

echo "."

;;

*)

echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2

exit 1

;;

esac

exit 0

Готовые файлы: http://wl500g. info/attachment. php? attachmentid=3185&d= http://wl500g. info/attachment. php? attachmentid=3186&d=

Если будете пользоваться готовыми файлами, не забудьте удалить расширение .TXT у файлов rtorrent. conf и S99rtorrent

Замечу, что данный скрипт предполагает, что пакеты procps, grep, gawk и screen установлены в системе.

Если это не так, не забудьте сказать:

ipkg install procps

ipkg install grep

ipkg install screen

ipkg install gawk

6) Создать /tmp/local/root/.profile

touch /tmp/local/root/.profile

и добавить туда строчки для нормальной работы в консоли rtorrent.

alias rt='su - c "screen - r" p2p'

chmod a+rw `tty`

stty start undef

stty stop undef

7) Копируем данный файл пользователю p2p

cp /tmp/local/root/.profile /opt/home/p2p/.profile

chown p2p /opt/home/p2p/.profile

Добавте в файл /usr/tmp/local/.files следующие строчки:

/etc/passwd

/etc/group

После всех изменения не забываем сказать :

flashfs save && flashfs commit && flashfs enable

8) Проверяем результаты. Для начала убедимся, что пользователь завелся, и rtorrent под ним работает. Так:

su p2p

/opt/bin/rtorrent - n - o import=/opt/etc/rtorrent. conf

Если консоль показалась - ^Q. (Ctrl + Q)

завершить telnet сессию. Сие необходимо, чтобы написанное в файле. profile вступило в действие.

9) Залогиниться снова. На всякий случай - mc не запускать!

Последовательно сказать

/opt/etc/init. d/S99rtorrent start

rt

Если консоль показалась - сказать ^A ^D. (Ctrl + А) (Ctrl + D)

Все, Вы отсоединились от консоли, но rtorrent продолжает работать.

Вэб-интерфейс rtorrent теперь доступен по адресу http://192.168.1.1:8081/rtorrent при условие что адрес роутера 192.168.1.1

Страничка ОРИГИНАЛА по настройки и установки с форума : http://wl500g. info/showthread. php? t=14256

Настройка STRONG DC через роутер

Действие первое: подключаем роутер, настраиваем DC++

Вот мои настройки:

StrongDC++ :

(X) Firewall With manual Port Forwarding

Ports TCP 16050

Ports UDP 16050

External\WAN IP : Внешний IP моего роутера (можно узнать командой ifconfig узнать можно либо через telnet либо на вкладке System Command роутера )

vlan1 Link encap:Ethernet HWaddr 00:17:31:#:#:#

inet addr:10.2.#.# Bcast:10.2.167.255 Mask:255.255.255.0

inet6 addr: fe80::217:31ff:febd:9c56/10 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:6953927 errors:0 dropped:0 overruns:0 frame:0

TX packets: errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:497054MiB) TX bytes:3252407GiB)

(X) Don't Allow HUB\UPNP to override

(_)Auto update IP on startup

Действие второе: настраиваем роутер.

Router:

NAT Settings -> Virtual Server

Enable Virtual Server: (X) Yes

PortRange 16050

Local IP 192.168.1.2 ( ип компьютера где будет работать Стронг)

Protocol BOTH

LocalPort 16050

Protocol No. (Пусто)

Теперь сохраняемся, перегружаемся и проверяем ДЦ. Должно работать все кроме поиска. Если не работает, дальше не переходим, а смотрим где ошибка в предыдущих действиях.

Данные о найденных файлах в ДЦ приходят в виде UPD-пакетов.

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

Что Надо сделать:

Записать в автозапуск строку iptables - I SECURITY - p udp --dport 16049:16051 - j RETURN в post-firewall

Мы это уже сделали в главе : «Редактируем файлы post-firewall post-mount pre-shutdown pre-mount

Если Вы не создавали post-firewall то делаем следующее

Соединяемся через телнет с роутером и вводим команды :

cd /usr/local <ENTER>

mkdir - p /usr/local/sbin/

cd sbin <ENTER>

ls <ENTER>

Далее следуют два варианта: файл post-firewall есть, либо его нет

Вариант когда есть, роутер выдаст (среди строк присутствует post-firewall, могут быть и другие файлы):

[ххх@filimonic sbin]$ ls

post-firewall

[ххх@filimonic sbin]$

Если есть, делаем так:

cat post-firewall <ENTER>

Если первая строка выглядит так: #!/bin/sh, делаем

chmod +x./post-firewall <ENTER>

echo iptables - I SECURITY - p udp --dport 16049:16051 - j RETURN >> ./post-firewall <ENTER>

Если первая строка выглядит НЕ так: #!/bin/sh, делаем

chmod +x./post-firewall <ENTER>

echo '#!/bin/sh' > ./post-firewall <ENTER>

echo iptables - I SECURITY - p udp --dport 16049:16051 - j RETURN >> ./post-firewall <ENTER>

Сохраняем изменения :

flashfs save <ENTER>

flashfs commit <ENTER>

flashfs enable <ENTER>

reboot <ENTER>

Вариант когда нет, роутер выдаст (среди строк НЕТ post-firewall, но могут быть другие файлы, КОТОРЫЕ НАС НЕ ИНТЕРЕСУЮТ:

[ххх@filimonic sbin]$ ls

[ххх@filimonic sbin]$

Если нет, делаем это:

touch./post-firewall <ENTER>

chmod +x./post-firewall <ENTER>

echo '#!/bin/sh' > ./post-firewall <ENTER>

echo iptables - I SECURITY - p udp --dport 16049:16051 - j RETURN >> ./post-firewall <ENTER>

Сохраняем изменения :

flashfs save <ENTER>

flashfs commit <ENTER>

flashfs enable <ENTER>

reboot <ENTER>

Как обновить все установленные пакеты на роутере

Соединяемся через телнет и вводим команду :

ipkg update

ipkg upgrade

Удалить установить пакет

ipkg remove (имя пакета)

ipkg install (имя пакета)

если установка пакетов повредит предыдущие, можно переустановить поврежденный командой

ipkg install - force-reinstall имя пакета

Очистить flash и nvram

(восстановить все настройки с нуля)

erase /dev/mtd/3
erase /dev/mtd/4
reboot