51

(1,213 odpowiedzi, napisanych Sprzęt / Hardware)

ambrozy5 napisał/a:
kw napisał/a:
ambrozy5 napisał/a:

Próbowałeś tego builda z nss?

nie, gdzie to można znaleźć? aktualnie mam swojego builda z najnowszego mastera

https://forum.openwrt.org/t/ipq807x-nss-build

Dzięki, przeczytałem i tak mi wychodzi że to działa homeopatycznie. Za mały zysk żebym musiał się w razie wypadku uczyć jak przywrócić router do życia.

52

(1,213 odpowiedzi, napisanych Sprzęt / Hardware)

ambrozy5 napisał/a:

Próbowałeś tego builda z nss?

nie, gdzie to można znaleźć? aktualnie mam swojego builda z najnowszego mastera

53

(1,213 odpowiedzi, napisanych Sprzęt / Hardware)

U was też tylko jeden rdzeń głównie używa? Zainstalowałem irqbalance ale nie widzę różnicy

root@router:~# tail /proc/interrupts -n 100
           CPU0       CPU1       CPU2       CPU3
  9:          0          0          0          0     GIC-0  39 Level     arch_mem_timer
 13:     448022     249239     149071     133107     GIC-0  20 Level     arch_timer
 16:          2          0          0          0     GIC-0 354 Edge      smp2p
 17:          0          0          0          0     GIC-0 216 Level     4a9000.thermal-sensor
 18:          0          0          0          0     GIC-0 239 Level     bam_dma
 21:          0          0          0          0     GIC-0 270 Level     bam_dma
 22:          4          0          0          0     GIC-0 340 Level     msm_serial0
 23:      63334          0          0          0     GIC-0 178 Level     bam_dma
 24:          0          0          0          0     GIC-0  35 Edge      wdt_bark
 25:          0          0          0          0     GIC-0 357 Edge      q6v5 wdog
 29:          5          0          0          0     GIC-0 348 Edge      ce0
 30:    2542481          0          0          0     GIC-0 347 Edge      ce1
 31:     441637          0          0          0     GIC-0 346 Edge      ce2
 32:      15158          0          0          0     GIC-0 343 Edge      ce3
 34:          1          0          0          0     GIC-0 443 Edge      ce5
 36:      33555          0          0          0     GIC-0  72 Edge      ce7
 38:          0          0          0          0     GIC-0 334 Edge      ce9
 39:          1          0          0          0     GIC-0 333 Edge      ce10
 40:          0          0          0          0     GIC-0  69 Edge      ce11
 47:          0          0          0          0     GIC-0 323 Edge      reo2ost-exception 48:      16661          0          0          0     GIC-0 322 Edge      wbm2host-rx-release
 49:        788          0          0          0     GIC-0 321 Edge      reo2host-status
 50:      60796          0          0          0     GIC-0 320 Edge      reo2host-destination-ring4
 51:      53370          0          0          0     GIC-0 271 Edge      reo2host-destination-ring3
 52:      64104          0          0          0     GIC-0 268 Edge      reo2host-destination-ring2
 53:     151815          0          0          0     GIC-0 267 Edge      reo2host-destination-ring1
 57:     676139          0          0          0     GIC-0 263 Edge      ppdu-end-interrupts-mac3
 58:          0          0          0          0     GIC-0 262 Edge      ppdu-end-interrupts-mac2
 59:     572363          0          0          0     GIC-0 261 Edge      ppdu-end-interrupts-mac1
 60:          1          0          0          0     GIC-0 260 Edge      rxdma2host-monitor-status-ring-mac3
 61:          0          0          0          0     GIC-0 256 Edge      rxdma2host-monitor-status-ring-mac2
 62:          1          0          0          0     GIC-0 255 Edge      rxdma2host-monitor-status-ring-mac1
 63:          1          0          0          0     GIC-0 235 Edge      host2rxdma-host-buf-ring-mac3
 64:          0          0          0          0     GIC-0 215 Edge      host2rxdma-host-buf-ring-mac2
 65:          0          0          0          0     GIC-0 212 Edge      host2rxdma-host-buf-ring-mac1
 66:          0          0          0          0     GIC-0 211 Edge      rxdma2host-destination-ring-mac3
 67:          0          0          0          0     GIC-0 210 Edge      rxdma2host-destination-ring-mac2
 68:          0          0          0          0     GIC-0 209 Edge      rxdma2host-destination-ring-mac1
 73:      66999          0          0          0     GIC-0 191 Edge      wbm2host-tx-completions-ring3
 74:      72050          0          0          0     GIC-0 190 Edge      wbm2host-tx-completions-ring2
 75:     250228          0          0          0     GIC-0 189 Edge      wbm2host-tx-completions-ring1
 77:          5          0          0          0     GIC-0  47 Edge      cpr3
 78:    1042272          0          0          0     GIC-0 377 Level     edma_txcmpl
 79:          0          0          0          0     GIC-0 385 Level     edma_rxfill
 80:    2172055          0          0          0     GIC-0 393 Level     edma_rxdesc
 81:          0          0          0          0     GIC-0 376 Level     edma_misc
 82:          0          0          0          0       MSI   0 Edge      PCIe PME, aerdrv
 83:          0          0          0          0  pmic_arb 51380237 Edge      pm-adc5
 84:          0          0          0          0     smp2p   0 Edge      q6v5 fatal
 85:          1          0          0          0     smp2p   1 Edge      q6v5 ready
 86:          0          0          0          0     smp2p   2 Edge      q6v5 handover
 87:          0          0          0          0     smp2p   3 Edge      q6v5 stop
 88:          0          0          0          0   msmgpio  34 Edge      keys
 89:         31          0          0          0       MSI 524288 Edge      ath10k_pci
 90:         64          0          0          0     GIC-0 353 Edge      glink-native
