
<!doctype linuxdoc system>
<article>
<title>
Podręcznik do ed2k-gtk-gui
</title>
<author>
Thomas Ritter (<tt>th.ritter <em>at</em> gmx <em>dot</em> net</tt>),
Tim-Philipp Müller (<tt>t.i.m <em>at</em> orange <em>dot</em> net</tt>),
tłumaczenie na język polski Piotr Borys (<tt>utak3r <em>at</em> g2 <em>dot</em> pl</tt>)
</author>
<date>
Version 0.6.0 , Thu Sep  4 21:00:00 BST 2003
</date>
<abstract>
Ten podręcznik opisuje instalację i użytkowanie ed2k-gtk-gui w wersji 0.6.0, dla klientów eDonkey2000 i Overnetu.
</abstract>

<toc>

<sect>Wstęp

<sect1>Stan tego dokumentu
<p>
<bf>Ten dokument jest w pewnym stopniu niekompletny i prace nad nim trwają. Jeśli nie możesz znaleźć odpowiedzi na swoje pytania tutaj, skonsultuj się z <htmlurl url="http://ed2k-gtk-gui.sourceforge.net/faq.shtml" name="FAQ"></bf>. Jednakże ten dokument jest dużo nowszy, a także jest jedynym uaktualnianym (z drugiej strony FAQ są dostępne w większej ilości języków).
</p>

<sect1>Co to jest eDonkey2000? Co to jest Overnet?
<p>
<bf>eDonkey2000</bf> jest programem współdzielącym pliki w sieci peer-to-peer, którego autorem jest Jed McCaleb (jed <em>at</em> eDonkey2000 <em>dot</em> com) z MetaMachine.
</p>

<p>
<bf>Overnet</bf> również jest programem współdzielenia plików w sieci peer-to-peer, którego autorem również jest Jed McCaleb (jed <em>at</em> eDonkey2000 <em>dot</em> com) z MetaMachine.
</p>

<p>
Overnet jest nowym, bezserwerowym następcą eDonkey2000. Z technicznego punktu widzenia, Overnet jest lepszy od eDonkey2000. Niemniej, w momencie pisania tego (styczeń 2003), wygląda na to, że ciągle więcej zasobów można znaleźć w sieci eDonkey2000. Sytuacja ta powinna się jednak zmienić w przyszłości.
</p>

<p>
Od wersji 0.5.0 począwszy, możesz używać ed2k-gtk-gui również z klientem overnetu. Prawie wszystko, co poniżej zostało napisane o tekstowym kliencie edonkey, ma zastosowanie również do klienta overnetu.
</p>

<sect1>Co to jest 'GUI'? Co to jest 'jądro'?
<p>
Pod GNU/Linuksem, donkey jest inny od dobrze znanej wersji pod Windows - składa się z dwóch części, GUI (Graficzny Interfejs Użytkownika) i jądra. <em>Jądro</em> jest częścią odpowiadającą za całą pracę udostępniania plików (wysyłanie, ściąganie, podłączanie się do serwerów, publikacja plików), natomiast GUI pokazuje nam, co jądro robi.
</p>
<p>
To rozdzielenie GUI i jądra ma kilka zalet: po pierwsze GUI nie musi być uruchamiane na tym samym komputerze, co jądro. W ten sposób możesz zdalnie kontrolować jądro działające na Twoim linuksowym routerze w piwnicy za pomocą GUI na Twoim głównym komputerze w pokoju, z pracy, lub z domu swojego kumpla (zobacz rozważania na temat bezpieczeństwa w ostatniej sekcji). Po drugie, gdy GUI się wysypie *ekhm*, co się oczywiście nigdy nie zdarzy *ekhm*, jądro będzie mogło spokojnie kontynuować ściąganie i wysyłanie, a Ty tylko musisz zrestartować GUI.
</p>

<p>
Pomoc z dokumentacją jest zawsze mile widziana, proszę nadsyłać błędy, komentarze i sugestie do Tima-Philippa Müllera (<tt>t.i.m <em>at</em> orange <em>dot</em> net</tt>).

</p>


<sect1>Zmiany
<p>
<bf>2002-Nov-09</bf>
<em>połączona wersja początkowa Thomasa Rittera tego dokumentu z tym znajdującym się w drzewie źródłowym [Tim]</em>
</p>
<p>
<bf>2003-Jan-31</bf>
<em>zaktualizowany podręcznik w celu odzwierciedlenia zmian w wersji 0.5.0 i dołożone trochę komentarzy na temat overnetu [Tim]</em>
</p>
<p>
<bf>2003-Sep-04</bf>
<em>zaktualizowany podręcznik do wersji 0.6.x [Tim]</em>
</p>

<sect>Instalacja (GUI)
<p>
Będziesz musiał zdobyć i zainstalować zarówno GUI, jak i jądro. Ten rozdział powie Ci, jak dostać i zainstalować GUI. Następny rozdział powie Ci, jak zdobyć i zainstalować jądro.
</p>
<p>
GUI jest tylko Graficznym Interfejsem Użytkownika (czytaj: oknami i przyciskami) dla klienta eDonkey2000. Klient eDonkey2000 nie jest kodem otwartym (open source), lecz prawnie zastrzeżonym oprogramowaniem, które musisz zdobyć oddzielnie. Bez klienta (='jądra'), GUI nie ma zbyt wielkiego sensu.
<bf>Pobierz jądro stąd</bf>:
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net/core.shtml" name="http://ed2k-gtk-gui.sourceforge.net/core.shtml">.
</p>

<sect1>Jak zdobyć GUI
<p>
Możesz pobrać najnowsze GUI z 
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net" name="http://ed2k-gtk-gui.sourceforge.net">.
 Jeśli będziesz miał szczęście, znajdziesz gotowy pakiet .rpm lub .deb dla swojej dystrybucji, w przeciwnym razie będziesz musiał ściągnąć paczkę z kodem źródłowym i samemu ją skompilować.
</p>

<p>
Jeśli lubisz ryzyko, możesz też pobrać najnowszy kod źródłowy z CVS. CVS jest systemem kontroli wersji, używanym przez developerów do kontroli zmian dokonanych w źródłach na przestrzeni czasu. ed2k-gtk-gui ma swój własny serwer CVS na sourceforge, a developerzy regularnie wrzucają najnowsze zmiany (poprawki błędów, nowe możliwości) do 'repozytorium' CVS.
Błędy zawsze najpierw poprawiane są w CVS, więc jeśli nie chcesz czekać na następną wersję, możesz wejść do CVS i ściągnąć najnowszą wersję kodu źródłowego nawet zanim zostanie wydana poprawna wersja.
Instrukcje, jak to zrobić, znajdziesz na 
 <htmlurl url="http://ed2k-gtk-gui.sourceforge.net/download.shtml" name="stronie pobierania"> GUI.
</p>

<sect1>Wymagania

<p>

<itemize>
	<item>Klient linii poleceń eDonkey2000 lub Overnet (=jądro)</item>
	<item>biblioteki zestawu gtk+ (gtk, gdk, pango, atk, glib) (seria 2.x; proszę używać gotowych paczek, o ile to możliwe)</item>
	<item>biblioteka gnet (gnet-2.0.x) (wymagana tylko w przypadku samodzielnego kompilowania GUI ze źródeł)</item>
</itemize>

Do uruchomienia <bf>prekompilowanej binarki</bf> będziesz potrzebował bibliotek gtk+-2.x w swoim systemie.
Aby to sprawdzić, po prostu uruchom <tscreen><verb>'locate libgtk2 | grep ".so"'</verb></tscreen>
Jeżeli dostaniesz jakieś wyniki, powinno być w porządku. Biblioteki GTK+ w zasadzie instalowane są na prawie każdej stacji linuksowej.
W przypadku uruchamiania prekompilowanej wersji GUI, nie musisz zawracać sobie głowy biblioteką gnet. Pakiety GUI mają ją zlinkowaną statycznie, co pozwala uniknąć wszelkich ewentualnych problemów.

Aby <bf>samemu skompilować GUI</bf>, będziesz potrzebował nie tylko bibliotek gnet i gtk+2.0, ale również odpowiednich <em>pakietów developerskich</em> (pliki nagłówkowe itp.) do tych bibliotek.
Uruchom <tscreen><verb>'pkg-config --libs gnet-2.0'</verb></tscreen> oraz <tscreen><verb>'pkg-config --libs gtk+-2.0'</verb></tscreen> aby sprawdzić, czy je masz.
Jeśli obie komendy zwrócą cokolwiek innego, niż komunikat błędu, jesteś gotowy. W przeciwnym razie będziesz musiał zainstalować odpowiednie pakiety developerskie, które zazwyczaj mają przyrostek '-dev' lub '-devel' w nazwie.
Szukaj pakietów o nazwach 'gtk2-devel' (lub 'libgtk2.0-devel' bądź podobnie na debianie) i 'gnet2-dev' ('libgnet2.0-dev' na debianie) bądź podobnych.
Zauważ, że kursują teraz dwie wersje GTK+, zabytkowa seria 1.2.x oraz 2.x.y. Obie wersje powinny bez żadnych problemów koegzystować na jednym systemie.
Na potrzeby GUI będziesz potrzebował GTK+-2.x. Aktualna wersja GTK+ to GTK+-2.2.4. Staraj się unikać GTK+-2.0.x, jeśli możesz (jest po prostu stara).


