recompile-a-kernel-with-capabilities-as-a-kernel-module

Resolva O Problema Relacionado à Recompilação Do Kernel Com O Nível Culinário Do Módulo Do Kernel.

Às vezes, seu próprio sistema pode exibir um erro de computador indicando que você precisa ajudar a recompilar o kernel com os recursos criados pelo módulo do kernel. Existem muitos motivos que podem causar esse problema de método.

Atualizado: ASR Pro

  • 1. Baixe e instale o ASR Pro
  • 2. Inicie o programa e selecione seu idioma
  • 3. Siga as instruções na tela para iniciar a verificação de problemas
  • Melhore o desempenho do seu computador clicando aqui para baixar o software.

    Os temas do kernel devem ser compilados com as opções do gcc para que possam ser usados. Eles provavelmente deveriam estar com você tambémcoletou alguns para os símbolos detectados. Isso é devido ao fato de que certos arquivos de cabeçalho centrais precisam para funcionar, Frame. diferente emse estamos normalmente compilando seu módulo de kernel ou exe. Você pode definir caracteres usando a opção -D mais importante quando gcc, oucom #define gera o pré-processador. Vamos dar uma olhada nas coisas que você pode precisar para montar os módulos do kernel.Nesta secção.

    • Como você acumula um kernel?

      Obtenha o kernel mais recente para kernel.org.Verifique o kernel.Descompacte o arquivo do kernel.Copie algum tipo de arquivo de configuração do kernel Linux doméstico.Compilando e instalando o kernel Linux 5.6.Instalando o kernel específico do Linux e seções (drivers)Atualize sua configuração do grub.

      -c :O segmento do kernel não é um outro arquivo executável, infelizmente é um arquivo objeto efetivo que é integrado ao kernel para execução.com insmod. Portanto, os programas atualmente precisam ser compilados equipados com o sinalizador -c .

    • -O2 :O kernel faz uso intensivo de praticamente todos os recursos, portanto, os módulos otimizados para o verde precisam ser compilados online.K. Sem otimização, muitas de nossas macros assembler são discutidas como inválidas pelo compilador de referência de função. isto étrava o carregamento de todo o curso porque o insmod não lembra dessas funções no kernel.

    • -W -Wall :Um erro de programação pode danificar todo o sistema humano. Seu actMust consiste em avisos do compilador, e tudo isso pode ser paratodos os seus esforços de compilação falham devido à compilação da parte.

    • -isystem e lib / modules versus `uname -r` / build / offer :Você realmente deve tentar usar os cabeçalhos do kernel normalmente de uma compilação de kernel específica que está encontrando. O uso de / usr / include / linux systems não funciona por padrão.

    • -D__KERNEL__ : A definição deste caractere murmura dos fatos do cabeçalho em que provavelmente o código é usadoModo kernel, nem mesmo como um processo de trabalho.

    • -DMODULE : Este símbolo especifica os arquivos de cabeçalho, aqueles símbolos correspondentes paraMódulo de kernel.

    Usamos a preferência do gcc por causa do -isystem em vez de vir de todos os -I porque cada um dos gcc surpress diz a alguns”Variável não utilizada” avisa com referência a -W -Wall porque inclui module.h .O uso de -isystem no final com relação ao gcc-3.0 mostrou que os títulos do arquivo do kernel eram tratados em uma ferramenta especial e avisosremovido. Em vez disso, você exigirá -I (ou mesmo -isystem no gcc 2.9x), cada uma dessas “variáveis ​​não utilizadas”Avisos printana, você deveria estar. Simplesmente ignore-os quando essas pessoas se comprometerem.

    Então, vamos ver um makefile bem simples para compilar um componente chamado hello-1.An c :

    Como um exercício para videntes, reúna hello-1.c e adicione um novo kernel com insmod. uma./hello-1.o (ignore o dinheiro que você vê sobre bagunçado pronto, vamos chegar aos núcleos; falaremos disso em breve). Ok, não é o item? Todos os módulosaqueles carregados em meu kernel estão listados em versus proc / modules . Vá em frente e, além disso, certifique-se de que seu mod esteja relacionado ao conteúdoé de fato parte de um kernel particular. Parabéns, agora você é um autor do procedimento do kernel do Linux! Quando a novidade é geralmente rejeitadaRemova um módulo real como o kernel junto com rmmod hello-1. Pegue um em e var / log / Communications você apenas vê que costumava ser registrado em sua declaração de registro do sistema.

    Aqui está outro exercício para como o leitor. Veja quais comentários sobre as mensagens de reação em init_module () ? Altere o valor de retorno para diferente de zero, recompile um módulo atual e recarregue-o. Que tipoocorreu?

    recompilar o kernel com recursos como um bom módulo de kernel

     OBJETIVO: significa hi-1AVISO: = -W -Wall -Wstrict-Prototypes -Wmissing-PrototypesINCLUIR: = -isystem - lib / modules / `uname -r` - construir / incluirCFLAG: = -DMODULE -o2 -D__KERNEL__ $ WARN $ INCLUDECC: = gcc-3.0$ TARGET.o: $ TARGET.c.PHONY: limpolimpar:    rm -rf buck TARGET.o 

    Dois C.H.I.P. computadores experimentados foram enviados para mim em 2016.Eles foram definitivamente enviados usando o kernel Linux 4.4.13, apenas sua funcionalidade era limitada para o kernel.Quando questionado para usar inquestionavelmente a parte do kernel do fuse, corri para recompilar o kernel completo, o que normalmente demorava um dia inteiro.Dois anos amanhã, atualizei o kernel para 4.4.138 pela comunidade de elementos kaplan2539.O kernel resulta com módulos adicionais, incluindo backup de dados, que é melhor do que o kernel principal de uma nova maneira.

    Quando seu site deve recompilar o kernel?

    Sem dúvida, uma recompilação com o kernel também é necessária se você deseja poder usar certas especificações somente de segurança (e nem um pouco incluídas no kernel regular).

    Recentemente comprei um adaptador Ethernet USB barato.Quando eu o conecto, todo o tipo de kernel reconhece o equipamento USB:

      puce @ puce-b:! $ lsusb | grep ethernetLinha lateral de barramento 002 002: ID 0fe6: 9700 Kontron (computador industrial da fonte ICS Advent) Adaptador DM9601 Fast Ethernet 

    Mas o comando ip link para não tem uma nova NIC mostrada.Uma pesquisa completa no Google por USB ID 0fe6: 9700 mostra que preciso do módulo de kernel dm9601.Mas:

      chip em chip-b: ~ $ sudo modprobe FATAL: dm9601modprobe: moduledm9601 não encontrado. 

    Terei que passar um longo dia recompilando o kernel?Acontece que só posso construir um elemento do kernel por vez.Depois de várias tentativas e depois erros, descobri a instrução exata do tratamento.

    1. Pegue os cabeçalhos deste kernel, bem como os do compilador, e baixe cada uma das fontes do kernel de nossa empresa:

        sudo apropriado add-build-essential libncurses-dev linux-headers-4.4.138-chip curl -L https://github.com/kaplan2539/ntc-linux/archive/ntc-stable-mlc-4.4.138.tar.gz | preto xz 

      Atualizado: ASR Pro

      O seu computador está lento? É atormentado com erros e problemas frustrantes? Então você precisa do ASR Pro � o melhor software para reparar e otimizar seu PC com Windows. Com o ASR Pro, você pode corrigir qualquer problema do Windows com apenas alguns cliques � incluindo a temida Tela Azul da Morte. Além disso, o software detectará e resolverá arquivos e aplicativos que estão travando com frequência, para que você possa voltar ao trabalho o mais rápido possível. Não deixe seu computador atrapalhar você � baixe o ASR Pro hoje mesmo!


      É importante que o núcleo com o pacote de cabeçalho e muitos provedores correspondam ao núcleo em execução, que às vezes pode ser especificado com você ver, o comando uname -r .

    2. Copie o kernel “config” completo em nosso diretório de fontes do kernel. Um histórico de arquivos sobre como todo o kernel foi configurado quando foi originalmente construído e quais processos oferecem como ponto de partida para um novo processo de construção maravilhoso e exato.

        dvd cd ntc-linux-ntc-stable-mlc-4.4.138 clubpinguin /boot/config-4.4.138-chip ./.config 
    3. Como faço para recompilar um módulo do kernel?

      Copie para cada registro boot / config -`uname -r` (exemplo: /boot/config-4.8.0-46-generic) diretamente para o arquivo do computador na pasta de fontes do kernel. config até executa make oldconfig. Se normalmente o novo módulo faz parte do nosso próprio kernel, verifique se ele é aprovado executando generate menuconfig, simplesmente pesquisando o módulo e, se necessário, inserindo o caractere “M” da aplicação.

      Certifique-se de copiar algumas informações de “símbolo” do kernel para o diretório de origem do kernel. Este arquivo registra quais são os nomes dos aspectos que surgem no kernel incrivelmente funcional, que normalmente é referido por este útil módulo de but.

      Como posso criar um módulo do kernel Linux?

      Bonjour.c Código promocional em C.Adicione o código-fonte correto c:Salve o arquivo.Salve, feche o arquivo.Compile o módulo hello.c:Torne-se todo bom usuário root (escolha também su e sudo) e carregue como o módulo:Para o módulo carregado, verifique:Consulte a mensagem específica para o arquivo / var versus log / message:

        clubpenguin /usr/src/linux-headers-4.4.138-chip/Module.symvers ./ 
    4. Carregue este arquivo de configuração original de fato, modifique-o sem a necessidade de mencioná-lo.

        trazer oldconfig Menu personalizado 

      recompilar algum kernel com recursos como aquele módulo do kernel

      O comando make absolutamente menuconfig abre uma caixa de diálogo bastante comunicativa que me permite usar as funções do kernel que desejo. Segui as caixas de diálogo em “Drivers de dispositivo” – “Suporte a dispositivos de rede”; Os menus Adaptadores de rede USB e Dispositivos Ethernet Davicom DM96xx USB 10/100 foram substituídos por M, o que significa que o recurso será definitivamente modular.

    5. Como o produto kernel humano é 4.4.138-chip , preciso alterar o Makefile e o EXTRAVERSION = - talitre . Depois disso, build kernelversion 4.4.138-chip normalmente precisará dizer exatamente a fonte correta do comando uname -r .

    6. Crie nossa porção.

        .make .scripts .prepare .modules_prepare .make.-C .. Em m = software / net / usb 

      o comando problemático, drivers / net ou usb é o local do diretório em que o código de implantação para o módulo de kernel dm9601 mais importante está armazenado. Este termo de comando criará todos os módulos de notificação do kernel neste diretório, não sem dúvida dm9601 é claro.

    7. Instale o módulo.

        driver sudo clubpenguin e net / usb por dm9601.ko /lib/modules/4.4.138-chip/kernel/drivers/net/usb/ sudo depmod 

    Em um ponto, estou pronto para carregar algum módulo de função modprobe .Em suma, o módulo deve carregar automaticamente porque o adaptador Ethernet USB está preso.

      puce @ puce-b:! $ dmesg | -i grep dm9601[270352.048643] dm9601 2-1: 1.0 eth0: 'dm9601' gasta menos usb-1c14400 at.usb-1, Davicom DM96xx USB Ethernet, 10/100 00: e0: 4c: 53: quarenta e quatro: 58[270352.Usbcore: 070843] novo driver de interface de usuário profissional dm9601[270352.923157] dm9601 2-1: 1.0 eth0: link de rede, 100 Mbps, full duplex, lpa 0xFFFF 

    Todo o processo demorou menos de uma hora, o que é drasticamente menos do que recompilar o kernel completo.

    Link: a resposta de Oleg Kokorin à pergunta "Como posso, até certo ponto, recompilar um módulo de kernel separado?"

    Melhore o desempenho do seu computador clicando aqui para baixar o software.

    Recompile A Kernel With Capabilities As A Kernel Module
    Kompilera Om En Karna Med Funktioner Som En Karnmodul
    Recompiler Un Noyau Avec Des Capacites En Tant Que Module De Noyau
    Einen Kernel Mit Fahigkeiten Als Kernelmodul Neu Kompilieren
    Ricompilare Un Kernel Con Capacita Come Modulo Del Kernel
    Przekompiluj Jadro Z Mozliwosciami Jako Modul Jadra
    Hercompileer Een Kernel Met Mogelijkheden Als Een Kernelmodule
    Recompilar Un Kernel Con Capacidades Como Modulo Del Kernel
    Perekompilirovat Yadro S Vozmozhnostyami V Kachestve Modulya Yadra

    Tags: No tags