Temat: DVB-T RTL2832U na MT7621

Witam,
Pytanie po przeczytanie na stronie artykułu OpenWrt - DVB-T, zastanawiam się jak dorzucić do kompilacji OpenWrt sterowniki do RTL2832U, make menuconfig nie ma opcji dvb sterowników, pytanie jak je tam wrzucić aby się skompilowały z softem?

2 (edytowany przez ad2014 2020-10-05 21:57:01)

Odp: DVB-T RTL2832U na MT7621

make kernel_menuconfig
tylko pamietaj  ze  nie wszystkie obcje sa od razu widoczne , trzeba cos zaznaczyc by cos sie pokazłao gdzie indziej

3 (edytowany przez mar_w 2020-10-06 21:52:33)

Odp: DVB-T RTL2832U na MT7621

@a.stanczyk
mniej więcej coś takiego, jak w tym starym poście: https://eko.one.pl/forum/viewtopic.php? … 30#p143530
EDIT: A to jest zrzut ze snapshota z jajka 4.14.199

Device Drivers
Input device support
    <M> Generic input layer (...)
...
I2C support
    <M> I2C support
    <M> I2C device interface
    <M> I2C bus multiplexing support
...
<*> USB Support
    {M} Support for Host-side USB
    <M> USB announce new devices

#wracasz do głównego menu w gałęzi "Device drivers" i wyżej w tym menu

<M> Remote Controller Support
    <M> Compile Remote Controler keymap module
...
<M> Multimedia support
    <*> Digital TV support
    <*> Media USB adapters
        <M> Support for various USB DVB devices v2
        <M> Realtek RTL28xxU DVB USB support

    Customize TV tuner
    # możesz potrzebować np Fitipower
        <M> Fitipower FC0011[12,13]
   
    Customise DVB Fronends
        *** DVB-T (terrestial) frontends
        -M- Realtek RTL2830 DVB-T
        -M- Realtek RTL2832 DVB-T

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

4

Odp: DVB-T RTL2832U na MT7621

Dzięki mapę ogarnąłem zaznaczanie wink

Myślałem że będzie łatwo zaznaczę * i skompiluje i gotowe, ale moduły/sterowniki nie pojawiają się w obrazie po wykonaniu "make".

Czy powinienem wykonać "clean" i dopiero wtedy na nowo ponownie kompilować całość?

Pewnie o czymś jeszcze powinienem wiedzieć?

ps. mam MT7621 i zaznaczone w Target Multiple devices, a w Target dwa urządzenia to chyba nie wpływa?

5

Odp: DVB-T RTL2832U na MT7621

moduły nie pojawią się w obrazie, bo z tego nie robią się paczki. Zrobiły się pliki *.ko w katalogu z kernelem które możesz sobie skopiować do działającego obrazu.

Żeby była paczka z tego to musi być jeszcze odpowiedni makefile, a obsługi dvbt nigdy w openwrt nie było.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6 (edytowany przez a.stanczyk 2020-10-07 21:27:15)

Odp: DVB-T RTL2832U na MT7621

Cezary napisał/a:

moduły nie pojawią się w obrazie, bo z tego nie robią się paczki. Zrobiły się pliki *.ko w katalogu z kernelem które możesz sobie skopiować do działającego obrazu.

Żeby była paczka z tego to musi być jeszcze odpowiedni makefile, a obsługi dvbt nigdy w openwrt nie było.


W jakim katalogu powinny być?
Szukałem po *ko i nic nie znalazło, szukałem po nazwach ale tylko pliki *.o znalazłem

Ktoś ogarnął makefile wink
"opkg install kmod-dvb-rtl2832 kmod-dvb-usb-rtl28xxu kmod-media-tuner-r820t"
https://wiki.turris.cz/doc/cs/howto/dvb

7

Odp: DVB-T RTL2832U na MT7621

Było kilka propozycji już tego, ale nie weszło oficjalnie do openwrt.

są w build_dir/target*/linux*/linux*/drivers/media i paru innych katalogach. Poszukaj tego co zaznaczyłeś do kompilacji jako moduły kernela.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8 (edytowany przez mar_w 2020-10-07 23:19:22)