<sect1>Instalacja GUI z pakietu .rpm lub .deb
<p>
Ściągnij wybrany pakiet i użyj menadżera pakietów w swojej dystrybucji, aby go zainstalować. Proszę zwrócić się do dokumentacji swojej dystrybucji, aby dostać instrukcje na temat, jak to zrobić.

<p>
Jeśli Twoja dystrybucja używa pakietów RPM, zazwyczaj będziesz używał komendy
<tscreen><verb>
# rpm -i ed2k-gtk-gui-0.6.0-2.i386.rpm
</verb></tscreen>

jako root do zainstalowania GUI w swoim systemie (dokładna nazwa pliku może się zmieniać).

<p>
Jeśli używasz systemu debiana, zainstaluj GUI za pomocą
<tscreen><verb>
# dpkg -i ed2k-gtk-gui-0.6.0-1_i386.deb
</verb></tscreen>

jako root (dokładna nazwa pliku może się zmieniać).


<sect1>Kompilacja i instalacja GUI ze źródeł

<p>
Ściągnij paczkę ze źródłami (.tar.gz) i rozpakuj
<tscreen><verb>
% tar xzf ed2k-gtk-gui_COŚTAM.tar.gz
</verb></tscreen>

lub ściągnij je z repozytorium CVS (patrz powyżej), i przejdź do katalogu źródeł

<tscreen><verb>
% cd ed2k_gui/
</verb></tscreen>

</p>

<p>

Aby skompilować i zainstalować ed2k_gui w swoim systemie, wpisz następujące komendy w głównym katalogu dystrybucji ed2k_gui (czyli tym, w którym jest np. plik AUTHORS):

<tscreen><verb>
% ./configure
% make
% make install
</verb></tscreen>

<p>
Jako, że ed2k_gui używa autoconf/automake, nie powinieneś mieć żadnych problemów z kompilacją.
Jeżeli poszedłeś na całość i ściągnęłeś źródła z CVS (patrz strona domowa), będziesz musiał uruchomić skrypt ./autogen.sh, aby otrzymać plik ./configure.

<p>

Prawdopodobnie będziesz musiał <em>stać się rootem</em>, aby zainstalować GUI na swoim systemie. Tak możesz tego dokonać:

<tscreen><verb>
% su
Password:                   (tutaj wpisz hasło roota)
# make install
(tony komunikatów wyskakują na ekran)
# exit
</verb></tscreen>
</p>

<p>
Teraz powinieneś być w stanie uruchomić GUI zwyczajnie wpisując 'ed2k_gui' w oknie linii poleceń (konsoli, xtermie lub czymkolwiek), ewentualnie wciskając Alt+F2 w Gnome/KDE i wpisując tam 'ed2k_gui'.
<em>Mimo to, ciągle musisz jeszcze najpierw zainstalować jądro, zanim będziesz mógł używać GUI.</em>
Zapraszam do następnej sekcji po instrukcje na temat, jak zainstalować jądro.
</p>

<p>

Jeżeli będziesz miał problemy, daj o nich znać autorowi:
 <htmlurl url="mailto:uberdork@users.sourceforge.net" name = "Tim-Philipp Müller">,
lub opowiedz o nich na
 <htmlurl url="http://sourceforge.net/forum/?group_id=61752" name="forum ed2k-gtk-gui">.

</p>


<sect> Instalacja (jądro)
<p>
Teraz, gdy już masz zainstalowane GUI, będziesz musiał skonfigurować klienta eDonkey2000 (=jądro).
W przeszłości było to zajęcie dość karkołomne i skomplikowane, jako że klient eDonkey2000 jest w zasadzie aplikacją Windowsową skompilowaną pod GNU/Linuksem (a także pod FreeBSD w 'trybie emulacji linuksa'), i jako taki nie zawsze zachowuje się jak typowy uniksowy program.

Nie przestrasz się tymi wszystkimi szczegółami poniżej. Większość ludzi nie ma z tym większych problemów.

<bf>Szybki start:</bf> Najszybszy sposób na załatwienie sprawy, to pobranie najnowszej wersji GUI, uruchomienie jej (przez wpisanie 'ed2k_gui' w linii poleceń, lub wciśnięcie Alt+F2 w GNOME/KDE i wpisanie tam 'ed2k_gui') i następnie kliknięcie na przycisku 'Szybki start'.

<sect1> Którą wersję jądra powinienem wybrać? (można pominąć)
<p>
Możesz się przekonać, że dostępnych jest kilka różnych wersji jądra. Aktualne jądro możesz pobrać stąd:
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net/core.shtml" name="http://ed2k-gtk-gui.sourceforge.net/core.shtml">.

<p>
Zazwyczaj dobrym wyborem jest użycie najnowszego oficjalnego jądra (obecnie jest to 0.50.1).

<p>
Czy powinieneś wybrać jądro Overnetu, czy eDonkey2000? (patrz wstęp) Nie wiem.
Sieć eDonkey2000 ciągle jeszcze ma większą zawartość od sieci Overnet, ale to się 
niedługo zmieni. Technologicznie sieć Overnet jest lepsza i bardziej zaawansowana, 
i stanowi przyszłość ;)
Według mnie Overnet jest mniej problematyczny, bo nie musisz utrzymywać listy serwerów, i ciągle się z tym bawić.
Musisz jedynie 'zbootować' się do sieci raz (poprzez IP i port kogoś, kto już jest w sieci overnet), i dalej Overnet już sam będzie się troszczył o utrzymywanie swoich kontaktów w stanie aktualnym.

<p>
Po prostu wybróbuj obydwa i podłącz się do tego, co Ci najbardziej odpowiada. 
Zarówno overnet jak eDonkey obsługują linki ed2k, a overnet może kontynuować pobierania rozpoczęte w eDonkey i nawzajem, tak więc możesz się przełączać w tę i z powrotem bez problemów.


<sect1> Ściąganie i rozpakowywanie jądra

<p>

Pobierz aktualne jądro stąd:
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net/core.shtml" name="http://ed2k-gtk-gui.sourceforge.net/core.shtml">.

<bf>Ściągnij je do podkatalogu swojego katalogu domowego</bf>, np. <tt>/home/utak3r/ed2k</tt>.

Następnie <bf>rozpakuj je</bf> z linii poleceń (możesz dokonać tego oczywiście inaczej, jeśli wiesz jak):
<tscreen><verb>
% cd /home/utak3r/ed2k/
% tar xzf donkey0.50.1.tar.gz   (dokładna nazwa pliku może być inna)
</verb></tscreen>

Powinieneś mieć teraz binarkę donkey'a w tym katalogu, i powinna ona być wykonywalna, tzn. powinna mieć ustawioną flagę 'x' (jeśli nie, ustaw ją za pomocą <tt>'chmod +x donkey0.50.1'</tt>):
<tscreen><verb>
% ls -l donkey0.50.1
-rwxr-xr-x    2 utak3r   utak3r    1159400 Jun 28 19:10 donkey0.50.1
</verb></tscreen>



<sect1> Szybki start - Postawienie wszystkiego tak szybko, jak to tylko możliwe

<p>

To zadziała tylko wówczas, jeżeli planujesz uruchamiać GUI i jądro na tym samym komputerze. 
Jeżeli jądro działa na innym komputerze, niż GUI, będziesz musiał skonfigurować jądro ręcznie.
Proszę skonsultować się z następną sekcją po instrukcje jak to zrobić.

</p>

<p>

