Hans Verkuil wrote:
> On Tuesday 13 May 2008 13:50:18 [EMAIL PROTECTED] wrote:
>> A few weeks ago, I bought a Video Encoder Card in Japan with the goal
>> of using it there in a MythTV box.
>>
>> The card is branded "BUFFALO" and is called "PC-MV5L/PCI". The
>> package says: "MPEG2 Hardware Encoder, TV tuner & VHS video capture
>> board" (in Japanese).

I am happy about all the different suggestions. When the first easy try 
with setting "tuner" and "cardtype" did not succeed, i decided to go the 
clean route which Hans showed in so much detail (thanks a lot!).

Hans:
> OK, a new card. There we go:
> 
> 1) Get the new buffalo tree here: 
> http://linuxtv.org/hg/~hverkuil/buffalo/archive/tip.tar.bz2

Worked :-)

> 2) make, make install, and run modprobe ivtv.

"make" had some problems although I worked against a recent 2.6.25.3 
kernel. Probably Hans' sources are for a more recent development version?

In detail:

   CC [M]  /usr/src/buffalo-35e513f58385/v4l/zoran_procfs.o
/usr/src/buffalo-35e513f58385/v4l/zoran_procfs.c: In function
'zoran_proc_init':
/usr/src/buffalo-35e513f58385/v4l/zoran_procfs.c:208: error: implicit
declaration of function 'proc_create_data'
/usr/src/buffalo-35e513f58385/v4l/zoran_procfs.c:208: warning:
assignment makes pointer from integer without a cast
make[3]: *** [/usr/src/buffalo-35e513f58385/v4l/zoran_procfs.o] Error 1

I "fixed" that temporarily by copying the corresponding .c file from my 
stock kernel.

   CC [M] /usr/src/buffalo-35e513f58385/v4l/mt9m001.o
/usr/src/buffalo-35e513f58385/v4l/mt9m001.c:697: error: array type has 
incomplete element type
/usr/src/buffalo-35e513f58385/v4l/mt9m001.c:707: warning: initialization 
from incompatible pointer type
/usr/src/buffalo-35e513f58385/v4l/mt9m001.c:709: error: unknown field 
'id_table' specified in initializermake[3]: *** 
[/usr/src/buffalo-35e513f58385/v4l/mt9m001.o] Error 1
make[2]: *** [_module_/usr/src/buffalo-35e513f58385/v4l] Error 2

I "fixed" that temporarily by commenting the conflicting lines in mt9m001.c.

Both .c files seemed to have nothing to do with my card, so I'm probably 
on the safe side here.

"make install" worked.

"modprobe ivtv" complained about disagreeing about versions of symbols, 
as my kernel is compiled with CONFIG_MODVERSIONS=y. Workaround:
"modprobe --force-modversion ivtv"


> 3) The card should be autodetected, now see if it works. Start with the 
> composite input (select using v4l2-ctl -i2).

The card was detected correctly, but recorded input from the composite 
input (3) was just a blank white screen.

