Det Bästa är Att Ta Bort Okomprimerad Kärna

Här är verkligen några enkla metoder som kan hjälpa dig att fixa problemet med okomprimerad kärna.

Taggar är en rapport över svar på specifika aspekter av en komponent. Den här listan startas av denna starthanterare innan de flesta kärnor laddas. Bootloadern lagrar den med motiveringen att kontaktinformationen är 0x100 och skickar den även till kärnan via försök att skapa r2.

Att läsa en okomprimerad kärnbild från historiskt minne kan ta längre tid, men tiden är dokumenterad eftersom ingen dekomprimering krävs.

Huruvida den okomprimerade kärnan räknas som någon form av seger när det gäller skor möjligen inte, tiden det tar bör kunna bero på hur snabbt du läser från en given säkerhetskopia, säker digital och hur snabbt du kan lära dig av en given backup-minne. vanligtvis hastigheten på din processor (eftersom en viss snabbare processor tar kortare tid att dekomprimera). Således, med en snabb central processor och långsamt bakgrundsminne, kan komprimering potentiellt vara en vinst, och med deras långsamma processor och snabba bakgrundsåterkallelse kan datakomprimering vara en rejäl förlust.

Den näst bästa strategin är att empiriskt avgöra om det skulle sluta bättre för ett nytt system med en okomprimerad kärna lika idealiskt som en komprimerad kärna.

okomprimerad kärna

Obs: en bra plats är naturligtvis när du kan använda DMA för att ladda den förkortade kärnan i bitar, och därigenom packa upp någon sorts tidigare låt medan nästa melodi är läser in.

Jag är praktiskt taget vilken nybörjare som helst om du verkligen vill ha en Arch och absolut njuta av den. Jag började nyligen justera en lanseringsinsats och som en del av det började jag bygga min ganska egen kärna. Nu vill jag prova en bra okomprimerad kärnbild. Den tillgängliga dokumentationen om detta är ganska kortfattad, men jag tänker på de relevanta Kconfig-valen jag har hittat. Problemet är att de nästan alltid ignoreras i byggnaden, och jag vill fråga vilken metod för kärnkomprimering jag behöver, eftersom uppackning inte är något specifikt alternativ.

CONFIG_HAVE_KERNEL_GZIP betyder nCONFIG_HAVE_KERNEL_BZIP2 = nCONFIG_HAVE_KERNEL_LZMA = nCONFIG_HAVE_KERNEL_XZ är lika med nCONFIG_HAVE_KERNEL_LZO = nCONFIG_HAVE_KERNEL_LZ4 = nCONFIG_HAVE_KERNEL_UNCOMPRESSED lika harCONFIG_KERNEL_UNCOMPRESSED = y

Varför är även Linux-kärnan komprimerad?

Den tid som följande tar för CPU:n att verkligen dekomprimera är mindre än den tid det tar att faktiskt läsa I/O-systemet. Genom att verkligen göra det, ville de förkorta den inledande tiden. , Ljusbrytare för att föra under fyra år historiskt. Den pushade Linux-kärnan som är länkad till den mogna kärnan passar in på en liten intensiv enhet.



Jag använder Arch Build System-Build för min kärna (senaste 5.5).

Det här är en kort sammanfattning – jag kommer att dela min lidande av att ladda okomprimerade Linux-bilder, popcornkärnor medan jag testar mellan kärnkomprimeringsvägar, och ett av dessa alternativ blev ingen datakomprimering. Öst


okomprimerad kärna

Det finns tillfällen då det är användbart att ta en okomprimerad kärna-bild. Även om en kärnavbildning verkligen är dyrare och tar längre tid, vilket kommer att skriva från minnet till RAM-minnet, behöver dessa typer av kärnavbildningar inte längre dekomprimeras och laddas in i RAM-minnet. Detta är otroligt användbart för strategier med en mycket sköldpaddsprocessor och/eller kanske väldigt lite RAM-minne i minnet på grund av komprimerade och okomprimerade bilder vid skotillfället. Ett typiskt fall är att framgångsrikt köra processorer skrivna med emulerade FPGA:er under processordesign för att starta utöver det slutliga kislet. Till exempel såg jag ett Cortex A15-chip leda vid 11 MHz under en Linaro Q2.11-anslutning i Budapest. Med den föregående klockfrekvensen sparar laddning av ett okomprimerat kärnutseende många minuter av trunktid, vilket minskar utvecklings- och testenergin. Observera att det är billigt att skriva en kärnstjärna till RAM med dessa elektronikemulatorer, eftersom detta ställs in av hela emulatorn från en absolut användarspecificerad fil innan sortimentssystemet emuleras.


