Instalacja serwera ed2k - amule na OpenWrt
Ostatnia zmiana: 2013-11-27 16:55
Celem jest uruchomienie kompletnego serwera amule wraz interfejsem www do jego kontroli. Sam amule skompilowany na platformę mipsel jest za duży na to, żeby całkowicie "zmieścić" do w pamięci flash, dlatego tez zarówno program jak i ściągane dane zostaną umieszczone na zewnętrznym nośniku. W moim przypadku był to dysk zewnętrzny w kieszeni USB. Może to być także karta pamięci lub inny rodzaj nośnika. Jako system testowy wykorzystano
OpenWrt Whiterussian 0.9 na Asus WL-500gP.
UWAGA: W większości przypadków pliki udostępnione w sieci p2p są
nielegalnie. Masz tego świadomość.
Należy także pamiętać, że OpenWrt pracuje zwykle na urządzeniach do ograniczonej pamięci i zasobach sprzętowych. W konfiguracji amule należy zminimalizować liczbę połączeń, filtracje adresów itd. Należy również ograniczyć liczbę plików włożonych do kolejki.
Wszystkie patche i pliki niezbędne do kompilacji amule pod openwrt:
amule_src.tgzUWAGA: Kamikaze 8.09 posiada standardowo paczki z amule, więc poniższy poradnik jest całkowicie nieprzydatny, jeżeli masz tą wersję.Przygotowania
Dysk zewnętrzny należy sformatować w systemie plików ext2. Wykonujemy to przy pomocy polecenia
(zakładając, że podłączony dysk jest widoczny jako /dev/sda)
Przygotowany nośnik należy połączyć do urządzania. Powinien zostać on automatycznie zamontowany (w moim przypadku w /mnt/disc0_1).
Instalacja
Od tego momentu wszystkie czynności należy wykonać będąc zalogowanym w OpenWrt. Nie będzie to standardowa instalacja z pakietów z racji rozmiaru paczki i sposobu jej przygotowania.
Ponieważ nie wiadomo gdzie zostanie zamontowany nośnik, należy zrobić odpowiedni link symboliczny do katalogu /tmp/shared, który będzie katalogiem domowym serwera amule
ln -s /mnt/disc0_1 /tmp/shared
Należy przejść do tego katalogu:
a następnie pobrać przygotowaną wersję amule i rozpakować ją do tego katalogu.
wget http://eko.one.pl/openwrt/amule-2.1.3.tgz
tar zxvf amule-2.1.3.tgz
rm amule-2.1.3.tgz
Podany pakiet jest moim kompilatem; jeżeli będzie sprawiał problemy (ale nie problemy konfiguracyjne! od tego jest strona www.amule.org) - proszę o kontakt.
Konfiguracja
Pierwsze uruchomienie amule powoduje wygenerowanie odpowiedniego pliku konfiguracyjnego.
/tmp/shared/bin/amule start
Ponieważ zostaje wymuszony katalog domowy (HOME), cała konfiguracja amule zawarta jest w katalogu /tmp/shared/home/amule/.aMule
Potrzebujemy jeszcze odpowiednio przygotowanego hasła do serwera amule:
echo -n haslo | md5sum | cut -d ' ' -f 1
Słowo haslo należy zastąpić swoim własnym. Zostanie wygenerowany ciąg znaków; należy je zapisać/zapamiętać :)
Ulubionym edytorem należy pozmieniać parę opcji konfiguracyjnych (przy wyłączonym amule!). Uruchamiamy edycję...
/tmp/shared/bin/amule stop
nano /tmp/shared/home/amule/.aMule/amule.conf
... i ustawiamy podane niżej opcje
[eMule]
IPFilterAutoLoad=0
[WebServer]
Enabled=1
Password=###
Template=php-default
[ExternalConnect]
AcceptExternalConnections=1
ECPassword=###
ShowProgressBar=1
W miejsce ### należy wstawić wcześniej wygenerowany ciąg znaków.
Należy także pobrać aktualną listę serwerów (z http://ed2k.2x4u.de - link jest zmieniany po kilka minut więc trzeba wejść na stronę i skopiować aktualny!) i skopiować do katalogu /tmp/shared/home/amule/.aMule oraz wskazać katalog z szablonem stron www:
ln -s /tmp/shared/share/amule/webserver/ /tmp/shared/home/amule/.aMule/webserver
Ponowne uruchomienie polecenia
/tmp/shared/bin/amule start
powinno uruchomić już serwer amule.
Jeżeli po uruchomieniu serwera nie będzie on widoczny w liście procesów (do uzyskania przez ps ax), należy zmienić opcję -f w pliku /tmp/shared/bin/amule na -i -o. Spowoduje to wypisanie na konsolę komunikatów startowych umożliwiając tym samym diagnozę problemów.
Dostęp do serwera można uzyskać zarówno z linii poleceń (amulecmd) jak również z poziomu www pod adresem http://adres_serwera:4711
Przykładowe zrzuty ekranu:

(kliknij, aby powiększyć)

(kliknij, aby powiększyć)
Ściągnięte pliki znajdują się w katalogu /tmp/shared/home/amule/.aMule/Incoming; można to zmienić zmieniając odpowiednią opcję w pliku konfiguracyjnym. W razie problemów z amule należy zapoznać się z pomocą dostępną na stronie amule
http://www.amule.org/wiki/index.php/Main_Page. Wszystkie odpowiedzi typu "a dlaczego mam lowid" czy "a dlaczego mi nie działa ta opcja" są też wyjaśnione na stronie pomocy aMule.
Automatycznie uruchamianie
W katalogu /etc/init.d należy utworzyć plik o nazwie S99amule
touch /etc/init.d/S99amule
chmod 755 /etc/init.d/S99amule
I umieścić w nim wywołanie serwera:
#!/bin/sh
ln -s /mnt/disc0_1 /tmp/shared
/tmp/shared/bin/amule start
Rozwiązanie to ma pewne wady - nie zawsze podmontowany jest dysk i nie zawsze dostępny jest katalog /tmp/shared wskazujący na ten nośnik.
Lepszym rozwiązaniem wydaje się być wykorzystanie skryptu automatycznego mountowania dysku.
W pliku /etc/hotplug.d/usb, w pliku 01-mount należy zamienić
for part in part*; do
path=/mnt/${dev}_${part##*part}
mkdir -p ${path}
mount ${part} ${path}
done
na
for part in part*; do
path=/mnt/${dev}_${part##*part}
mkdir -p ${path}
mount ${part} ${path}
if [ -f ${path}/bin/amule ]; then
ln -s ${path} /tmp/shared
/tmp/shared/bin/amule start
fi
done
Przed odłączeniem dysku należy upewnić się, że nie jest on wykorzystywany, i w szczególności, nie jest uruchomiony serwer amule. Można zrobić odpowiedni skrypt połączony pod przycisk SES (EZSetup w Asus WL-500gP). Wtedy, jeżeli chcemy odłączyć dysk wystarczy nacinąć przycisk, odczekać kilka sekund i można go bezpiecznie odłączyć. Przykład takiego skryptu (do umieszczenia w katalogu /etc/hotplug.d/button pod nazwą 01-umount)
if [ "$BUTTON" = "ses" ] ; then
if [ "$ACTION" = "pressed" ] ; then
if [ -f /tmp/shared/bin/amule ]; then
/tmp/shared/bin/amule stop
umount /dev/sda1
sleep 3
fi
fi
fi
Informacje na temat dalszej konfiguracji i pracy amule dostępne są na
forum.