IPI0:      2824       3108       2874       3121       Rescheduling interrupts
IPI1:     88448    1316748     839498    1078167       Function call interrupts
IPI2:         0          0          0          0       CPU stop interrupts
IPI3:         0          0          0          0       CPU stop (for crash dump) interrupts
IPI4:         0          0          0          0       Timer broadcast interrupts
IPI5:       101         83         83        112       IRQ work interrupts
IPI6:         0          0          0          0       CPU wake-up interrupts
Err:          0

Packet steering też włączony

54

(8 odpowiedzi, napisanych Oprogramowanie / Software)

Czyli nie ma standardowego sposobu, szkoda ale dzięki za porady.

55

(8 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Obejdziesz jak wygenerujesz sobie dokładnie taki konfig jak oni używają żeby vermagic był taki sam. Albo podmienić vermagic.

Nadal - jak zacznę budować to będzie to linia wydania stabilnego, więc nie będzie to link https://downloads.openwrt.org/snapshots … cortex-a53 tylko kierujący na dl.eko.one.pl do odpowiedniego podkatalogu. Np. https://dl.eko.one.pl/openwrt-23.03/pac … ortex-a53/ o ile tak nazwą branch następnego wydania bo tego nikt jeszcze nie wie.

czyli do doczytania co to jest vermagic - dzięki!

co do linku to jestem świadom że to będzie co innego, tylko chciałbym wiedzieć jak tam magia działa u Ciebie że masz poprawne linki do repo w wynikowym obrazie i pewnie razem z kluczem smile

Cezary napisał/a:

Że domyślnie to jest włączone dla wszystkiego co buduję i nie muszę trzymać z tyły głowy sprawdzenia czy włączyłem to w .config dla wszystkiego co buduję.

Ok, w takim wypadku ma to jak najbardziej sens. Ja z racji jednego targetu ograniczam ilość komend i diffów które moga się rozjechać z czasem.

56

(8 odpowiedzi, napisanych Oprogramowanie / Software)

Wiem że nie istnieje. ale jakby kiedyś zaczął budować to chciałbym być gotów wink

Kernela nie modyfikowałem więc wszystko będzie ok, ale rozumiem dali takie zabezpieczenie i nie obejdę tego?

Cezary napisał/a:

PS. Ja mam właśnie tak zrobione żeby nie trzeba było BUSYBOX_CUSTOM włączać. Więc "nie, nie wystarczy" bo to zależy co chcesz osiągnąć.

Nie rozumiem trochę, co daje dodatkowo patch nad wpisaniem tego w .config?

Cześć,

Zbudowałem sobie fw dla Xiaomi AX3600. Dorzuciłem tam wysyłanie statystyk i banner dla ssh tak jak w obrazach z tej strony. Do tego kawałek patcha, a dokładnie edycję netfilter.mk.

Pytanie moje jest takie, jak mogę zrobić żeby w zbudowanym obrazie w /etc/opkg/distfeeds.conf był poprawny link do repo (tak wiem, nie jest budowane dla tego targetu, ale może kiedyś będzie)?

Aktualnie wrzuca mi:

src/gz openwrt_ekoone https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/ekoone

W feeds.conf mam:

src-git ekoone https://github.com/obsy/packages.git

I druga sprawa. Z racji zmodyfikowania paczki w netfilter przy opkg update mam:

* opkg_download: Failed to download https://downloads.openwrt.org/snapshots … ckages.gz, wget returned 8.

Da się to ukryć/obejść czy muszę z tym żyć?


P.S. WSL na windowsie to genialna sprawa do takich rzeczy
P.S.S. Konfigurację Busybox'a można robić bezpośrednio w .config, nie trzeba patchować jego konfigu w pakiecie, wystarczy dodać:

CONFIG_BUSYBOX_CUSTOM=y
CONFIG_BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY=y
CONFIG_BUSYBOX_CONFIG_FEATURE_EDITING_SAVE_ON_EXIT=y
CONFIG_BUSYBOX_CONFIG_FEATURE_REVERSE_SEARCH=y

Tak, nic się nie działo.

edit:
po dłuższym szukaniu w necie okazałao się że nagle Bitdeffender i jego firewall zaczął blokować requesty ICMP, więc tracert wiem czemu już się sypie, ale czemu tak długo łączy? Wyłączenie antyvira nic nie dało.

Cześć,

zmieniłem sobie sprzęt z 1043nd i teraz w nowym configu mam problem. Jak wchodzę na nową stronę której nie mam w cache DNS to najpierw przez 1-2 sek mam w przeglądarce: Łączenie z hostem... a potem już normalnie wczytuje i każdy następny request jest ok. Próbowałem z poziomu windowsa połączonego po kablu tracert i efekt jest taki:

>tracert allegro.pl

Tracing route to allegro.pl [5.134.210.132]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  Router.lan [192.168.1.1]
  2     *        *        *     Request timed out.
  3     *        *        *     Request timed out.
  4     *        *        *     Request timed out.
  5     *        *        *     Request timed out.
  6     *        *        *     Request timed out.
  7     *        *        *     Request timed out.
  8     *        *        *     Request timed out.
  9     *        *        *     Request timed out.
 10     *        *        *     Request timed out.
 11     *        *        *     Request timed out.
 12    97 ms   108 ms    90 ms  5.134.210.132

Trace complete.

Więc pakiet jakoś dziwnie biegnie...

W dnsmasq w luci ustawiłem DNS forwardings na sztywno i skróciło czas łaczenia z hostem o sekunde, ale nadal trwa to długo. Da się to jakoś inaczej ustawić, poza wpisaniem w kazdym komputerze na sztywno dnsów?

60

(21 odpowiedzi, napisanych Oprogramowanie / Software)

ok, to teraz wymieklem, brakuje libncurses.so.5 a taki plik istnieje, w systemie tez mam libncurses5-dev i libncursesw5-dev. brakowalo jeszcze libcurl, ale na sile dopisalem to do .config i poszlo, ale ta sama sztuczka z ncurses nie zadziała, mimo ze sie kompilowala... zamieszczam log

make package/rtorrent/compile V=99
Checking 'working-make'... ok.
Checking 'case-sensitive-fs'... ok.
Checking 'getopt'... ok.
Checking 'fileutils'... ok.
Checking 'working-gcc'... ok.
Checking 'working-g++'... ok.
Checking 'ncurses'... ok.
Checking 'zlib'... ok.
Checking 'gawk'... ok.
Checking 'unzip'... ok.
Checking 'bzip2'... ok.
Checking 'patch'... ok.
Checking 'perl'... ok.
Checking 'python'... ok.
Checking 'wget'... ok.
Checking 'git'... ok.
Checking 'gnutar'... ok.
Checking 'svn'... ok.
Checking 'gnu-find'... ok.
Checking 'getopt-extended'... ok.
Checking 'non-root'... ok.
make[1]: Entering directory `/mnt/10gb/OpenWRT'
make[2]: Entering directory `/mnt/10gb/OpenWRT/package/toolchain'
WARNING: skipping libssp -- package not selected
WARNING: skipping librt -- package not selected
WARNING: skipping libgfortran -- package not selected
WARNING: skipping ldd -- package not selected
WARNING: skipping ldconfig -- package not selected
make[2]: Leaving directory `/mnt/10gb/OpenWRT/package/toolchain'
make[2]: Entering directory `/mnt/10gb/OpenWRT/package/ocf-crypto-headers'
make[2]: Leaving directory `/mnt/10gb/OpenWRT/package/ocf-crypto-headers'
make[2]: Entering directory `/mnt/10gb/OpenWRT/package/zlib'
make[2]: Leaving directory `/mnt/10gb/OpenWRT/package/zlib'
make[2]: Entering directory `/mnt/10gb/OpenWRT/package/openssl'
WARNING: skipping openssl-util -- package not selected
make[2]: Leaving directory `/mnt/10gb/OpenWRT/package/openssl'
make[2]: Entering directory `/mnt/10gb/OpenWRT/feeds/packages/libs/curl'
WARNING: skipping curl -- package not selected
make[2]: Leaving directory `/mnt/10gb/OpenWRT/feeds/packages/libs/curl'
make[2]: Entering directory `/mnt/10gb/OpenWRT/feeds/packages/libs/libsigc++'
make[2]: Leaving directory `/mnt/10gb/OpenWRT/feeds/packages/libs/libsigc++'
make[2]: Entering directory `/mnt/10gb/OpenWRT/feeds/packages/libs/libtorrent'
make[2]: Leaving directory `/mnt/10gb/OpenWRT/feeds/packages/libs/libtorrent'
make[2]: Entering directory `/mnt/10gb/OpenWRT/feeds/packages/libs/libxml2'
WARNING: skipping libxml2 -- package not selected
make[2]: Leaving directory `/mnt/10gb/OpenWRT/feeds/packages/libs/libxml2'
make[2]: Entering directory `/mnt/10gb/OpenWRT/feeds/packages/libs/xmlrpc-c'
WARNING: skipping xmlrpc-c-abyss -- package not selected
WARNING: skipping xmlrpc-c-server-abyss -- package not selected
WARNING: skipping xmlrpc-c-client -- package not selected
make[2]: Leaving directory `/mnt/10gb/OpenWRT/feeds/packages/libs/xmlrpc-c'
make[2]: Entering directory `/mnt/10gb/OpenWRT/package/ncurses'
make[2]: Leaving directory `/mnt/10gb/OpenWRT/package/ncurses'
make[2]: Entering directory `/mnt/10gb/OpenWRT/feeds/packages/net/rtorrent'
mkdir -p /mnt/10gb/OpenWRT/bin/ar71xx/packages /mnt/10gb/OpenWRT/build_dir/target-mips_r2_uClibc-0.9.33.2/rtorrent-0.8.6/ipkg-ar71xx/rtorrent/CONTROL /mnt/10gb/OpenWRT/staging_dir/target-mips_r2_uClibc-0.9.33.2/pkginfo
install -d -m0755 /mnt/10gb/OpenWRT/build_dir/target-mips_r2_uClibc-0.9.33.2/rtorrent-0.8.6/ipkg-ar71xx/rtorrent/usr/bin
install -m0755 /mnt/10gb/OpenWRT/build_dir/target-mips_r2_uClibc-0.9.33.2/rtorrent-0.8.6/ipkg-install/usr/bin/rtorrent /mnt/10gb/OpenWRT/build_dir/target-mips_r2_uClibc-0.9.33.2/rtorrent-0.8.6/ipkg-ar71xx/rtorrent/usr/bin/
find /mnt/10gb/OpenWRT/build_dir/target-mips_r2_uClibc-0.9.33.2/rtorrent-0.8.6/ipkg-ar71xx/rtorrent -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| xargs -r rm -rf
Package rtorrent is missing dependencies for the following libraries:
libncurses.so.5
make[2]: *** [/mnt/10gb/OpenWRT/bin/ar71xx/packages/rtorrent_0.8.6-1_ar71xx.ipk] Error 1
make[2]: Leaving directory `/mnt/10gb/OpenWRT/feeds/packages/net/rtorrent'
make[1]: *** [package/feeds/packages/rtorrent/compile] Error 2
make[1]: Leaving directory `/mnt/10gb/OpenWRT'
make: *** [package/rtorrent/compile] Error 2

61

(3 odpowiedzi, napisanych Oprogramowanie / Software)

zapewne w pliku sql, zajrzyj do niego a dokładnie do 38 linijki, wywal default character set bo pewnie to tam jest

62

(7 odpowiedzi, napisanych Oprogramowanie / Software)

A ja sobie na extroocie dodałem do fstab montowanie oryginalnego systemu plikow z routera i zabawa z configami jest prostsza wink dla ciekawych:

config mount
    option device '/dev/mtdblock3'
    option target '/mnt/original_filesystem'
    option fstype 'jffs2'
    option options 'rw,sync'
    option enabled '1'

63

(21 odpowiedzi, napisanych Oprogramowanie / Software)

Ja tak samo, co mi nie jest potrzebne na juz to idzie na router i jak bedzie to bedzie. Transfer mi też wyciaga max 1.5MB/s

64

(21 odpowiedzi, napisanych Oprogramowanie / Software)

To po co robią te sdk... Ok to zrobie to tak na okrętkę.

A myslalem ze da sie jakos prosto lekko i przyjemnie

65

(21 odpowiedzi, napisanych Oprogramowanie / Software)

http://downloads.openwrt.org/attitude_a … .2.tar.bz2

Pobrałem to i robiąc make menuconfig nie mam wyboru platformy, jedynie pakiety ktore wrzucilem do packages.

66

(21 odpowiedzi, napisanych Oprogramowanie / Software)

The SDK is a relocatable, precompiled OpenWrt toolchain suitable to cross compile single userspace packages for a specific target without compiling the whole system from scratch.

Po tym cytacie wnosiłem że jest już skompilowany. Czyli wg tego lecieć? http://wiki.openwrt.org/doc/howto/buildroot.exigence

67

(21 odpowiedzi, napisanych Oprogramowanie / Software)

Używajac SDK też muszę? Kierowałem się http://wiki.openwrt.org/doc/howto/obtain.firmware.sdk i pisze tylko żeby pobrac i mozna uzywac umieszczajac wszystko w package. Jak probowalem na tym uzyc skryptu od updatów feedów to sie rozsypywało w ogóle...

68

(21 odpowiedzi, napisanych Oprogramowanie / Software)

Staram sie skompilowac nowa wersje rTorrenta, ale narazie dla testow bawie sie z tym co jest na svnie openwrt. Ściągnąłem odpowiednie sdka dla mojego routera, sciagnalem z svn'a libtorrent, rtorrent po czym w konsoli wydaje polecenie make package/libtorrent i po dłuższym mieleniu dostaje

configure.ac:96: the top level
libtoolize... libtoolize nor glibtoolize not found

I co z tym poczac? Juz ktorys dzien walcze i nawet google nie pomaga. W systemie mam libopenssl libsigc++ napewno a w depends w makefile jest +libopenssl +libsigcxx, wiec powinno się zgadzać.

Będę wdzięczny za pomoc, bo jak tego nie moge dokonac to na kompilacja 0.9.2 nie mam co sie porywac...

69

(3 odpowiedzi, napisanych Oprogramowanie / Software)

Hm myślałem że to jest wkompilowane na stałe. Czyli mogę normalnie przez opkg updatować do bólu dopoki kernel sie nie zmieni? Gargoyle tez da sie jakoś tak upgradować?

Przeglądając pierwsze 20 stron wyników wyszukiwania na forum nie znalazłem sensownej odpowiedzi więc postanowiłem napisać posta.

Mam aktualnie Gargoyle 1.5.8.5 z extrootem i mnóstwem konfigów które trochę mi zajęły i nie chciałbym tego tracić i ustawiać od początku. I teraz chciałbym sobie to upgradować do 1.5.9.2, bo widzę że są nowe sterowniki do wifi i myślę że warto by to wrzucić. Ze znajomości linuxa i budowy OpenWRT jestem jeszcze kiepski więc jest dla mnie kilka niejasności.

Na razie wiem że te sterowniki są chyba w kernelu więc muszę wgrać cały obraz i nie da się tego załatwić przez opkg update (a może jakoś inaczej da się to podmienić?). I że stracę extroota tzn. trzeba będzie konfigurować to od początku. Ale może jakoś da się to zrobić bezboleśnie? I drugie pytanie, po upgradzie co zrobić z pamięcią na której trzymałem extroota, sformatować, czy jakoś da się to zupdatować?

I ostatnie pytanie, jest jakaś opcja żeby trzymać wszystko na zewnętrznym nośniku i jego też obejmowały upgrady? Żeby nie trzeba było tego w kółko rekonfigurować?

Ja używam go z HTTP i podane namiary na port od GUI czyli 9092 albo 9093 i mountpoint na RPC2

edit:
Rozglądałem się i z uhttpd chyba nie da się tego odpalić bo nie obsługuje scgi.

Hm u mnie działa dodawanie z www bądź nTorrenta.

Dodajemy wciskając backspace i podając albo ścieżkę, albo adres. Z Magnetlink'ami nie działa jeszcze, ale staram się skompilować nowsza wersję (tylko idzie jak po grudzie)

Bądź jest opcja dodania watchdir czyli katalogu do którego zagląda rTorrent i jak coś znajdzie to zaczyna pobierać, ale to już jest opisane na stronie projektu.

Dodawałem przez nTorrent, bo ruTorrent jakoś nie zawsze łapie, ale sam rTorrent sie nie wysypuje. Muszę jeszcze pokombinować nad nową wersją bo dodali obsługę magnetlink'ów, a to by sie przydało

Po zabawach z transmission przyszedł czas na trochę lżejszego klienta.  Jako że sam w sobie nie posiada GUI to dorzucimy takowe dzięki ruTorrent'owi. Od razu mówie że bez extroota nie da rady, chyba że masz naprawdę duży flash. Mi aktualnie /overlay zajmuje 23MB więc miej to na uwadze, żeby nie zabrakło miejsca.

Od razu z góry mówię, na TP-LINKu 1043ND na pewno jako systemu plików do zapisu nie używać ntfs. Prawie osiwiałem przez to badziewie głowiąc się czemu klienty się wysypują, a dysk wypina, otóż ten system plików pożera zasoby w zastraszającym tempie... po przejściu na ext4 nie ma już żadnych problemów.

Ale wracając do sedna, przeszukując internet natrafiłem na artykuł który już pewnie każdy widział tzn. http://openrouter.info/forum/viewtopic. … &t=471 i na nim będę się wzorował, jednak sam w sobie nie przyniósł spodziewanych efektów i nie do końca wszystko działało więc postanowiłem go trochę zaktualizować.

Więc tak, standardowo zaczynamy od instalacji rtorrenta i screena, żeby to mogło sobie chodzić w tle cały czas (emulacja demona).

Instalacja rTorrenta
opkg update
opkg install rtorrent screen

I już, szybko, łatwo i przyjemnie. Szkoda że wersja to 0.8.6 gdzie najnowsza stabilna to 0.9.2, ale jeszcze za mało umiem żeby to skompilować pod openWRT, więc bawimy się tym czym mamy.

Konfiguracja rTorrenta

Przykład pliku jest pod adresem http://libtorrent.rakshasa.no/browser/t … .rc#latest
Natomiast ja dam swój, zawsze to jakaś baza do zabawy wink

Na początek tworzymy plik konfiguracyjny

touch /root/.rtorrent.rc

A potem uzupełniamy go:

min_peers = 40
max_peers = 100
min_peers_seed = 10
max_peers_seed = 50
max_uploads = 3
download_rate = 0
upload_rate = 0
directory = /mnt/torrent
session =   /mnt/torrent/session
port_range = 50800-50801
port_random = yes
check_hash = no
use_udp_trackers = yes
encryption = allow_incoming, try_outgoing
dht = on
dht_port = 6881
peer_exchange = yes
encoding_list = UTF-8
scgi_local = /tmp/rtorrent.socket
schedule = chmod,0,0,"execute=chmod,777,/tmp/rtorrent.socket"
xmlrpc_dialect = i8

W pliku, /mnt/torrent zmieniamy na katalog gdzie będziemy ściągać wink I oba katalogi oczywiście muszą istnieć, więc tworzymy je przed uruchomieniem rtorrenta.

teraz w konsoli wydajemy polecenie

rtorrent

Jeśli się uruchomił to znaczy że wszystko poszło ok. Wychodzimy przez Ctrl+Q (^Q)

Teraz tworzymy plik startowy który zrobi nam z rtorrenta demona działającego w tle.

touch /etc/init.d/rtorrent

I uzupełniamy go:

#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2012 OpenWrt.org

START=99

start() {
        rm -f /tmp/rtorrent.socket || true
        rm -f /mnt/torrent/session/rtorrent.lock || true
        HOME=/root screen -dmS torrenty rtorrent
}

stop() {
        killall -2 rtorrent
}

W tym przypadku /mnt/torrent również zamieniamy na katalog który podaliśmy wyżej.

Troche skrypt startowy zmodyfikowałem, ponieważ nie podobało mi się że torrent był zabijany na siłe, teraz dostaje sygnał żeby się zamknąć i przed tym informuje trackery że idzie spać, a po ponownym włączeniu nie zaczyna sprawdzania plików, co u mnie trwa wieki. Usuwanie plikow na starcie, to na wypadek jakby rtorrent zginął śmiercią marną zanim po sobie posprzątał, inaczej by nie wystartował.

Wypadałoby jeszcze naszego klienta odblokować na firewallu, wiec na końcu /etc/config/firewall dodajemy:

config rule
        option name 'rtorrent_tcp'
        option src 'wan'
        option target 'ACCEPT'
        option proto 'tcpudp'
        option dest_port '50800:50801'

config rule
        option name 'rtorrent_dht'
        option src 'wan'
        option target 'ACCEPT'
        option proto 'udp'
        option dest_port '6881'

Wiem że mógłbym podać komendy UCI, ale używając nano jakoś lepiej mi się pisze bezpośrednio w configu wink

Aby zmiany weszły w życie, restartujemy firewall komendą:

/etc/init.d/firewall restart

A na koniec ustawiamy rtorrenta na autostart i uruchamiamy.

chmod 755 /etc/init.d/rtorrent 
/etc/init.d/rtorrent enable
/etc/init.d/rtorrent start
Instalacja PHP

Jako że o wyborze serwera napisze później, to zaczniemy od rzeczy niezbędnej czyli PHP.

opkg install php5-fastcgi

Potem: (ustawiamy katalog z którego będzie czytało php na /www/rutorrent, żeby nie kolidowało np z opcjami routera) oraz kilku zmiennych niezbędnych do działania

sed -i -e 's/doc_root = \"\/www\"/doc_root = \"\/www\/rutorrent\"/g' /etc/php.ini
sed -i -e 's/;cgi.force_redirect/cgi_force_redirect/' /etc/php.ini
sed -i -e 's/;cgi.redirect_status_env = ;/cgi.redirect_status_env = \"yes\"/' /etc/php.ini

Na koniec

/etc/init.d/php5-fastcgi enable
/etc/init.d/php5-fastcgi start

I już php chodzi w tle i jest gotowe na dodanie serwera który z tego skorzysta.

Instalacja ruTorrenta

Wykonujemy:

cd /www
wget http://rutorrent.googlecode.com/files/rutorrent-3.5.tar.gz
tar zxvf rutorrent-3.5.tar.gz
rm rutorrent-3.5.tar.gz

Co pobrało nam ruTorrenta, teraz należy tylko dokonać jednej zmiany w pliku konfiguracyjnym.

W /www/rutorrent/config/config.php zamieniamy

$scgi_port = 5000;
$scgi_host = "127.0.0.1";

na

$scgi_port = 0;
$scgi_host = "unix:///tmp/rtorrent.socket";
Wybór serwera WWW

Na openWRT z lekkich rozwiązań mamy do wyboru lighttpd i nginx. Pokażę metodę jak postawić oba i jeśli taka Twoja wola, to mogą działać równocześnie jak u mnie, na różnych portach. Który wybierzesz to już zależy od Ciebie. Ja patrząc po wynikach z top zauważyłem że nginx leży trochę niżej niż lighttpd ale różnica jest niewielka, wiec narazie testuję oba.

Nginx

Zaczniemy od nginx'a.

Więc szybka instalacja:

opkg install nginx

Następnie podmieniamy /etc/nginx.conf na

user nobody nogroup;
worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    index index.php index.html index.htm;
    default_type text/html;

    sendfile        on;
    keepalive_timeout  65;
    #gzip  on;

    server {
        listen       9093;
        server_name  localhost;

        charset utf-8;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 32k;
        fastcgi_buffers 4 32k;
        fastcgi_busy_buffers_size 32k;
        fastcgi_temp_file_write_size 32k;
        client_body_timeout 10;
        client_header_timeout 10;
        send_timeout 60;        # 60 sec should be enough, if experiencing alof of timeouts, increase this.
        output_buffers 1 32k;
        postpone_output 1460;
    
        root /www/rutorrent;
    
        auth_basic            "rutorrent";
        auth_basic_user_file  htpasswd;
    
        location /RPC2 {
                include scgi_params;
                scgi_pass unix:/tmp/rtorrent.socket;
        }

        location ~ \.php$ {
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;

            if (-f $request_filename) {
                    # Only throw it at PHP-FPM if the file exists (prevents some PHP exploits)
                    fastcgi_pass    127.0.0.1:1026;     # The upstream determined above
            }
        }
    }    
}

