Michel Bardiaux wrote:
Johnny Strom wrote:
Hello
I have setup a system that captures jpeg pictures from four v4l
devices it's 4 Hercules smart TV cards.
And first I did a script with streamer that captures one after the other
then I taught that I could capture from all four TV cards in paralell,
so my question is the bandwith enough on the PCI bus to start a
capture of four .jpeg files from four cards at the same time and then
sleep for one second after the capture?
The system is a Celeron 2.2 Ghz and lspci looks like this:
[snip]
Why I am asking this is becouse after I did change the script so did I
start getting kernel oopses like the ones below, so could the tree
oopses below be becouse of a badblocks on the swap or memory related
or becouse of to much data on the pci bus at the same time?
I did try to cahnge the memory but I still get ooopses.
OOPS 1:
Unable to handle kernel paging request at virtual address 74767679
c013029c
How is your /etc/modules? How is /proc/meminfo?
I ask because I use 2 Hercules SmartTV for 706x576x25fps YUV420P
grabbing (for MPEG), on a 128MB P4 2.4GHz. I discovered that by default
the bttv driver for Hercules (card=100) allocates not 2 but 5 gbuffers.
If you use RGBA, that makes 706x576x5(gbuffers)x4(bytes/pixel)x4(cards)
or 32MB reserved in the kernel for gbuffers. If you are marginal in
memory, it could cause problems in kernel paging.
Try something like bttv card=100,100,100,100 gbuffers=2 in /etc/modules.
For JPG grabbing, if 40msec jitter is acceptable, it might even be
possible to use only 1 gbuffer.
My /etc/modules.conf is like this:
cat /etc/modules.conf
#alias eth0 e100
#alias usb-controller ehci-hcd
#alias sound-slot-0 i810_audio
#post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L
>/dev/null 2>&1 || :
#pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S
>/dev/null 2>&1 || :
#alias usb-controller1 usb-uhci
# i2c
alias char-major-89 i2c-dev
options i2c-core i2c_debug=1
options i2c-algo-bit bit_test=1
# bttv
alias char-major-81 bttv
options bttv card=100,100,100,100 radio=1,1,1,1
options tuner debug=0
alias eth0 e100
And /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 260653056 256053248 4599808 0 19783680 157757440
Swap: 0 0 0
MemTotal: 254544 kB
MemFree: 4492 kB
MemShared: 0 kB
Buffers: 19320 kB
Cached: 154060 kB
SwapCached: 0 kB
Active: 126700 kB
Inactive: 90872 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 254544 kB
LowFree: 4492 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Swap is off at the moment it was about 512MB when I got the oopses,
I could try this: bttv card=100,100,100,100 gbuffers=2 but I will wait
until next week to se if the system is stable with the current
configuration and with only one card working at a time.
Thanks I will repport back later how it went.
Cheers Johnny