linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James <bjlockie@lockie.ca>
To: Andy Walls <awalls@md.metrocast.net>
Cc: Sakari Ailus <sakari.ailus@iki.fi>,
	linux-media Mailing List <linux-media@vger.kernel.org>
Subject: Re: boot slow down
Date: Tue, 07 Aug 2012 17:42:48 -0400	[thread overview]
Message-ID: <50218BD8.8040207@lockie.ca> (raw)
In-Reply-To: <48430fdf908e6481ae55103bd11b7cfe.squirrel@lockie.ca>

On 08/07/12 16:33, bjlockie@lockie.ca wrote:
>> bjlockie@lockie.ca wrote:
>>
>>>> Hi James,
>>>>
>>>> On Mon, Aug 06, 2012 at 12:38:51AM -0400, James wrote:
>>>>> On 08/05/12 17:20, Sakari Ailus wrote:
>>>>>> Hi Andy and James,
>>>>>>
>>>>>> On Sat, Aug 04, 2012 at 06:28:19PM -0400, James wrote:
>>>>>>> On 08/04/12 13:42, Andy Walls wrote:
>>>>>>>> James <bjlockie@lockie.ca> wrote:
>>>>>>>>
>>>>>>>>> There's a big pause before the 'unable'
>>>>>>>>>
>>>>>>>>> [    2.243856] usb 4-1: Manufacturer: Logitech
>>>>>>>>> [   62.739097] cx25840 6-0044: unable to open firmware
>>>>>>>>> v4l-cx23885-avcore-01.fw
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I have a cx23885
>>>>>>>>> cx23885[0]: registered device video0 [v4l2]
>>>>>>>>>
>>>>>>>>> Is there any way to stop it from trying to load the firmware?
>>>>>>>>> What is the firmware for, analog tv? Digital works fine and
>>> analog
>>>>> is
>>>>>>>>> useless to me.
>>>>>>>>> I assume it is timing out there.
>>>>>>>>> --
>>>>>>>>> To unsubscribe from this list: send the line "unsubscribe
>>>>> linux-media"
>>>>>>>>> in
>>>>>>>>> the body of a message to majordomo@vger.kernel.org
>>>>>>>>> More majordomo info at
>>> http://vger.kernel.org/majordomo-info.html
>>>>>>>>
>>>>>>>> The firmware is for the analog broadcast audio standard (e.g.
>>> BTSC)
>>>>> detection microcontroller.
>>>>>>>>
>>>>>>>> The A/V core of the CX23885/7/8 chips is for analog vidoe and
>>> audio
>>>>> processing (broadcast, CVBS, SVideo, audio L/R in).
>>>>>>>>
>>>>>>>> The A/V core of the CX23885 provides the IR unit and the Video
>>> PLL
>>>>> provides the timing for the IR unit.
>>>>>>>>
>>>>>>>> The A/V core of the CX23888 provides the Video PLL which is the
>>>>> timing for the IR unit in the CX23888.
>>>>>>>>
>>>>>>>> Just grab the firmware and be done with it.  Don't waste time
>>> with
>>>>> trying to make the cx23885 working properly but halfway.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Andy
>>>>>>>
>>>>>>> I already have the firmware.
>>>>>>> # ls -l /lib/firmware/v4l-cx23885-avcore-01.fw
>>>>>>> -rw-r--r-- 1 root root 16382 Oct 15  2011
>>>>> /lib/firmware/v4l-cx23885-avcore-01.fw
>>>>>>
>>>>>> The timeout if for allowing the user space helper enough time to
>>>>> provide the
>>>>>> driver with the firmware, but it seems the helper isn't around as
>>> the
>>>>>> timeout expires. Is udev running around the time of the first
>>> line? Is
>>>>> the
>>>>>> driver linked directly into the kernel or is it a module?
>>>>>>
>>>>>> Kind regards,
>>>>>>
>>>>> I have this set so the firmware is in the kernel.
>>>>>
>>>>> Symbol: FIRMWARE_IN_KERNEL [=y]
>>>>
>>>> I don't know about that driver, but if the udev would have to provide
>>> the
>>>> firmware, and it's not running, the delay is expected. Two seconds
>>> after
>>>> kernel startup is so early that the user space, including udev, might
>>> not
>>>> yet be running.
>>>>
>>>> Kind regards,
>>>>
>>>> --
>>>> Sakari Ailus
>>>> e-mail: sakari.ailus@iki.fi	jabber/XMPP/Gmail: sailus@retiisi.org.uk
>>>
>>> Doesn't that kernel option mean the firmware is put into the kernel at
>>> kernel build time?
>>>
>>> If I build the module, is there a module option to skip the delay?
>>
>>
>> Hi,
>>
>> The CX2388x firmware is _never_ built into the kernel.  I'm not sure what
>> that particular kernel config option is for.
>>
>> The kernel delay waiting for userspace to load firmware is settable using
>> a node under /sys somewhere. The default is 60 seconds.  You will have to
>> change it in very early boot, or fix the hardcoded constant in the kernel
>> and recompile your kernel.
>>
>> Shortening the delay may not get you entirely acceptable results.  If udev
>> is not, or is refusing to load firmware for the cx25840 module, then that
>> module will not properly initialize the CX23885/7/8 A/V core hardware and
>> will likely return with failure.  I'm not sure if the cx23885 driver will
>> happily continue on, if that happens.
> 
> It works fine even though it times out.
> 
>>
>> If you still have a modular kernel build around, you may wish to test with
>> it.  Blacklist the cx23885 module in /etc/modprobe.conf and the use
>> udevadm to investigate what is going on with udev when you later modprobe
>> the cx23885 driver.
>>
>> If building the video card driver into the kernel is causing you all the
>> problems, then I simply recommend not doing that.
> 
> I'll try it as a module.
> 
>>
>> Regards,
>> Andy

