Итак, что я сделал для использования этого хозяйства? Работает на 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. С чем я всех и поздравляю.
З.Ы. Скачать готовый скрипт и пакет.