1

Тема: microdc2 на Keenetic

Собран и выложен в репозитарий консольный клиент dc.
Устанавливаем с помощью 'opkg install microdc2'.
Работу проверить не могу.
Тема, которая может помочь в настройке - http://wl500g.info/showthread.php?t=8896
Следует учесть, что у нас не Asus, а Keenеtic с другой структурой директорий.

Кто настроит - отписываемся.

PS Использовал исходники с патчами со страницы http://savio.km.ua/2009/04/29/microdc2- … %D1%8F-dc/

2

Re: microdc2 на Keenetic

Работает и вроде бы качает. Не резолвит имена хабов

Cannot look up address - Servname not supported for ai_socktype
microdc2>

Но эта проблема у всех.
Текст в чате выводится ввиде

\321\353\350\370\352\356\354 \354\355\356\343\356 \364\340\351\353\356\342 \360\340\361\370\340\360\345\355\356 (Too much files shared)
| \322\345\352\363\371\350\351 \353\350\354\350\362: \354\340\352\361\350\354\363\354 70 TB
| \323 \342\340\361 \360\340\361\370\340\360\345\355\356: 0,000 B
| \321\342\377\347\374 \361 \340\344\354\350\355\350\361\362\360\340\362\356\360\356\354: http://dc.ozerki.net/feedb.html
Public: <BEPTEP> \302\373 \341\373\353\350 \357\345\360\345\355\340\357\360\340\342\353\345\355\373 \355\340 piter.feardc.net. \321\356\356\341\371\345\355\350\345: \321\353\350\370\352\356\354 \354\355\356\343\356 \364\340\351\353\356\342 \360\340\361\370\340\360\345\355\356 (Too much files shared)

Отредактировано AndreyUA (2011-07-03 13:18:20)

3

Re: microdc2 на Keenetic

AndreyUA, я, по указанным выше причинам проверить и настроить microdc2 не могу.
Могу только дать советы с других форумов.

Для корректной работы выставьте

set hub_charset cp1251
set filesystem_charset ваша_кодировка_фс

У нас кодировка файловой системы - UTF-8.

Задать переменные среды, наверное, так (локаль в прошивке кинетика вроде не поддерживается).
LANG="ru_RU.UTF-8".
Попробовать запускать в screen с флагом -U (unicode).
Ну и копать сырцы.

PS Может для Вашего хаба нужно
set hub_charset utf-8 ?

4

Re: microdc2 на Keenetic

Еще может быть стоит собрать iconv (утилиту), т.к. в исходниках microdc2 есть