Odp: DVB-T RTL2832U na MT7621

a.stanczyk napisał/a:

Witam,
Pytanie po przeczytanie na stronie artykułu OpenWrt - DVB-T, zastanawiam się jak dorzucić do kompilacji OpenWrt sterowniki do RTL2832U, make menuconfig nie ma opcji dvb sterowników, pytanie jak je tam wrzucić aby się skompilowały z softem?

A jak już uda Ci się wyłuskać sterowniki z kernela to, żeby były w obrazie to standardowo musisz utworzyć - w glównym katalogu z którego kompilujesz - folder:

./files

a w nim podfoldery występujące w Twoim obrazie, do których możesz wrzucić różne pliki np.

./files/lib/modules/4.14.199/              #gdzie 4.14.199 to nr kernela aktualnego snapshota - tu wrzucasz moduły *.ko
./files/etc/rc.local                       #w tym pliku określasz kolejność ładowania modułów przy starcie
./files/lib/firmware                       #gdy twój tuner wymaga pliku firmware, ale RTL to raczej nie ma.

Firmware na pewno ma IT9135 czyli Afatech 9035. Z tym folderem to taka uwaga na przyszłość bo jest wg mnie lepszy jeśli chodzi o czułość itp. To jeżeli będziesz miał okazję to sprawdź. Niezłe jest też Siano tylko z 3 modułami sms*.ko do obsługi

Inne potrzebne moduły jak: input_core, i2c* możesz zaznaczyć w:

# make menuconfig 
Kernel modules
  I2C support ->
      <*>.....
  Input modules ->
     <*>kmod-input-core

żeby znalazły się w obrazie. Tak to wygląda z grubsza.
PS. Nie mówiąc o tym, że możesz wrzucić do obrazu całą konfigurację TVHeadend-a i w kolejnych kompilacjach oprócz podmiany modułów z wyższej wersji kernela, masz działający serwer TV smile

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

9

Odp: DVB-T RTL2832U na MT7621

uprzedzając dalsze pytania zalecam poszukanie na forum tematów o DVB-T jest ich całkiem sporo - są tam opisane wszystkie możliwe problemy, np: kolejność ładowania modłów , start tvheanded , itd

10

Odp: DVB-T RTL2832U na MT7621

Udało się!
Dziękuję za pomoc!

Kilka uwag ode mnie dla przyszłych osób próbujących ogarnąć temat:

@Cezary, czy możesz to dodać co napisał @mar_w do swojego poradnika na stronie?

I jako uwagę dodać że koniecznie trzeba zaznaczać jako M(moduł), a nie * gdyż inaczej nie powstaną pliki .ko

Oraz dodać ścieżkę gdzie znaleźć pliki:  build_dir/target*/linux*/linux*/drivers/media

Device Drivers
    Input device support
        <M> Generic input layer (...)
    ...
    I2C support
        <M> I2C support
        <M> I2C device interface
        <M> I2C bus multiplexing support
    ...
    <*> USB Support
        {M} Support for Host-side USB
        <M> USB announce new devices

    #wracasz do głównego menu w gałęzi "Device drivers" i wyżej w tym menu

    <M> Remote Controller Support
        <M> Compile Remote Controler keymap module
    ...
    <M> Multimedia support
        <*> Digital TV support
        <*> Media USB adapters
            <M> Support for various USB DVB devices v2
            <M> Realtek RTL28xxU DVB USB support

        Customize TV tuner
        # możesz potrzebować np Fitipower
            <M> Fitipower FC0011[12,13]
       
        Customise DVB Fronends
            *** DVB-T (terrestial) frontends
            -M- Realtek RTL2830 DVB-T
            -M- Realtek RTL2832 DVB-T

Kwestia pakietów to trzeba mieć:
- kmod-i2c-mux
- kmod-input-core

Najlepiej sobie wrzucić już na stałe jako * nie bawić się w moduły mniej później zostaje do ogarnięcia big_smile


Prawidłowa kolejność ładowania modułów u mnie wyglądała następująco:

