Custom kernel: falha ao carregar o firmware quando o módulo é embutido

8

Gostaria de ter todos os meus módulos integrados, mas isso falha com iwlagn :

iwlagn 0000:03:00.0: request for firmware file 'iwlwifi-6000-4.ucode' failed.
iwlagn 0000:03:00.0: no suitable firmware found!

O arquivo de microcódigo existe em /lib/firmware e a coisa toda funciona bem se eu compilar iwlagn como módulo. Não tenho ideia de onde está procurando o arquivo ou o que está errado - alguma idéia?

    
por justdontdoit 02.10.2011 / 15:59

1 resposta

9

Veja as opções de configuração CONFIG_FIRMWARE_IN_KERNEL , CONFIG_EXTRA_FIRMWARE e CONFIG_EXTRA_FIRMWARE_DIR (encontradas em Drivers de dispositivos - > Opções genéricas de driver ).

A primeira opção permitirá que o firmware seja construído no kernel, o segundo deve conter o nome do arquivo do firmware (ou uma lista de nomes separada por espaços) e o terceiro onde procurar o firmware.

Então, no seu exemplo, você definiria essas opções para:

CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE='iwlwifi-6000-4.ucode'
CONFIG_EXTRA_FIRMWARE_DIR='/lib/firmware'

Uma palavra de recomendação: Compilar todos os módulos no kernel não é uma boa ideia . Eu acho que entendo sua ambição porque em algum momento eu também estava desesperado para fazer isso. O problema com essa abordagem é que você não pode descarregar o módulo uma vez que ele está embutido - e, infelizmente, especialmente os drivers sem fio tendem a ter erros, o que leva a uma necessidade de recarregar seus módulos. Além disso, em alguns casos, uma versão de módulo de um driver recente simplesmente não funcionará.

    
por 02.10.2011 / 16:11