Erro de compilação do kernel 2.6.38 do Linux

1

Quando eu tento compilar o kernel Linux 2.6.38 no meu PC Linux, eu recebo:

$ make defconfig
$ make

Eu recebo:

ubuntu/ndiswrapper/iw_ndis.c:1966:2: error: unknown field ‘num_private’ specified in initializer
ubuntu/ndiswrapper/iw_ndis.c:1966:2: warning: initialization makes pointer from integer without a cast
ubuntu/ndiswrapper/iw_ndis.c:1967:2: error: unknown field ‘num_private_args’ specified in initializer
ubuntu/ndiswrapper/iw_ndis.c:1967:2: warning: excess elements in struct initializer
ubuntu/ndiswrapper/iw_ndis.c:1967:2: warning: (near initialization for ‘ndis_handler_def’)
ubuntu/ndiswrapper/iw_ndis.c:1970:2: error: unknown field ‘private’ specified in initializer
ubuntu/ndiswrapper/iw_ndis.c:1970:2: warning: initialization makes integer from pointer without a cast
ubuntu/ndiswrapper/iw_ndis.c:1970:2: error: initializer element is not computable at load time
ubuntu/ndiswrapper/iw_ndis.c:1970:2: error: (near initialization for ‘ndis_handler_def.num_standard’)
ubuntu/ndiswrapper/iw_ndis.c:1971:2: error: unknown field ‘private_args’ specified in initializer
ubuntu/ndiswrapper/iw_ndis.c:1971:26: warning: initialization from incompatible pointer type
make[2]: *** [ubuntu/ndiswrapper/iw_ndis.o] Error 1
make[1]: *** [ubuntu/ndiswrapper] Error 2
make: *** [ubuntu] Error 2

Alguma idéia de como resolver isso e por que isso acontece com a configuração padrão?

    
por Max 25.09.2011 / 14:34

1 resposta

2

Acabei de encontrar o mesmo erro quando extraí a fonte do kernel em um host Oneiric e tentou construí-lo hoje.

Você pode pesquisar o arquivo de origem para identificar a causa raiz, mas direto ao ponto, a variável de configuração WEXT_PRIV não está definida, então inclua arquivo que tenha essas definições não está incluído.

O patch do kernel do Ubuntu que adiciona este código não é perfeito. Minha solução alternativa era encontrar um dispositivo sem fio na lista que causaria este item de configuração para ser selecionado. Eu não me importava com o que o dispositivo era, já que eu não ia use o driver, mas ele tem CONFIG_WEXT_PRIV para ser definido no arquivo .config .

Bastante aleatório das opções disponíveis, usei o dispositivo Cisco / Aironet. Ainda não testei o kernel, mas ele foi compilado corretamente.

    
por 16.11.2011 / 02:22