This is what I tried before.
It implies that I shouldn't need user space.

  ┌─────────── Include in-kernel firmware blobs in kernel binary ───────────┐
  │ CONFIG_FIRMWARE_IN_KERNEL:                                              │  
  │                                                                         │  
  │ The kernel source tree includes a number of firmware 'blobs'            │  
  │ that are used by various drivers. The recommended way to                │  
  │ use these is to run "make firmware_install", which, after               │  
  │ converting ihex files to binary, copies all of the needed               │  
  │ binary files in firmware/ to /lib/firmware/ on your system so           │  
  │ that they can be loaded by userspace helpers on request.                │  
  │                                                                         │  
  │ Enabling this option will build each required firmware blob             │  
  │ into the kernel directly, where request_firmware() will find            │  
  │ them without having to call out to userspace. This may be               │  
  │ useful if your root file system requires a device that uses             │  
  │ such firmware and do not wish to use an initrd.                         │  
  │                                                                         │  
  │ This single option controls the inclusion of firmware for               │  
  │ every driver that uses request_firmware() and ships its                 │  
  │ firmware in the kernel source tree, which avoids a                      │  
  │ proliferation of 'Include firmware for xxx device' options.             │  
  │                                                                         │  
  │ Say 'N' and let firmware be loaded from userspace.


  reply	other threads:[~2012-08-08  1:44 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-04 15:52 boot slow down James
2012-08-04 17:05 ` Ezequiel Garcia
2012-08-04 17:42 ` Andy Walls
2012-08-04 22:21   ` James
2012-08-04 22:28   ` James
2012-08-05 21:20     ` Sakari Ailus
2012-08-06  4:30       ` James
2012-08-06  4:38       ` James
2012-08-07 11:27         ` Sakari Ailus
2012-08-07 13:04           ` bjlockie
2012-08-07 13:53             ` Andy Walls
2012-08-07 20:33               ` bjlockie
2012-08-07 21:42                 ` James [this message]
2012-08-07 21:49                   ` James
2012-08-08  8:24                   ` Sakari Ailus
2012-08-08 17:18                     ` bjlockie
2012-08-11 15:20                       ` Sakari Ailus
2012-08-12  0:06                       ` Andy Walls
2012-08-12 19:56                         ` Ezequiel Garcia
2012-08-13 12:25                         ` Mauro Carvalho Chehab
2012-08-07 21:40               ` James
2012-08-06  8:37     ` Andy Walls
2012-08-06  9:19       ` Antti Palosaari
2012-08-06 10:57         ` Andy Walls
2012-08-06 11:41           ` Antti Palosaari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50218BD8.8040207@lockie.ca \
    --to=bjlockie@lockie.ca \
    --cc=awalls@md.metrocast.net \
    --cc=linux-media@vger.kernel.org \
    --cc=sakari.ailus@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).