insmod rc-core.ko
insmod dvb-core.ko
insmod rtl2830.ko
insmod rtl2832.ko
insmod dvb_usb_v2.ko
insmod fc0013.ko
insmod dvb-usb-rtl28xxu.ko

W kolejności złej dla mojej kompilacji, wołał o jakieś regmapy których nie mogłem znaleźć w konfiguracjach, aby zainstalować. Zacząłem zmieniać kolejność ładowania modułów i znalazłem w jakiej ładować moduły aby nie wywalało błędu i działało.


Poszło tak wygląda log z dmesg:

[ 1186.723603] usb 1-1: new high-speed USB device number 4 using xhci-mtk
[ 1186.925160] usb 1-1: New USB device found, idVendor=1f4d, idProduct=c803
[ 1186.938521] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1186.952740] usb 1-1: Product: RTL2838UHIDIR
[ 1186.961077] usb 1-1: Manufacturer: Realtek
[ 1186.969235] usb 1-1: SerialNumber: 00000001
[ 1186.985881] usb 1-1: dvb_usb_v2: found a 'Trekstor DVB-T Stick Terres 2.0' in warm state
[ 1187.034982] usb 1-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[ 1187.053795] dvbdev: DVB: registering new adapter (Trekstor DVB-T Stick Terres 2.0)
[ 1187.114415] i2c i2c-0: Added multiplexed i2c bus 1
[ 1187.124141] rtl2832 0-0010: Realtek RTL2832 successfully attached
[ 1187.136661] usb 1-1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[ 1187.153066] fc0013: Fitipower FC0013 successfully attached.
[ 1187.287087] Registered IR keymap rc-empty
[ 1187.295684] rc rc0: Trekstor DVB-T Stick Terres 2.0 as /devices/platform/1e1c0000.xhci/usb1/1-1/rc/rc0
[ 1187.314963] input: Trekstor DVB-T Stick Terres 2.0 as /devices/platform/1e1c0000.xhci/usb1/1-1/rc/rc0/input0
[ 1187.334926] usb 1-1: dvb_usb_v2: schedule remote query interval to 200 msecs
[ 1187.357156] usb 1-1: dvb_usb_v2: 'Trekstor DVB-T Stick Terres 2.0' successfully initialized and connected

11

Odp: DVB-T RTL2832U na MT7621

Jak byś zaznaczył jako * to wkompilowało by się to w kernel i nie nawet nie musiał byś nic kopiować do systemu...

Do którego poradnika? Tego starego który był 8 lat temu? Chyba mija się to z celem, bo jest mało już aktualny.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12 (edytowany przez a.stanczyk 2020-10-11 17:21:38)

Odp: DVB-T RTL2832U na MT7621

Cezary napisał/a:

Jak byś zaznaczył jako * to wkompilowało by się to w kernel i nie nawet nie musiał byś nic kopiować do systemu...

Do którego poradnika? Tego starego który był 8 lat temu? Chyba mija się to z celem, bo jest mało już aktualny.

To co zaznaczałem w make kernel_menuconfig jako * nie w kompilowało się w kernel(docelowo obraz bin do routera)?

Które pliki masz na myśli że w kompilowały by się?
Te pliki?
insmod rc-core.ko
insmod dvb-core.ko
insmod rtl2830.ko
insmod rtl2832.ko
insmod dvb_usb_v2.ko
insmod fc0013.ko
insmod dvb-usb-rtl28xxu.ko

Nawet dodać na końcu informację do poradnika, aby następna osoba nie musiała przegrzebywać forum i zakładać kolejnych tematów wink

13

Odp: DVB-T RTL2832U na MT7621

Owszem, wkompilowało by się w kernel. Wszystkie które zaznaczyłeś jako <*> w kernel_menuconfig. Tak właśnie działa kernel linuksowy...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: DVB-T RTL2832U na MT7621

Cezary napisał/a:

Owszem, wkompilowało by się w kernel. Wszystkie które zaznaczyłeś jako <*> w kernel_menuconfig. Tak właśnie działa kernel linuksowy...

