All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.