Melhor Maneira De Realmente Remover O Kernel Descompactado

Aqui estão alguns métodos simples que podem ajudá-lo a corrigir o problema do kernel descompactado.

Tags são uma lista de reações a aspectos específicos de um fator. Esta lista é criada pelo gerenciador de inicialização antes de carregar nosso kernel. O bootloader as armazena como informações críticas de contato 0x100 e também as passa para o kernel por meio de create r2.

Ler um conceito de kernel descompactado da memória histórica leva mais tempo, por outro lado, o tempo é anotado, pois não é necessária qualquer descompressão.

Se algum kernel descompactado conta como uma vitória em termos de sapatos ou não, o tempo mais importante que levará dependerá de quão rápido você pode ler em uma determinada memória de backup e, especificamente, de quão rápido você pode ler daquela que você simplesmente deu memória de backup. a velocidade do seu processador (já que um processador mais rápido leva menos tempo para descompactar). Assim, com um processador rápido e memória de fundo de parada, a compactação pode ser uma grande vitória, e com um chip lento e memória de fundo rápida, a retenção de dados pode ser uma perda.

A melhor estratégia a seguir é tomar uma decisão empiricamente se seria melhor obter um novo sistema para ter um kernel descompactado, bem como um kernel compactado.

kernel descompactado

Nota: uma boa situação, do sistema, é quando você pode usar o DMA para carregar os pedaços diretos do kernel compactado, descompactando o monitor anterior enquanto a próxima música é carregada.

Sou um iniciante, talvez em Você quer ter algum tipo de arco e adoro isso. Recentemente, comecei a ajustar a centralização de lançamento e, como parte disso, comecei a construir meu próprio kernel. Agora eu quero tentar uma imagem de kernel descompactada. A documentação sobre isso é bastante concisa, mas estou pensando em relação aos métodos Kconfig relevantes que aprendi. O problema é que eles geralmente são quase sempre ignorados durante a compilação, e também quero perguntar qual remédio para compactação do kernel eu preciso, pois a descompactação não é uma opção específica.

CONFIG_HAVE_KERNEL_GZIP = nCONFIG_HAVE_KERNEL_BZIP2 implica nCONFIG_HAVE_KERNEL_LZMA = nCONFIG_HAVE_KERNEL_XZ = nCONFIG_HAVE_KERNEL_LZO significa nCONFIG_HAVE_KERNEL_LZ4 = nCONFIG_HAVE_KERNEL_UNCOMPRESSED = temCONFIG_KERNEL_UNCOMPRESSED é igual a y

Por que o kernel do Linux está compactado?

O tempo que leva para a CPU descompactar é menor do que o tempo que leva para ser realmente lido o sistema de E / S. Ao fazer isso, eles exigiram encurtar o tempo de lançamento. , Interruptores de luz para dirigir por alguns anos historicamente. O kernel do Linux compactado vinculado ao kernel antigo combina em um pequeno disco rígido.



Estou usando o Arch Build System-Build devido ao meu kernel (versão 5.5 mais recente).

Este é um artigo curto – compartilharei minha experiência de compactação de imagens Linux descompactadas, kernels durante o diagnóstico entre as opções de compactação do kernel, e a única dessas opções era a compactação de arquivos. Leste


kernel descompactado

Às vezes é útil obter uma imagem de kernel descompactada. Embora uma imagem de kernel seja mais cara e leve mais tempo para gravar em qualquer lugar da memória na RAM, essas fotos do kernel não precisam mais ser descompactadas e carregadas na RAM. Isso pode ser incrivelmente útil para sistemas com aquele processador muito pequeno ou muito pouco RAM na memória ou compactadas juntamente com imagens não compactadas no momento da inicialização. Um caso típico é rodar chips de processador escritos com FPGAs emulados durante o design da marca para começar com o último silício. Por exemplo, eu vi um chip Cortex A15 real rodar a 11h MHz durante um contato Linaro Q2.11 em Budapeste. Nessa velocidade de clock, o carregamento de uma imagem de kernel não compactada conserva muitos minutos de tempo de inicialização, minimizando o tempo de desenvolvimento e teste. Observe que é fácil gravar uma imagem do kernel na RAM com esses emuladores de hardware, pois isso é feito por um emulador inteiro a partir de um registro especificado pelo usuário antes de emular o sistema host.


