All of lore.kernel.org
 help / color / mirror / Atom feed
From: Larry Finger <Larry.Finger@lwfinger.net>
To: rhubarbpieguy@gmail.com, linux-wireless@vger.kernel.org
Subject: Re: Firmware works only if kernel source drivers are built as modules.
Date: Mon, 14 Sep 2015 10:28:49 -0500	[thread overview]
Message-ID: <55F6E7B1.3070209@lwfinger.net> (raw)
In-Reply-To: <55F6E028.9010809@gmail.com>

On 09/14/2015 09:56 AM, rhubarbpieguy@gmail.com wrote:
>
> I'm attempting to load iwlwifi-3160 firmware.  It works only if I build the
> following drivers as modules.
>
>      Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate
>
>       Intel Wireless WiFi MVM Firmware Support
>
> If I compile them into the kernel the firmware is not found.  This is my first
> experience with firmware.  Does firmware require drivers built as modules?  I
> see nothing at https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi stating
> modules must be used.

No, having firmware does not require the driver to be a module; however, user 
space may cause a problem.

To load firmware, the user-space portions needed to read a file must be running. 
If the driver is a module *not in the initrd image*, then one is assured that a 
file can be loaded as those routines were used to get the driver file. For the 
case where the driver is built-in, it is possible for a synchronous 
request_firmware() call to timeout before user space is ready to deliver the 
file. The safe way is to request an asynchronous load of at least the first 
firmware file using request_firmware_nowait(). When the load completes, the 
callback routine will set a completion event with all other operations held 
until that event is set.

Note that iwlwifi is correctly coded. It does load a second firmware file 
synchronously, but only after the first one is available.

The built-in driver will also fail unless the dependent drivers are also built 
in, but the kernel build process should take care of that.

The bottom line is that I do not know why your system is failing. It should 
work. (TM) :)

Larry



  reply	other threads:[~2015-09-14 15:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-14 14:56 Firmware works only if kernel source drivers are built as modules rhubarbpieguy
2015-09-14 15:28 ` Larry Finger [this message]
2015-09-14 19:49   ` Johannes Berg

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=55F6E7B1.3070209@lwfinger.net \
    --to=larry.finger@lwfinger.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=rhubarbpieguy@gmail.com \
    /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.