1

Temat: rtl_tcp i radio cyfrowe dab

Temet może nie jest czysto związany z openwrt ale jako, że rtl_sdr działa też na tym systemie to chciałbym poprosić o testy kogoś kto jest już w zasięgu cyfrowego sygnału dab. Znalazłem program do obsługi radia cyfrowego dla linuksa (jest też wersja windows) tutaj i chciałem spróbować odbierać sygnał za pomocą kompatybilnego z rtl_sdr dongla, puszczać w domowym lanie i dekodować za pomocą tego programu. Niestety nie było takiej opcji w tym sofcie więc napisałem do autora z pytaniem czy da się dorobić i za parę dni dostałem link.
Czy pokusiłby się ktoś o testy tego? U mnie chyba nie ma zasięgu bo program sam w sobie działa w parze z rtl_tcp uruchomionym na openwrt jednak nic nie znajduje. Z moich testów wynika, że na razie są problemy w windowsie, natomiast działa dobrze pod wine smile.

2

Odp: rtl_tcp i radio cyfrowe dab

Znalazłem LV5TDLX i mam wolnego WNDR3700 z Gargoyle (na tym też zadziała?) i jestem na 100% w zasięgu DAB+ w Warszawie. Jakieś szybkie wskazówki co i jak sprawdzić? Bo się odbieraniem DAB+ nie bawiłem inaczej, niż w komputerze i specjalnym odbiorniku, a tutaj jakieś cuda widzę na zrzutach.

3 (edytowany przez mar_w 2015-04-24 19:00:32)

Odp: rtl_tcp i radio cyfrowe dab

Do autora wątku:
Podłączyłem tuner. Wydaje się że nasłuchuje na standardowym porcie.

root@OpenWrt:~# rtl_tcp -a 10.0.0.15
Found 1 device(s).
Found Fitipower FC0013 tuner
Using Lifeview LV5TDeluxe
Tuned to 100000000 Hz.
listening...
Use the device argument 'rtl_tcp=10.0.0.15:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).
root@OpenWrt:~# netstat -alpntu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 10.0.0.15:1234          0.0.0.0:*               LISTEN      1533/rtl_tcp
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      1111/dnsmasq
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      835/dropbear
tcp        0      0 10.0.0.15:22            10.0.0.3:57578          ESTABLISHED 1225/dropbear
tcp        0      0 10.0.0.15:22            10.0.0.3:57714          ESTABLISHED 1536/dropbear
tcp        0      0 :::53                   :::*                    LISTEN      1111/dnsmasq
tcp        0      0 :::22                   :::*                    LISTEN      835/dropbear
udp        0      0 0.0.0.0:53              0.0.0.0:*                           1111/dnsmasq
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1111/dnsmasq
udp        0      0 0.0.0.0:49816           0.0.0.0:*                           888/ntpd
udp        0      0 :::546                  :::*                                1023/odhcp6c
udp        0      0 :::547                  :::*                                796/odhcpd
udp        0      0 :::53                   :::*                                1111/dnsmasq

Komputer z Windowsem 64bit jest za podwójnym NAT-em i bez problemu np. pinguje router.
Gdzie należy wpisać adres i port w tym programie co podałeś żeby nawiązać komunikację.
Wydaje mi się, że program gada z urządzeniami podłączonymi bezpośrednio do danej maszyny. Nie widzę nigdzie ścieżki IP do wpisania. Też chciałbym coś usłyszeć, chociaż liche stacje nadają w tym DAB-ie.
EDIT:
Drugi link wygasł i program ściągałem ze strony projektu.

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

4

Odp: rtl_tcp i radio cyfrowe dab

Musi być ta wersja z linku. Tutaj jest wersja 64bit. Jako urządzenie wybierz rtl_tcp i tam będzie pole do wpisania adresu ip.

5

Odp: rtl_tcp i radio cyfrowe dab

