LINUX.ORG.RU

Поясните за CONFIG_FW_LOADER_USER_HELPER

 , , ,


0

1

Поясните, почему здесь: http://forums.gentoo.org/viewtopic-t-1001638.html и здесь: https://wiki.gentoo.org/wiki/Udev/upgrade#udev_216_to_217 указаны противоречивые инструкции по включению/выключению опции CONFIG_FW_LOADER_USER_HELPER ?

Являюсь обладателем

02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)
, фирмварь к которому загружается способом «включить firmware loader user helper». Ну или я просто не понял, как напрямую вкомпилить фирмварь в ядро...

Правильнее - выключить эту опцию и вкомпилить firmware в ядро, если без этой опции она у вас не загружается. Потому что поддержка вот этого вот helper будет пролюблена в новом udev

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Да, понятно. Только напрямую вкомпилить фирмварь пока не вышло. Мои действия:
1) Иду на http://wiki.gentoo.org/wiki/Wifi
2) Смотрю на «Besides the kernel driver, you will also need firmware, expand section to see firmware/hardware table and notes of supported devices: »
3) Вижу, что адаптеру Intel Centrino Advanced-N 6205 соответствуют пакеты linux-firmware и sys-firmware/iwl6005-ucode.
4) Смотрю, какие файлы устанавливаются со вторым пакетом. Вижу iwlwifi-6000g2a-6.ucode
5) Указываю в конфиге ядра грузить эту фирмварь:

root @ saturn [/usr/src/linux] 14:39
>> grep firmware .config
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
# Altera FPGA firmware download module
-----------------------------------
root @ saturn [/usr/src/linux] 14:39
>> grep iwlwifi .config
CONFIG_EXTRA_FIRMWARE="iwlwifi-6000g2a-6.ucode"
6) И получаю...
root @ saturn [/usr/src/linux] 14:39
>> dmesg | grep iwlwifi
[    3.508815] iwlwifi 0000:02:00.0: can't disable ASPM; OS doesn't have ASPM control
[    3.508999] iwlwifi 0000:02:00.0: irq 27 for MSI/MSI-X
[    3.509334] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-6000g2a-exp.ucode failed with error -2
[    3.509335] iwlwifi 0000:02:00.0: Falling back to user helper

ЧЯДНТ?
P.S. Разумеется, нужный файл в /lib/firmware присутствует

yura_ts ★★ ()
Последнее исправление: yura_ts (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte
root @ saturn [/usr/src/linux] 15:03
>> grep CONFIG_FIRMWARE_IN_KERNEL .config
CONFIG_FIRMWARE_IN_KERNEL=y

yura_ts ★★ ()
Ответ на: комментарий от Pinkbyte

Нет, не одному. Файл iwlwifi-6000g2a-exp.ucode отсутствует в /lib/firmware (и с пакетом sys-firmware/iwl6005-ucode не поставляется). Я вообще без понятия, почему текст сообщения такой.

yura_ts ★★ ()
Последнее исправление: yura_ts (всего исправлений: 1)
Ответ на: комментарий от yura_ts

Значит требуется именно этот файл и он НЕ входит в пакет iwl6005-ucode, я с таким встречался. Ищи этот файл и клади в /lib/firmware

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Только с пакетом linux-firmware он тоже не поставляется:

root @ saturn [/lib/firmware] 16:17
>> ls iwlwifi-6000*
iwlwifi-6000-4.ucode  iwlwifi-6000g2a-5.ucode  iwlwifi-6000g2a-6.ucode  iwlwifi-6000g2b-5.ucode  iwlwifi-6000g2b-6.ucode

Выше — вывод ls после emerge =sys-kernel/linux-firmware-20141009, что суть последняя версия этого пакета.

И гугление пока что ничего не дало, кроме общих советов поставить linux-firmware.

yura_ts ★★ ()
Ответ на: комментарий от yura_ts

Для начала попробуй загрузить модуль с debug=1, может он пытается загрузить другие файлы. В гугле пишут что этот файл - экспериментальная версия прошивки, так что вариант переименовать iwlwifi-6000g2a-6.ucode в iwlwifi-6000g2a-exp.ucode рассматривать можно, но с осторожностью.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Переименовал файл с фирмварью. Вкомпилил переименованный. И, о чудо,

>> dmesg | grep iwlwifi
[    3.032530] iwlwifi 0000:02:00.0: can't disable ASPM; OS doesn't have ASPM control
[    3.032712] iwlwifi 0000:02:00.0: irq 27 for MSI/MSI-X
[    3.033083] iwlwifi 0000:02:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm
...

Кажется, можно ставить галочку «решено»... Ну и ну, вот ведь г-код там, небось, если захардкодили имя iwlwifi-6000g2a-exp.ucode

yura_ts ★★ ()
Ответ на: комментарий от yura_ts

Ну и ну, вот ведь г-код там, небось, если захардкодили имя iwlwifi-6000g2a-exp.ucode

Г-код не там, а у тебя в конфиге.

#define UCODE_EXPERIMENTAL_INDEX        100
#define UCODE_EXPERIMENTAL_TAG          "exp"

static int iwl_request_firmware(struct iwl_drv *drv, bool first)
{
        const char *name_pre = drv->cfg->fw_name_pre;
        char tag[8];

        if (first) {
#ifdef CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE
                drv->fw_index = UCODE_EXPERIMENTAL_INDEX;
                strcpy(tag, UCODE_EXPERIMENTAL_TAG);
        } else if (drv->fw_index == UCODE_EXPERIMENTAL_INDEX) {
#endif
                drv->fw_index = drv->cfg->ucode_api_max;
                sprintf(tag, "%d", drv->fw_index);
        } else {
                drv->fw_index--;
                sprintf(tag, "%d", drv->fw_index);
        }

Включил CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE — драйвер хочет экспериментальную фирмварь.

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

Ну, одно дело уметь поддерживать и экспериментальную фирмварь в довесок к обычной, другое — ТОЛЬКО экспериментальную.

yura_ts ★★ ()
Последнее исправление: yura_ts (всего исправлений: 1)
Ответ на: комментарий от yura_ts

Это настраивается в конфиге ядра. Нужна экспериментальная — включил её. Не нужна — выключил.

gentoo_root ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.