tworzymy plik scgi_params

 touch /etc/nginx/scgi_params

i zupełniamy o

scgi_param  REQUEST_METHOD     $request_method;
scgi_param  REQUEST_URI        $request_uri;
scgi_param  QUERY_STRING       $query_string;
scgi_param  CONTENT_TYPE       $content_type;

scgi_param  DOCUMENT_URI       $document_uri;
scgi_param  DOCUMENT_ROOT      $document_root;
scgi_param  SCGI               1;
scgi_param  SERVER_PROTOCOL    $server_protocol;
scgi_param  HTTPS              $https if_not_empty;

scgi_param  REMOTE_ADDR        $remote_addr;
scgi_param  REMOTE_PORT        $remote_port;
scgi_param  SERVER_PORT        $server_port;
scgi_param  SERVER_NAME        $server_name;

Na koniec dodajemy użytkownika, z racji że jest włączona prośba o hasło przed wejściem na stronę. Jeśli ktoś chce to wyłączyć to wystarczy za komentować poprzez # auth_basic "Restricted"; i auth_basic_user_file  htpasswd; oraz pominąć poniższy krok

W konsoli uruchamiamy poniższy kod zmieniając <<login>> i <<haslo>> (nawiasy ostre są tylko do wyróżnienia miejsca w kodzie) na swój login i halo jakiego chcesz używać.

