Page 1 of 2
Toubleshooting BT878 - I've RTFM.... Core ZM question really
Posted: Sat Jan 03, 2009 1:55 pm
by buzz_host
Can anyone give me a few pointers to get the best out of my BT878 card?
I have issues with it displaying only in Black & White. I know this is not a ZM issue as it's doing the same thing under xawtv.
What I really need to get a handle on is what config file to 'poke around' in to see if I can kick this up to colour. It's not a simple NTSC/PAL problem - I've messed with all of that. I know the card and cameras will do colour on M$.
I'm guessing that ZM is using V4L, but for the life of me I can't find a conf file for it or where the driver for it is being referenced. I'm OK with linux (no guru) but the penny has not dropped as to the loading of modules/drivers yet (so any gentle pointers on that would be welcomed).
Basically, I am trying to get a good understanding of how ZM is obtaining the video so I can look at the common root cause of the colour issue, and hopeully learn something useful to give back in the process. Any pointers most welcome.
Posted: Sat Jan 03, 2009 6:34 pm
by kevin_robson
look at /etc/modprobe.conf - the bttv settings are in there.
Most ebay cards need card=77 on the end
Search the forums for modprobe or modprobe.conf and this may help.
Posted: Sun Jan 04, 2009 3:13 am
by cordel
You can see what is being used by the kernel by running from a command prompt:
demsg
Look for the section that describes bttv.
Try making sure you have no interrupt conflicts as well;
cat /proc/interrupts
Posted: Sun Jan 04, 2009 4:37 pm
by buzz_host
First of all my apologies for posting initially in the wrong place and to the moderator who was sensible enough to move this without flaming me. Also, thanks to the two people who have taken their time to follow up with advice here.
The stumbling block in all of this for me is Ubuntu. It's great in so far as this worked out of the tin with no major hangups. A couple of minor fiddles with Apache were needed but other than that ZM was up and running on a cheap webcam in minutes. Ditto, threw in the BT878 card and ZM found that without any trouble too. It's working just fine but the BT878 has 4 inputs of black and white. The underlying system seems to refuse to accept the BT878 card is PAL and will only give me output if I put 'AUTO' as the mode. I suspect the issue may be around this setting and a plain old misconfiguration.
Now back to the nuts and bolts of all this, being Ubuntu nothing is as you expect it to be. Dmsg has been raped by iptables logging (I really must just turn it off when I get round to it) but I caught it early after a reboot and sure enough there is information in there about the card - but it's like I say, it's working - I just want to play with the core 'driver settings' for want of a better description.
If only Ubuntu had an /etc/modprobe.conf for me to look at - but alas, it seems to be doing something more convoluted. I think that's the next mystery for me to get to the bottom of.
Thanks for the input - it's really appreciated.
Posted: Sun Jan 04, 2009 5:44 pm
by TrOjAn
Do you have a link for the bttv card we can look at? a picture would be great
TrOjAn
Posted: Sun Jan 04, 2009 5:49 pm
by buzz_host
I've not got a shot of it, sorry
However, it's plain old vanilla eBay 4ch thing with just 25fps. Currently I have my 'main' CCTV on units made by dedicated micros, so this is just to 'play' with.
However, I've had a number of these cards in the past and they all look much the same. 4 x BNC, 1 x 3.5 mic socket, single chip. I've ordered another one as it was 99p plus £6.99 p&p and I'm going to add that to the system. I'll take some pictures then and be happy to share them.
Posted: Sun Jan 04, 2009 11:41 pm
by cordel
My guess would be that you have a Pico clone card.
http://www.zoneminder.com/wiki/index.php/Pico2000
If you do a:
It should return just what we are interested in and you can post that here.
Modprobe has changed a bit. configs are now kept in /etc/modprobe.d/ and loads the files in that directory. So assuming that you have the above card and it loaded with generic drivers you would do the following:
Create a bttv file in modprobe.d with the following in it:
Code: Select all
options bttv card=77 tuner=4 radio=0 triton1=0 vsfx=0 autoload=0
I'll have to update that section of the wiki on kernel configuration, but major kudos for searching and getting this far
Restart the machine and use the above demg code to make sure the kernel loaded the proper driver instead of the generic.
Posted: Mon Jan 05, 2009 6:17 am
by buzz_host
I'd gotten as far as modprobe.d but where to put the options and how to reference them had stumped me. I guess anyone who has trawled google for answers will come across the age old problem of out of date info when Linux changes.
All I need to do is figure where to put the options (do I create a file '/etc/modprobe.d/options' and reference bttv in it? Will it find it? Can I get the system to reload this module without having to reboot? - my guess is stop zoneminder (to be safe) and then reprobe the card somehow)
Here is my very verbose 'dmesg' output - apologies for not trimming it - I think around 48.xxxxxx is the area of interest:
dmesg
Code: Select all
[ 47.759652] Linux video capture interface: v2.00
[ 48.241481] bttv: driver version 0.9.17 loaded
[ 48.241486] bttv: using 8 buffers with 2080k (520 pages) each for capture
[ 48.241560] bttv: Bt8xx card found (0).
[ 48.241598] bttv0: Bt878 (rev 17) at 0000:02:00.0, irq: 17, latency: 32, mmio: 0xdc200000
[ 48.242200] bttv0: using: *** UNKNOWN/GENERIC *** [card=0,autodetected]
[ 48.242242] bttv0: gpio: en=00000000, out=00000000 in=00f360ff [init]
[ 48.651612] e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
[ 48.695831] e1000: eth1: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX
[ 48.913318] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input3
[ 49.467479] ieee1394: raw1394: /dev/raw1394 device initialized
[ 49.526953] NOTE: The dv1394 driver is unsupported and may be removed in a future Linux release. Use raw1394 instead.
[ 49.794952] parport_pc 00:0f: reported by Plug and Play BIOS
[ 49.795156] parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA]
[ 52.103138] NET: Registered protocol family 10
[ 52.103490] lo: Disabled Privacy Extensions
[ 61.073879] tveeprom 0-0050: Huh, no eeprom present (err=-121)?
[ 61.073887] bttv0: tuner type unset
[ 61.073891] bttv0: i2c: checking for MSP34xx @ 0x80... <7>eth0: no IPv6 routers present
[ 62.717163] eth1: no IPv6 routers present
[ 67.471126] not found
[ 67.471130] bttv0: i2c: checking for TDA9875 @ 0xb0... not found
[ 73.868376] bttv0: i2c: checking for TDA7432 @ 0x8a... not found
[ 80.265924] bttv0: registered device video0
[ 80.266098] bttv0: registered device vbi0
[ 80.299466] gameport: EMU10K1 is pci0000:02:03.1/gameport0, io 0x9000, speed 537kHz
[ 80.440894] bt878: AUDIO driver version 0.0.0 loaded
[ 80.440953] bt878: Bt878 AUDIO function found (0).
[ 80.440984] bt878_probe: card id=[0x0], Unknown card.
[ 80.440985] Exiting..
[ 80.440995] bt878: probe of 0000:02:00.1 failed with error -22
Posted: Mon Jan 05, 2009 8:31 am
by cordel
cordel wrote:My guess would be that you have a Pico clone card.
http://www.zoneminder.com/wiki/index.php/Pico2000
If you do a:
It should return just what we are interested in and you can post that here.
Modprobe has changed a bit. configs are now kept in /etc/modprobe.d/ and loads the files in that directory. So assuming that you have the above card and it loaded with generic drivers you would do the following:
Create a bttv file in modprobe.d with the following in it:
Code: Select all
options bttv card=77 tuner=4 radio=0 triton1=0 vsfx=0 autoload=0
Restart the machine and use the above demg code to make sure the kernel loaded the proper driver instead of the generic.
You can call the file any thing you want really, the above suggestion was just to make it easy to find later should you need to adjust your bttv settings you don't have to remember where you put them.
I trimmed your dmesg for you so glean it over and things should become apparent that the generic driver is being used which is typical for a card without an eprom.
Of coarse if you understand how to unload all the modules and reload them then no need to restart the machine.
Posted: Mon Jan 05, 2009 6:51 pm
by buzz_host
cordel wrote:Of coarse if you understand how to unload all the modules and reload them then no need to restart the machine.
I'm not entirely sure that I do! Put it like this, a bit of love and hand holding *won't* have me saying 'don't teach me to suck egg's'!!
Posted: Mon Jan 05, 2009 11:41 pm
by cordel
The following commands are used to manage modules:
rmmod --> removes a module from the kernel
insmod --> Inserts a module in the kernel
modprobe --> used to insert or remove modules from the kernel you likely use this a majority of the time.
lsmod --> List status of modules in the kernel
depmod --> Used to find out what other modules a module depends on
modinfo --> To get more information on a module
You can get manual pages for any command in *nix by running man [command]
ie.
man modprobe
This will give you the description of the commands and the proper syntax for each.
Posted: Tue Jan 06, 2009 5:45 am
by buzz_host
My sincere thanks to you Cordel. I had an incline to some of those commands but I can't really say I've had to call on them to the point where I understand them.
So; if I want to unload the bttv module - which I guess covers the whole BT878 chipset board range more or less, I guess (and please correct me if I am wrong) I would:
First stop Zoneminder (or any application making use of that hardware)??
Then force a reload of the module (to make use of the options file placed in /etc/modprobe.d/) using something like modprobe bttv
(Excuse lack of exact syntax, I'll go through man for it). It sounds plausible to me, but I prefer to double check my thinking.
Posted: Tue Jan 06, 2009 6:04 am
by cordel
I usually myself use rmmod to unload each module, bt878's first then the bttv module it self. There are a few different ways to go about it.
Then I cheat and use modprobe bttv to reload them. You can pass card options this way to BTW. You will see that in the man pages.
But yes you are correct.
BTTV + BT878 4ch CARD (PAL) + Ubuntu Interpid Ibex (8.10)
Posted: Fri Jan 09, 2009 1:23 pm
by buzz_host
I've just got to say:
!!!!!!YOU IS THE MAN!!!!
Did this:
created the file '
/etc/modprobe.d/bttv-options' containing this line:
Code: Select all
options bttv card=77 tuner=4 radio=0 triton1=0 vsfx=0 autoload=0
STOPPED ZM (initially missed this and got: ERROR: Module bttv is in use)
As root (#) I did
# rmmod bt878
# rmmod bttv
Finally did:
# modprobe bttv
.... there was a long pause - checked dmesg......
# dmesg | grep bttv
[ 6168.970018] bttv0: unloading
[ 6373.104463] bttv: driver version 0.9.17 loaded
[ 6373.104470] bttv: using 8 buffers with 2080k (520 pages) each for capture
[ 6373.107090] bttv: Bt8xx card found (0).
[ 6373.107114] bttv0: Bt878 (rev 17) at 0000:02:00.0, irq: 17, latency: 32, mmio: 0xdc200000
[ 6373.107600] bttv0: using: GrandTec Multi Capture Card (Bt878) [card=77,insmod option]
[ 6373.107645] bttv0: gpio: en=00000000, out=00000000 in=00f360ff [init]
[ 6379.502216] bttv0: tuner absent
[ 6379.507579] bttv0: registered device video0
[ 6379.507912] bttv0: registered device vbi0
[ 6379.508088] bttv0: PLL: 28636363 => 35468950 .. ok
Fire up ZM to find I still had black and white.... BUT WAIT!
Changed it back from AUTO to PAL and Volia! Colour!
(Previously under PAL there was no video)
So, a great big thank you !
--------------------------------------------------------------------------------
Added this to the title:
BTTV BT878 4ch CARD (PAL) Ubuntu Interpid Ibex (8.10) NO COLOUR
Just to help google bots and searched here
Posted: Thu Jan 15, 2009 4:27 am
by Sinekuno
Hi, I just cant get my cart to work.
I followed the procedure above.
Code: Select all
dmesg | grep bttv
[ 13.584363] bttv: driver version 0.9.17 loaded
[ 13.584367] bttv: using 8 buffers with 2080k (520 pages) each for capture
[ 13.585350] bttv: Bt8xx card found (0).
[ 13.585875] bttv 0000:01:06.0: PCI INT A -> Link[APC3] -> GSI 18 (level, low) -> IRQ 18
[ 13.585885] bttv0: Bt878 (rev 2) at 0000:01:06.0, irq: 18, latency: 16, mmio: 0xfd8ff000
[ 13.585899] bttv0: using: GrandTec Multi Capture Card (Bt878) [card=77,insmod option]
[ 13.585944] bttv0: gpio: en=00000000, out=00000000 in=00f36fff [init]
[ 14.384019] bttv0: tuner absent
[ 14.385029] bttv0: registered device video0
[ 14.385207] bttv0: registered device vbi0
[ 14.385227] bttv0: PLL: 28636363 => 35468950 .. ok
every thing looks fine except this line
Code: Select all
[ 13.585875] bttv 0000:01:06.0: PCI INT A -> Link[APC3] -> GSI 18 (level, low) -> IRQ 18
Running tvtime form command
Code: Select all
videoinput: Driver refuses to start streaming: Device or resource busy.
videoinput: Can't read frame. Error was: Invalid argument (0).
videoinput: Driver refuses to stop streaming: Invalid argument.
videoinput: Can't free frame 0: Device or resource busy
videoinput: Can't free frame 1: Device or resource busy
videoinput: Can't free frame 2: Device or resource busy
videoinput: Can't free frame 3: Device or resource busy
videoinput: Driver refuses to start streaming: Device or resource busy.
videoinput: Can't read frame. Error was: Invalid argument (0).
videoinput: Driver refuses to stop streaming: Invalid argument.
videoinput: Can't free frame 0: Device or resource busy
videoinput: Can't free frame 1: Device or resource busy
videoinput: Can't free frame 2: Device or resource busy
videoinput: Can't free frame 3: Device or resource busy
videoinput: Driver refuses to start streaming: Device or resource busy.
videoinput: Can't read frame. Error was: Invalid argument (0).
videoinput: Driver refuses to stop streaming: Invalid argument.
videoinput: Can't free frame 0: Device or resource busy
videoinput: Can't free frame 1: Device or resource busy
videoinput: Can't free frame 2: Device or resource busy
videoinput: Can't free frame 3: Device or resource busy
videoinput: Driver refuses to start streaming: Device or resource busy.
videoinput: Can't read frame. Error was: Invalid argument (0).
videoinput: Driver refuses to stop streaming: Invalid argument.
videoinput: Can't free frame 0: Device or resource busy
.
.
.
.
My first card did this so i thought the card is faulty and got n new one and it gives the same problem
Can any one help PLEASE.