Sprawdzę dopiero jutro rano jak wrócę z pracy.
Czy domyślnie uruchomiony serwer z parametrem: Tuned to 100000000 Hz. oznacza że można w programie szukać każdej częstotliwości od 0 do 100000000 Hz ?
Bo jeżeli tak, to w takim razie będę musiał uruchomić z parametrem -f  178352000 bo na takiej nadaje w mojej okolicy.
Lub więcej np -f 180000000. W każdym razie będę testował.

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

6

Odp: rtl_tcp i radio cyfrowe dab

Uruchomiłem program z paczki i miałem coś takiego:
Na OPENWRT BB:

root@OpenWrt:~# rtl_tcp -a 10.0.0.15 -f 178352000
Found 1 device(s).
Found Fitipower FC0013 tuner
Using Lifeview LV5TDeluxe
Tuned to 178352000 Hz.
listening...
Use the device argument 'rtl_tcp=10.0.0.15:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).
client accepted!
set gain 2000
set sample rate 2048000
set freq correction 0
set freq 220000000
Killed

Na Windows-ie 8 64bit w programie sdr-j-dabspecjal w okienku konsolowym, które otworzyło się z programem:

ini file = C:\Users\Ma.W\.jsdr-dab.ini
Hostapis: 3

Api 0 is MME

Api 1 is Windows DirectSound

Api 2 is ASIO

Investigating Device 0

Investigating Device 1

Investigating Device 2

 (output):item 1 wordt stream 2

Investigating Device 3

 (output):item 2 wordt stream 3

Investigating Device 4

 (output):item 3 wordt stream 4

Investigating Device 5

Investigating Device 6

Investigating Device 7

 (output):item 4 wordt stream 7

Investigating Device 8

 (output):item 5 wordt stream 8

Investigating Device 9

 (output):item 6 wordt stream 9

added items to combobox
ofdmProcessor will halt
ofdmProcessor will halt
ofdmProcessor will halt
Starting 1

I co dalej mogę sprawdzić?
Z dodatkowych informacji, to oprócz adresu IP nie było możliwości wpisania portu, na którym słucha serwer. Program wybiera domyślny port 1234. A co za tym idzie, nie można uruchomić sobie usługi na dowolnym porcie, bo mamy piękne info "connection failed" smile

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

7

Odp: rtl_tcp i radio cyfrowe dab

Program słucha na porcie standardowym czyli 1234. Może w przyszłości autor doda pole wyboru portu. Parametr częstotliwości nie jest potrzebny bo w programie dab można ustawiać kanały. Przy zmianie będzie widać ustawianą częstotliwość w oknie z uruchomionym rtl_tcp. Kanały są pokazane nie wprost jako dana częstotliwość tylko liczba i litera np. 12D. Trzeba poszukać jaki kod odpowiada naszej częstotliwości.

8

Odp: rtl_tcp i radio cyfrowe dab

Dla tych co by chcieli przetestować sobie program, tabela częstotliwości i odpowiadające im kody znajdują się  TUTAJ
A bardziej profesjonalne wiadomości są w tym DOKUMENCIE

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

9

Odp: rtl_tcp i radio cyfrowe dab

Dziwiłem się dlaczego otrzymywałem komunikat "Killed"

client accepted!
set gain 2000
set sample rate 2048000
set freq correction 0
set freq 220000000
Killed

Jak zwykle chodzi o RAM smile. Początkowo próby robiłem na routerze z 32 MB RAM ale w kolejnym etapie przerzuciłem wszystko na router z 64 MB RAM. Poszedł trochę dalej, ale też kiszka. Jeżeli to coś wymaga tyle zasobów to nie mam pytań. Oto parę logów z Openwrt BB:

----------------------------------------------------------------
 |                                                              |
 | OpenWrt Barrier Breaker (r44952)                             |
 | Build time: 2015-03-28 07:45 CET                             |
 |                                                              |
 | Cezary Jackiewicz (obsy), http://eko.one.pl                  |
 |                                                              |
 ----------------------------------------------------------------
 | Machine: TP-Link TL-WR1043N/ND v1                            |
 | Uptime: 0d, 00:04:18                                         |
 | Load: 0.09 0.08 0.05                                         |
 | Flash: total: 4.4MB, free: 3.9MB, used: 11%                  |
 | Memory: total: 59.9MB, free: 47.2MB, used: 21%               |
 | WAN: 10.0.0.4, proto: dhcp                                   |
 | LAN: 192.168.1.1                                             |
 ----------------------------------------------------------------
root@OpenWrt:~# rtl_tcp -a 10.0.0.4
Found 1 device(s).
Found Fitipower FC0013 tuner
Using Lifeview LV5TDeluxe
Tuned to 100000000 Hz.
listening...
Use the device argument 'rtl_tcp=10.0.0.4:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).
client accepted!
set gain 200
set sample rate 2048000
set freq correction 0
set freq 220000000
ll+, now 1
ll-, now 0
ll+, now 1
ll+, now 2
ll-, now 0
ll+, now 1
ll+, now 2
ll+, now 3
ll+, now 4
ll-, now 0
ll+, now 1
ll+, now 2
ll+, now 3
ll+, now 4
ll+, now 5
ll+, now 6
ll+, now 7
ll-, now 0
ll+, now 1
ll+, now 2
ll+, now 3
ll+, now 4
ll+, now 5
ll+, now 6
ll+, now 7
ll+, now 8
ll+, now 9
ll+, now 10
ll+, now 11
ll+, now 12
ll+, now 13
ll+, now 14
ll+, now 15
ll+, now 16
ll-, now 0
ll+, now 1
ll+, now 2
ll+, now 3
ll+, now 4
ll+, now 5
ll+, now 6
ll+, now 7
ll+, now 8
ll+, now 9
ll+, now 10
ll+, now 11
ll+, now 12
ll+, now 13
ll+, now 14
ll+, now 15
ll+, now 16
ll+, now 17
ll+, now 18
ll+, now 19
ll+, now 20
ll+, now 21
ll+, now 22
ll+, now 23
ll+, now 24
ll+, now 25
ll+, now 26
ll+, now 27
ll+, now 28
ll+, now 29
ll+, now 30
ll+, now 31
ll+, now 32
ll+, now 33
ll+, now 34
ll+, now 35
ll+, now 36
ll+, now 37
ll+, now 38
ll+, now 39
ll+, now 40
ll+, now 41
ll+, now 42
ll+, now 43
ll-, now 0
ll+, now 1
ll+, now 2
ll+, now 3
ll+, now 4
ll+, now 5
ll+, now 6
ll+, now 7
ll+, now 8
ll+, now 9
ll+, now 10
ll+, now 11
ll+, now 12
ll+, now 13
ll+, now 14
ll+, now 15
ll+, now 16
ll+, now 17
ll+, now 18
ll+, now 19
ll+, now 20
ll+, now 21
ll+, now 22
ll+, now 23
ll+, now 24
ll+, now 25
ll+, now 26
ll+, now 27
ll+, now 28
ll+, now 29
ll+, now 30
ll+, now 31
ll+, now 32
ll+, now 33
ll+, now 34
ll+, now 35
ll+, now 36
ll+, now 37
ll+, now 38
ll+, now 39
ll+, now 40
ll+, now 41
ll+, now 42
ll+, now 43
ll+, now 44
ll+, now 45
ll+, now 46
ll+, now 47
ll+, now 48
ll+, now 49
ll+, now 50
ll+, now 51
ll+, now 52
ll+, now 53
ll+, now 54
ll+, now 55
ll+, now 56
ll+, now 57
ll+, now 58
ll+, now 59
ll+, now 60
ll+, now 61
ll+, now 62
ll+, now 63
ll+, now 64
ll+, now 65
ll+, now 66
ll+, now 67
ll+, now 68
ll+, now 69
ll+, now 70
ll+, now 71
ll+, now 72
ll+, now 73
ll+, now 74
ll+, now 75
ll+, now 76
ll+, now 77
ll+, now 78
ll+, now 79
ll+, now 80
ll+, now 81
ll+, now 82
ll+, now 83
ll+, now 84
ll+, now 85
ll+, now 86
ll+, now 87
ll+, now 88
ll+, now 89
ll+, now 90
ll+, now 91
ll+, now 92
ll+, now 93
ll+, now 94
ll+, now 95
Killed
root@OpenWrt:~# free
             total         used         free       shared      buffers
