Watching digital TV (SBTVD) in the Linux

Today I got Digital TV working on Linux, thanks to Mauro Chehab.

I used a PixelView PlayTV USB SBTVD (ISDB-T Full Seg):
http://www.pixelview.com.br/play_tv_usb_sbtvd_fullseg.asp

The PixelView uses a DiBcom 8000 chipset. Then the first thing to do is downloading new v4l tree which has support to this chip:

$ hg clone http://linuxtv.org/hg/v4l-dvb
$ cd v4l-dvb
$ make
$ make install

Plug the PixelView PlayTV in the USB, then you should see it:

[100113.248017] usb 1-6: new high speed USB device using ehci_hcd and address 6
[100113.381226] usb 1-6: configuration #1 chosen from 1 choice
[100113.400725] dib0700: loaded with support for 13 different device-types
[100113.400898] dvb-usb: found a ‘Prolink Pixelview SBTVD’ in cold state, will try to load a firmware
[100113.400901] usb 1-6: firmware: requesting dvb-usb-dib0700-1.20.fw
[100113.453468] dvb-usb: downloading firmware from file ‘dvb-usb-dib0700-1.20.fw’
[100113.654896] dib0700: firmware started successfully.
[100114.156511] dvb-usb: found a ‘Prolink Pixelview SBTVD’ in warm state.
[100114.156545] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[100114.156718] DVB: registering new adapter (Prolink Pixelview SBTVD)
[100114.387904] DVB: registering adapter 0 frontend 0 (DiBcom 8000 ISDB-T)…
[100114.602780] DiB0070: successfully identified
[100114.602853] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1a.7/usb1/1-6/input/input6
[100114.608551] dvb-usb: schedule remote query interval to 50 msecs.
[100114.608555] dvb-usb: Prolink Pixelview SBTVD successfully initialized and connected.
[100114.608674] usbcore: registered new interface driver dvb_usb_dib0700

Now we need the “scan” and “gnutv” software to see the channels, they are in dvd-apps branch:

$ hg clone http://linuxtv.org/hg/dvb-apps
$ cd dvb-apps
$ make
$ sudo make install

To scan channels we need to have a frequency file, this is the content of my ch_freq.conf:
# UHF channels 14 to 69
T 473142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 14
T 479142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 15
T 485142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 16
T 491142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 17
T 497142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 18
T 503142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 19
T 509142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 20
T 515142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 21
T 521142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 22
T 527142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 23
T 533142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 24
T 539142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 25
T 545142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 26
T 551142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 27
T 557142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 28
T 563142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 29
T 569142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 30
T 575142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 31
T 581142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 32
T 587142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 33
T 593142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 34
T 599142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 35
T 605142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 36
# channel 37 not used
T 617142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 38
T 623142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 39
T 629142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 40
T 635142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 41
T 641142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 42
T 647142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 43
T 653142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 44
T 659142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 45
T 665142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 46
T 671142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 47
T 677142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 48
T 683142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 49
T 689142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 50
T 695142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 51
T 701142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 52
T 707142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 53
T 713142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 54
T 719142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 55
T 725142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 56
T 731142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 57
T 737142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 58
T 743142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 59
T 749142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 60
T 755142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 61
T 761142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 62
T 767142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 63
T 773142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 64
T 779142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 65
T 785142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 66
T 791142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 67
T 797142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 68
T 803142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # channel 69

Note: This is the generic frequency table for Brazil, based on ABNT standard.

Execute scan to detect channels:
$ scan ch_freq.conf > channels.conf

Then the “scan” should create the channels.conf with content like this (for Belo Horizonte/MG):
BAND:509142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:250:255:23040
BAND:509142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:275:280:23064
RedeTV – 1SEG:539142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:768:512:59640
RedeTV – HD:539142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:769:513:59616
Record HD:557142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:273:274:23552
Record 1seg:557142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:641:643:23576
Globo HD:587142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:273:274:23104
Globo 1SEG:587142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:529:530:23129
TV ALTEROSA HD:605142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:513:514:23136
TV ALTEROSA 1SEG:605142857:INVERSION_AUTO:BANDWIDTH_6_MHZ:FEC_3_4:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE:257:258:23160

Now it time to watch TV, but unhappily the codec used (H.264) to SBTVD is not supported by gnutv until now, then we will save it to file and use VLC player to watch:

$ gnutv -out file band.mpg -channels channels.conf BAND
Using frontend “DiBcom 8000 ISDB-T”, type DVB-T
status SCVYL | signal aff2 | snr 0015 | ber 00000380 | unc 00000015 | FE_HAS_LOCK

Open a new terminal and execute:
$ vlc band.mpg

This is a snapshot:

Other option is using VLC directly to watch TV, just execute:
$ vlc channels.conf

To see all channels go to Playlist -> Show Playlist and double click the channel you want to watch.

22 thoughts on “Watching digital TV (SBTVD) in the Linux

  1. Hi Fabricio,

    I didn’t test it, but I think Windows driver already do that for you.

    To be honest I don’t care about windows 😉

    Best Regards,

    Alan

  2. Olá Alan!
    Acabei de adquirir uma PixelView PlayTV USB Hybrid (http://www.pixelview.com.br/playtv_usb_hybrid.asp). A primeira coisa que tentei, claro, é seguir os procedimentos acima. Mas depois de várias tentativas sem sucesso descobri que o(s) chipset (s) são diferentes (TDA18271 (NXP Hybrid Tuner), 86A20S (Fujitsu ISDB-T demodulator),
    CX23102 (CNXT AV Decoder – 10bit), USB Bridge).

    Procurei na árvore do v4l-dvb e no site linuxtv e não encontrei referências a respeito deste equipamento. Encontrei, contudo, drivers cx231xx e tda18271. Mas mesmo após carregar estes drivers via modprobe, não obtive resultado. Também tentei carregar o driver dvb_usb_cxusb se sucesso.

    Você por acaso sabe de algo a respeito deste equipamento ou se os drivers estão em desenvolvimento?

    Um abraço.

  3. Esqueci de postar as informações do dmesg:

    usb 2-3: new high speed USB device using ehci_hcd and address 8
    usb 2-3: New USB device found, idVendor=1554, idProduct=5010
    usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    usb 2-3: Product: Polaris AV Capturb
    usb 2-3: Manufacturer: Conexant Corporation
    usb 2-3: SerialNumber: CIR000000000001
    usb 2-3: configuration #1 chosen from 1 choice

    o interessante é que o idVendor e o idProduct é o mesmo do PixelView PlayTV USV SBTVD, e por este motivo o linux tenta carregar automaticamento o driver do dib0700.

    Um abraço

    1. Eu tb comprei o Hybrid e estou com o mesmo problema. Acredito que dê para forçar o Linux a usar outro drive. Bastaria configurar algum arquivo em /etc/modprobe.d/ ou mesmo nos fontes que compilamos, mas eu ainda estou pesquisando as soluções.

      1. Pelo que eu verifiquei, falta só o driver do Fujitsu ISDB-T demodulator (MB86A20S) e alterar a identificação no usbid, para que ele não tente carregar o dib0700.

        Vamos esperar…

  4. Hi acassis,
    this post was really helpful, but I’m still having problems when scanning for channels. The device is correctly detected and intialized (dmesg says “dvb-usb: DiBcom STK8096GP reference design successfully initialized and connected.”). It’s MyGica S870,
    I live in Buenos Aires, Argentina. We are just beginning to broadcast in ISDB-T so we have very little coverage right now; I expect it to improve vastly.
    Where I live I receive two channels (each with multiple signals, of course), UHF 23 and 43. I used your frequencies file feeding dvb-apps’s scan. Most signals just are ignored with “tuning failed” (which is correct), but on channel 23 it just hangs forever (tried commenting 23 and it hangs on 43).
    My problem is I don’t know where to look to debug this (dmesg doesn’t show anything, so I guess the device is correctly initialized). What logs does dvb-apps keep? stdout doesn’t say anything, it just hangs.

    Thanks in advance,

    nachokb

  5. Amigo estou aqui tentando fazer funcionar um dos dois adaptadores usb que tenho aqui e nem to conseguindo. Você sabe me dizer como posso descobrir qual firmware devo baixar pra eles?

  6. Olá Bruno,

    Você precisa primeiro verificar qual o chip cada um deles utiliza, pois, se eles não forem suportados, de nada adiantaria ter o firmware certo para eles.

    Um abraço,

    Alan

  7. Alan

    Pelo lsusb vi que um tem o enc313alguma coisa que não lembro. E o outro a unica coisa que conseguir ver foi o modelo que dizia ser AVerTv h868. Onde consigo descobrir que firmware suporta um deles?

    Abraços

  8. Alan,

    Entrei nesse link que passou e um dos adaptadores tem la. É esse aoc que é o penultimo listado. Mais na pagina não diz que firmware devo baixar pra ele. AOC ConnecTV Digital o modelo. Pode ajudar ai?

    abraços

  9. Estou tentando instalar EzTV ISDB-T via USB em meu Ubuntu mas não estou conseguindo.
    1) Executando lsusb, é exibido “187f:0201” do dispositivo.
    2) Se executo “ls /dev/dvb”, é exibido “adapter0”;
    3) Se executo “dmesg”, é exibido:
    [19200.388111] usb 1-6: new high speed USB device using ehci_hcd and address 7
    [19200.520943] usb 1-6: configuration #1 chosen from 1 choice
    [19200.522600] usb 1-6: firmware: requesting dvb_nova_12mhz_b0.inp
    [19201.080057] smscore_set_device_mode: firmware download success: dvb_nova_12mhz_b0.inp
    [19201.080340] DVB: registering new adapter (Siano Nova B Digital Receiver)
    [19201.080634] DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)…

    Entretanto, o VLC não consegue encontrar nenhum serviço.

    O que posso estar fazendo de errado?

  10. Ola Jociel,

    Tente usar o gnutv para gravar o video como no exemplo acima. Se funcionar voce saberá onde está o problema, no vlc ou no driver do adaptador de TV Digital.

    Se o gnutv falhar tente usar o strace para descobrir mais informações sobre a falha.

  11. Eu apliquei o comando:
    nogueira@nogueira-asus-eeepc:~$ sudo hg clone http://linuxtv.org/hg/v4l-dvb
    diretório de destino: v4l-dvb
    pedindo todas as mudanças
    adicionando revisões
    adicionando manifestos
    adicionando mudanças em arquivos
    adicionadas 15165 revisões com 37254 mudanças em 2878 arquivos
    atualizando para o ramo default
    1734 arquivos atualizados, 0 arquivos mesclados, 0 arquivos removidos, 0 arquivos não resolvidos

    Aparentemente deu certo. Mas na compilação deu erro:
    CC [M] /home/nogueira/v4l-dvb/v4l/et61x251_tas5130d1b.o
    CC [M] /home/nogueira/v4l-dvb/v4l/firedtv-avc.o
    CC [M] /home/nogueira/v4l-dvb/v4l/firedtv-ci.o
    CC [M] /home/nogueira/v4l-dvb/v4l/firedtv-dvb.o
    CC [M] /home/nogueira/v4l-dvb/v4l/firedtv-fe.o
    CC [M] /home/nogueira/v4l-dvb/v4l/firedtv-1394.o
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:22:17: error: dma.h: No such file or directory
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:23:21: error: csr1212.h: No such file or directory
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:24:23: error: highlevel.h: No such file or directory
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:25:19: error: hosts.h: No such file or directory
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:26:22: error: ieee1394.h: No such file or directory
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:27:17: error: iso.h: No such file or directory
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:28:21: error: nodemgr.h: No such file or directory
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:41: warning: ‘struct hpsb_iso’ declared inside parameter list
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:41: warning: its scope is only this definition or declaration, which is probably not what you want
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘rawiso_activity_cb’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:57: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:58: error: implicit declaration of function ‘hpsb_iso_n_ready’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:65: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:66: error: implicit declaration of function ‘dma_region_i’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:66: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:66: error: expected expression before ‘unsigned’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:68: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:72: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:86: error: implicit declaration of function ‘hpsb_iso_recv_release_packets’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘node_of’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:91: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:91: warning: type defaults to ‘int’ in declaration of ‘__mptr’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:91: warning: initialization from incompatible pointer type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:91: error: invalid use of undefined type ‘struct unit_directory’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘node_lock’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:96: error: ‘quadlet_t’ undeclared (first use in this function)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:96: error: (Each undeclared identifier is reported only once
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:96: error: for each function it appears in.)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:96: error: ‘d’ undeclared (first use in this function)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:97: warning: ISO C90 forbids mixed declarations and code
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:99: error: implicit declaration of function ‘hpsb_node_lock’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:100: error: ‘EXTCODE_COMPARE_SWAP’ undeclared (first use in this function)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘node_read’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:108: error: implicit declaration of function ‘hpsb_node_read’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘node_write’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:113: error: implicit declaration of function ‘hpsb_node_write’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘start_iso’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:124: error: implicit declaration of function ‘hpsb_iso_recv_init’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:124: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:126: error: ‘HPSB_ISO_DMA_DEFAULT’ undeclared (first use in this function)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:135: error: implicit declaration of function ‘hpsb_iso_recv_start’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:138: error: implicit declaration of function ‘hpsb_iso_shutdown’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘stop_iso’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:149: error: implicit declaration of function ‘hpsb_iso_stop’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: At top level:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:164: warning: ‘struct hpsb_host’ declared inside parameter list
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘fcp_request’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:177: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:178: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘node_probe’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:192: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:192: warning: type defaults to ‘int’ in declaration of ‘__mptr’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:192: warning: initialization from incompatible pointer type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:192: error: invalid use of undefined type ‘struct unit_directory’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:197: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:198: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:199: error: implicit declaration of function ‘CSR1212_TEXTUAL_DESCRIPTOR_LEAF_DATA’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:199: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: At top level:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:258: warning: ‘struct unit_directory’ declared inside parameter list
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘node_update’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:260: error: dereferencing pointer to incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: At top level:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:268: error: variable ‘fdtv_driver’ has initializer but incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:269: error: unknown field ‘name’ specified in initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:269: warning: excess elements in struct initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:269: warning: (near initialization for ‘fdtv_driver’)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:270: error: unknown field ‘id_table’ specified in initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:270: warning: excess elements in struct initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:270: warning: (near initialization for ‘fdtv_driver’)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:271: error: unknown field ‘update’ specified in initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:271: warning: excess elements in struct initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:271: warning: (near initialization for ‘fdtv_driver’)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:272: error: unknown field ‘driver’ specified in initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:272: error: extra brace group at end of initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:272: error: (near initialization for ‘fdtv_driver’)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:275: warning: excess elements in struct initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:275: warning: (near initialization for ‘fdtv_driver’)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:278: error: variable ‘fdtv_highlevel’ has initializer but incomplete type
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:279: error: unknown field ‘name’ specified in initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:279: warning: excess elements in struct initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:279: warning: (near initialization for ‘fdtv_highlevel’)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:280: error: unknown field ‘fcp_request’ specified in initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:280: warning: excess elements in struct initializer
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:280: warning: (near initialization for ‘fdtv_highlevel’)
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘fdtv_1394_init’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:287: error: implicit declaration of function ‘hpsb_register_highlevel’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:288: error: implicit declaration of function ‘hpsb_register_protocol’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:291: error: implicit declaration of function ‘hpsb_unregister_highlevel’
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c: In function ‘fdtv_1394_exit’:
    /home/nogueira/v4l-dvb/v4l/firedtv-1394.c:298: error: implicit declaration of function ‘hpsb_unregister_protocol’
    make[3]: *** [/home/nogueira/v4l-dvb/v4l/firedtv-1394.o] Error 1
    make[2]: *** [_module_/home/nogueira/v4l-dvb/v4l] Error 2
    make[2]: Leaving directory `/usr/src/linux-headers-2.6.32-24-generic-pae’
    make[1]: ** [default] Erro 2
    make[1]: Saindo do diretório `/home/nogueira/v4l-dvb/v4l’
    make: ** [all] Erro 2

  12. Ola Antonio Carlos,

    Creio que voce nao instalou o kernel headers no seu linux ou ainda nao efetuou a compilacao e instalacao do kernel Linux.

    Voce precisa dos headers (.h) instalados no seu sistema para efetuar a compilacao do subsystem V4L.

    Um abraco,

    Alan

Leave a comment