Re: patch "firmware loader: allow disabling of udev as firmware loader" added to driver-core tree
From: Jean-Michel Hautbois
Date: Wed Aug 06 2014 - 07:24:57 EST
2014-08-06 12:52 GMT+02:00 Takashi Iwai <tiwai@xxxxxxx>:
> At Wed, 6 Aug 2014 12:50:28 +0200,
> Jean-Michel Hautbois wrote:
>>
>> 2014-08-06 12:21 GMT+02:00 Takashi Iwai <tiwai@xxxxxxx>:
>> > At Wed, 6 Aug 2014 11:44:14 +0200,
>> > Jean-Michel Hautbois wrote:
>> >>
>> >> 2014-08-06 11:24 GMT+02:00 Takashi Iwai <tiwai@xxxxxxx>:
>> >> > At Wed, 6 Aug 2014 11:10:27 +0200,
>> >> > Jean-Michel Hautbois wrote:
>> >> >>
>> >> >> 2014-08-05 21:22 GMT+02:00 Shuah Khan <shuahkhan@xxxxxxxxx>:
>> >> >> > On Tue, Aug 5, 2014 at 10:01 AM, Takashi Iwai <tiwai@xxxxxxx> wrote:
>> >> >> >>> Yes, it worked, if the firmware was in the /lib/firmware directory.
>> >> >> >>
>> >> >> >
>> >> >> > ok it works when the firmware is in /lib/firmware. It sounds to me the
>> >> >> > reason load fails when the firmware is under /sys/class/firmware is
>> >> >> > fw_load_from_user_helper() returns -ENOENT when
>> >> >> > CONFIG_FW_LOADER_USER_HELPER is disabled.
>> >> >> >
>> >> >> > It would be nice to see the entire dmesg with debug enabled though.
>> >> >> >
>> >> >> > -- Shuah
>> >> >>
>> >> >> It does not work with the 3.16 kernel even when firmware is in
>> >> >> /lib/firmware, it worked before this patch is applied.
>> >> >
>> >> > Hm? 3.16 doesn't contain my patch yet. It's merged for 3.17-rc1.
>> >>
>> >> Oh, you are right of course, I am on upstream kernel and I have your
>> >> patch. I don't mean your match is causing the issue though ;-).
>> >
>> > I see.
>> >
>> >> >> Here is what I got in my dmesg :
>> >> >> [ 0.307856] __allocate_fw_buf: fw-lattice-ecp3.bit buf=bd81a480
>> >> >> [ 0.308029] lattice-ecp3 spi2.3: Direct firmware load for
>> >> >> lattice-ecp3.bit failed with error -2
>> >> >
>> >> > It's -ENOENT. Are you sure that you really have
>> >> > /lib/firmware/lattice-ecp3.bit file?
>> >>
>> >> Yes :
>> >> ls -al /lib/firmware/lattice-ecp3.bit
>> >> -rwxr-xr-x 1 root root 897753 Aug 5 15:04 /lib/firmware/lattice-ecp3.bit
>> >
>> > Then you'd better bisect...
>> > Or, at least, put a debug code to see which file is opened in the loop
>> > in fw_get_filesystem_firmware().
>>
>> Well, when this function is called, my rootfs is not yet mounted (I
>> have a dedicated partition on a SDCard)...
>> So I probably missed a step in order to get /lib/firmware before / is
>> mounted... ?
>
> Yeah, possibly :) Maybe you did put /lib/firmware/* into initrd in
> the earlier tests?
Nope, it failed and when / was mounted, it was called again and used
the firmware thanks to udev.
This is the CONFIG_FW_LOADER_USER_HELPER config which makes that now, right ?
But how can I have /lib/firmware in my initrd, that is the question I
need to answer now :).
JM
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/