exec('iconv'.......

Makefile пакета libiconv-full немного "недоделанный". Выбрать сборку утилиты iconv можно, но инструкций по сборке пакета с утилитой в Makefile нет.
На всякий пожарный выложил утилиту
http://keenetic.zyxmon.org/files/iconv

iconv (sstrip не применен, с debug info).

5

Re: microdc2 на Keenetic

Еще одно соображение по поводу проблем с чатом. Проблмеа похоже на аналогичную с mc - http://www.midnight-commander.org/ticket/2282

Нужно попробовать сделать  патч для файла src/charsets.c: следует заменить вызовы
nl_langinfo (CODESET) возвращением строки "UTF-8". Правильнее именно так, через дефис.

Заодно дам ссылку, как удобно делать patch файлы
http://wiki.openwrt.org/doc/devel/patches

6

Re: microdc2 на Keenetic

Собранный с вышеуказанным патчем пакет тут - http://keenetic.zyxmon.org/files/microd … enetic.ipk
Возможно исправлена проблема с чатом. Понял, что могу и сам проверить работу microdc2 с публичными хабами, но времени пока на это нет. На всякий случай, тут патч - http://keenetic.zyxmon.org/files/20-kee … cale.patch

7

Re: microdc2 на Keenetic

Мне, как бы, без надобности, ДС++ не пользуюсь. Просто поставил потестить.

8

Re: microdc2 на Keenetic

Патч с чатом не помог. Я и сам dc++ не пользуюсь. Раньше (до сегодняшнего короткого теста) ни разу не запускал.
Будет время (только вот не знаю, когда) - может покопаю.

9

Re: microdc2 на Keenetic

Сделал еще один грязный патч. Почти все работает:

Connected to hub from 10.0.0.12:42785.
Public: <Модератор> Этот хаб использует 0.9.8e-r2 (Monday Jul 20 2009) of VerliHub (Работает без остановки: 22час 20мин  / Количество пользователей на хабе: 8212)
Public: <Модератор> This hub is enhanced by plugman for Verlihub.
Hub name is Superstorm.ru -  Похищен белый фон! Миллиарды упущенной прибыли!.
Nick accepted. You are now logged in.
Public: <Модератор> Ваша шара \342\200\224 424 Мб, а минимальная разрешённая на нашем хабе шара составляет \342\200\224 1024 Мб. (В активном режиме: 1024 Мб / В пассивном режиме:2048 Мб) Расшарьте что-нибудь.
Disconnected from hub.

Добавление от 08.07
Похоже победил окончательно. Скоро соберу и выложу в репозитарий.

10

Re: microdc2 на Keenetic

microdc2 в репозитарии. При сборке с патчами со страницы http://savio.km.ua/2009/04/29/microdc2- … %D1%8F-dc/ у меня клиент глючил. Собрал без них.
Запускаем с параметром -с

 microdc2 -c /media/DISK_A1/system/etc/microdc.conf

Файл конфигурации приблизительно такой

set filesystem_charset UTF-8
set hub_charset CP1251
set log_charset UTF-8
set auto_reconnect on
set filelist_refresh_interval 600
set display connections download publicchat searchresults upload
set log connections download publicchat searchresults upload
share /media/DISK_A1/microdc2/share/
set downloaddir /media/DISK_A1/microdc2/tmp/
set listingdir /media/DISK_A1/microdc2/tmp/
set nick <ваш ник>
set description "<ваше описание>"
set email <ваше мыло>
set logfile /media/DISK_A1/microdc2/tmp/microdc.log
set slots 2
set listenport XXXX !!!! Не забываем добавить правило в iptables для этого порта.
set active on
connect <тут пишем ip хаба>

Замеченная проблема - при скачивании файла, содержащего русские буквы в консоль пишутся "кракозябры". Файл скачивается нормально, с правильным именем. Пример глюка

09.07.2011 11:10:39 valyxa29: Starting download of `Ария - Штиль.kar' (39894 bytes).
09.07.2011 11:10:46 valyxa29: Download of `Ария - Штиль.kar' succeeded (transfer complete). 39KiB transferred in 7s (5.6KiB/s).

При запуске через screen лучше указывать флаг -U (unicode):

screen -dmS dcpp -U microdc2 -c /media/DISK_A1/system/etc/microdc.conf
....
screen -rU

При необходимости ввода пробела (имя файла, директория), перед пробелом вводим бэкслеш.

11

Re: microdc2 на Keenetic

set listenport XXXX !!!! Не забываем добавить правило в iptables для этого порта.

Извеняюсь может я совсем чайник но не как не могу добавить правило  в iptables для порта например 6899
Может кто нибудь поможет примером!

12

Re: microdc2 на Keenetic

Niki, примеры в теме http://forum.zyxmon.org/topic85-iptabes.html

13

Re: microdc2 на Keenetic

Возник вопросик, нормально ли что при работе на ZyXEL keenetic giga только микродс и просто работы в инете с ноута по вайфай нагрузка на проц была постоянно около 90-100%
при отключении микродс - только около 15%
для справки ежедневно в шару добавляется около 140 Гб (необходимо выйти на 2 Тб)
все на USB HDD 3Tb
4 раздела: (под MBR, так как сектор 4к - то mbr до 17 Тб вроде нормально работает)
все разделы были созданы на самом роутере, только формат под ntfs виндой
1 - система - ext2
2,3,4 - данные(шара) - NTFS
эта нагрузка из-за NTFS? (при этом ни приема ни передачи нету с дисков)
или он просто Хеширует и когда закончит нагрузка снизится?

Отредактировано Naglec (2012-03-05 13:48:14)

14

Re: microdc2 на Keenetic

Нормально.

Со всеми вытекающими...

15

Re: microdc2 на Keenetic

И все таки это было временно!!!
При работе Transmission на раздачу 6 торрентов (всего на 40 Гб примерно)
и работе microdc2 с шарой:
27.03.2012 13:40:53 Sharing 2461026352893 bytes (2.3TiB) totally
на среднем хабе:
This hub is running version 0.9.8e-r2 (Monday Jul 20 2009) of VerliHub (RunTime: 5weeks 4days  / Current user count: 442)
нагрузка таки не превышает 3%
причем как шара так и вся доп.система на NTFS
при этом диск в 3Тб под mbr (4к сектор)
вот так... решил поделиться наблюдением. так что GIGA нормально справляется с повседневными задачами!!!
когда заметил что нагрузка на проце всего 3% удивился сильно, думал клиент не работает... оказалось все великолепно!!!

P.S.:

Обновил прошивку, нагрузка снизилась до 1-2%

Вот мои конфиги:
каталог файлов клиента (конфига и прочее) /media/DISK_A1/system/microdc2

microdc2.conf

set filesystem_charset UTF-8
set hub_charset cp1251
set log_charset UTF-8
set auto_reconnect on
set filelist_refresh_interval 3600
set display connections download publicchat searchresults upload
set log connections download publicchat searchresults upload
share /media/DISK_A1/share
share /media/DISK_A2/share_1
share /media/DISK_A3/share_2
share /media/DISK_A4/share_3
set downloaddir /media/DISK_A1/system/microdc2
set listenaddr *.*.*.*
set listingdir /media/DISK_A1/system/microdc2
set nick [UserName]
set password [Passwd]
set description "Описалово, можно пустое"
set logfile /media/DISK_A1/system/microdc2/microdc.log
set slots 10
set speed LAN(T3)
set active on
set listenport 2412
connect 192.168.40.130 [Interzet Hub]

У кого как, у меня он почти не вылетает, но на всякий случай проверку оформил, временами при перезагрузке роутера он запускается несколько раз (несколько процессов одновременно и с хаба постоянно вылетает из-за этого)  - это тоже учел!
S20microdc2 (Пишет в Логе запуск, стоп, рестарт (при рестарте архивируется лог), проверка на запущенность, архивирование лога, проверка Хэширования файлов... мне больше всего было это интересно!!! а то нагрузка 100% почти (обновил алгоритм проверка хэша 30-04-2012))

#!/bin/sh

MOUNTPNT="/media/DISK_A1"
MOUNT="$MOUNTPNT/system"
SCREEN="$MOUNT/usr/sbin/screen"
MICRODC2="$MOUNT/usr/bin/microdc2"
DCDIR="$MOUNT/microdc2"
CONFIG="$DCDIR/microdc.conf"
LOG="$DCDIR/microdc.log"
COUNT=`ps -ax|grep $MICRODC2|grep -v grep|wc -l`
ARHDIR="$DCDIR/arc"
SN="$DCDIR/status.xml"
FLN="$DCDIR/files.xml"
FLNA="$DCDIR/files.xml.bz2"
RESC="$ARHDIR/files`date +%u`.xml.bz2"

start() {
    echo "MicroDC2 Starting"
    logger MicroDC2 Starting
    $SCREEN -dmS microdc2 $MICRODC2 -c $CONFIG
}

stop() {
    echo "MicroDC2 Stoping"
    logger MicroDC2 Stoping
    resc
    killall microdc2
}

restart() {
    resc
    killall microdc2
    arh restart
    $SCREEN -dmS microdc2 $MICRODC2 -c $CONFIG
    echo MicroDC2 RESTARTED
    logger MicroDC2 RESTARTED
}

check() {
if [ $COUNT -lt 5 ];
        then start
elif [ $COUNT -lt 10 ];
        then echo `date +"%d.%m.%Y %T` MicroDC2 работает >> $LOG
else stop
fi
}

arh() {
case "$1" in
    restart)
        ARHNAME=$ARHDIR/`date +%Y-%m-%d_%T`.log
        echo ======== ПЕРЕЗАПУСК КЛИЕНТА ======== >> $LOG
        ;;
    *)
        ARHNAME=$ARHDIR/`date +%Y-%m-%d`.log
        echo ======== КОНЕЦ ЛОГА ЗА ДЕНЬ ======== >> $LOG
        ;;