printf "<<login>>:$(openssl passwd -apr1 <<haslo>>)\n" >> /etc/nginx/htpasswd

po czym wykonujemy

/etc/init.d/nginx enable
/etc/init.d/nginx start

I już nginx chodzi na http://192.168.1.1:9093

Lighttpd

Więc na start

opkg install lighttpd libsqlite3 lighttpd-mod-access lighttpd-mod-auth  lighttpd-mod-scgi lighttpd-mod-fastcgi

potem plik /etc/lighttpd/lighttpd.conf podmieniamy na

server.modules = (
   "mod_access",
   "mod_auth",
   "mod_fastcgi",
   "mod_scgi"
)

server.network-backend = "write"
server.document-root = "/www/rutorrent/"
index-file.names = ( "index.php", "index.html", "default.html", "index.htm", "default.htm" )

mimetype.assign = (
   ".pdf"   => "application/pdf",
   ".class" => "application/octet-stream",
   ".pac"   => "application/x-ns-proxy-autoconfig",
   ".swf"   => "application/x-shockwave-flash",
   ".wav"   => "audio/x-wav",
   ".gif"   => "image/gif",
   ".jpg"   => "image/jpeg",
   ".jpeg"  => "image/jpeg",
   ".png"   => "image/png",
   ".css"   => "text/css",
   ".html"  => "text/html",
   ".htm"   => "text/html",
   ".js"    => "text/javascript",
   ".txt"   => "text/plain",
   ".dtd"   => "text/xml",
   ".xml"   => "text/xml"
 )

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