<itemize>
	<item>
	  Ściągnęłeś i zainstalowałeś najnowsze GUI, jak opisane powyżej. Dobrze.
	</item>
	<item>
	  Masz również jądro i je rozpakowałeś jak opisane powyżej. Dobrze.
	</item>
	<item>
	  Uruchom GUI (wpisując <tt>'ed2k_gui'</tt>).
	</item>
	<item>
	  W oknie dialogowym 'podłącz się' podaj pełną ścieżkę do binarki, np. 
	  '/home/utak3r/ed2k/donkey0.50.1' w polu 'ścieżka'.
	</item>
	<item>
	  Wybierz dowolną nazwę użytkownika i hasło. Unikaj znaków specjalnych.
	</item>
	<item>
	  Nazwa hosta powinna być 'localhost' a port 4663.
	</item>
	<item>
	  <tt>'ping localhost'</tt> powinno działać. Jeśli nie, użyj albo '127.0.0.1' jako
	  nazwy hosta, albo (lepiej) dodaj linijkę '127.0.0.1 localhost' do swojego pliku
	  /etc/hosts.
	</item>
	<item>
	  <tt>'netstat -ln | grep 4662'</tt> nie powinno nic zwracać.
	  Jeśli zwraca, nie martw się, tylko sprawdź, czy GUI wykryje to i naprawi.
	</item>
	<item>
	  <tt>'netstat -ln | grep 4663'</tt> nie powinno nic zwracać.
	  Jeśli zwraca, nie martw się, tylko sprawdź, czy GUI wykryje to i naprawi.
	</item>
	<item>
	  Wciśnij klawisz 'Rozmnóż'. Okno powinno wyświetlać teraz 'działa'. 
	  Wciśnij przycisk 'Go!'.
	</item>
	<item>
	  Powinieneś być teraz prawidłowo podłączony do jądra. Upewnij się, że na stronie 
	  'Udostępniane' jest wymieniony chociaż jeden katalog. Jeśli tak, jesteś gotów.
	</item>
	<item>
	  Kliknij prawym klawiszem na liście serwerów i ściągnij aktualną listę 
	  i podłącz się do jednego z nich.
	</item>
</itemize>

Jeśli ta procedura nie działa, szukaj na stronie stanu GUI jakichś wskazówek, co źle poszło
i skonsultuj się z resztą dokumentacji (FAQ i rozdziały poniżej), jak ustawić jądro samodzielnie.




<sect1> Jeśli nie idzie tak jak powinno - ręczna konfiguracja jądra
<p>
Hmmm... Muszę być dopiero napisany...




<sect> Użytkowanie <p>

<sect1> Pierwsze uruchomienie GUI

<p>
<bf>Uruchomienie GUI:</bf> Z przyczyn historycznych, binarka GUI nazywa się 'ed2k_gui' 
(stąd nazwa projektu 'ed2k-gtk-gui'). Jest kilka sposobów na uruchomienie GUI: z linii 
poleceń, w konsoli/oknie terminala (jak np. xterm, kosnole itp.), po prostu wpisz

<tscreen><verb>
%ed2k_gui
</verb></tscreen>

Również, jeżeli coś pójdzie nie tak, to jest wskazany sposób uruchamiania GUI, ponieważ 
na ekranie konsoli będziesz mógł zobaczyć dodatkowe komunikaty błędów.
<p>
Ewentualnie, jeśli masz Gnome'a lub KDE, wciśnij Alt+F2 i w okienku wpisz 'ed2k_gui'.
To również powinno uruchomić GUI.

<p>
Jeżeli <bf>uruchamiasz GUI po raz pierwszy</bf>, lista serwerów będzie pusta.
Idź na stronę serwerów i wciśnij 'ściągnij listę serwerów' i poczekaj chwilę.
Jeżeli będziesz miał szczęście, zobaczysz listę serwerów. Jeśli to się nie uda,
spójrz na stronę stanu i popatrz, co poszło nie tak. Jeśli jesteś zmuszony
używać serwera proxy http, idź do sekcji Pytań i Odpowiedzi poniżej, żeby się dowiedzieć,
jak zmusić GUI do używania serwera proxy.
<p>

Teraz, gdy już masz serwery, kliknij 'połącz' i podłącz się do serwera.


<sect1> Udostępnianie plików

<p>
eDonkey2000 jest programem do współdzielenia plików, więc powinieneś udostępniać jakieś pliki.
Weź pod uwagę, że <bf>nie jest możliwe nie udostępnianie żadnych plików</bf> w eDonkey2000.
eDonkey2000 jest w stanie udostępniać części plików właśnie ściąganych, zanim zostaną ukończone.
Tak więc, jeżeli nawet nic nie udostępniasz, to i tak udostępniasz te pliki, 
które właśnie ściągasz. To samo dotyczy Overnetu.

<p>
Nie można współdzielić pojedynczych plików, możesz tylko udostępnić całe katalogi lub drzewa katalogów.
Gdy klikniesz <em>Udostępniane</em> na górze okna GUI, zobaczysz katalogi (po lewej)
i pliki (po prawej), które współdzielisz ze światem.
Aby coś udostępnić, kliknij prawym klawiszem w okienku <em>katalog</em> i wybierz albo 
<em>dodaj katalog do udostępniania</em> albo <em>dodaj drzewo katalogów do udostępniania</em>.
Ta druga opcja doda katalog wraz ze swoimi podkatalogami.

<p>
Jeżeli dodasz katalogi z plikami, których nigdy wcześniej nie udostępniałeś
eDonkey'em, pliki są haszowane w celu ich identyfikacji. To zabierze trochę czasu 
(mam na myśli minuty na starszych komputerach), ale to nie zablokuje ani jądra, ani GUI.

<p>

<em>Proszę współdzielić coś!</em>

<sect2> Ile plików powinienem udostępniać?

<p>
Przede wszystkim, zauważ jeszcze raz, że udostępniasz już to, co sam ściągasz.
Ile plików dodatkowo chcesz udostępniać, zależy od Twojego pasma wychodzącego.

<p>
Jeśli udostępniasz duże pliki (setki MB), które nie są jeszcze osiągalne w sieci eDonkey, 
proszę, przygotuj się na udostępnianie tych plików przez długi czas, żeby ludzie
mieli wogóle szansę je ściągnąć. Jeśli nie jesteś tego pewien, nie udostępniaj dużych
plików. Jedną z najbardziej frustrujących rzeczy jest duży plik, który znika na krótko
przed zakończeniem jego ściągania.

<sect1> Konfiguracja

<p>
Jest kilka ustawień w konfiguracji, które powinieneś dopasować do swoich potrzeb.

<p>
<em>Maksymalna prędkość pobierania</em> i <em>maksymalna prędkość wysyłania</em>:
te dwie opcje chyba mówią same za siebie. Aczkolwiek, powinieneś wiedzieć, że eDonkey
posiada system ratio, co oznacza: maksymalna prędkość ściągania zależy od ustawionej
przez Ciebie prędkości wysyłki. Jeżeli pozwolisz eDonkey'owi wysyłać z prędkością
co najmniej 10kB/s, będziesz mógł ściągać tak szybko, jak zechcesz (ustaw ściąganie na
'0' = nieograniczone).
Jeżeli natomiast pozwolisz na mniejsze pasmo wysyłki, niż 10kB/s, Twoja prędkość ściągania
zostanie automatycznie ustawiona na <tt>maks.wys. * 3</tt> bądź <tt>maks.wys. * 4</tt>
(zależnie od prędkości).

<p>
Jeżeli masz łącze DSL/Cable, najczęściej Twoje pasmo będzie określane w kilo<bf>bitach</bf>
na sekundę (kbps), np. 576/288. Podziel te wartości przez osiem, aby uzyskać przepustowości
w kilo<bf>bajtach</bf> na sekundę (kB/s). W tym wypadku byłoby to 72 kB/s przy pobieraniu 
i 36 kB/s przy wysyłaniu. Jeżeli dodasz do tego trochę górki wynikającej z różnych warstw 
i protokołów, efektywna przepustowość Twojej linii będzie trochę niższa.
Ponadto, weź pod uwagę, iż każdy pakiet ściągnięty musi być potwierdzony drugiej stronie,
tak więc powinieneś zawsze konfigurować maks. prędkość wysyłki odpowiednio poniżej
szerokości pasma wychodzącego (tak mniej więcej o 3-6 kB/s).

<p>
<em>Maksymalna liczba połączeń</em>: określa maksymalną liczbę połączeń (gniazd), jaką
chcesz, żeby eDonkey wykorzystywał naraz. Zauważ jednak, że jest to jedynie 'rekomendacja'
dla eDonkey'a, rzeczywista liczba połączeń może na krótki okres czasu przekroczyć podaną
liczbę. Domyślna wartość to 45. Ale, jeżeli używasz systemu *nix, a nie jakiegoś 
porąbanego systemu Microsoftu, powinieneś zwiększyć tą liczbę do około 350-550.

<em>Katalog dla przychodzących</em>: to jest katalog, do którego pliki będą przenoszone
po zakończeniu ich ściągania. Nie zaleca się używania do tego celu dysku sieciowego.

<em>Katalog tymczasowy</em>: to jest katalog, w którym Twoje pliki są przechowywane 
podczas ich ściągania. Jeżeli masz wystarczająco dużo miejsca, ustaw te dwa katalogi 
na jednej partycji. Katalog tymczasowy i dla przychodzących powinny być różnymi katalogami.

Jest jeszcze wiele innych opcji, ale te są najważniejsze. Znajdziesz ich więcej w menu
pod prawym klawiszem myszki na stronach ściągania i serwerów.


