OpenWrt - serwer ed2k
Instalacja serwera ed2k - amule na OpenWrtOstatnia zmiana: 2008-11-20 19:40
1. Przygotowania
2. Instalacja
3. Konfiguracja
4. Automatycznie uruchamianie
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.tgz
UWAGA: 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
mkfs.ext2 -m 0 /dev/sda1
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
cd /tmp/shared
wget http://eko.one.pl/openwrt/amule-2.1.3.tgz
tar zxvf amule-2.1.3.tgz
rm amule-2.1.3.tgz
Konfiguracja
Pierwsze uruchomienie amule powoduje wygenerowanie odpowiedniego pliku konfiguracyjnego.
/tmp/shared/bin/amule start
Potrzebujemy jeszcze odpowiednio przygotowanego hasła do serwera amule:
echo -n haslo | md5sum | cut -d ' ' -f 1
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
[eMule]
IPFilterAutoLoad=0
[WebServer]
Enabled=1
Password=###
Template=php-default
[ExternalConnect]
AcceptExternalConnections=1
ECPassword=###
ShowProgressBar=1
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
/tmp/shared/bin/amule start
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
#!/bin/sh
ln -s /mnt/disc0_1 /tmp/shared
/tmp/shared/bin/amule start
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
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.