[mythtv-users] OT: unreliable firmware load after cold boot

R. G. Newbury newbury at mandamus.org
Wed Jul 18 01:32:06 UTC 2012


On 07/17/2012 04:49 PM, Mike Perkins wrote:
> On 17/07/12 21:34, R. G. Newbury wrote:
>> On 07/17/2012 03:58 PM, Warpme wrote:
>>> Hi *
>>>
>>> I just finish upgrade my system to 4xDVB-S2 + 1xDVB-T.
>>> All runs over single cable (SCR) :-)
>>>
>>> I'm looking for advice related to unreliable firmware loading.
>>> My sys is ArchLinux, kernel3.3.8, Mystique SaTiX-S2 Sky Xpress Dual,
>>> DVB-S2 a.k.a DvbSky S952.
>>> Card is based on Montage Montage DS3103/TS2022 with cx23885 A/V decoder.
>>> Both chips required firmware files.
>>> My issue is that sometimes (especially after cold boot) one or both
>>> tuners are non-functional due issue with loading firmware.
>>> Warm reboot usually helps - but 1 for 10 times not.
>>> I have impression this is kind of races or kernel bug.
>>>
>>> Does anybody idea how to solve issue ?
>>>
>>>
>>> Kernel log looks following:
>>>
>>> [root at mythtv var]# cat /var/log/kernel.log | grep
>>> "DVB:\|firmware\|cx\|m88ds"
>>> Jul 17 21:04:09 [ 5.457385] cx88/2: cx2388x MPEG-TS Driver Manager
>>> version 0.0.9 loaded
>>> Jul 17 21:04:09 [ 5.460816] cx88[0]: subsystem: b034:3034, board: Prof
>>> 7301 DVB-S/S2 [card=83,autodetected], frontend(s): 1
>>> Jul 17 21:04:09 [ 5.460819] cx88[0]: TV tuner type -1, Radio tuner
>>> type -1
>>> Jul 17 21:04:09 [ 5.478014] cx88/0: cx2388x v4l2 driver version 0.0.9
>>> loaded
>>> Jul 17 21:04:09 [ 5.690521] cx23885 driver version 0.0.3 loaded
>>> Jul 17 21:04:09 [ 5.691092] CORE cx23885[0]: subsystem: 4254:0952,
>>> board: DVBSKY S952 [card=36,autodetected]
>>> Jul 17 21:04:09 [ 5.996797] cx25840 3-0044: cx23885 A/V decoder found @
>>> 0x88 (cx23885[0])
>>> Jul 17 21:04:09 [ 6.210084] input: cx88 IR (Prof 7301 DVB-S/S2) as
>>> /devices/pci0000:00/0000:00:14.4/0000:05:06.2/rc/rc0/input4
>>> Jul 17 21:04:09 [ 6.210123] rc0: cx88 IR (Prof 7301 DVB-S/S2) as
>>> /devices/pci0000:00/0000:00:14.4/0000:05:06.2/rc/rc0
>>> Jul 17 21:04:09 [ 6.213429] input: MCE IR Keyboard/Mouse (cx88xx) as
>>> /devices/virtual/input/input5
>>> Jul 17 21:04:09 [ 6.213500] rc rc0: lirc_dev: driver ir-lirc-codec
>>> (cx88xx) registered at minor = 0
>>> Jul 17 21:04:09 [ 6.213502] cx88[0]/2: cx2388x 8802 Driver Manager
>>> Jul 17 21:04:09 [ 6.213531] cx88[0]/2: found at 0000:05:06.2, rev: 5,
>>> irq: 20, latency: 32, mmio: 0xf5000000
>>> Jul 17 21:04:09 [ 6.220418] cx88[1]: subsystem: 0070:9002, board:
>>> Hauppauge Nova-T DVB-T [card=18,autodetected], frontend(s): 1
>>> Jul 17 21:04:09 [ 6.220421] cx88[1]: TV tuner type 4, Radio tuner
>>> type -1
>>> Jul 17 21:04:09 [ 6.384583] cx88[1]: hauppauge eeprom: model=90003
>>> Jul 17 21:04:09 [ 6.443479] input: cx88 IR (Hauppauge Nova-T DVB-T as
>>> /devices/pci0000:00/0000:00:14.4/0000:05:07.2/rc/rc1/input6
>>> Jul 17 21:04:09 [ 6.443525] rc1: cx88 IR (Hauppauge Nova-T DVB-T as
>>> /devices/pci0000:00/0000:00:14.4/0000:05:07.2/rc/rc1
>>> Jul 17 21:04:09 [ 6.444724] input: MCE IR Keyboard/Mouse (cx88xx) as
>>> /devices/virtual/input/input7
>>> Jul 17 21:04:09 [ 6.444813] rc rc1: lirc_dev: driver ir-lirc-codec
>>> (cx88xx) registered at minor = 1
>>> Jul 17 21:04:09 [ 6.444817] cx88[1]/2: cx2388x 8802 Driver Manager
>>> Jul 17 21:04:09 [ 6.444847] cx88[1]/2: found at 0000:05:07.2, rev: 5,
>>> irq: 21, latency: 32, mmio: 0xfa000000
>>> Jul 17 21:04:09 [ 6.448487] cx88[0]/0: found at 0000:05:06.0, rev: 5,
>>> irq: 20, latency: 32, mmio: 0xf6000000
>>> Jul 17 21:04:09 [ 6.448938] cx88[0]/0: registered device video0 [v4l2]
>>> Jul 17 21:04:09 [ 6.449299] cx88[0]/0: registered device vbi0
>>> Jul 17 21:04:09 [ 6.449418] cx88[1]/0: found at 0000:05:07.0, rev: 5,
>>> irq: 21, latency: 32, mmio: 0xfb000000
>>> Jul 17 21:04:09 [ 6.449586] cx88[1]/0: registered device video1 [v4l2]
>>> Jul 17 21:04:09 [ 6.449735] cx88[1]/0: registered device vbi1
>>> Jul 17 21:04:09 [ 6.454475] cx88[2]: subsystem: b034:3034, board: Prof
>>> 7301 DVB-S/S2 [card=83,autodetected], frontend(s): 1
>>> Jul 17 21:04:09 [ 6.454478] cx88[2]: TV tuner type -1, Radio tuner
>>> type -1
>>> Jul 17 21:04:09 [ 6.697405] cx25840 3-0044: loaded
>>> v4l-cx23885-avcore-01.fw firmware (16382 bytes)
>>> Jul 17 21:04:09 [ 6.731510] cx23885_dvb_register() allocating 1
>>> frontend(s)
>>> Jul 17 21:04:09 [ 6.731515] cx23885[0]: cx23885 based dvb card
>>> Jul 17 21:04:09 [ 6.833715] m88ds3103_load_firmware: Waiting for
>>> firmware upload (dvb-fe-ds3103.fw)...
>>> Jul 17 21:04:09 [ 6.846768] firmware 0000:02:00.0:
>>> firmware_loading_store: unexpected value (0)
>>> Jul 17 21:04:09 [ 6.847589] m88ds3103_load_firmware: Waiting for
>>> firmware upload(2)...
>>> Jul 17 21:04:09 [ 6.847591] m88ds3103_load_firmware: No firmware
>>> uploaded (timeout or file not found?)
>>> Jul 17 21:04:09 [ 6.848230] m88ds3103_initilaze: Unable initialize
>>> firmware
>>> Jul 17 21:04:09 [ 6.848874] DVB: registering new adapter (cx23885[0])
>>> Jul 17 21:04:09 [ 6.848876] DVB: registering adapter 0 frontend 0
>>> (Montage DS3103/TS2022)...
>>> Jul 17 21:04:09 [ 6.849338] cx23885_dvb_register() allocating 1
>>> frontend(s)
>>> Jul 17 21:04:09 [ 6.849340] cx23885[0]: cx23885 based dvb card
>>> Jul 17 21:04:09 [ 6.907675] m88ds3103_load_firmware: Waiting for
>>> firmware upload (dvb-fe-ds3103.fw)...
>>> Jul 17 21:04:09 [ 6.908077] firmware 0000:02:00.0:
>>> firmware_loading_store: unexpected value (0)
>>> Jul 17 21:04:09 [ 6.910099] m88ds3103_load_firmware: Waiting for
>>> firmware upload(2)...
>>> Jul 17 21:04:09 [ 6.910102] m88ds3103_load_firmware: No firmware
>>> uploaded (timeout or file not found?)
>>> Jul 17 21:04:09 [ 6.910822] m88ds3103_initilaze: Unable initialize
>>> firmware
>>> Jul 17 21:04:09 [ 6.911534] DVB: registering new adapter (cx23885[0])
>>> Jul 17 21:04:09 [ 6.911537] DVB: registering adapter 1 frontend 0
>>> (Montage DS3103/TS2022)...
>>> Jul 17 21:04:09 [ 6.912099] cx23885_dev_checkrevision() Hardware
>>> revision = 0xa5
>>> Jul 17 21:04:09 [ 6.912105] cx23885[0]/0: found at 0000:02:00.0, rev: 4,
>>> irq: 16, latency: 0, mmio: 0xfd200000
>>> Jul 17 21:04:09 [ 6.953136] input: cx88 IR (Prof 7301 DVB-S/S2) as
>>> /devices/pci0000:00/0000:00:14.4/0000:05:08.0/rc/rc2/input8
>>> Jul 17 21:04:09 [ 6.953347] rc2: cx88 IR (Prof 7301 DVB-S/S2) as
>>> /devices/pci0000:00/0000:00:14.4/0000:05:08.0/rc/rc2
>>> Jul 17 21:04:09 [ 6.953524] input: MCE IR Keyboard/Mouse (cx88xx) as
>>> /devices/virtual/input/input9
>>> Jul 17 21:04:09 [ 6.953864] rc rc2: lirc_dev: driver ir-lirc-codec
>>> (cx88xx) registered at minor = 2
>>> Jul 17 21:04:09 [ 6.953870] cx88[2]/0: found at 0000:05:08.0, rev: 5,
>>> irq: 23, latency: 32, mmio: 0xf8000000
>>> Jul 17 21:04:09 [ 6.954019] cx88[2]/0: registered device video2 [v4l2]
>>> Jul 17 21:04:09 [ 6.954121] cx88[2]/0: registered device vbi2
>>> Jul 17 21:04:09 [ 6.957672] cx88[2]/2: cx2388x 8802 Driver Manager
>>> Jul 17 21:04:09 [ 6.957691] cx88[2]/2: found at 0000:05:08.2, rev: 5,
>>> irq: 23, latency: 32, mmio: 0xf7000000
>>> Jul 17 21:04:09 [ 6.958037] cx88/2: cx2388x dvb driver version 0.0.9
>>> loaded
>>> Jul 17 21:04:09 [ 6.958039] cx88/2: registering cx8802 driver, type: dvb
>>> access: shared
>>> Jul 17 21:04:09 [ 6.958041] cx88[0]/2: subsystem: b034:3034, board: Prof
>>> 7301 DVB-S/S2 [card=83]
>>> Jul 17 21:04:09 [ 6.958043] cx88[0]/2: cx2388x based DVB/ATSC card
>>> Jul 17 21:04:09 [ 6.958045] cx8802_alloc_frontends() allocating 1
>>> frontend(s)
>>> Jul 17 21:04:09 [ 7.170175] input: cx23885 IR (DVBSKY S952) as
>>> /devices/pci0000:00/0000:00:04.0/0000:02:00.0/rc/rc3/input10
>>> Jul 17 21:04:09 [ 7.173748] rc3: cx23885 IR (DVBSKY S952) as
>>> /devices/pci0000:00/0000:00:04.0/0000:02:00.0/rc/rc3
>>> Jul 17 21:04:09 [ 7.173877] input: MCE IR Keyboard/Mouse (cx23885) as
>>> /devices/virtual/input/input11
>>> Jul 17 21:04:09 [ 7.174106] rc rc3: lirc_dev: driver ir-lirc-codec
>>> (cx23885) registered at minor = 3
>>> Jul 17 21:04:09 [ 7.386469] DVB: registering new adapter (cx88[0])
>>> Jul 17 21:04:09 [ 7.386473] DVB: registering adapter 2 frontend 0
>>> (STV090x Multistandard)...
>>> Jul 17 21:04:09 [ 7.387604] cx88[1]/2: subsystem: 0070:9002, board:
>>> Hauppauge Nova-T DVB-T [card=18]
>>> Jul 17 21:04:09 [ 7.387608] cx88[1]/2: cx2388x based DVB/ATSC card
>>> Jul 17 21:04:09 [ 7.387610] cx8802_alloc_frontends() allocating 1
>>> frontend(s)
>>> Jul 17 21:04:09 [ 7.762722] DVB: registering new adapter (cx88[1])
>>> Jul 17 21:04:09 [ 7.762726] DVB: registering adapter 3 frontend 0
>>> (Conexant CX22702 DVB-T)...
>>> Jul 17 21:04:09 [ 7.766281] cx88[2]/2: subsystem: b034:3034, board: Prof
>>> 7301 DVB-S/S2 [card=83]
>>> Jul 17 21:04:09 [ 7.766285] cx88[2]/2: cx2388x based DVB/ATSC card
>>> Jul 17 21:04:09 [ 7.766287] cx8802_alloc_frontends() allocating 1
>>> frontend(s)
>>> Jul 17 21:04:09 [ 7.893821] DVB: registering new adapter (cx88[2])
>>> Jul 17 21:04:09 [ 7.893824] DVB: registering adapter 4 frontend 0
>>> (STV090x Multistandard)...
>>> Jul 17 21:05:45 [ 104.894844] DVB: registering new adapter
>>> (DVB-LOOPBACK)
>>> Jul 17 21:05:45 [ 104.896424] DVB: registering new adapter
>>> (DVB-LOOPBACK)
>>> Jul 17 21:05:45 [ 104.896832] DVB: registering new adapter
>>> (DVB-LOOPBACK)
>>> Jul 17 21:05:45 [ 104.897199] DVB: registering new adapter
>>> (DVB-LOOPBACK)
>>> Jul 17 21:14:07 [ 606.813334] cx8802_start_dma() Failed. Unsupported
>>> value in .mpeg (0x00000001)
>>
>>
>> I have had a similar problem with a Hauppauge 2250 card. The card
>> requires that
>> the modules be loaded in a particular order, as the later module
>> relies upon the
>> existence of the firmware of the earlier modules. But the computer
>> generally
>> fails to use the correct order on boot.
>>
>> I have added lines to rc.local to remove the modules and then reload
>> in the
>> correct order. Because the modules 'above' rely on those below (when
>> correctly
>> installed) you will get a error something like 'module in use: cannot
>> remove'.
>> It took a brute force ring-around to ensure that all three (in my
>> case) were
>> removed: that is: I did modprobe -r #3, modprobe -r #2, modprobe -r
>> #1, modprobe
>> -r #2, modprobe -r #3. modprobe -r #2. Then installed them in proper
>> order and
>> get a 'registered' or 'initialized' report.
>>
> Is this the kind of situation that calls for udev rules?


Yes, but I was unable to find anything which dealt with the situation.

The three modules for the Hauppauge 2250 are (in order of required 
install) tda18271, s5h1411 and finally saa7164.

I can provide a chunk of dmesg if anyone knows how to create a udev rule 
which needs to go into the wiki. If we can collectively figure out the 
right parts and correct order together with the right rules, maybe 
Richard or Axel can package an install rpm for this unit.

Geoff






-- 
              R. Geoffrey Newbury			
            Barrister and Solicitor
       Suite 106, 150 Lakeshore Road West
          Mississauga, Ontario, L5H 3R2

         o905-271-9600 f905-271-1638
           newbury at mandamus.org




More information about the mythtv-users mailing list