Vad är en ny bzImage-fil?

bild bz. bzImage är en fylld kärnbild skapad med produce bzImage när kärnan kompileras. Det är mycket viktigt att notera att bzImage inte komprimerades med bzip2 !! Bz-telefonen i bzImage är falsk !! Det visar sig över “Big Zimage”.



Att skapa en kärnbild med låg eller definitivt komprimerad kärna på ARM är verkligen enkelt, och bara om du förstår var den okomprimerade bilden finns, vad du ska göra! För personer som aldrig har gjort detta med förut delar jag några snabba instruktioner här.

För att skapa en okomprimerad kärnbild, följ helt enkelt standardpublikationerna för make . Den nödvändiga filen är alltid arch / arm / boot Image .



Beroende på vilken bootloader som används kan detta vara många. Men om du använder U-Boot måste du lägga tillbaka bilden i uImage -behållaren så att U-Boot-medvetna detaljer som storleken liknar bilden och dess faktiska blogginlägg. ingångspunkten är om spelet anses vara komprimerat eller inte … Problemet är att du kanske inte längre kör yield uImage för att skapa den här behållaren. Detta beror på att ARM på Linux inte har ett konfigurationsalternativ som kan spara vilken typ av okomprimerad kärna som helst, förutom att musikfilen uImage nödvändigtvis kommer att innehålla en komprimerad kärna.


Är uImage komprimerad?

Vad är skillnaden mellan dem? Bild: Generisk Linux-kärnbild binär. zImage: En något komprimerad självextraherande version av Linux-kärnavbildningen. uImage: Alla bildsändningar som har ett u-boot-lager (installerat av mkimage-verktyget), som vanligtvis innehåller den typ av operativa hela kroppen och dessutom innehåller information om hela starthanteraren.



Därför måste du skapa uImage mkimage manuellt. För att göra detta utan att behöva gissa rätt mkimage -problem rekommenderar jag att du gör make UImage v = en specifik en gång:

$ make V = distinkt uImage… Kärna: fotvalv / arm och axel / stövel / zImage redo /bin/bash/home/mike/linux/scripts/mkuboot.sh -A Arm -O Linux -T Kernel -C -a Ingen 0x80008000 -elizabeth 0x80008000 -n ‘Linux-3.3.0-rc6-00164-g4f262ac’ – g båge och arm / stövel / uImageArch kontra arm / boot / z Bildnamn: Linux-3.3.0-rc6-00164-g4f262acSkapad: Ch , 8 mars 13:54:00 2012Bildtyp: Linux ARM kärnbild (okomprimerad)Datastorlek: 3351272 byte matchar 3272,73 kb = 3,20 bostadsadress: mb80008000. lastIngångspunkt: 80008000 Arch / arm / boot och uImage är redo

Bli inte förvånad om meddelandet ovan säger att det mesta av kärnan inte är komprimerad (motsvarande -C none på en specifik marknadsplats). Om vi ​​sa till U-Boot att bilden vanligtvis redan är komprimerad, ska allt ta hand om uppackning och föra tillbaka till RAM-minnet innan en ny kärnavbildning laddas.

Nu när du kommer ihåg att mkimage styr hur mycket du ska köra. Kör bara dessa kommandon i mappen Image istället för zImage (du kan omedelbart ersätta mkuboot.sh mkimage ):

$ mkimage -A Range -O Linux -T Kernel -C Du har inte -praktiskt taget någon 0x80008000 -e -n 0x80008000 ‘Linux-3.3.0-rc6-00164-g4f262ac’ -kemisk båge / arm / boot per bildnamn : båge / hand – ladda / uImageLinux-3.3.0-rc6-00164-g4f262ac-bildSkapad: tor 2009 mars 14:02:27 2012Bildtyp: Linux ARM kärnbild (okomprimerad)Datastorlek: 6 958 068 byte motsvarar 6 794,99 KB betyder att 6,64 hanterar: MB80008000. lastIngångspunkt: 80008000

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