On 2012-10-03, at 11:15 PM, Paul Onley <onley@att.net> wrote:
> On 09/24/2012 01:18 PM, Peter Schneider wrote:
>>
>>> On 09/24/2012 10:59 AM, Peter Schneider wrote:
>>>>> On 09/24/2012 09:58 AM, Ken wrote:
>>>>>> On 9/17/12 3:52 AM, Paul Onley wrote:
>>>>>>> I'm having this same problem with my PVR-500 cards. I have tried all three of my cards and see the same symptoms on each. Once the card is recording it will do so forever without any problem but changing channels or starting a new recording I will frequently see the
>>>>>>>
>>>>>>> ivtv0: Encoder has died : ivtv_serialized_open
>>>>>>>
>>>>>>> error message. Sometimes the firmware will successfully reload but most often even if the driver think that the reload was successful the recording is blank or corrupt.
>>>>>>>
>>>>>>> I do not pretend to understand how the ivtv driver works or what causes this error message but is there any thing I can do to try to track down what is causing this?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Sep 17 02:03:01 Asthmatic kernel: [172462.936380] ivtv0: mb: MB Call: CX2341X_ENC_START_CAPTURE
>>>>>>> Sep 17 02:03:02 Asthmatic kernel: [172463.940049] ivtv0: warn: Could not get result (CX2341X_ENC_START_CAPTURE)
>>>>>>> Sep 17 02:03:02 Asthmatic kernel: [172463.940058] ivtv0: warn: Error starting capture!
>>>>>>> Sep 17 02:03:02 Asthmatic kernel: [172463.940060] ivtv0: warn: Failed to start capturing for stream encoder MPG
>>>>>>> Sep 17 02:03:02 Asthmatic kernel: [172463.940066] ivtv0 encoder MPG: VIDIOC_ENCODER_CMD error -5
>>>>>>> Sep 17 02:03:02 Asthmatic kernel: [172463.946782] ivtv0: info: Start encoder stream encoder MPG
>>>>>>> Sep 17 02:03:02 Asthmatic kernel: [172463.946787] ivtv0: mb: MB Call: CX2341X_ENC_SET_DMA_BLOCK_SIZE
>>>>>>> Sep 17 02:03:02 Asthmatic kernel: [172463.946789] ivtv0: mb: MB Call: CX2341X_ENC_SET_VERT_CROP_LINE
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.048525] ivtv0: warn: Could not get result (CX2341X_ENC_SET_VERT_CROP_LINE)
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.048530] ivtv0: mb: MB Call: CX2341X_ENC_MISC
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.152046] ivtv0: warn: Could not get result (CX2341X_ENC_MISC)
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.152054] ivtv0: mb: MB Call: CX2341X_ENC_MISC
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.256250] ivtv0: warn: Could not get result (CX2341X_ENC_MISC)
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.256255] ivtv0: mb: MB Call: CX2341X_ENC_MISC
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.360213] ivtv0: warn: Could not get result (CX2341X_ENC_MISC)
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.360218] ivtv0: mb: MB Call: CX2341X_ENC_MISC
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.464012] ivtv0: warn: Could not get result (CX2341X_ENC_MISC)
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.464017] ivtv0: mb: MB Call: CX2341X_ENC_SET_PLACEHOLDER
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.464019] ivtv0: mb: MB Call: CX2341X_ENC_SET_NUM_VSYNC_LINES
>>>>>>> Sep 17 02:03:03 Asthmatic kernel: [172464.464020] ivtv0: mb: MB Call: CX2341X_ENC_SET_VBI_LINE
>>>>>>> Sep 17 02:03:04 Asthmatic kernel: [172465.470866] ivtv0: warn: Could not get result (CX2341X_ENC_SET_VBI_LINE)
>>>>>>> Sep 17 02:03:04 Asthmatic kernel: [172465.500123] ivtv0: info: Setup VBI API header 0x0000bd03 pkts 1 buffs 4 ln 24 sz 1456
>>>>>>> Sep 17 02:03:04 Asthmatic kernel: [172465.500126] ivtv0: mb: MB Call: CX2341X_ENC_SET_VBI_CONFIG
>>>>>>> Sep 17 02:03:05 Asthmatic kernel: [172466.504011] ivtv0: warn: Could not get result (CX2341X_ENC_SET_VBI_CONFIG)
>>>>>>> Sep 17 02:03:05 Asthmatic kernel: [172466.504017] ivtv0: info: Setup VBI start 0x00000004 frames 1 fpi 48387
>>>>>>> Sep 17 02:03:50 Asthmatic kernel: [172511.720056] ivtv0: mb: MB Call: CX2341X_ENC_SET_VBI_LINE
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.724038] ivtv0: warn: Could not get result (CX2341X_ENC_SET_VBI_LINE)
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.724047] ivtv0: mb: MB Call: CX2341X_ENC_SET_PGM_INDEX_INFO
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.832007] ivtv0: warn: Could not get result (CX2341X_ENC_SET_PGM_INDEX_INFO)
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.832013] ivtv0: info: PGM Index at 0x00000007 with 400 elements
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.832015] ivtv0: mb: MB Call: CX2341X_ENC_SET_OUTPUT_PORT
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.832017] ivtv0: mb: MB Call: CX2341X_ENC_SET_FRAME_RATE
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.832019] ivtv0: mb: MB Call: CX2341X_ENC_SET_FRAME_SIZE
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.832026] ivtv0: mb: MB Call: CX2341X_ENC_SET_STREAM_TYPE
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.832027] ivtv0: mb: MB Call: CX2341X_ENC_SET_BIT_RATE
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.832030] ivtv0: mb: MB Call: CX2341X_ENC_SET_AUDIO_PROPERTIES
>>>>>>> Sep 17 02:03:51 Asthmatic kernel: [172512.832032] ivtv0: mb: MB Call: CX2341X_ENC_MUTE_AUDIO
>>>>>>> Sep 17 02:03:52 Asthmatic kernel: [172513.840008] ivtv0: warn: Could not get result (CX2341X_ENC_MUTE_AUDIO)
>>>>>>> Sep 17 02:03:53 Asthmatic kernel: [172514.144029] ivtv0: mb: MB Call: CX2341X_ENC_INITIALIZE_INPUT
>>>>>>> Sep 17 02:03:54 Asthmatic kernel: [172515.148039] ivtv0: warn: Could not get result (CX2341X_ENC_INITIALIZE_INPUT)
>>>>>>> Sep 17 02:03:54 Asthmatic kernel: [172515.151925] ivtv0: mb: MB Call: CX2341X_ENC_START_CAPTURE
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.156036] ivtv0: warn: Could not get result (CX2341X_ENC_START_CAPTURE)
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.156042] ivtv0: warn: Error starting capture!
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.156044] ivtv0: warn: Failed to start capturing for stream encoder MPG
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.156052] ivtv0: info: Could not start capture for encoder MPG (-5)
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.156346] ivtv0: file: open encoder MPG
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.156348] ivtv0: mb: MB Call: CX2341X_ENC_PING_FW
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.260259] ivtv0: warn: Could not get result (CX2341X_ENC_PING_FW)
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.260265] ivtv0: Encoder has died : ivtv_serialized_open
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.260268] ivtv0: Detected in ivtv_serialized_open that firmware had failed - Reloading
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.260270] ivtv0: info: Preparing for firmware halt.
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.260272] ivtv0: mb: MB Call: CX2341X_ENC_HALT_FW
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.364014] ivtv0: warn: Could not get result (CX2341X_ENC_HALT_FW)
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.376011] ivtv0: info: Stopping VDM
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.376013] ivtv0: info: Stopping AO
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.376015] ivtv0: info: pinging (?) APU
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.376016] ivtv0: info: Stopping VPU
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.376017] ivtv0: info: Resetting Hw Blocks
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.376018] ivtv0: info: Stopping SPU
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.388013] ivtv0: info: init Encoder SDRAM pre-charge
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.388015] ivtv0: info: init Encoder SDRAM refresh to 1us
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.388017] ivtv0: info: Sleeping for 600ms
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172516.988030] ivtv0: info: Loading encoder image
>>>>>>> Sep 17 02:03:55 Asthmatic kernel: [172517.005545] ivtv0: Loaded v4l-cx2341x-enc.fw firmware (376836 bytes)
>>>>>>> Sep 17 02:03:56 Asthmatic kernel: [172517.208025] ivtv0: mb: MB Call: CX2341X_ENC_PING_FW
>>>>>>> Sep 17 02:03:56 Asthmatic kernel: [172517.210424] ivtv0: Firmware restart okay
>>>>>>> Sep 17 02:03:56 Asthmatic kernel: [172517.210426] ivtv0: mb: MB Call: CX2341X_ENC_PING_FW
>>>>>>> Sep 17 02:03:56 Asthmatic kernel: [172517.210495] ivtv0: mb: MB Call: CX2341X_ENC_MISC
>>>>>>> Sep 17 02:03:56 Asthmatic kernel: [172517.211340] ivtv0 encoder MPG: VIDIOC_QUERYCAP driver=ivtv, card=WinTV PVR 500 (unit #1), bus=PCI:0000:06:08.0, version=0x00030217, capabilities=0x01070051
>>>>>>> Sep 17 02:03:56 Asthmatic kernel: [172517.211348] ivtv0 encoder MPG: VIDIOC_QUERYCTRL id=0x980001, type=6, name=User Controls, min/max=0/0, step=0, default=0, flags=0x00000044
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> ivtv-users mailing list
>>>>>>> ivtv-users@ivtvdriver.org
>>>>>>> http://ivtvdriver.org/mailman/listinfo/ivtv-users
>>>>>> I'm seeing the same problem. It started when I switched to MythTV 0.25. I had a PVR-250 and a PVR-500. I originally thought the problem was failing hardware and replaced the 500. The problem just jumped to the 250. I have since put the 500 back and am now using a PVR-500 and a HVR-2250. I just watch the logs for those messages and reboot soon after they appear.
>>>>>>
>>>>>> _______________________________________________
>>>>>> ivtv-users mailing list
>>>>>> ivtv-users@ivtvdriver.org
>>>>>> http://ivtvdriver.org/mailman/listinfo/ivtv-users
>>>>>>
>>>>> Thanks Ken,
>>>>>
>>>>> I have seen numerous posts about problems that include this error on the PVR-250,350 and 500 cards and many seem to agree that the problem is failing hardware. I have 3 PVR-500s and have tried all three and get the same error on all of them. I can also remove and reload the ivtv module and fix the problem in 30 seconds and get a perfect recording. In fact I have written a script that watches the syslog for the Encoder died message and reloads the ivtv module. My recordings are now all perfect although some are missing about 30 seconds from the beginning. I do not believe this is a hardware failure but do not know how to proceed with trouble shooting.
>>>>>
>>>>> I can say from looking at the logs that when the ivtv driver sees a problem with the firmware it tries to reload it. My script kills the backend, reloads the ivtv module and restarts the backend so I end up with a part A and B of the recording allowing me to see whether the reload was really necessary. While the ivtv module usually reports successfully reloading the firmware in reality more than half the time the A part of the recording which is started after ivtv reloads the firmware is corrupt and the B part after my script reloads the ivtv module is always fine.
>>>>>
>>>>> Paul
>>>>>
>>>>> _______________________________________________
>>>>> ivtv-users mailing list
>>>>> ivtv-users@ivtvdriver.org
>>>>> http://ivtvdriver.org/mailman/listinfo/ivtv-users
>>>> Paul,
>>>>
>>>> Is the a way for you to post your script here or in a blog that you can point us to?
>>>>
>>>> -Peter
>>>> _______________________________________________
>>>> ivtv-users mailing list
>>>> ivtv-users@ivtvdriver.org
>>>> http://ivtvdriver.org/mailman/listinfo/ivtv-users
>>>>
>>> Hi Peter,
>>>
>>> Below is the script I use, as it is unloading and reload the ivtv module it must be run as root so use it with care( I call it from roots crontab every minute ). The script is admittedly a rather crude and heavy handed way to handle this problem and is certainly not to be considered a solution. It is more convenient than rebooting though. I am using a Debian system so you may need to adjust some of the commands such as restarting the syslog daemon and mythbackend depending on your distro.
>>>
>>> Paul
>>>
>>>
>>> ##########################################################
>>> #!/bin/bash
>>> #This script will automate the reloading of the ivtv modules. It is rather heavy handed but due to
>>> #issues with firmware failures in the ivtv module causing recording issues on my PVR-500 it was
>>> #my last resort to prevent failed recordings. Note that this script must be run as root in order to
>>> #be able to reload the ivtv module. As such it has full root privilege and should be used very
>>> #carefully. While it works as intended on my debian system I cannot guarantee it will work as
>>> #intended on your system. Please check all commands before using.
>>>
>>>
>>>
>>> #Cron jobs start on the minute and so do myth recordings so wait 15 seconds
>>> #for the problem to occur and be logged
>>> sleep 15
>>>
>>> #If we find an indication in the syslog that the ivtv driver has failed
>>> if grep "Encoder has died : ivtv_serialized_open" /var/log/syslog ; then
>>>
>>> #Kill both frontend and backend so that we can unload the ivtv module
>>>
>>> pkill mythfrontend
>>> pkill mythbackend
>>>
>>> #The ivtv module will not unload until the frontend and backend are stopped so
>>> #rather than sleep for some arbitrary ammount of time lets just try to unload
>>> #repeatedly until we succeed
>>>
>>> while ! /sbin/modprobe -vr ivtv ; do
>>>
>>> #Wait for a second
>>>
>>> sleep 1
>>> i=$(($i+1))
>>>
>>> #See if we have tried more than 15 times indicating there is a real problem
>>>
>>> if [ $i -gt 15 ];then
>>>
>>> #In which case return an exit value of 1
>>>
>>> exit 1
>>> fi
>>> #Otherwise try again
>>>
>>> done
>>>
>>> #Relax for a second
>>>
>>> sleep 1
>>>
>>> #And reload the ivtv module the debug level is so that when someone tells
>>> #me what to look for my logs should have everything
>>>
>>>
>>> /sbin/modprobe -v ivtv debug=127
>>>
>>>
>>> #We are moving the logfile to another file so that we can corelate the failures with
>>> #Logs. the new file name is syslog.restart.n so check to see if n exists
>>>
>>> i=0
>>> while [ -e /var/log/syslog.restart.$i ];do
>>>
>>> #and if so iterate until we find a good name
>>>
>>> i=$(($i+1))
>>> done
>>>
>>> #Save the syslog file
>>>
>>> mv /var/log/syslog /var/log/syslog.restart.$i
>>>
>>> #start a blank syslog
>>>
>>> touch /var/log/syslog
>>>
>>> #restart the syslog daemon
>>>
>>> /etc/init.d/rsyslog restart
>>>
>>> sleep 5
>>>
>>> #Restart the backend
>>>
>>> /etc/init.d/mythtv-backend restart
>>>
>>> fi
>>>
>>> _______________________________________________
>>> ivtv-users mailing list
>>> ivtv-users@ivtvdriver.org
>>> http://ivtvdriver.org/mailman/listinfo/ivtv-users
>> Thanks Paul,
>>
>> I am running MythBuntu. I look forward to seeing what I can do with it. This may resolve a few issues that have been plaguing me.
>>
>> -Peter
>> _______________________________________________
>> ivtv-users mailing list
>> ivtv-users@ivtvdriver.org
>> http://ivtvdriver.org/mailman/listinfo/ivtv-users
>>
> I have another mythbox running under Debian Squeeze and it does not have this problem using the PVR-500 card. It is using kernel 2.6.32-5-686 and ivtv version 1.4.1. The box with this problem is running Debian Wheezy, kernel 3.2.0-3-amd64 and ivtv version 1.4.3. As I understand it ivtv is part of the kernel, so is it possible to build 1.4.1 against my 3.2.0-3-amd64 kernel and if so how would on go about removing 1.4.3 and using 1.4.1 instead?
>
> Also, is ivtv 1.4.1 missing anything in 1.4.3 that will break myth 0.25.2?
>
> _______________________________________________
> ivtv-users mailing list
> ivtv-users@ivtvdriver.org
> http://ivtvdriver.org/mailman/listinfo/ivtv-users
Paul,
I modified your script a little to accommodate another error that has plagued our home. The Jump error appears to be tied to ivtv as well but is reported in the MythTV backend log so I added another IF statement to test for it.
##########################################################
#!/bin/bash
#This script will automate the reloading of the ivtv modules. It is rather heavy handed but due to
#issues with firmware failures in the ivtv module causing recording issues on my PVR-500 it was
#my last resort to prevent failed recordings. Note that this script must be run as root in order to
#be able to reload the ivtv module. As such it has full root privilege and should be used very
#carefully. While it works as intended on my debian system I cannot guarantee it will work as
#intended on your system. Please check all commands before using.
#Cron jobs start on the minute and so do myth recordings so wait 15 seconds
#for the problem to occur and be logged
sleep 15
#If we find an indication in the syslog that the ivtv driver has failed
if grep "Encoder has died : ivtv_serialized_open" /var/log/syslog ; then
#Kill both frontend and backend so that we can unload the ivtv module
pkill mythfrontend
pkill mythbackend
#The ivtv module will not unload until the frontend and backend are stopped so
#rather than sleep for some arbitrary ammount of time lets just try to unload
#repeatedly until we succeed
while ! /sbin/modprobe -vr ivtv ; do
#Wait for a second
sleep 1
i=$(($i+1))
#See if we have tried more than 15 times indicating there is a real problem
if [ $i -gt 15 ];then
#In which case return an exit value of 1
exit 1
fi
#Otherwise try again
done
#Relax for a second
sleep 1
#And reload the ivtv module the debug level is so that when someone tells
#me what to look for my logs should have everything
/sbin/modprobe -v ivtv debug=127
#We are moving the logfile to another file so that we can corelate the failures with
#Logs. the new file name is syslog.restart.n so check to see if n exists
i=0
while [ -e /var/log/syslog.restart.$i ];do
#and if so iterate until we find a good name
i=$(($i+1))
done
#Save the syslog file
mv /var/log/syslog /var/log/syslog.restart.$i
#start a blank syslog
touch /var/log/syslog
#restart the syslog daemon
/etc/init.d/rsyslog restart
sleep 5
#Restart the backend
/etc/init.d/mythtv-backend restart
echo "ivtv reset Successful: $(date)" >> /var/log/ivtv_reset.log
else
#If we find an indication in the mythbackend that the ivtv driver has failed realted to "Jump"
if grep "E DeviceReadBuffer DeviceReadBuffer.cpp:513" /var/log/mythtv/mythbackend.log ; then
/sbin/modprobe -r ivtv
sleep 5
#And reload the ivtv module with debug level
/sbin/modprobe -v ivtv debug=127
#We are moving the logfile to another file so that we can corelate the failures with
#Logs. the new file name is syslog.restart.n so check to see if n exists
i=0
while [ -e /var/log/mythtv/mythbackend.restart.$i ];do
#and if so iterate until we find a good name
i=$(($i+1))
done
#Save the syslog file
mv /var/log/mythtv/mythbackend.log /var/log/mythtv/mythbackend.restart.$i
#start a blank syslog
touch /var/log/mythtv/mythbackend.log
echo "ivtv reset on Jump failure Successful: $(date)" >> /var/log/ivtv_reset.log
fi
fi
-Peter