<sect1> Zarządzanie listą serwerów (tylko eDonkey2000)

<p>
<bf>Ta sekcja dotyczy tylko eDonkey2000, a nie Overnetu. Overnet jest siecią bezserwerową.</bf>

<p>
Sieć eDonkey nie ma serwerów centralnych, jak stary system Napster,
czy inne podobne systemy, ale i nie jest całkowicie bezserwerowa, jak
Gnutella. Każdy może otworzyć eDonkey'owy serwer, i wiele z tych serwerów
ma dynamicznie przydzielanie IP, które się często zmieniają.

<p>
To oznacza, że musisz się przykładać do pilnowania swojej listy serwerów
i uaktualniać ją regularnie.

<p>
Po kliknięciu prawym klawiszem myszki w oknie listy serwerów dostaniesz menu,
z którego możesz zaciągnąć nowe serwery poprzez HTTP ze stron z listami serwerów.
Zostaną one dodane do Twojej własnej listy serwerów.

<p>
Zawsze jest kilkaset serwerów edonkey'owych online.

<p>

<bf> DO ZROBIENIA: </bf>

Opcje listy serwerów ---
Zawsze bądź podłączony ---
Nieczynne serwery ---


<sect1> Wyszukiwanie

<p>
Aby rozpocząć wyszukiwanie, wpisz swoje słowo(a) w toolbarze i kliknij
przycisk 'GO'. Otworzy Ci się zakładka wyszukiwania, osobna dla każdego 
wyszukiwania.

<p>
eDonkey2000: Serwer, do którego jesteś podłączony, odpowie w czasie
pomiędzy jedną a wiele sekund (sorki za takie sformułowanie, ale 
niektóre serwery są przeładowane i naprawdę potrzebują trochę czasu
na odpowiedź, głównie ze względu na przepustowość pasma), tak więc
uzbroj się w cierpliwość. Jak już dostaniesz wynik wyszukiwania 
(brak znalezionych plików to też wynik), możesz kliknąć
<em>rozszerz</em>, aby zapytać kolejne pięć serwerów.
Klikaj dalej, aby przeszukać kolejne.

<p>
Overnet: Overnet nie wykorzystuje serwerów, ale i tak wyszuka to, co chcesz.
Overnet jest siecią zdecentralizowaną, tak więc czasami mogą się zdarzyć kolejne
wyszukiwania tego samego.

<p>
Kliknij podwójnie na pozycjach, żeby rozpocząć ich ściąganie, ewentualnie
możesz użyć menu spod prawego klawisza myszki.

<p>
<em>Uwaga:</em> Nie ma, i nie będzie klawisza <em>rozszerz na wszystkie 
serwery</em>, a to dlatego, że serwery prowadzone przez użytkowników donkey'a
nie są w stanie udźwignąć ciężaru zapytań wszystkich użytkowników do wszystkich 
serwerów, tak, jak to robił eDonkey Bot pod Windows. Sieć była wtedy
w bardzo ciężkim stanie, i zepsuła humor bardzo wielu adminom serwerów,
zmuszając ich do ograniczania liczby maksymalnej liczby użytkowników dzień
po dniu. Nie proś o implementację takiej funkcji: nie zrobię tego.

<p>
Jeśli będziesz szukał czegoś, co zwróci dużo wyników (np. 'mp3'), zauważysz,
że dostajesz tylko 200 wyników na raz ze swojego głównego serwera. Jeżeli
jest dostępnych więcej wyników, aktywny stanie się przycisk 'więcej', 
z pomocą którego możesz pobrać kolejne 200 wyników.

<p>
Możesz dodawać pozycje do 'czarnej listy'. Pozycje takie nie będą pokazywane
w jakichkolwiek przyszłych wyszukiwaniach. Lista ta przechowywana jest w pliku
'gui_blacklist' w podkatalogu '.ed2k_gui/' Twojego katalogu domowego.

<p>
GUI ma także możliwość odfiltrowywania plików zawierających pewne słowa lub
podciągi (podciąg to zwyczajnie sekwencja znaków, podczas, gdy słowo to sekwencja
znaków otoczona z obu stron znakami rozdzielającymi, jak np. spacjami czy nawiasami).
Będziesz musiał utworzyć lub wyedytować plik 'gui_filters' w podkatalogu '.ed2k_gui'
swojego katalogu domowego (zauważ, że jest to katalog ukryty, tak więc może się 
nie ukazywać w Twoim menadżerze plików, o ile nie każesz mu ich pokazywać).
Plik ten powinien zawierać dokładnie jedną frazę filtrowania na linię. Jeśli linia
rozpoczyna się od '*' (gwiazdka), GUI odfiltruje wszystkie wyniki wyszukiwania
zawierające daną frazę <em>jako całe słowo</em>. W przeciwnym wypadku podana
fraza traktowana będzie jako podciąg. Na przykład:

<tscreen><verb>
polski
polish
*pl
*seks
</verb></tscreen>

w Twoim pliku filtrów odfiltruje wszystkie wyniki zawierające 'pl' i 'sex' jako 
słowa (jak np. 'seks w toalecie (pl).avi'), ale nie odfiltruje takich wyników,
jak np. 'planowanie seksowne.txt'.


<sect2> Inne sposoby wyszukiwania plików i powiadamiania znajomych o plikach udostępnianych

<p>
Jednym ze sposobów wyszukiwania plików w sieci Donkey2000 jest przeszukiwanie sieci
opisane powyżej. Jednak nie zawsze jest to najlepszy sposób na odnalezienie pliku,
ponieważ ...

<itemize>
  <item> pliki mogą być oszukane (np. wystawiony pod jedną nazwą, a będący w rzeczywistości
  czymś kompletnie innym)</item>
  <item> nie zawsze wiesz o pliku wszystko to, co chcesz wiedzieć (np. jakość pliku,
  lub wersja językowa)</item>
  <item> serwery czasami są przeciążone i wyszukiwanie może być uciążliwie powolne</item>
</itemize>

<p>
Dobrą wiadomością jest to, że każdy plik w sieci Donkey2000 posiada swój unikalny identyfikator, składający się z 'hasza' (bardzo, bardzo duża liczba) unikalnego dla każdego pliku, oraz z jego rozmiaru. Te dwie porcje informacji są wystarczające, żeby eDonkey odnalazł konkretny plik w sieci.
Przez podanie tej informacji możesz na przykład powiedzieć znajomemu, że udostępniasz jakiś plik, a on/ona będzie w stanie znaleźć ten plik bez używania wyszukiwania.
Informacja ta zwykle jest przekazywana jako tzw. 'link ed2k'. Link ed2k wygląda tak:

<tscreen><verb>
ed2k://|file|jakiś_fikcyjny_przykład.mp3|3949232|ab349abf7b531c21980a0f22eeef7e21|
</verb></tscreen>

Pierwszy parametr to nazwa pliku, drugi to rozmiar pliku w bajtach, a trzeci to hasz pliku w formie szesnastkowej, składający się zawsze z dokładnie 32 cyfr, od 0 do 9 i od a do f.

<p>
W liście pobierań, liście wyników wyszukiwania i liście udostępnianych plików, możesz kliknąć prawym klawiszem myszki i wybrać opcję 'zapisz link ed2k do logu/schowka'. Opcja ta skopiuje link ed2k związany z wybranym plikiem do schowka.

<p>
Jeżeli nie wiesz, jak użyć linków ed2k, które otrzymałeś od znajomych, skonsultuj się z sekcją Pytania i Odpowiedzi.

<p>
Są specjalne strony kolekcjonujące i publikujące linki ed2k. Plusem używania tych linków jest to, że często te pliki są szeroko dostępne, i w związku z tym można je łatwo i szybko ściągnąć, poza tym często jest dostępna dodatkowa informacja o plikach.

<p>
Tutaj masz kilka stron, od których możesz zacząć:

<itemize>
  <item><htmlurl url="http://www.google.com/search?hl=en&amp;ie=ISO-8859-1&amp;q=sharereactor&amp;btnI=I%27m+Feeling+Lucky" name="ShareReactor"></item>
  <item><htmlurl url="http://www.filenexus.com" name="FileNexus"></item>
  <item><htmlurl url="http://www.google.com/search?q=ed2k%20links" name="google dla 'ed2k links'"></item>
  <item><htmlurl url="http://www.varkoume.com/donkey/index.php" name="music donkey">
</itemize>


<p>
Poza tym są silniki przeszukujące sieć eDonkey2000, przechowywujące wyniki wyszukiwania, dzięki czemu możesz od razu się dowiedzieć o dostępności danego pliku. Spróbuj
 <htmlurl url="http://jigle.com" name="Jigle"> lub
 <htmlurl url="http://www.filedonkey.com" name="filedonkey">.