esac
if [ -e "$LOG" ]; 
    then 
    cp $LOG $ARHNAME
    gzip $ARHNAME
    echo Файл лога был перемещен в архив: > $LOG
    echo $ARHNAME.gz >> $LOG
fi
}

status() {
if [ $COUNT -gt 0 ]; then  #Проверка на запущенность клиента
if [ -e "$FLN" ]; #Проверка существует ли файл со списком
    then
        if [ -e "$SN" ]; then #Проверка на наличие файла-двойника
        RES=`diff -s $FLN $SN`
        ORIG="Files $FLN and $SN are identical"
        if [ "$RES" = "$ORIG" ]; #Проверка одинаковы ли файлы
            then
            echo Статус хэширования шары:  ЗАВЕРШЕН 100"%"
            exit;
            else
            rm $SN
        fi #Проверка одинаковы ли файлы
        fi  #Проверка на наличие файла-двойника
    TTH=`sed -e 's/>/\n/g' "$FLN" | grep TTH | wc -l`
    SIZE=`sed -e 's/>/\n/g' "$FLN" | grep Size | wc -l`
    if [ $TTH -eq $SIZE ]; #Проверка готовности хеширования
        then
        echo `date +"%d.%m.%Y %T` Статус хэширования шары:  ЗАВЕРШЕН 100"%" >> $LOG;
        logger [MicroDC2] All files TTH calculated!
        cp $FLN $SN
        else
        let TTHP=$TTH*100/$SIZE
        let OST=$SIZE-$TTH
        echo `date +"%d.%m.%Y %T` Статус хэширования шары: Готово файлов: $TTH из $SIZE"("$TTHP"% готово)." Осталось файлов: $OST >> $LOG
        logger [MicroDC2] Hashing files, $OST left...;
    fi  #Проверка готовности хеширования
fi #Проверка существует ли файл со списком
fi #Проверка на запущенность клиента
}

