Итак, что я сделал для использования этого хозяйства? Работает на linux, архитектура arm, есть сайт, с которого стоит начать знакомство с внутренностями после покупки: http://mybookworld.wikidot.com/.
Первым делом я подключил nfs, в "белой" редакции это делается через веб-интерфейс. Затем включил доступ по ssh. С ssh надо быть осторожным, если ваша сеть не является закрытой. Да и в таком случае лучше быть осторожным ;).
По-умолчанию коробочка запускает одного демона nfsd, в рекомендациях по производительности написано это число поменять на то, что будет лучше для вас. Я решил, что 1 - мало по любому, поэтому поставил сразу 4. Делается это следующим образом:
1. Заходим по ssh на коробочку (root'ом с логином welc0me):
kilork@phoenix ~ $ ssh wdmybookip -l root root@wdmybookip's password: ~ #
2. Редактируем /etc/init.d/S80nfsd:
~ # vi /etc/init.d/S80nfsd
Строку
/usr/sbin/rpc.nfsd
заменяем на
/usr/sbin/rpc.nfsd 4
Вместо 4 можно поставить ваше любимое число. Ну или можно этого не делать, мне кажется лучше, когда демонов больше, но конкретных замеров я не проводил на одновременную работу с коробочкой при разном числе демонов.
Далее, по инструкции ставим на коробочку пакетный менеджер ipkg. Для установки rtorrent достаточно сделать:
/opt/bin/ipkg install rtorrent
Далее, запуск через:
/opt/bin/rtorrent
Настройка в файле .rtorrent.rc. Вот мой:
directory = /shares/Public session = /shares/Public/session schedule = watch_directory,5,5,load_start=/shares/Public/torrent/*.torrent port_range = 40890-40890 #port_random = no #check_hash = yes session_save = yes encryption = allow_incoming,enable_retry,prefer_plaintext use_udp_trackers = no dht = auto dht_port = 6881 encoding_list = UTF-8 bind = wdmybookip ip = external_ip scgi_port = localhost:5000 upload_rate = 100 download_rate = 1000 max_peers = 30 max_uploads = 10 max_uploads_global = 20 max_downloads_global = 60 send_buffer_size = 1M receive_buffer_size = 1M max_memory_usage = 128M
wdmybookip и external_ip - адрес коробочки в локальной сети и адрес внешний. Порты 40890 и 6881 должны быть проброшены с внешнего адреса на коробочку.
Вот и все, можно скачивать и сохранять пентабайты данных?
К сожалению, все не так просто. Дело в том, что метод соединения по-умолчанию через epoll у меня не заработал, и два - падает на больших торрентах. Обе проблемы известные, первая решается передачей параметра окружения для выбора метода select, вторая - через компиляцию libtorrent. Первое весьма просто:
export RTORRENT_POLL=select /opt/bin/rtorrent
А вот второе уже сложнее. Для этого нам понадобится на другой машине выкачать репозитории ipkg и самостоятельно все собрать/поправить. Я сделал скрипт, который все делает, главное, на что надо обратить внимание - это удаление define'ов USE_EPOLL и USE_MADVISE:
#!/bin/bash mkdir wd cd wd svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware cd optware make cs05q1armel-target cd cs05q1armel make directories ipkg-utils toolchain make libtorrent cd builds/libtorrent sed -i '/USE_EPOLL/ d;/USE_MADVISE/ d' config.h make cd - make libtorrent-ipk mv builds/libtorrent*-1_arm.ipk builds/libtorrent.ipk
Полученый файл wd/optware/cs05q1armel/builds/libtorrent.ipk необходимо скопировать на коробочку, после чего на ней уже запустить команду:
/opt/bin/ipkg install path/to/libtorrent.ipk.
Теперь все хорошо и запускать можно без всяких переменных окружения: /opt/bin/rtorrent. С чем я всех и поздравляю.
З.Ы. Скачать готовый скрипт и пакет.
2 комментария:
скрипт на моем UBuntu не работает. Готовый файл не ставится
ipkg install /DataVolume/Public/libtorrent.ipk
Installing libtorrent (0.12.6-1) to root...
Nothing to be done
Successfully terminated.
Collected errors:
Package libtorrent md5sum mismatch. Either the ipkg or the package index are corrupt. Try 'ipkg update'.
Скорее всего, нужная библиотека уже поставлена из другого иточника. Можете попробовать удалить библиотеку, затем поставить из ipk. Либо просто руками заменить нужные so файлы.
Отправить комментарий