<sect1> Zarządzanie pobieraniem

<p>
<bf>Co oznaczają kolory 'kropek' po lewej:</bf>
   <tscreen><verb>
   biały      ten plik jest wstrzymany, w kolejce lub haszowany.

   zielony    ten plik jest całkowicie dostępny w sieci, a także
   lub        ściąganie jego jest włączone. Oznacza to, że plik
   niebieski  jest albo ściągany, albo czekamy na slot pobierania
              u kogoś ('Szukam').

   czerwony   ten plik aktualnie nie jest osiągalny na sieci
              (ewentualnie nie możemy znaleźć żadnego źródła),
	      albo też wystąpił jakiś błąd podczas ściągania
	      (jak np. brak miejsca itp.).

   purpurowy  ten plik jest aktualnie nie całkiem dostępny na 
              sieci, ale znamy źródła fragmentów pliku, których
	      jeszcze nie mamy.

   żółty      ten plik jest aktualnie nie całkiem dostępny na
              sieci, a wszystkie fragmenty dostępne już mamy.
   </verb></tscreen>

<p>
<bf>Co oznaczają kolory na pasku postępu:</bf>
   <tscreen><verb>
   czarny     masz już ten fragment (dobrze)

   zielony    nie masz jeszcze tego fragmentu, ale
   lub        znamy przynajmniej jedną osobę, która
   niebieski  go ma (dobrze). Im ciemniejszy kolor,
              tym lepiej.

   czerwony   nie masz tego fragmentu, i nie znamy
              nikogo, kto by go miał (źle). Jedyne
              wyjście, jakie masz, to czekać.
	      
   biały      nie oznacza nic. Jeśli pobieranie
              pliku jest wstrzymane, wszystkie części,
	      których nie masz, są na biało.
   </verb></tscreen>

<p>
<bf>Co oznaczają poszczególne stany pobierania:</bf>
   <tscreen><verb>
   Pobieram      tak jak pisze :)

   Szukam        eDonkey aktualnie nie ściąga tego pliku,
                 ale szuka jego źródeł (=innych ludzi, 
		 którzy go mają) i czeka w kolejkach innych
		 ludzi na swoją kolej ściągania.
		 To jest normalne, a ten stan będziesz
		 widział najczęściej. Nie oczekuj 
		 natychmiastowych pobierań. Zazwyczaj
		 będziesz musiał poczekać, zanim zaczniesz
		 od kogoś ściągać, bo takich, jak Ty jest
		 bardzo wielu.
   
   W kolejce     Ten plik jest w lokalnej kolejce, co oznacza,
                 że eDonkey ani go nie ściąga, ani nie szuka
		 dla niego źródeł.
		 Taka sytuacja może się przydarzyć w kilku
		 przypadkach. Na przykład:

		 (a) eDonkey już używa dużej ilości połączeń
		     dla innych plików i w tym momencie
		     zabrakło ich dla tego pliku. Zwiększenie
		     wartości 'maks. liczby połączeń' może
		     tutaj pomóc.

		 (b) masz już aktywnych dużo pobierań, i poszukiwanie
		     nowych źródeł nie ma zbyt wiele sensu.
		     Spróbuj nadać takiemu pobieraniu wysoki
		     priorytet, powinien wtedy zacząć szukać
		     (o ile rzecz jasna większość pozostałych
		     pobierań ma priorytet niski lub normalny).

   (Haszuję...)  To oznacza, że nie znamy stanu dla tego pliku.
                 Zdarza się to zwykle tuż po podłączeniu GUI do
		 jądra, ewentualnie przez kilka sekund po ukończeniu
		 ściągania bloku. Nie powinieneś widzieć tego 
		 stanu (_z_ nawiasami!) zbyt długo.

   Haszuję...    To (bez nawiasów) oznacza, że eDonkey haszuje
                 Twoje pliki aby się upewnić, że nic nie jest
		 uszkodzone itp. Zdarza się to zaaz po uruchomieniu 
		 jądra, i może zająć chwilkę (zależnie od Twojego
		 systemu).

   Wstrzymany    Wstrzymałeś ten plik. Nie jest w tej chwili aktywny
                 i nie będzie ściągany. Aby ponowić ściąganie, 
		 wznów go.

   Za mało       To oznacza, że brakuje miejsca albo na partycji
   miejsca       tymczasowej, albo na partycji docelowej. Weź pod
   na dysku      uwagę, że może eDonkey'owi zabrać chwilę czasu
                 zauważenie, że zwolniłeś trochę miejsca.
   </verb></tscreen>


<bf>DO ZROBIENIA:</bf>
downloading ---
pausing ---
resuming ---
download priority ---
x.part filenames ---
and the temp directory

<sect1> Zarządzanie wysyłaniem

<p>
Nie ma nic do zarządzania. Możesz sobie popatrzeć i się dobrze czuć.

<p>
Nie możesz przerwać wysyłania, i nie możesz nic nie udostępniać w eDonkey. 
Pamiętaj: wszystko, co sam ściągasz, ktoś inny potrzebuje ściągnąć od Ciebie.
Gdyby nikt nic nie wysyłał, nikt by nic nie ściągnął. Ten nikt to także Ty.

<p>
W zamkniętej sieci, jak eDonkey, zasada jest prosta:
ściągnięte ogółem = wysłane ogółem.

Zauważ, że wysyłanie nie zabiera Ci pasma ściągania. Pasma te są bardziej lub
mniej niezależne od siebie.


<sect1> Sztuczki z 'zaawansowanymi komendami'
<p>
'Zaawansowane komendy' to są parametry z linii poleceń, które możesz wysłać
z GUI do jądra. Możesz je wysyłać ze strony o programie.

<p>
Jeśli donkey się uruchomił i próbuje połączyć się z dowolnym serwerem,
a Ty chcesz się połączyć z jednym konkretnym serwerem, kliknięcie
'rozłącz' często nie odnosi skutku. Idź do strony o programie, wciśnij
"x" i wciśnij kilka razy 'wyślij zaawansowaną komendę'. Będziesz
mógł wtedy podłączyć się do wybranego serwera w ciągu jednej lub
dwóch sekund, nawet, gdy 'Zawsze pozostań podłączony' jest zaznaczone.

<p>
Jeśli szybko potrzebujesz pasma, wpisz <em>dumax 1 1</em> aby ustawić
prędkości ściągania i wysyłania na 1 kB/s. Gdy już skończysz, ustaw z powrotem
coś w stylu <em>dumax 0 10</em> (czy jak tam chcesz).


<sect1> Używanie linków ed2k