resc() {
if [ -e "$FLNA" ]; then cp $FLNA $RESC; fi
if [ -e "$SN" ]; then rm $SN; fi
}

 case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    check)
        check
        ;;
    arh)
        arh
        ;;
    status)
        status
        ;;
    resc)
        resc
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|check|arh|status}"
        ;;
esac

Проверку нужно прописать в crontabs - каждый час в *:00

0 * * * * /media/DISK_A1/system/etc/init.d/S20microdc2 check

Ежедневное архивирование лога в 23:59

59 23 * * * /media/DISK_A1/system/etc/init.d/S20microdc2 arh

Каждый час проверка хэширования файлов (В процессе хеширования инфа идет в лог и Журнал роутера, по окончании один раз прописывается в лог и журнал роутера, при добавлении файлов в шару инфа о процессе снова будет отображаться)

1 * * * * /media/DISK_A1/system/etc/init.d/S20microdc2 status

вот вроде и все! Просто решил поделиться стабильно работающим решением!
я с него не качаю, просто раздаю!
максимальная скорость отдачи замечена в районе 4 мегабайт/сек!

Отредактировано Naglec (2012-05-23 08:39:09)

16

Re: microdc2 на Keenetic

Добрый день, Господа. Помогите плиз разрулить ситуацию.
Потребовался второй WAN, как это сделать на прошивке v.1 так и не нашел, на гиге пришлось прошить v.2. Увы, с прошивкой v.2 пропала возможность ставить сторонние пакеты.

Установил microdc2 на NAS (192.168.0.108).
Если set listenaddr не указывать, соединяется с хабом в активном режиме, но хаб ругается "ваш клиент настроен на 192.168.0.108, а ваш реальный адрес 10.74.1.20" идет реконнект постоянный.
10.74.1.20 - адрес на WAN кинетика.
Если указать set listenaddr 10.74.1.20 то microdc2 ругается, что IP 10.74.1.20 не может быть использован, запускаюсь в пассивном режиме. С клиента никто ничего скачать не может sad
Посоветуйте, что можно сделать. Как заставить microdc2 работать из внутренней сети?
Зы. Порты на кинетике пробросил, виндовый клиент успешно соединяется и работает.

Отредактировано Gorinich_Z (2012-05-18 09:57:46)

17

Re: microdc2 на Keenetic

Можно попробовать вынести NAS за пределы домашней сети:
KEENETIC GIGA -> Домашняя сеть  -> Открытый сервер
Там вводится ip NAS'a и он получается за пределами роутера, таким образом он будет прямо в инете и

Gorinich_Z :

Если указать set listenaddr 10.74.1.20 то microdc2 ругается, что IP 10.74.1.20 не может быть использован, запускаюсь в пассивном режиме.

не должно будет выскакивать, но NAS может подвергаться атакам из интернета, так как при обращении на Ваш ip именно он будет принимать все сигналы.
А вот насчет того что пропала возможность пакеты ставить, это странно у меня гига и проша последняя и microdc2 пашет как папа карло в активе.

18

Re: microdc2 на Keenetic

Так на кинетике же - вторая (V.2) прошивка. в ней работа сторонних пакетов не реализована sad Кстати, и > Домашняя сеть  -> Открытый сервер в ней как-то по-другому реализовано.
"не должно будет выскакивать, но NAS может подвергаться атакам из интернета"
Думаю проблема в том, что в microdc2 set listenaddr нужно указывать IP, который поднят на сетевом интерфейсе, иначе ругается и >пассивный режим.
Попрововал на NAS-е поднять второй IP-шник ifconfig eth0:1 10.74.1.20, microdc2 перестал ругаться на "не может быть использован", но тогда пинг до хаба пропал, клиент с хабом соединиться не может.

