119 thoughts on “SAA7164 Analog support complete?

  1. not to try an hijack this discussion, but can anyone point me in the right direction to finish installing the driver? I successfully compiled the driver as per Erol’s instructions (needed root to get ncurses lib to work for whatever reason) without FiredTV. When i use make install (with or w/o root, same result) i get errors in part [2] (firmware section).
    make -C firmware install
    make[2]: Entering directory `/home/mlavigne/saa7164-v4l/v4l/firmware’
    Installing firmwares at /lib/firmware: vicam/firmware.fw cp: cannot stat `vicam/firmware.fw’: No such file or directory
    dabusb/firmware.fw cp: cannot stat `dabusb/firmware.fw’: No such file or directory
    dabusb/bitstream.bin cp: cannot stat `dabusb/bitstream.bin’: No such file or directory
    ttusb-budget/dspbootcode.bin cp: cannot stat `ttusb-budget/dspbootcode.bin’: No such file or directory
    cpia2/stv0672_vp4.bin cp: cannot stat `cpia2/stv0672_vp4.bin’: No such file or directory
    av7110/bootcode.bin cp: cannot stat `av7110/bootcode.bin’: No such file or directory
    make[2]: [install] Error 1 (ignored)

    any pointers / locations to look for help finishing this install?

    Thanks in advance, i cant wait to ditch windows media center (and windows in general)

  2. Thank you for this driver. I adapted the saa7164-v4l code from Steven’s branch to compile under kernel 2.6.35. It loads fine into my Hauppauge 2250 board:
    [ 9.127578] saa7164 driver loaded
    [ 9.127721] saa7164 0000:07:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
    [ 9.138502] CORE saa7164[0]: subsystem: 0070:8851, board: Hauppauge WinTV-HVR2250 [card=7,insmod option]
    [ 9.138524] saa7164[0]/0: found at 0000:07:00.0, rev: 129, irq: 19, latency: 0, mmio: 0xfb800000
    [ 9.138540] saa7164 0000:07:00.0: setting latency timer to 64
    [ 9.300538] saa7164_downloadfirmware() no first image
    [ 9.300612] saa7164_downloadfirmware() Waiting for firmware upload (NXP7164-2010-03-10.1.fw)
    [ 9.357249] saa7164_downloadfirmware() firmware read 4019072 bytes.
    [ 9.357257] saa7164_downloadfirmware() firmware loaded.
    [ 9.357287] saa7164_downloadfirmware() SecBootLoader.FileSize = 4019072
    [ 9.357299] saa7164_downloadfirmware() FirmwareSize = 0x1fd6
    [ 9.357305] saa7164_downloadfirmware() BSLSize = 0x0
    [ 9.357311] saa7164_downloadfirmware() Reserved = 0x0
    [ 9.357317] saa7164_downloadfirmware() Version = 0x1661c00
    [ 16.216531] saa7164_downloadimage() Image downloaded, booting…
    [ 16.321585] saa7164_downloadimage() Image booted successfully.
    [ 18.452017] saa7164_downloadimage() Image downloaded, booting…
    [ 20.324021] saa7164_downloadimage() Image booted successfully.
    [ 20.360749] saa7164[0]: Hauppauge eeprom: model=88061
    [ 20.950691] DVB: registering new adapter (saa7164)
    [ 23.843960] DVB: registering new adapter (saa7164)
    [ 23.845274] saa7164[0]: registered device video0 [mpeg]
    [ 24.075210] saa7164[0]: registered device video1 [mpeg]
    [ 24.286472] saa7164[0]: registered device vbi0 [vbi]
    [ 24.286664] saa7164[0]: registered device vbi1 [vbi]

    I’m in Canada and have analog service. Running the following yields no channels:
    scantv -i tuner -C /dev/vbi0 -c /dev/video0:
    input = tuner
    norm = NTSC-M

    scanning channel list us-cable…
    1 ( 73.25 MHz): no station
    2 ( 55.25 MHz): no station
    3 ( 61.25 MHz): no station
    4 ( 67.25 MHz): no station
    5 ( 77.25 MHz): no station
    6 ( 83.25 MHz): no station
    7 (175.25 MHz): no station
    8 (181.25 MHz): no station

    Trying with mplayer:
    v4l2-ctl -d /dev/video0 –set-freq=55.250
    mplayer /dev/video0

    Gives me a blue screen. While mplayer was showing the blue screen, I performed the scantv command (same as above), and saw channels flicker. I then used v4l2-ctl –set-freq to tune to some particular channels and sometimes a channel would appear for about 1 second and then back to blue screen. I could not lock on to any channel.

    In dmesg there were many instances of:

    [ 127.110249] NVRM: os_raise_smp_barrier(), invalid context!

    [ 1184.609426] No pack at 0x0

    And this:
    [ 2956.255200] saa7164_api_get_videomux() error, ret = 0x9
    [ 2962.502029] saa7164_api_audio_mute() error, ret = 0x9
    [ 2962.502037] saa7164_api_set_videomux() error, ret = 0x9
    [ 2962.503211] saa7164_api_set_videomux() error, ret = 0x9
    [ 2962.505108] saa7164_api_set_videomux() error, ret = 0x9
    [ 2962.505966] saa7164_api_audio_mute() error, ret = 0x9
    [ 2962.505971] saa7164_api_set_videomux() error, ret = 0x9
    [ 2962.507331] saa7164_api_set_audio_std() error, ret = 0x9
    [ 2962.508815] saa7164_api_set_audio_std() TU_STANDARD_CONTROL error, ret = 0x13
    [ 2962.814847] saa7164_api_audio_mute() error, ret = 0x9
    [ 2962.814855] saa7164_api_set_videomux() error, ret = 0x9
    [ 2962.817574] saa7164_api_set_videomux() error, ret = 0x9
    [ 2962.819941] saa7164_api_set_videomux() error, ret = 0x9
    [ 2962.825422] saa7164_api_audio_mute() error, ret = 0x9
    [ 2962.825433] saa7164_api_set_videomux() error, ret = 0x9
    [ 2962.828200] saa7164_api_set_audio_std() error, ret = 0x9
    [ 2962.833750] saa7164_api_set_audio_std() TU_STANDARD_CONTROL error, ret = 0x13

    And this:
    [ 3748.890230] tda18271c2_rf_tracking_filters_correction: [1-0060|M] error -22 on line 278
    [ 3748.894252] tda18271_calc_ir_measure: [1-0060|M] error -34 on line 716
    [ 3748.894260] tda18271_calc_bp_filter: [1-0060|M] error -34 on line 648
    [ 3748.894266] tda18271_calc_rf_band: [1-0060|M] error -34 on line 682
    [ 3748.894273] tda18271_calc_gain_taper: [1-0060|M] error -34 on line 699
    [ 3748.897426] tda18271_calc_main_pll: [1-0060|M] error -34 on line 592

    Not sure what to do to fix this. I saw in an earlier post a suggestion to tune 125Khz more. How to do that? c4l2 seems to round the frequencies.

    I also included this in /etc/modprobe.d/saa7164.conf:
    options saa7164 debug=0 fw_debug=0 encoder_buffers=512 vbi_buffers=128

    I compiled the -stable branch, it loads OK but does not create the video and vbi devices so I didn’t use it.


  3. I am running this branch successfully and getting good analog recordings off of my HVR-2250. However, I am finding that my HDPVR no longer registers as an LIRC device and can no longer send signals to my STB. Is this known behavior, and if so, is there a workaround? Thanks.

  4. Hi, I wonder if I can run both analog and dvb-t with this driver? I have all my channels in digital except two that i need to run in analog mode. Anybody tried this? (I have the 2200 btw).

    Best regard, chraist.

  5. Just a note on an observed buggy interaction with Broadcom Tiger 3 NICs.
    It happened to me under Ubuntu Lucid for a while that changing channels on a 2250 would aparently freeze the box. It turned out that the freezing was of the NIC driver. An unload / load cycle will restore functions.
    If anyone suffers the same, the latest Broadcom driver from
    fixes the issue and is painless to substitute for the distro one.

  6. Hi, I’m from Argentina. I’m trying to use the HVR-2250 with PAL-N analog cable signal.

    ¿Does anybody knows how to do it? ¿Is someone making it work with PAL-N reception? ¿What’s the status of this?

    Thanks for the work that’s already done,


    • Matias,
      the 2250 just works in PALn. It used to be the case that the driver did not advertise this, and client programs then did not know, but if you use low level tools to tune and access the
      mpeg stream from /dev/video[10], it works.

    • Hello kalifg,

      There is not currently support for radio in the upstream kernel, nor is it actively planned. If you are commercial party who needs to see this supported, feel free to contact us offline and we can discuss your needs in further detail.



      • Hi,
        I have some C background and would like to contribute to add FM radio support for the 2250.

        Where can I get technical info for the 2250 ?
        I Mean:
        – What chip takes care of the FM only coax input ?
        – Where can I find the git commit that added analog support for the 2250 ?
        – The following radio driver example seems to be a little outdated (http://www.linux-mag.com/id/381/). Where can I find a recent example (I saw there’s the saa7134 driver which handle FM radio. Should it be a good example ?)

        Googled some datasheets for the saa7164 and TDA18271HD but still try to understand how to make them work together for the FM radio. Is there a board diagram of the 2250 somewhere ?

        Also, is there a separate tuner (other than the 2 used for dvb/analog) for fm radio ?

        Thanks in advance

        • Hey Dan, thanks for commenting. Sadly none of the schematics or datasheets are publicly available. The saa7134 doesn’t help. If this is for a commercial opportunity then don’t hesitate to contact us via support[at]kernellabs[dot]com

          – Steve

Leave a Reply