ВНИМАНИЕ! ВСЕ ДЕЙСТВИЯ ВЫ ВЫПОЛНЯЕТЕ НА СВОЙ РИСК И СТРАХ!
Итак, в веб-интерфейсе отключаем 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 |