19

Re: microdc2 на Keenetic

ясно, сам юзаю "Текущая версия ПО:    V1.00(USD.1.1)D0 8-апр-2012 04:14"
сам люблю все поновее, но "О, чудо!!! " как то даже забыл проверять обновы, до чего складно работает!
тут еще макбук купил, настроил тайммашин и вообще не хочется ничего менять. так что даже не знаю что и посоветовать ...
основное назначение роутера для меня это расшаривание через microdc2 (провайдер бонусы предоставляет, не нада за Инет платить вообще) так что не особо тянет что то менять... успехов в поиске, не обратил внимания на то, что проша поновее... я то подожду финала, а не бэты...

p.s.:
Если действовать по аналогии NAS-PC
получается что нада сделать следующее:
1. На роутере настроить проброску портов UDP (например Порт: UDP 43000)
2. На NAS`e в конфиге параметр
set listenport установить 43000
set listenaddr установить ip NAS`a 192.168.1.*

подобным образом рекомундуется настраивать обычных клиентов DC++ на ПК, только там нада и TCP и UDP, но в микре есть только listenport, насколько я понял "порт для прослушивания", значит для входящих запросов, его и пробрасываем. а ip NAS`a по тому, что на него все запросы по данному порту роутер перекинет именно на него.

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

Отредактировано Naglec (2012-05-23 08:58:31)

20

Re: microdc2 на Keenetic

Собственно, на форумах нашел определение, из которого виден корень моей проблемы:
set listenaddr 195.11.15.201 – адес сообщаемый хабу и клиентам, он же будет прослушиваться.
Если ваш microdc2 располагается за NAT вы можете встретить проблемы при включении активного режима, однако, это зависит от настроек хаба. Важно помнить, что директива listenaddr задаёт как фактически прослушиваемый, так и сообщаемый хабу адрес.

А в моем случае это разные адреса. Прослушивать мне нужно локальный адрес NAS, а сообщать хабу - внешний адрес маршрутизатора.
Вероятно, вылечить можно только изменением конституции (кода) microdc2
... увы, задача мне не по силам и в инете о каких-либо решениях инфы не встречал.

21

Re: microdc2 на Keenetic

Нашел патчь, устраняющий траблу microdc2 с set listenaddr:
https://lists.nongnu.org/archive/html/m … 00003.html

Но также нашел и другой современный консольный клиент. NCurses Direct Connect.
http://dev.yorhel.nl/ncdc
И этот клиент прекрасно работает и за НАТ-ом.
Минус - собранного под powerpc так и не нашел, пришлось самому компилить.

Отредактировано Gorinich_Z (2012-05-28 08:15:00)

22

Re: microdc2 на Keenetic

Здравствуйте.
Сначала обрадовался найдя это приложение тут, но потом прочитал внимательнее тему и опечалился отсуствия столь необходимых патчей.
Нельзя ли попросить немножко вашего времени на сборку версии с патчами отсюда, как из наиболее проверенного места:
http://patch-tracker.debian.org/package … 2/0.15.6-2

Вобщем-то наиболее желаемый патч main-loop-fix, logfile-segfault-fix и скорее всего ещё libxml придётся в случае чего. Патчи slave-mode и остальные вторичны по большей части и скорее нужны для удобства.
Собственно хочется их ибо есть опыт работы с microdc2 и аптайм более недели-двух обычно приводит к 100% пожиранию процессора и затуплению на отдаче.

23

Re: microdc2 на Keenetic

Когда я отлаживал microdc, проверялись сборки с патчами. Они падали. Если проблема вылазит через 2 недели - проще всего перезапускать через cron.
Недавно в репу был выложен другой клиент ncdc. Попробуйте его.

24

Re: microdc2 на Keenetic

Если вы про те сборки на которые я нашёл ссылки в теме, то не мудрено, слишком много внесено изменений за раз. Ссылка на дебиановские наработки дана не спроста, все патчи поделены и фиксят строго конкретные грабли. За направление на ncdc спасибо, попробую.

25

Re: microdc2 на Keenetic

Ну вобщем работает конечно, только почему-то каждые минут 5-8 оно перезаходит на хаб. Непонятно почему. Хеширование давно уж закончилось.