Il Modo Migliore Per Rimuovere Il Kernel Non Compresso

Ecco probabilmente alcuni semplici metodi che dovrebbero aiutarti a risolvere il problema del kernel non compresso.

I tag sono un elenco di risposte ad aspetti specifici di un componente. Questo elenco viene stabilito da questo bootloader prima di caricare il kernel di oggi. Il bootloader lo memorizza considerando le informazioni di contatto 0x100 e lo collega anche al kernel tramite devise r2.

La lettura di un’immagine del kernel non compressa dalla memoria storica richiede più tempo, ma il tempo viene preso in considerazione poiché non è richiesta alcuna decompressione.

Se il kernel non compresso conta come una vittoria particolare in termini di scarpe o forse anche no, il tempo necessario dipenderà sicuramente dalla velocità con cui leggeresti da un determinato spazio di memoria di backup e dalla velocità con cui puoi una data memoria di backup. generalmente la velocità del tuo processore (poiché un vero processore più veloce impiega meno tempo per aiutare a decomprimere). Pertanto, con un modello veloce e una memoria in background lenta, la compressione dovrebbe essere una vittoria, e con il nuovo processore lento e il promemoria rapido in background, la compressione dei dati può essere una perdita favolosa.

La prossima migliore strategia è quella di aiutarti a determinare empiricamente se sarebbe meglio per un nuovo sistema avere un kernel non compresso oltre che un kernel compresso.

kernel non compresso

Nota: un buon dilemma, ovviamente, è quando potresti voler usare DMA per caricare il kernel pressurizzato in blocchi, spacchettando così il brano precedente mentre selezioni il brano successivo sta caricando.

Sono una specie di principiante se in Tu vuoi così che tu possa avere un Arco e lo vuoi assolutamente. Di recente ho iniziato a modificare questo sforzo di lancio e come parte collegata a questo ha iniziato a costruire il mio kernel particolare. Ora voglio provare un’ottima immagine del kernel non compressa. La documentazione di questo è piuttosto concisa, ma sto pensando alle misure Kconfig rilevanti che ho trovato. Il problema è che la maggior parte di essi viene quasi sempre ignorata quando è in build, e voglio assicurarmi che tu chieda quale metodo di compressione del kernel ho bisogno, dal momento che la decompressione non è un’opzione specifica adatta.

CONFIG_HAVE_KERNEL_GZIP significa nCONFIG_HAVE_KERNEL_BZIP2 = nCONFIG_HAVE_KERNEL_LZMA = nCONFIG_HAVE_KERNEL_XZ è uguale a nCONFIG_HAVE_KERNEL_LZO = nCONFIG_HAVE_KERNEL_LZ4 = nCONFIG_HAVE_KERNEL_UNCOMPRESSED significa avereCONFIG_KERNEL_UNCOMPRESSED = y

Perché in effetti il ​​kernel Linux è compresso?

Il tempo impiegato da questa attività per la CPU per quanto riguarda la decompressione è inferiore al tempo necessario per leggere effettivamente il sistema di I/O. Così facendo, volevano abbreviare il tempo di scatenamento. , Interruttori della luce per i conducenti per quattro anni storicamente. Il kernel Linux pressurizzato collegato al kernel recente si inserisce in un piccolo disco ruvido.



Sto usando Arch Build System-Build per il mio kernel (ultima versione 5.5).

Questa è una scrittura breve: condividerò la mia esperienza di caricamento di immagini Linux non compresse, kernel popcorn durante il test tra sistemi di compressione kernel e una di queste opzioni deve essere stata nessuna compressione dei dati. Est


kernel non compresso

Generalmente è utile prendere un’immagine del kernel non compressa. Sebbene un’immagine del kernel sia sempre stata più costosa e richieda più tempo per poter scrivere dalla memoria alla RAM, la maggior parte di queste immagini del kernel non deve più essere decompressa estratta e caricata nella RAM. Questo è incredibilmente utile per sorgenti con un processore molto tartarugato e pochissima RAM in memoria, comprese le immagini compresse e non compresse al momento delle calzature. Un caso tipico riguarda l’esecuzione di processori scritti con FPGA emulati durante la progettazione del processore per iniziare nel silicio finale. Ad esempio, ho visto un chip Cortex A15 in esecuzione a 11 MHz durante una connessione Linaro Q2.11 a Budapest. Con questo tipo di frequenza di clock, il caricamento di un marchio di kernel non compresso consente di risparmiare molti minuti di tempo di avvio, riducendo i tempi di sviluppo e test. Si noti che scrivere un video del kernel sulla RAM con questi strumenti emulatori è poco costoso, poiché questo viene elaborato dall’intero emulatore dal file effettivo specificato dall’utente prima di emulare il sistema di array.