<p>
Możesz rozpocząć ściąganie z linku ed2k poprzez jego przekazanie do GUI. Masz do
wyboru cztery metody na dokonanie tego.

   <sect2> Przeciągnij i Upuść

   <p>
   Możesz po prostu przeciągnąć link ed2k ze swojej przeglądarki do okna GUI.
   Linki do serwerów zostaną dodane do listy serwerów. Linki do plików albo
   rozpoczną natychmiastowe ściąganie, albo wylądują na stronie wyszukiwania
   (w zależności od Twojego wyboru w opcjach). Metoda ta powinna działać z 
   dowolną przeglądarką (no, może z wyjątkiem lynx'a).

   <sect2> Schowek

   <p>
   Możesz też skopiować jeden lub więcej linków do schowka i wkleić je do toolbara.

   <sect2> potok (dla zaawanowanych użytkowników)

   <p>
   Potok jest czymś w rodzaju pliku, ale nie do końca. Pojawia sie jako plik w katalogu,
   ale jest bezpośrednio połączony z GUI, które natychmiast otrzyma wszystko, co się
   tylko w tym pliku pojawi. To stwarza możliwość użycia komend systemowych w celu
   przekazania linków ed2k do GUI, ewentualnie przekazywania ich przez zewnętrzne
   programy. Na przykład:

   <tscreen><verb>
   %echo "ed2k://|file|głupi_przykład.txt|42321|abababababababababababababababab|" > ~/.ed2k_gui/pipe
   </verb></tscreen>

   Mechanizm potoków używany jest także przez inne programy, jak np. obsługa linków
   w KDE i Gnome (patrz poniżej).
   (zwróć uwagę , że w starszych wersjach GUI potok leżał w /tmp/.ed2k_gui_socket)

   <sect2> obsługa linków w KDE i GNOME

   <p>
   Od wersji 0.5.0 wzwyż, możesz zarejestrować GUI jako obsługę linków w środowisku
   KDE lub GNOME. Dokonać tego możesz ze strony ustawień. Weź pod uwagę, że nawet, jeśli
   używasz Gnome2, możesz musieć również zainstalować obsługę dla Gnome1, ponieważ
   nie wszystkie aplikacje są aplikacjami Gnome2 (jak np. Galeon).

   <p>
   Opcja ta spowoduje, że kliknięcie linku ed2k:// w przeglądarce dołączonej do środowiska
   (konqueror lub galeon) spowoduje uruchomienie GUI z linkiem ed2k jako pierwszym
   parametrem.

   <p>
   Niestety, metoda ta nie zadziała z przeglądarkami, które nie biorą pod uwagę
   Twojego środowiska, tak więc najprawdopodniej nie zadziała z takimi przeglądarkami,
   jak np. Mozilla, Opera, czy Safari. Z tymi przeglądarkami proszę używać metody
   przeciągania i upuszczania (drag'n'drop).


<sect1> Skróty klawiaturowe

<p>
Niektóre z najważniejszych funkcji z wyskakujących menu mogą być wybrane
także za pomocą skrótów klawiaturowych. Skróty te aktywne będą tylko wówczas,
gdy skupienie jest na jednym z rzędów w liście (czyli np. gdy właśnie wybrałeś
któreś z nich).

<sect2> Skróty klawiaturowe na liście pobierania

<p>
<tscreen><verb>
 skrót           funkcja
========         ========

    l            ustaw wybrane na niski priorytet
    n            ustaw wybrane na normalny priorytet
    h            ustaw wybrane na wysoki priorytet

    p            wstrzymaj wybrane
    r            wznów wybrane

    a            zaznacz wszystkie
    u            odznacz wszystkie

 <delete>        anuluj wybrane
</verb></tscreen>

<sect2> Skróty klawiaturowe na liście wyszukiwania

<p>
<tscreen><verb>
 skrót             funkcja
========           ========

    b              dodaj wybrane wyniki do czarnej listy
    d              pobierz wybrane wyniki
    c              pobierz wybrane wyniki z inną nazwą pliku
 n, s, a           ustaw skupienie na okienku wprowadzania frazy wyszukiwania
 <enter>           pobierz wybrane wyniki
 <shift>+<enter>   pobierz wybrane wyniki z inną nazwą pliku
</verb></tscreen>


<sect2> Skróty klawiaturowe na liście serwerów

<p>
<tscreen><verb>
 skrót             funkcja
========           ========

    c              podłącz się do dowolnego serwera z wybranych

    l              ustaw wybrane serwery na niski priorytet
    n              ustaw wybrane serwery na normalny priorytet
    h              ustaw wybrane serwery na wysoki priorytet

    a              zaznacz wszystkie
    u              odznacz wszystkie

</verb></tscreen>

<sect2> Skróty klawiaturowe na stronach wysyłania, stanu, opcji, o programie, udostępnianych i statystyk

<p>
Żadna z tych stron nie ma jeszcze żadnych zdefiniowanych skrótów klawiaturowych.




<sect>Questions and Answers, Tips'n'Tricks<p>

<sect1> Frequently Asked Questions (FAQ)
<p>

For now, please look at the FAQ (available in English, German, and French)
<htmlurl url="http://ed2k-gtk-gui.sourceforge.net" name="on the project homepage">.

<sect1> Using a http-proxy to fetch serverlists via http
<p>
If you have to use a http proxy server for web access and want to make the GUI use
this proxy server whenever you fetch new serverlists via http, set the environment
variable 'http_proxy' before you start the GUI from the shell (=command line):

<tscreen><verb>
export http_proxy=http://wwwcache.somehost.net:8080/
</verb></tscreen>

Note the <bf>slash at the end</bf>. Other programs like wget and lynx will honour this
setting as well if the variable is set. You can check if the variable is set with
the <tt>echo $http_proxy</tt> command.

The best thing is probably to put the above export-line at the end of your &tilde/.bashrc file,
then you don't have to type it in every time you start the GUI, but the environment variable
'http_proxy' will automatically be set every time you login.

<sect1> Corruption found in XYZ in at N

<p>

This means that after completing a part of the file, the checksum ('partial hash') of the
this part of the file on your harddrive does not match the checksum that it should have.

<p>

This is nothing to worry about. eDonkey/overnet has realised the problem and will
download this part again.

<p>

Data corruption just happens. There is nothing you can do about it. Don't worry about it.
However, if this happens very very often with many different files, there might be some
hardware problem on your side (faulty RAM, faulty harddrive, faulty controller, faulty
IDE cable, problems due to overclocking, overheated system, problems with the filesystem,
etc).


<sect1> Changing the default browser that the GUI invokes

<p>

By default, the GUI will search for a browser on your system and use the first it can
find (of Galeon, Konqueror, Mozilla, Netscape, Opera). If you prefer a specific browser,
then you should set the environment variable 'BROWSER' before you start the GUI from the
shell (=command line):

<tscreen><verb>
export BROWSER=/usr/bin/konqueror
</verb></tscreen>

You need to specify an absolute path to the binary. You can find out this path by using
either the <tt>whereis konqueror</tt> or the <tt>which konqueror</tt> command (note:
<tt>which</tt> might not always find your binary because it has hard-coded paths).

The best thing is probably to put the above export-line at the end of your &tilde/.bashrc file,
then you don't have to type it in every time you start the GUI, but the environment variable
'BROWSER' will automatically be set every time you login.


<sect1> Customising the preview script

<p>
The latest GUI version lets you 'preview' ongoing downloads before they are finished if
your core communicates the x.part temp filenames to the GUI (all recent versions should
do that) and if your core is running on your local box.

If you run the 'preview' function for the very first time, the GUI will write a default 
preview shell script to your harddrive. This preview script is located at <tt>~/.ed2k_gui/ed2k_gui_preview</tt>.
You can open it in a normal text editor and customise it according to your own preferences.

Here is how it works: The GUI will call the script and will pass the location of the partially downloaded file
to the script as parameter. In the script this appears as <tt>$*</tt> (which basically just means 'replace with
all parameters that I got'). The GUI will also set the environment variable <tt>ED2K_PREVIEW_EXTENSION</tt> to
contain the file extension of the file in lower case (as you can't really easily tell what type of file it is from
a name like /mnt/temp/34.part).

Now the script takes the file extension and looks if it matches any of the preconfigured cases in the <tt>case</tt>-
statement of the script. If it does match, then the variable <tt>PREVIEW_BIN</tt> is set to contain the name of the
program that should be used to preview this file, including any parameters for that program. Then the program for
the filetype is run. As you can see it's dead easy to change your favourite player or add new extensions.

After the preview program has stopped, you will need to press the Enter key in order to close the xterm window which
has been opened to show the output of any preview programs (and that lets you interrupt previewing with Control-C, for
example in the case of mpg123/ogg123).

If you do not want the script to wait after a preview has finished, remove these two lines from the script:
<tscreen><verb>
echo "Finished. Hit <enter> to close this window"
read
</verb></tscreen>

If you want the xterm window to close right away after calling the preview program, remove the two lines above and modify
the line calling the preview program like this:
<tscreen><verb>
$PREVIEW_BIN "$*" &
</verb></tscreen>


<sect1> Using ed2k-links

<p>
Please refer to the section on ed2k-links in the 'Usage' chapter of this documentation.


<sect1> Exec command on download complete

<p>
TODO, see FAQ

<sect1> International characters are not displayed properly in the GUI

<p>
If this is in filenames or servernames, then this is probably due to your
selected locale. You need to figure out how to change your locale to something
appropriate. If you change your locale anyway, please do change it by all means
to use the UTF8 charset, and not ISO-8859-X (e.g. de_DE.UTF8 or similar).

<p>
However, both eDonkey2000 and Overnet are completely locale un-aware, in the sense that
they do not tell the GUI or other clients in which character set a string was encoded.
So you will never really be able to see a filename within the search results exactly the
same way that the other person sees it with any other person in any language. This should
not be a big problem though usually.


<sect1> DNS lookup for servers

<p>
TODO, see FAQ


<sect1> I have a mouse wheel and weird things happen. Why?

<p>
Why? I don't know. Possibly a GTK+ bug. Go to the options page and make sure the
'disable double-click in lists' option is set. That should solve your problems.


<sect1> The 'preview' function is always disabled - what's wrong?

<p>
The 'preview' function of the downloads list right-click pop-up menu
is disabled in two cases:
<p>
(1) no items are selected
<p>
(2) the GUI thinks that the core is running on another computer. The GUI will
assume that this is the case when you are using a differen hostname/IP than
'localhost' or '127.0.0.1' as the hostname of the core (note: more sophisticated
checking for local interface addresses/hostname has been disabled due to user
requests). So for now everything that is not 127.0.0.1 or localhost is non-local.



<sect1> Using several eDonkeys from different computers, all sharing one line/DSL router

<p>
Problem: You can only configure your router to IP-forward a port to exactly one IP address,
so the other boxes can't use the same port and have a high ID.
<p>
Solution: Run each donkey client on a different port (e.g. one on 3662, one on 4662,
one on 5662, one on 6662, etc.), and configure your router to IP-forward each port to the
right IP. Note: you only need to forward one tcp port per client in order to get a high ID.





<sect1> Having multiple cores

<p>
You might have multiple cores running that you want to control either at the same time or at different times.
In this case you probably want to use the '-n' command line option of the GUI, which will run the GUI in
another 'instance', meaning that it will use a completely different set of GUI configuration files. For the
first core, just start the GUI normally. For the second core, pass the '-n 2' option to the GUI. This way
your statistics etc. will be kept clean and separate and you can also configure the GUI to auto-connect to
the core in question on startup.

<sect1> Multiple GUI connections to one core

<p>
This is a problem. A core can only be controlled by one GUI at a time.

<p>
However, there is an easy and free way to solve this problem:
 use <htmlurl url="http://www.uk.research.att.com/vnc/" name="VNC">.

Install a VNC server on the machine where the core runs, and VNC viewers (available for all kinds of platforms)
 on the systems where you want to control the GUI and the core from. Now run the GUI on the machine where the core
 runs, and remote control the GUI on that machine using VNC. One VNC desktop can be shared by multiple users, so
 this should solve your problem. In theory at least, as I haven't tried it myself yet.


<sect1> A small starting skript

<p>
This is my (Thomas) starting script for the donkey, as I was tired of
 changing to the correct dir manually every day... It fetches a fresh
 serverlist, starts the core, waits and then starts the GUI.

<p>
<code>
&num;!/bin/sh
&num; E-Donkey 2000 Starting Script
&num; Start the donkey from its home dir, replace this with your donkey directory!
cd &tilde;/ablage/edonkey
&num; Get server list, try to be tricky
mv server.met _server.met
wget http://ocbmaurice.dyndns.org/pl/slist.pl/server.met?download/server-max.met || cp _server.met server.met
rm _server.met
&num; Start eDonkey in a named screen session (You need GNU screen!)
screen -dmS donkey -- ./donkey - !
&num; Otherwise:
&num; ./donkey - ! &amp;
&num; Wait a little...
sleep 5
&num; start GUI
ed2k_gui -c
</code>


<sect1> Starting the core in the background or via telnet/ssh

<p>
Usually you can just start programs with a '&' at the end in the shell and they will happily run in the background.
With the eDonkey command line client, however, this will not work properly. You might have a similar problem if you
want to start the donkey from a telnet/ssh (don't use telnet, use ssh!) session, but keep it running even if you
log out. 'nohup' doesn't work with the donkey on many systems either.

<p>
For this kind of magic you need the 'screen' utility, which is probably already installed on your system. Check out
 the man page with <tt>man screen></tt>. Here is the summary:

<p>
Start the donkey with

<tscreen><verb>
cd /home/joe/ed2k/
screen -dmS donk ./donkey0.50.1 - !
</verb></tscreen>

The 'cd' is to make sure that the core reads and writes its config files always from/to the same
directory (i.e. /home/joe/ed2k/ here). If you don't do this, the core will write its config
files to the current working directory, which will probably cause confusion at some point.

The '-' option is to put the donkey in GUI mode, and the '!' option is to make the donkey accept commands only
via the GUI, but not from the command line, which you need in order to shut down the core properly from the GUI.

Leave the screen by first pressing Control-A, then Control-D. You should be back in the shell now.

You can go back to the donkey screen at any time with

<tscreen><verb>
screen -d -r donk
</verb></tscreen>

then.




<sect1> All servers say that I am firewalled, but I am NOT firewalled!

<p>
This can have multiple causes. Note that 'firewalled' is not to be taken literally.
'Firewalled' simply means that the other server could not successfully connect to
your client on the configured client port (which is 4662 by default).

<p>
One reason why this could happen is that you are really running a firewall,
either on your computer, or on your gateway/router, and that firewall blocks
the incoming connection attempt from the server.

<p>
Another reason could be that you are using a DSL router or some other router/gateway,
and this router does NAT (= Network Address Translation = IP Masquerading =
Internet Connection Sharing/ICS). NAT is used so that multiple computers on a small
private network can share one internet connection. In this case the 'public IP' from
your ISP is assigned to your router, and all your computers on the private network get
a 'private IP' (e.g. 192.168.x.x or 10.x.x.x). If this is the case, you will need to
configure port-forwarding on the router. You will need to forward tcp port 4662 to the
IP of the computer where the donkey is running. If you have multiple donkeys running on
your network, run them all on different ports and configure port-forwarding for each of
those ports to a different private IP.

<p>
Finally, some servers are misconfigured and do not allow outgoing connections to
non-standard ports. These servers will always tell you you are firewalled, even though
they are firewalled, and not you. This is likely to happen occasionally if you run your
donkey on a different port than the standard port (tcp 4662). However, if really all
servers tell you that you are firewalled, then this is not likely to be the cause of it.


<sect1> I need to use a SOCKS proxy, but the command line client does not seem to support this

<p>
Unfortunately the current command line client does not support a SOCKS proxy server, but you
could try using <htmlurl url="http://tsocks.sourceforge.net/" name="tsocks">, which will provide SOCKS proxy
support for programs that don't have that natively. (It does that by means of a pre-load
library that intercepts the network system calls to connect() and 'redirects' it to a
socks proxy etc.).


<sect1> If your DSL/cable connection gets unresponsive and surfing the web gets a pain

<p>
You might find that after running the donkey for a while your internet connection seems
to get horribly slow, or at least very unresponsive: connecting to a webserver or checking
your e-mail suddenly takes a couple of seconds instead of a couple of milliseconds.

First off: if this can be reproduced with specific servers independent of whether the donkey
is running or not, then the problem is likely to lie elsewhere. If you are using PPP-over-Ethernet
(PPPoE) then you should double-check your network interface's (pppX or ethX) MTU settings (as an
example). If the problem only occurs when the donkey is heavily uploading, read on.

Here is <bf>the problem</bf> in a nutshell: your DSL router has a built-in packet queue, which works quite simple:
the first packet that comes in goes out again first (FIFO). If the packet queue on your router is full, then
the router will just silently drop packets. This is a normal thing to happen, and the TCP protocol deals with
that. The problem is that for each TCP packet that you receive your computer needs to send a small acknowledgment
(ACK) packet to the sender so the sender knows that the data arrives. This mechanism is used to compensate for
lost packets and adjust speeds dynamically with respect to the available network bandwidth. Now if your router's
packet queue is filled up because of the donkey's upload and you want to connect to a websever, then the connection
request (SYN packet) gets sent to the router, which will put it into its queue. But if the queue is full, it will
take up to a couple of seconds until that SYN request is actually sent out to the webserver you want to connect to,
because your router usually can't distinguish between important and unimportant packets. And the same thing is going
to be repeated for each other packet that you send out (e.g. the HTTP-GET request from your web browser).
That's why things get sluggish. What you need to take into account is that even if your upload line speed is
technically 128kbps = 16kB/s (as an example), some of that is used up by administrative information
(headers) of the various protocols involved. So your effective upload line speed is lower,
and your upload can easily fill up even if it looks like it is safely below the upper limit.

<bf>What to do?</bf>

Quite simple: you want something called Quality-of-Service (QoS). Later 2.4.x Linux kernels have this stuff already
built in, you just need to make sure that your kernel has been compiled with full QoS support (in-built or as modules).

The principle is simple: make sure that router's packet queue never fills up. In order to achieve this, you want to
queue all packets that need queueing on your Linux box instead of on your router (note: this will usually not happen,
because the connection between your linux box and the router is so much faster than the one between the router and
the rest of the internet, so the linux kernel will usually just send everything out to the router immediately and
without delay). Now that the packet queue is administered by your linux kernel, you can tell linux to do all
kinds of neat things. For example, you can tell it to give some packets priority over others. Then those packets will
'jump the queue' and be sent out immediately even if other (less important) packets are waiting in the queue. Personally,
I have marked all traffic to the 'interactive' ports 21,22,23,110 (but not 80 because many windows people configure
their donkey to use port 80) and all traffic to my favourite websites and all 'small packets' (SYN or ACK packets usually)
with the highest priority.

A good description by Emmanuel Roger of how to set up this stuff can be found here:
<htmlurl url="http://www.prout.be/qos/QoS-connection-tuning-HOWTO.html" name="http://www.prout.be/qos/QoS-connection-tuning-HOWTO.html">.

From my own experience I would advise you to stay clear of other HOWTOs (like the
<htmlurl url="http://www.tldp.org/HOWTO/ADSL-Bandwidth-Management-HOWTO/index.html" name="ADSL-Bandwidth-Management-HOWTO">),
unless you want a challenge. This and most other HOWTOs that I have found on this issue require you to patch
your kernel source and your iptables source
(e.g. for the IMQ-device), which proves especially difficult if the patches mentioned there don't work with
the latest kernel/iptables releases....

Here's a snippet from my iptables start-up script, in case anyone is interested:

<code>
	##########################################################
	#
	# Quality of Service (QoS)
	#
	# from http://www.prout.be/qos/QoS-connection-tuning-HOWTO-4.html
	#
	##########################################################

	# reset

	tc qdisc del dev eth1 root 2>/dev/null > /dev/null


	# mark packets with size 0-500 (considered interactive traffic)
	#
	iptables -t mangle -A OUTPUT -m length --length 0:500 -j MARK --set-mark 3

	# mark UDP packets as important as well
	#
	iptables -t mangle -A OUTPUT -p udp -j MARK --set-mark 3

	# bigger packets will be marked data traffic
	#
	iptables -t mangle -A OUTPUT -m length --length 500:1500 -j MARK --set-mark 4

	# mark ssh/smtp/pop3 packets also as priority
	# (not http, due to many donkey people using port 80)

	for i in 22 25 110
	do
		iptables -t mangle -A OUTPUT -p tcp --dport "$i" -j MARK --set-mark 3
		iptables -t mangle -A OUTPUT -p tcp --dport "$i" -j TOS --set-tos Minimize-Delay
	done

	# mark favourite sites high priority traffic.
	#
	# slashdot(new) slashdot.org, www.ct.heise.de,
	#	edonkey2000, jigle.com, jabber.org
	#	google
	#
	for i in "66.35.250.150" "64.28.67.150" "193.99.144.71" \
			"198.77.34.120" "212.249.10.246" "208.245.212.108" \
			"216.239.39.101"
	do
		iptables -t mangle -A OUTPUT -p tcp -d "$i/255.255.255.255" -j MARK --set-mark 3
		iptables -t mangle -A OUTPUT -p tcp -d "$i/255.255.255.255" -j TOS --set-tos Minimize-Delay
	done

	# mark whole subdomains important
	#
	# amazon/imdb - sourceforge.net
	#
	for i in "207.171.166.0" "216.136.171.201"
	do
		iptables -t mangle -A OUTPUT -p tcp -d "$i/255.255.255.0" -j MARK --set-mark 3
		iptables -t mangle -A OUTPUT -p tcp -d "$i/255.255.255.0" -j TOS --set-tos Minimize-Delay
	done

	# create root cvq qdisc for our device eth1
	#
	tc qdisc add dev eth1 root handle 10: cbq bandwidth 10Mbit avpkt 1000 mpu 64

	# DL bandwidth = 576 kbits
	# UL bandwidth = 288 kbits
	#
	# Interactive class rate = DL bandwidth / 20 = 29
	# Data class rate = UL bandwidth - Interactive class rate = 259
	#
	# Let's make the latter a bit smaller just to be on the safe side
	# (we don't want a single packet ever to be queued on the router)
	#  => 190, which is much lower than suggested, but works best wor me
	#
	# (1500 is interface MTU?)
	#
	tc class add dev eth1 parent 10:0 classid 10:1 cbq bandwidth 10Mbit \
		rate 29Kbit allot 1500 prio 1 maxburst 10 avpkt 100 isolated weight 100

	tc class add dev eth1 parent 10:0 classid 10:2 cbq bandwidth 10Mbit \
		rate 190Kbit allot 1500 prio 8 maxburst 2 avpkt 1500 bounded weight 1500

	# tell kernel which class we want to send packets to

	tc filter add dev eth1 parent 10:0 protocol ip handle 3 fw flowid 10:1
	tc filter add dev eth1 parent 10:0 protocol ip handle 4 fw flowid 10:2
</code>


<sect1> "Couldn't create Temp File" error message

<p>
That seems to happen with the recent cores. The reason ist most likely that eDonkey/Overnet use
too many file descriptors (one filedescriptor for each open file and each active network connection),
that is more than you as normal user joe are allowed on your system.

<p>
You can check with

<tscreen><verb>
%ulimit -n
</verb></tscreen>

<p>
the number of open file descriptors your user is allowed in total (taking into account <em>all</em>
programs and processes that you are running currently).

You can change that limit by editing the file /etc/security/limits.conf (as root) and adding a line like this at the end:

<tscreen><verb>
tim     hard    nofile  4096
</verb></tscreen>

<p>
'tim' is the username you are using, 'hard' stands for 'hard limit', 'nofile' stands for
the number of open file descriptors allowed, and 4096 is the value (you might want a higher
value, but 4096 should be fine).

<p>
Now you need to check one more thing, which might be slightly different from distribution to
distribution. If you have a file <tt>/etc/pam.d/common-session</tt>, then make sure you have a
line like this in it:

<tscreen><verb>
session required        pam_limits.so
</verb></tscreen>

If you do not have a file like this, add or uncomment the above line in <tt>/etc/pam.d/login</tt>.
If you use gdm/kdm/xdm to login, then you should check whether <tt>/etc/pam.d/gdm</tt>,
<tt>/etc/pam.d/kdm</tt>, and/or <tt>/etc/pam.d/xdm</tt> have this line and add/uncomment it if required.

<p>
After you've edited that file, you need to re-login <em>'properly'</em> (log out from X and
re-login on the konsole or xdm/kdm/gdm). After that if you run 'ulimit -n' in an xterm window,
it should display the new limit and the problem should be solved.