Mem:         61332        59740         1592            0         1292
-/+ buffers:              58448         2884
Swap:            0            0            0

Na koniec końcówka logread

Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.650000] rtl_tcp invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.650000] CPU: 0 PID: 1285 Comm: rtl_tcp Not tainted 3.10.49 #3
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.660000] Stack : 00000000 00000000 00000000 00000000 803bceee 00000035 839133e8 00000000
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.660000]       802fb10c 803439e3 00000505 803b3a00 839133e8 00000000 00000000 00000000
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.660000]       00000263 802951cc 00000000 801f5a34 00000006 8023c684 802fc79c 8383bb94
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.660000]       00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.660000]       00000000 00000000 00000000 00000000 00000000 00000000 00000000 8383bb20
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.660000]       ...
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.700000] Call Trace:
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.700000] [<80239e70>] show_stack+0x48/0x70
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.700000] [<80294840>] dump_header.isra.16+0x4c/0x13c
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.710000] [<801d0058>] oom_kill_process+0xc8/0x3b0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.710000] [<801d11d0>] out_of_memory+0x2ac/0x2e4
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.720000] [<80082118>] __alloc_pages_nodemask+0x5d0/0x634
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.720000] [<8013b6b0>] filemap_fault+0x214/0x3e4
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.730000] [<8008e9c8>] __do_fault+0xd0/0x454
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.730000] [<80157cd4>] handle_pte_fault+0x15c/0x6ec
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.740000] [<801579a8>] handle_mm_fault+0xa0/0xe0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.740000] [<8011e5cc>] do_page_fault+0x118/0x35c
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.750000] [<80060820>] ret_from_exception+0x0/0x10
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.750000] 
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.760000] Mem-Info:
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.760000] Normal per-cpu:
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.760000] CPU    0: hi:   18, btch:   3 usd:   2
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.770000] active_anon:10079 inactive_anon:6 isolated_anon:0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.770000]  active_file:2 inactive_file:45 isolated_file:0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.770000]  unevictable:0 dirty:0 writeback:0 unstable:0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.770000]  free:246 slab_reclaimable:247 slab_unreclaimable:1274
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.770000]  mapped:2 shmem:16 pagetables:70 bounce:0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.770000]  free_cma:0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.800000] Normal free:984kB min:988kB low:1232kB high:1480kB active_anon:40316kB inactive_anon:24kB active_file:8kB inactive_file:180kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:65536kB managed:61080kB mlocked:0kB dirty:0kB writeback:0kB mapped:8kB shmem:64kB slab_reclaimable:988kB slab_unreclaimable:5096kB kernel_stack:296kB pagetables:280kB unstable:0kB bounce:0kB free_cma:0kB writeback_tmp:0kB pages_scanned:32 all_unreclaimable? yes
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.840000] lowmem_reserve[]: 0 0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.840000] Normal: 2*4kB (UR) 2*8kB (UR) 6*16kB (UMR) 1*32kB (R) 1*64kB (R) 0*128kB 1*256kB (R) 1*512kB (R) 0*1024kB 0*2048kB 0*4096kB = 984kB
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.850000] 69 total pagecache pages
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.860000] 0 pages in swap cache
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.860000] Swap cache stats: add 0, delete 0, find 0/0
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.870000] Free swap  = 0kB
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.870000] Total swap = 0kB
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.870000] 16384 pages RAM
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.880000] 1051 pages reserved
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.880000] 262034 pages shared
Sat Apr 25 23:19:27 2015 kern.warn kernel: [  337.880000] 15000 pages non-shared
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.890000] [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.890000] [  461]     0   461      221       17       4        0             0 ubusd
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.900000] [  462]     0   462      193       14       3        0             0 askfirst
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.910000] [  733]     0   733      259       37       4        0             0 logd
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.920000] [  767]     0   767      386       54       4        0             0 netifd
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.930000] [  792]     0   792      288       39       4        0             0 odhcpd
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.940000] [  830]     0   830      288       19       3        0             0 dropbear
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.940000] [  892]     0   892      342       18       3        0             0 ntpd
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.950000] [  954]     0   954      341       18       5        0             0 udhcpc
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.960000] [  981]     0   981      202       18       5        0             0 odhcp6c
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.970000] [ 1019] 65534  1019      232       25       3        0             0 dnsmasq
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.980000] [ 1133]     0  1133      305       38       3        0             0 dropbear
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.980000] [ 1134]     0  1134      344       23       3        0             0 ash
Sat Apr 25 23:19:27 2015 kern.info kernel: [  337.990000] [ 1225]     0  1225    10977     9657      15        0             0 rtl_tcp
Sat Apr 25 23:19:27 2015 kern.info kernel: [  338.000000] [ 1226]     0  1226      305       38       3        0             0 dropbear
Sat Apr 25 23:19:27 2015 kern.info kernel: [  338.010000] [ 1227]     0  1227      342       20       4        0             0 ash
Sat Apr 25 23:19:27 2015 kern.err kernel: [  338.020000] Out of memory: Kill process 1225 (rtl_tcp) score 611 or sacrifice child
Sat Apr 25 23:19:27 2015 kern.err kernel: [  338.020000] Killed process 1225 (rtl_tcp) total-vm:43908kB, anon-rss:38624kB, file-rss:4kB