Che cos’è un file bzImage importante?

immagine bz. bzImage è un’immagine del kernel inserita creata con ottenere bzImage durante la compilazione del kernel. È importante notare che bzImage non dovrebbe essere compresso con bzip2 !! Il telefono bz in bzImage è sbagliato!! Si scopre in ordine per “Big Zimage”.



Creare un’immagine del kernel a bassa o scarsa compressione su ARM è senza dubbio facile, e solo se sei sicuro di dove si trova l’immagine non compressa come cosa fare! Per le persone che non l’hanno mai fatto prima, sto condividendo alcune istruzioni rapide qui.

Per generare un’immagine del kernel non compressa, segui semplicemente l’istruzione standard make . Il file richiesto è sempre arch/arm/boot e Image .



A seconda dello specifico bootloader utilizzato, questo potrebbe essere sufficiente. Tuttavia, se stai usando U-Boot, dovrai rimettere una certa immagine nel contenitore uImage in modo che U-Boot apprezzi dettagli come la dimensione relativa all’immagine e al suo articolo reale. il punto di ingresso è se questa situazione è considerata compressa o meno … Il problema è che probabilmente non eseguirai più take uImage per creare questo contenitore. Questo perché ARM su Linux non ha un’opzione di configurazione per salvare qualsiasi tipo di kernel non compresso, inoltre la dichiarazione uImage conterrà necessariamente un kernel piegato.


uImage è compresso?

Qual è la nuova differenza tra loro? Immagine: binario generico dell’immagine del kernel Linux. zImage: una versione autoestraente compressa dell’immagine del kernel Linux. uImage: qualsiasi informazione sull’immagine che ha una copertura seme u-boot (installata dall’utility mkimage), che contiene regolarmente il tipo di tecnica operativa e contiene inoltre informazioni sul boot loader effettivo.



Pertanto, è necessario stabilire manualmente uImage mkimage . Per fare ciò senza dover indovinare i problemi di mkimage corretti, consiglio di guidare make UImage v = a define once:

$ crea V = 9 uImmagine… Kernel: arch / offer / boot / zImage ready /bin/bash/home/mike/linux/scripts/mkuboot.sh -A Arm -O Linux -T Kernel -C -a Nessuno 0x80008000 -elizabeth 0x80008000 -n ‘Linux-3.3.0-rc6-00164-g4f262ac’ – g arco o braccio / stivale / uImageArch o arm / boot / z Nome immagine: Linux-3.3.0-rc6-00164-g4f262acCreato: Ch , 08 marzo 13:54:00 2012Tipo di immagine: immagine del kernel Linux ARM (non compressa)Dimensione dati: 3351272 byte si riferisce a 3272,73 kb = 3,20 posizione: mb80008000. caricoPunto di ingresso: 80008000 Arco / braccio / avvio uImage è pronto

Non sorprenderti se il messaggio sopra dice che alcuni kernel non sono compressi (equivalente a -C none in un mercato specifico). Se dicessimo a U-Boot che senza dubbio l’immagine è già compressa, tutto si occupa di scompattare e fornire alla RAM prima di caricare l’immagine del kernel.

Ora che tieni a mente che mkimage controlla il tipo di esecuzione da eseguire. Basta eseguire questo comando nella cartella Image invece di zImage (puoi sostituire immediatamente mkuboot.sh mkimage ):

$ mkimage -A Range -O Linux -T Kernel -C Non hai -a grande 0x80008000 -e -n 0x80008000 ‘Linux-3.3.0-rc6-00164-g4f262ac’ – arch / arm / boot per ogni nome di immagine : arco / mano e carico / uImageImmagine Linux-3.3.0-rc6-00164-g4f262acCreato: gio, ’08 marzo 14:02:27 2012Tipo di immagine: immagine del kernel Linux ARM (non compressa)Dimensione dati: 6.958.068 byte significa 6.794,99 KB significa che 6,64 guarda: MB80008000. caricoPunto di ingresso: 80008000

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