<p>
<em>On Mac OS X</em> the default limit is apparently 256 file descriptors per user.
This is way too little for eDonkey2000/Overnet. You can change this limit by typing 

<tscreen><verb>
limit descriptors 4096			(to jest MacOSX'owy tcsh!)
</verb></tscreen>

on the command line and then starting either the GUI or the core from there (this is
because this setting is only inherited by child processes that you start, it doesn't change 
system wide). You can check your limit by typing 'limit' on the command line. 
(Thanks to anonymous nobody in forums for this).

<p>
The exact procedure might depend on your system/distribution. Let me know if this needs to be
solved differently on other systems.


<sect1> The GUI doesn't recognise my manually started core!

<p>
For one, did you pass the '-' command line options to the core when you started it? The '-'  command line option
tells the core to listen for a GUI on the specified aport. Without passing it, the GUI will not be able to connect
to the core, therefore the GUI only checks for a running core that has this flag as a command line option.

<p>
Secondly, the GUI expects the core binary to be called 'donkey*', 'overnet*', or 'cdonkey*'
(it only cares about the beginning of the name). If you renamed the program, the GUI will not find it (how would it?).


<sect1> I want to tunnel the gui-core connection via ssh, but the GUI insist on a local
running core if I use 'localhost' or '127.0.0.1' for the local end of the tunnel.

<p>
Two easy solutions: Either use one of the other non-localhost IPs of that box, for instance
the IP of your network card (e.g. 192.168.0.2), or edit your /etc/hosts file and add an
line like 'core.outerspace.world 127.0.0.1' and put 'core.outerspace.world' into the
hostname field of the 'Connect to.."-dialog.

<p>
This is an issue that is unlikely to be 'fixed', by the way, because the decision to insist
on a locally running core in case of 'localhost' has been made on purpose,
namely in order to facilitate joe average newbie user's getting-started procedure.

<p>
<bf>Please also note that the the 'running core detection' only works on GNU/Linux with a mounted /proc filesystem</bf>
at the moment. Users of other Operating Systems (e.g. *BSD, MacOSX) might want to send a patch to fix this :)