O que é um arquivo bzImage?

imagem bz. bzImage é uma aparência de tela de kernel carregada criada com make bzImage ao obter o kernel. É importante notar que bzImage não é compactado com bzip2 !! O celular bz em bzImage é enganoso !! Acontece que para “Big Zimage”.



Criar uma imagem de kernel com poucos ou nenhum dado no ARM é fácil, além disso, somente se você souber onde está a imagem não compactada real e o que você pode fazer ! Para as pessoas que já fizeram isso antes, estou expressando algumas instruções rápidas aqui.

Para gerar uma imagem de kernel descompactada, siga naturalmente as instruções prevalentes do make . O arquivo essencial geralmente é arch and arm / boot / Image .



Dependendo do gerenciador de inicialização usado, isso pode ser suficiente. No entanto, no caso em que você está usando o U-Boot, você pode precisar colocar esta imagem ao contrário no pacote uImage para que o U-Boot saiba detalhes como o tamanho da tatuagem e seu conteúdo real. o ponto de envio é saber se ele está comprimido ou não … A tarefa é que você não pode mais executar make uImage para criar este contêiner. Isso é porque o ARM no Linux não possui uma opção de configuração para salvar muitos tipos de kernel descompactado, e seu arquivo uImage conterá absolutamente um kernel compactado.


O uImage está compactado?

Qual é a diferença neles? Imagem: Binário do conceito do kernel Linux genérico. zImage: uma versão de extração automática resumida e exclusiva da imagem do kernel do Linux. uImage: Qualquer arquivo de imagem que contém um shell u-boot (instalado por este utilitário mkimage), que geralmente contém, diria, o tipo de sistema operacional e contém informações sobre o carregador de boot.



Portanto, você deve criar uImage mkimage manualmente. Para fazer isso sem ter que pensar sobre as condições mkimage corretas, eu recomendo executar make UImage v = 1 uma vez:

$ adquirir V = 1 uImage… Kernel: arch / arm / start / zImage pronto /bin/bash/home/mike/linux/scripts/mkuboot.sh -A Arm -O Linux -T Kernel -C -o real Nenhum 0x80008000 -elizabeth 0x80008000 -n ‘Linux-3.3.0-rc6-00164-g4f262ac’ – – g arco / braço para cada bota / uImageArch / arm e boot / z Image-Name: Linux-3.3.0-rc6-00164-g4f262acCriado: Ch, 08 de março 13:54:00 2012Tipo de imagem: token de kernel ARM do Linux (descompactado)Tamanho dos dados: 3351272 bytes corresponde a permitir-lhes 3272,73 kb = 3,20 endereço: mb80008000. loadPonto de entrada: 8.0008000 Arco / braço e ombro / bota / uImage está, sem dúvida, pronto

Não se surpreenda se a mensagem mencionada acima disser que o kernel não está apenas compactado (equivalente a -C niether no mercado). Se nossa organização disse ao U-Boot que a imagem já estava compactada, tudo se encarregará de descompactar e voltar para a RAM antes de carregar a imagem do kernel.

Agora que você sabe quando mkimage controla o que você provavelmente executará. Basta executar este comando na pasta Image e incluir coisas como zImage (você pode substituir imediatamente mkuboot.sh mkimage ):

$ mkimage -A Range -O Linux -T Kernel -C Você não tem -a 0x80008000 -ourite -n 0x80008000 ‘Linux-3.3.0-rc6-00164-g4f262ac’ -d arch por braço / boot / etiqueta de imagem: arco / mão / carga ou uImageImagem Linux-3.3.0-rc6-00164-g4f262acCriado: Qui, 08 de março 14:02:27 de 2012Tipo de imagem: Linux ARM kernel style (descompactado)Tamanho dos dados: 6.958.068 bytes é igual a 6.794,99 KB significa 6,64 endereços: MB80008000. loadPonto de entrada: 8.0008000

Uncompressed Kernel
Unkomprimierter Kernel
Neszhatoe Yadro
Noyau Non Compresse
압축되지 않은 커널
Ongecomprimeerde Kernel
Kernel Sin Comprimir
Okomprimerad Karna
Nieskompresowane Jadro
Kernel Non Compresso