To wracamy do początku, jak zaznaczyłem * moduły i pisałem

Myślałem że będzie łatwo zaznaczę * i skompiluje i gotowe, ale moduły/sterowniki nie pojawiają się w obrazie po wykonaniu "make".

Odpisałeś:

Cezary napisał/a:

moduły nie pojawią się w obrazie, bo z tego nie robią się paczki. Zrobiły się pliki *.ko w katalogu z kernelem które możesz sobie skopiować do działającego obrazu.

Żeby była paczka z tego to musi być jeszcze odpowiedni makefile, a obsługi dvbt nigdy w openwrt nie było.

Jeśli po wykonaniu make i zaznaczeniu * w kompilują się te moduły w kernel, to co mi po kernelu który nie trafia finalnie do obrazu?

Chyba że mogę jakoś to połączyć aby przy budowaniu obrazu kernel z modułami w kompilowanymi trafił do obrazu?

15

Odp: DVB-T RTL2832U na MT7621

No tak.

Cokolwiek zrobisz przez make kernel_menuconfig, to ustawia to opcje kernela. Jeżeli później to zapiszesz i zbudujesz z tego kompletny obraz to te opcje będą uwzględnione.
Jeżeli w opcjach kernela zaznaczyłeś <m> to zbudują się moduły kernela (nie paczki z modułami!) i one oczywiście nie znajdą się w docelowym obrazie jeżeli sam tego nie zrobisz. Jeżeli zrobiłeś <*> to wszystko co zaznaczyłeś znajdzie się jako cześć monolitycznego kernela. Jeżeli z tego zbudujesz obraz to to też tam będzie.
Oczywiście nie masz wtedy jak wymusić kolejności ładowania itd, bo wszystko jest w samym kernelu, na dodatek znacznie się on powiększy, a niektóre routery mają ograniczenie ile może wynosić kernel (albo na wielkość partycji z kernelem albo na wielkość kernela który może bootloader załadować). Ale to już inna historia.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16 (edytowany przez kmaras77 2022-05-03 23:57:18)

Odp: DVB-T RTL2832U na MT7621

Udało mi się uruchomić tvheadend + dwa dongle 820T2 oparte na RTL2832U.

Router Netgear R6220 ze względu na dużego flasha (i niską cenę) nadaje się doskonale jako serwer streamu z anteny.
Sterowniki zaznaczyłem * i są w jądrze, zrobiłem lekki tuning ręczny pliku .config jądra, aby wywalić nadmiarowe sterowniki.
Wszystko zmieściło się we flashu, bez extroota.

Z Kodi, VNC, TVHEADEND Client - wszystko działa., jest obraz, bez lagów itp.

Jedyny problem, to brak obrazu, jak się wejdzie przez przeglądarkę na port 9981 i chce tam oglądać TV - jest komunikat w oknie oglądania - An unknown error occured.
Nie wiem, czym to może być wywołane - w logach jest wszystko w porządku.

17

Odp: DVB-T RTL2832U na MT7621

kmaras77 napisał/a:

Udało mi się uruchomić tvheadend + dwa dongle 820T2 oparte na RTL2832U.

Router Netgear R6220 ze względu na dużego flasha (i niską cenę) nadaje się doskonale jako serwer streamu z anteny.

Zbudowałeś obraz z tvheadend i obsługą wspomnianych tunerów dla R6220 ?
Miałbyś możliwość udostępnić ?

18

Odp: DVB-T RTL2832U na MT7621

mesmariusz napisał/a:
kmaras77 napisał/a:

Udało mi się uruchomić tvheadend + dwa dongle 820T2 oparte na RTL2832U.

Router Netgear R6220 ze względu na dużego flasha (i niską cenę) nadaje się doskonale jako serwer streamu z anteny.

Zbudowałeś obraz z tvheadend i obsługą wspomnianych tunerów dla R6220 ?
Miałbyś możliwość udostępnić ?

Mogę. Mam obrazy z tvheadend oraz z minisatip.

Ktory chcesz?

19 (edytowany przez mesmariusz 2023-03-27 00:29:21)