Ja rezygnuję narazie. Swapa nie chce mi się robić. Chyba, że kiedyś to potrenuję na innym routerze z większym RAM. Ciekawe czy 128 MB wystarczy? smile

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

10

Odp: rtl_tcp i radio cyfrowe dab

U mnie chyba ten sam objaw tzn. w oknie rtl_tcp nieustający ciąg znaków. Natomiast wydaje się, że działa pod wine. Czy masz możliwość przetestowania w taki sposób?

11 (edytowany przez mar_w 2015-04-27 16:40:37)

Odp: rtl_tcp i radio cyfrowe dab

W sumie to mogę sprawdzić na stacjonarnym kompie uruchamiając usługę na localhost:1234 (jak się da) lub 127.0.0.1:12343 (zależy który zapis przyjmie smile i na tej samej maszynie włączyć odtwarzacz. Ale to późnym wieczorem lub jutro rano. Tylko mogę nie zobaczyć ile ramu zechla, bo np. 100MB ciężko zauważyć. Ciężko będzie też określić prawdopodobne zużycie procesora w routerze, w stosunku do tego co pokaże procek w stacjonarce. Ale jeśli chodzi o samo sprawdzenie działania, to spróbuję.
EDIT. W sumie to można z grubsza określić zużycie ramu, gorzej będzie z proc.

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

12

Odp: rtl_tcp i radio cyfrowe dab

Ten wpis jest trochę nie w temacie, bo test był na zwykłym Linuksie ale tylko dlatego, że router skapitulował. Docelowo miało to być na routerze.
1. Po stronie serwera. Jak widać na fotkach zjadł ponad 200 MB RAM-u i cały czas czegoś szukał.
serwer1
serwer2

2. Po stronie klienta nic się nie działo za wiele.
klient1
klient2

3. Odbiór radia w Total Media
DAB

Być może źle ustawiam program. Ale jeżeli bezpośrednio podpiąłem tuner do Windows-a i zamiast rtl_tcp wybierałem po kolei inne źródła: dongle, itd itd to też nic nie wyszukiwał a na jednym ze źródeł to zrobił zwiechę.
Szkoda, że nikt inny nie testuje pakietu rtl-sdr z radiem DAB sad.

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *