Aria2c
|
przemasisko |
Dodano 11-03-2012 17:33
|
Moderator
Posty: 550
Dołączył: 17/05/2010 13:56
|
W moim przypadku, żadne z powyższych poleceń nie pomogło.
Chyba, że trzeba również robić restart routera?
Trzeba będzie raczej dać za wygraną... |
|
|
|
hermes-80 |
Dodano 11-03-2012 17:44
|
VIP
Posty: 3676
Dołączył: 21/04/2009 11:24
|
Problem jest w tym że ldconfig wskazuje mylnie ten sam plik w dwóch miejscach:
Cytat [root@WNR3500 root]$ ldconfig -p |grep libpt
libpthread.so.0 (libc0) => /opt/lib/libpthread.so.0
libpthread.so.0 (libc0) => /lib/libpthread.so.0
biblioteka używana przez ariac2:
Cytat [root@WNR3500 root]$ ldd /opt/bin/aria2c | awk '{system("ls -l "$3)}'
-r-xr-xr-x 1 root root 68180 Sep 14 03:30 /lib/libpthread.so.0
I zmienna ścieżek bibliotek:
Cytat LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/opt/lib:/opt/usr/lib:${LD_LIBRARY_PATH}
wskazuje kolejność przeszukiwania katalogów zaczynając od /lib
dlatego aria2 pobiera bibliotekę, która nie działa.
Zmieniając kolejność katalogów - odpalam aria2 ale za to mam problem z komendami systemowymi.
Nie wiem jak mogę usunąć ten wpis w ldconfig.
Edytowany przez hermes-80 dnia 11-03-2012 18:44
===============================================================
Netgear WNR3500L v1
Podziękowania dla administracji Openlinksys.info!
|
|
|
|
krisan |
Dodano 14-03-2012 16:32
|
Power User
Posty: 207
Dołączył: 22/03/2011 11:48
|
Dopiero teraz zauważyłem, że tutaj jest druga strona w tym wątku
@hermes-80
Wykonaj czyste polecenie ldconfig które powinno odbudować/odświeżyć cache i sprawdź czy dalej masz podwójny wpis.
Ja nie mam u siebie zmiennej LD_LIBRARY_PATH ustawionej (po prostu jej brak). Wydaje mi się, że kolejność przeszukiwania ścieżek w Linuxie jest od lewej - więc kolejność twojej ścieżki budzi wątpliwość: najpierw przeszukuje biblioteki z firmware-a (/lib, /usr), później z optware (/opt/...).
Jeśli tak, to spróbuj przynajmniej chwilowo usunąć LD_LIBRARY_PATH i uruchom samo polecenie ldconfig - powinno odbudować cache.
Usunięcie /opt/etc/ld.so.cache i wykonanie ldcache u mnie odbudowuje cache.
|
|
|
|
hermes-80 |
Dodano 14-03-2012 17:09
|
VIP
Posty: 3676
Dołączył: 21/04/2009 11:24
|
Cytat Problem jest w tym że ldconfig wskazuje mylnie ten sam plik w dwóch miejscach: Jednak to jest jest chyba ślepa uliczka, bo więcej jest takich wpisów odnoszących się jednocześnie do tego samego pliku w różnych lokalizacjach - takie zadanie ma chyba ldconfig - zebranie wszystkich bibliotek.
Ale zahaszowałem zmienną LD_LIBRARY_PATH w pliku /opt/profile i odpala aria - problematyczna bibliotekę zasysa z /opt, a nie /lib - komendy systemowe działają jak na razie chyba - jeśli coś za szwankuje to napiszę.
Obecnie nie jest mi potrzebny program aria2 ale help się włącza czyli jest przypuszczenie, że działa - nie testuje dalej tego programu.
@przemasisko zrób to samo i wypowiedz się.
Dzięki za wskazówki @krisan .
===============================================================
Netgear WNR3500L v1
Podziękowania dla administracji Openlinksys.info!
|
|
|
|
krisan |
Dodano 14-03-2012 19:02
|
Power User
Posty: 207
Dołączył: 22/03/2011 11:48
|
@hermes-80
Właśnie to co zrobiłeś w /opt/profile jest najlepszym rozwiązaniem.
Ta zmienna nie powinna być ustawiona. Może też powodować "Bus error" lub "Segmentation fault".
http://tomatousb.org/forum/t-275444
Edit:
I jeszcze o możliwych innych problemach związanych z zmienną LD_.... i innymi:
Troubleshooting, p.1: http://tomatousb.org/tut:how-to-set-u...l-noobs#13
Edytowany przez krisan dnia 14-03-2012 19:10
|
|
|
|
przemasisko |
Dodano 14-03-2012 23:53
|
Moderator
Posty: 550
Dołączył: 17/05/2010 13:56
|
A już myślałem, że trzeba będzie zapomnieć o aria2c ;)
Dzięki @krisan. Potwierdzam, że wywalenie zmiennej LD_LIBRARY_PATH rozwiązało problem. Aria2 jak i inny soft działa prawidłowo.
Przy okazji jeszcze się zapytam o coś:
W temacie o transmission zamieściłeś skrypt trans-plhttp://openlinksys.info/forum/viewthr...post_98868
Jesteś pewny, że ta pętla działa prawidłowo?:
Cytat start)
RUN=`pidof transmission-daemon | wc -c`
if [ "$RUN" == "0" ]; then
logger Transmission starting ...
echo "Transmission starting ..."
$TPATH/transmission-daemon -g $TCONF
echo "Done!"
else
echo "Transmission is already running!"
fi
;;
Transmission na 100% nie uruchomione, wpisuje ręcznie polecenie:
pidof transmission-daemon | wc -c i wyświetla np. "1" dzięki czemu dostaję komunikat, że Transmission is already running!, a nie jest ;) |
|
|
|
krasus |
Dodano 15-03-2012 00:31
|
User
Posty: 89
Dołączył: 20/11/2007 07:36
|
jak w pliku /opt/etc/profile zrobię #LD_LIBRARY_PATH to co prawda działa mi aria2c natomiast wywala transmission
1. ASUS WL-500GP v.1 + 2xkingston 4GB <->
tomato Version
1Tomato Firmware 1.28.0000 MIPSR1-097 K26 USB Tor-VPN
2. WRT150N + DDWRT
3. WRT54GL v.1.1 SD mod + TOMATO
|
|
|
|
krisan |
Dodano 15-03-2012 00:49
|
Power User
Posty: 207
Dołączył: 22/03/2011 11:48
|
Cytat start)
RUN=`pidof transmission-daemon | wc -c`
U mnie działa OK. (Wykonuje to co jest pomiędzy ` i ` a rezultat przyporządkowuje zmiennej RUN).
Używam standardowego (domyślnego) shella. Możliwe, że masz zainstalowanego innego i inaczej przetwarza - np. bash-a :) lub też pidof/wc masz inne niż moje (moje to te wbudowane w firmware). Ewentualnie masz opcję keep-alive lub coś podobnego włączonego w GUI/cron i właśnie się transmission uruchamia.
Jeśli możesz, to wykonaj polecenie:
pidof transmission-daemon
pidof transmission-daemon | wc
dla 2 przypadków: z uruchomionym transmission i bez.
Cytat W moim przypadku mam:
root@router:/opt/bin# pidof transmission-daemon
26368 26367 26366 26364
root@router:/opt/bin# pidof transmission-daemon | wc
1 4 24
root@router:/opt/bin#
root@router:/opt/bin# pidof transmission-daemon
root@router:/opt/bin# pidof transmission-daemon | wc
0 0 0
W pierwszym przypadku zwraca numery procesu (ów) - dla transmission w zależności od ustawień 4, 5(np. +1 proces dla uruchomionego PEX), lub nawet więcej (czasem wielokrotność, gdy błędnie transmission uruchomiony).
W drugim przypadku wc wyświetli liczbę: linii (-l) - słów (-w)- bajtów (-c).
PS. Piszę w miarę wyczerpująco, może się też innym przydać.
Edit:
@krasus:
Jaki błąd? jakie transmission (wbudowane/optware)?
Jeśli masz optware i brak biblioteki libintl.so.3 -> opis z linkami tu w "Uzupełnieniu": http://openlinksys.info/forum/viewthr...post_99001
Można też pozostawić LD_LIBRARY_PATH w /opt/etc/profile i utworzyć skrypt np aria2-start:
#!/bin/sh
unset LD_LIBRARY_PATH
/opt/bin/aria2c $@
Ewentualnie odwrotnie - usunąć LD_LIBRARY_PATH z profilu, a w skryptcie startowym zapodać set LD_LIBRARY_PATH=...
Rozwiązanie z unset nie jest dość eleganckie, ale powinno rozwiązać problemy.
Edytowany przez krisan dnia 15-03-2012 01:13
|
|
|
|
przemasisko |
Dodano 15-03-2012 08:30
|
Moderator
Posty: 550
Dołączył: 17/05/2010 13:56
|
@krisan
więc tak:
Cytat
Włączone transmission:
[root@ROUTER root]$ pidof transmission-daemon
17464 17473 17474 17483 17484
[root@ROUTER root]$ pidof transmission-daemon | wc
1 5 30
Wyłączone transmission:
[root@ROUTER root]$ pidof transmission-daemon
[root@ROUTER root]$ pidof transmission-daemon | wc
1 0 1
Ewidentnie coś jest nie tak, w przypadku wyłączonego transmission.
----
@krasus
Wbudowane transmission bez problemu uruchamia się bez LD_LIBRARY_PATH w profilu.
//Edit
OK. Rzeczywiście w optware mam pidof, który odwołuje się do psmisc-killall? Cóż to?
Edytowany przez przemasisko dnia 15-03-2012 18:16
|
|
|
|
krisan |
Dodano 16-03-2012 17:24
|
Power User
Posty: 207
Dołączył: 22/03/2011 11:48
|
@przemasisko
wrzuciłem sf.net/p/trans-pl zaktualizowaną wersję skryptu: teraz powinno działać właściwie z podmienionym pidof-em.
@krasus
Aby zmiany w pliku /opt/etc/profile zadziałały, musisz się wylogować i zalogować ponownie z shella. |
|
|
|
przemasisko |
Dodano 18-03-2012 13:45
|
Moderator
Posty: 550
Dołączył: 17/05/2010 13:56
|
@krisan
zamiana wc -c na wc -w pomogła. Dzięki.
P.S.
Korzysta ktoś z aria2c? Dość mocno obciąża procek np. przy pobieraniu obrazu z ftp. |
|
|