Odp: DVB-T RTL2832U na MT7621

Tvheadend poproszę :-D

Swoją drogą, wspomniane 820T2 wspierają dvb-t2 ?

Tu jakieś powystawiane, ale podejrzanie niska cena:
https://allegro.pl/oferta/rtl2832u-i-r8 … 3333367369

20 (edytowany przez kmaras77 2023-03-27 06:44:52)

Odp: DVB-T RTL2832U na MT7621

mesmariusz napisał/a:

Tvheadend poproszę :-D

Swoją drogą, wspomniane 820T2 wspierają dvb-t2 ?

Tu jakieś powystawiane, ale podejrzanie niska cena:
https://allegro.pl/oferta/rtl2832u-i-r8 … 3333367369

Rtl2832 obsłuży dvbt2, ale nie obsłuży nowego kodowania HEVC.
Wiec tv się długo nie poogląda.

Ja przesiadam się na odbiornik od XBOXa.
W moim image jest obsluga obu.

21

Odp: DVB-T RTL2832U na MT7621

Zakupiłem więc tego od Xbox-a, zobaczymy jak się sprawdzi. Na PM wysłałem swojego maila, jak możesz, mi obraz dla R6220, będziemy testować :-)

22

Odp: DVB-T RTL2832U na MT7621

Chętnie przetestuję obrazy na odbiorniku xboxa. Piszę email smile

23 (edytowany przez kmaras77 2023-03-27 19:14:14)

Odp: DVB-T RTL2832U na MT7621

https://drive.google.com/drive/folders/ … sp=sharing

Image z wkompilowanymi sterownikami oraz wgranym minisatip. Obrazu z tvheadend już nie mam.

Aby wgrać tvheadend, trzeba odinstalować minisatip, a wgrać tvheadend.

Generalnie tvheadend lub jakis inny soft można wgrać sobie gdzie indziej, a minisatip dać jako źródło sieciowe. Ja tak robię, bo tvheadend na wirtualce z linuxem działa po prostu lepiej.

24

Odp: DVB-T RTL2832U na MT7621

@kmaras77
czy możesz udostępnić plik .config z Twojej kompilacji openwrt i działającym tunerem xbox?

25 (edytowany przez kmaras77 2023-03-28 20:39:36)

Odp: DVB-T RTL2832U na MT7621

JanMaz napisał/a:

@kmaras77
czy możesz udostępnić plik .config z Twojej kompilacji openwrt i działającym tunerem xbox?

To nie takie proste, gdyż jest jeden config od kernela a drugi do pakietów. Parę dni i buildów mi zajęło zrobienie działającego image.
I ten od kernela jest trudny do zarządzenia i muszę ręcznie go przygotowywać.

Dodatkowo - mam skrypty i configi do każdego routera i przy każdej kompilacji czyszczę wszystko i pobieram na nowo, aby żadne poprzednie zmiany mi nie bruździły.

Do tunera XBOX trzeba mieć jeszcze w drzewie pliki z firmware.
\lib\firmware\dvb-demod-mn88472-02.fw
\lib\firmware\dvb-usb-dib0700-1.20.fw

Ja robię tak:

Pierwszy raz:
make kernel_menuconfig         i wybieram moduły do wkompilowania, potem zapisuję sobie plik guzikiem save, enter, oraz drugi raz jego kopię na boczku, w innym katalogu (ale nie jest to plik .config z roota openwrt)

a potem normalnie make i kompilacja.


I jak chcę zbudować obraz ponownie to make kernel_menuconfig i ładuje ten zapisany plik, robię zapis do domyslnej lokalizacji i potem zwykła kompilacja.



moduły mam takie:

CONFIG_MEDIA_TUNER=y

#
# Customize TV tuners
#
CONFIG_MEDIA_TUNER_SIMPLE=y
CONFIG_MEDIA_TUNER_TDA18250=y
CONFIG_MEDIA_TUNER_R820T=y

#
# DVB-T (terrestrial) frontends
#

CONFIG_DVB_DIB7000M=y
CONFIG_DVB_DIB7000P=y
CONFIG_DVB_RTL2832=y