dmesg:
[50094.134889] ivtv:  Start initialization, version 1.2.1
[50094.140271] ivtv0: Initializing card #0
[50094.140331] ivtv0: Autodetected Buffalo PC-MV5L/PCI card (cx23416 based)
[50094.156142] ACPI: PCI Interrupt 0000:00:14.0[A] -> Link [LNKB] -> GSI 
10 (level, low) -> IRQ 10
[50094.354316] cx25840 1-0044: cx25843-24 found @ 0x88 (ivtv i2c driver #0)
[50094.379850] tuner 1-0061: chip found @ 0xc2 (ivtv i2c driver #0)
[50094.391718] xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
[50094.394990] xc2028 1-0061: xc2028/3028 firmware name not set!
[50098.330521] cx25840 1-0044: loaded v4l-cx25840.fw firmware (16382 bytes)
[50098.436003] ivtv0: Registered device video0 for encoder MPG (4096 kB)
[50099.421890] ivtv0: Loaded v4l-cx2341x-enc.fw firmware (376836 bytes)
[50099.620894] ivtv0: Encoder revision: 0x02060039
[50099.792570] xc2028 1-0061: Loading 80 firmware images from 
xc3028-v27.fw, type: xc2028 firmware, ver 2.7
[50099.806164] xc2028 1-0061: Loading firmware for type=BASE (1), id 
0000000000000000.
[50101.660563] xc2028 1-0061: Loading firmware for type=(0), id 
000000000000b700.
[50101.694287] SCODE (20000000), id 000000000000b700:
[50101.694317] xc2028 1-0061: Loading SCODE for type=SCODE HAS_IF_4500 
(60000000), id 0000000000002000.
[50101.734973] xc2028 1-0061: Device is Xceive 3028 version 1.0, 
firmware version 2.7
[50101.911301] xc2028 1-0061: Loading firmware for type=(0), id 
000000000000b700.
[50101.953105] SCODE (20000000), id 000000000000b700:
[50101.953156] xc2028 1-0061: Loading SCODE for type=SCODE HAS_IF_4500 
(60000000), id 0000000000002000.
[50101.994348] xc2028 1-0061: Device is Xceive 3028 version 1.0, 
firmware version 2.7
[50102.151392] ivtv0: Registered device video32 for encoder YUV (2048 kB)
[50102.151552] ivtv0: Registered device vbi0 for encoder VBI (1024 kB)
[50102.151700] ivtv0: Registered device video24 for encoder PCM (320 kB)
[50102.151730] ivtv0: Initialized card #0: Buffalo PC-MV5L/PCI
[50102.151858] ivtv:  End initialization
[50507.745749] xc2028 1-0061: Loading firmware for type=BASE F8MHZ (3), 
id 0000000000000000.
[50509.617744] (0), id 00000000000000ff:
[50509.617769] xc2028 1-0061: Loading firmware for type=(0), id 
0000000100000007.
[50509.653494] SCODE (20000000), id 0000000100000007:
[50509.653526] xc2028 1-0061: Loading SCODE for type=SCODE HAS_IF_5640 
(60000000), id 0000000200000007.
[50509.692062] xc2028 1-0061: Device is Xceive 3028 version 1.0, 
firmware version 2.7

> 4) If it does not work, then edit ivtv-cards.c: search for the 
> ivtv_card_buffalo struct, check out the line:
> 
>  { IVTV_CARD_INPUT_COMPOSITE1, 1, CX25840_COMPOSITE3 },
> 
> in video_inputs. Replace CX25840_COMPOSITE3 with CX25840_COMPOSITE1 and 
> try again. Then test with CX25840_COMPOSITE2, etc. etc. until 
> COMPOSITE8. One of these 8 possible inputs should work.

Changing to CX25840_COMPOSITE1 gave me a faint picture with almost no 
color and lots of noise on top.

Switching the video mode to PAL ("v4l2-ctl -s pal") did the job! (My 
encoder card is currently fed with the moving DVD title menu of a PAL 
version of "The Hitchhikers Guide to the Galaxy" in infinite loop -- 
nice test picture :).

At least I can already record composite video now, cool!

Next step will be the S-Video input, like Hans suggested. This will take 
some time because I need to get pysically to the machine and 
unplug/replug the video source.

> Next try S-Video input (v4l2-ctl -i1): edit the line
> 
> { IVTV_CARD_INPUT_SVIDEO1,    1, CX25840_SVIDEO3    },
> 
> and replace SVIDEO3 with SVIDEO1-4 and see which one works. If none of 
> these works, or you get only black & white then make a note of which 
> input gives B&W and let me know. We can get color to work later.
> 
> 5) Tuner: first get the firmware. See the file 
> linux/Documentation/video4linux/extract_xc3028.pl for instructions.


(already installed the firmware while compiling; seems to be fine, see 
dmesg output above)


> 6) Now modprobe ivtv. Then run rmmod ivtv and modprobe ivtv again. If 
> you get errors in the kernel log regarding the xceive tuner, then you 
> need to change the xceive_pin setting in the buffalo card definition. 
> It should be in the range 8-15. Try 10 first.
> 
> 7) Congratulations, the tuner is now working. The final step is to find 
> the correct composite input for the tuner by editing the line:
> 
> { IVTV_CARD_INPUT_VID_TUNER,  0, CX25840_COMPOSITE2 },
> 
> Again, it can be any value from COMPOSITE1-8. For audio you may have to 
> change the line:
> 
> { IVTV_CARD_INPUT_AUD_TUNER,  CX25840_AUDIO5       },
> 
> Possible values: AUDIO4-8.
> 
> 8) Done!
> 
> It's a bit annoying to go through all the combinations but it is the 
> only way to do it.
> 
> BTW: check if your board has a WM8739 or MW8775 chip: that's a not 
> uncommon audio chip.

At least the bigger chips on the card (> about 8 pins) have no such 
labeling. These are the chips:

- XCEIVE XC2028ACQ
- CONEXANT CX25843-24Z
- hynix 625A
- CONEXANT MPEG II A/V ENCODER CX23416-22
- CIRRUS 5340CZZ
- 74HC125D
- ATML H726


Kind regards,
Peter


_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to