<sect1> I have found a bug - what do I do?

<p>
See if you can reproduce it and/or how to reproduce it.

<p>
Check whether the bug has already been reported, and if yes, if it has been fixed already.
Make sure you look at 'all' bugs in the bug-tracking system, otherwise you will be shown
only the open bugs, but not the fixed bugs.

<p>
If you know how to use CVS, please check out the latest GUI version from CVS to see if the
 bug is still present in the CVS version.

<p>
Submit the bug to the
 <htmlurl url="http://sourceforge.net/tracker/?group_id=61752&amp;atid=498271" name="project's bug-tracking system">
 with as much detail as possible. If you have a sourceforge account, please log in so that I can get back
 to you if I have further questions about the bug. Otherwise, please monitor the bug or check back from time
 to time to see if there are more questions.


<sect1> This GUI really makes me happy - how can I reward you?

<p>
Write me an e-mail. Positive feedback always makes me happy :-)

<p>
Also, I've now got an
 <htmlurl url="http://www.amazon.co.uk/exec/obidos/wishlist/1NL5R93EL1WA6" name="amazon.co.uk wishlist">
 and an
 <htmlurl url="http://www.amazon.de/exec/obidos/wishlist/3G88NU8L43WL6" name="amazon.de wishlist">
 in case you feel like getting me a small something
 for the millions of hours of work I've put into the GUI and the core ;)



<sect>Copyright

<p>

ed2k_gui Copyright 2001-2003 Tim-Philipp Müller , t.i.m at orange dot net


This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

<p>
</article>
