On 09/14/2015 09:56 AM, [email protected] 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
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html