server.port = 9092
server.pid-file = "/var/run/lighttpd.pid"

fastcgi.server = (
      ".php" => ((
      "host" => "127.0.0.1",
      "port" => 1026,
       ))
)

auth.debug = 2
auth.backend = "plain"
auth.backend.plain.userfile = "/etc/lighttpd/lighttpd.user"

auth.require = (
   "/" =>
        (
         "method"  => "basic",
         "realm"   => "rutorrent",
         "require" => "user=admin"
         )
)

scgi.server = (
     "/RPC2" =>
          ( "127.0.0.1" =>
               (
        "socket" => "/tmp/rtorrent.socket",
        "check-local" => "disable",
        "disable-time" => 0,
                )
         )
)
server.event-handler = "poll"

Po czym dodajemy usera, bo ten serwer też jest zabezpieczony hasłem, robimy to poprzesz (login i pass admin, jeśli wpiszesz coś innego to w "require"=> "user=admin" admina też zmień na wybraną nazwę użytkownika) wykonanie kodu

echo "admin:admin" >> /etc/lighttpd/lighttpd.user

No i na koniec standardowo ustawienie autostartu i włączenie serwera

/etc/init.d/lighttpd enable
/etc/init.d/lighttpd start

I teraz możemy korzystać z lighttpd pod adresem http://192.168.1.1:9092

Zeby dostać się do interfejsu rTorrenta na routerze wpisujemy screen -r, żeby z tego wyjść nie zabijając klienta wciskamy CTRL+A+D, a żeby go zamknąć to CTRL+A CTRL+F CTRL+Q

Mam nadzieję że komuś się to przyda wink

75

(5 odpowiedzi, napisanych Oprogramowanie / Software)

O super, na to bym nie wpadł, gdzieś w necie wyszukałem że trzeba zrobić link, jednak nie było nic o dopisywaniu do pliku. Dzięki wielkie.