Godkänd: Fortect
Du kan stöta på en felkod som pekar på Compilar Kernel Ubuntu. Det finns flera sätt på det här problemet, och vi kommer att ta itu med detta inom kort.
De flesta datoranvändare som är intresserade av att bygga sin egen kärna gör det eftersom Ubuntu är installerat på deras system.me, och många medborgare vill göra små ändringar i hela kärnan för detta system. I de fall där den personliga bara vill ändra kärnkonfigurationen.
Godkänd: Fortect
Fortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
Syftet med de flesta av dessa brev är att ge denna person ett minimum av information om var och en, för att förenkla varje enskild kärnmodifiering, konceptualisera och installera kärnan. Är detta definitivt tänkt som en omfattande guide för att äntligen hjälpa dig att utveckla din Ubuntu-kärna?
Skapa miljö
< h2 id="1">Hur kompilerar man en kärna i Ubuntu Linux?
Gå så att det kommer www.kernel.org och välj den kärna du vill ladda t.ex. linux-2.6.18.1.tar.bz2 (du kan få alla 2.6 majskärnor här: http://www.kernel.org/pub/linux/kernel/v2.6/). Sedan kan du ladda den med / usr / src på exakt det extrema sättet: Vi packar sedan upp kärnan skäl så skapa en linux symlink för alla som kärnans källkodskataloger:
Om du inte redan har kompilerat min kärna på ditt huvudsystem, finns det vissa paket som krävs för att bygga den korrekt. Du kommer förmodligen att installera den med:
-
sudo apt-get build-dep linux-image - inkomst (uname linux -r)
Tyvärr installerar den här artikeln alla nödvändiga beroenden. Den moderna versionen av Disco Release Goofy kräver de efterföljande ytterligare paketen.
-
sudo apt-get lägga ner libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libpci-dev libudev-dev liliberty-dev autoconf
Om du förmodligen använder git, installera det med hänsyn till följande skäl:
-
sudo apt-get set git
Ovanstående håller kontrollen på kräver att systemet hade perfekta deb-src gränser i /etc/apt/sources.list . Till exempel, med hänvisning till Disco Dingo bör du ha:
-
deb-src http://archive.ubuntu.com/ubuntu disco maindeb-src http://archive.ubuntu.com/ubuntu kärna
Få Disco-uppdateringar från källan i Ubuntu-versionen
Det kan mycket väl finnas ett antal, vanligtvis förknippade med olika metoder för att erhålla kärnextrakt. Det finns vanligtvis två avgörande vägar dokumenterade här.
Om du har en specifik version av Ubuntu installerad och behöver hjälp med att modifiera en kärna som ofta är installerad ovanpå ditt system, använd valfri apt-get (metod som dokumenteras nedan) för att få källkoden.
Men inom den vill du veta hur de senaste källorna för vår egen Ubuntu fungerar och behöver göra några ändringar i dem, använd vanligtvis Git-strategin (detaljerad nedan) för att få platserna.
Apt-get
Hur installeras en ny kärna utan kompilering?
Du stötte på din sida av en slump och såg ut att komma från den eftersom den såg intressant ut, men du vill undantagsvis inte veta mer om kärnor. Om du vill installera en bra progressiv kärna utan att kompilera, kan du använda Synaptic, söka efter en Linux-avbildning och välja versionen av kärnan du vill installera.
Undersidans kod som genererade ett specifikt binärt paket kan möjligen vanligtvis erhållas med kommandot apt-get source
-
rader apt-get linux-image-unsigned - $ (uname -r)
Git
Vilket är Linux kärna för Ubuntu 18.04 LTS?
I det här exemplet kommer jag att använda ett fantastiskt Ubuntu 18.04 LTS (AMD64)-skrivbord med Linux 5.0.0-kärna och några kenel 5.4.2-källfiler, medan ett exempel för att bygga en Linux-kärna tillräckligt skäl för ett anpassat systemanrop och sedan bygga ett viktig Linux-kärna. unix från systemet uppdaterar sitt skrivbord.
Alla Ubuntu-kärnkällor körs helt enkelt med git . Källkoden, om varje version någonsin hanteras, kan hittas i deras Manage Git-förråd på kernel.ubuntu.com . För att få en bra lokal kopia kan du möjligen helt enkelt göra en identisk kopia av databaserna för den version du är intresserad av, jämfört med nedan.
-
git reveal git: //kernel.ubuntu.com/ubuntu/ubuntu-
.git
-
git clone git: //kernel.ubuntu.com/ubuntu/ubuntu-disco.git
Ändra konfiguration
Du kan också ignorera det här steget om du inte vill ha dessa konfigurationsfördelar. Byggprocessen fungerar med en meningsfull konfiguration som består av olika underkonfigurationsfiler. Det enklaste sättet att ändra något här är att återgå till körningen:
-
chmod deras + x debian / reglerchmod a + c debian / scripts / *chmod a + gånger debian / scripts / misc / *LANG = C fakeroot debian / rena reglerLANG = C fakeroot debian / regler editconfigs # du måste gå till genom dem alla (Y, Exit, Y, Exit ..) eller få ett konfigurationsklagomål så småningom konfigurerat
Detta tar den aktuella konfigurationen ungefär vid tiden för alla stödda arkitekturer/alternativ och anropar menuconfig för att framgångsrikt redigera den konfigurationsfilen. Chmod kan behövas för det faktum att de körbara delarna av skripten kommer att gå mycket förlorade när man bygger källkodspaketet.
För att hålla din kärna “nyare” än den vanliga Ubuntu-kärnan du är baserad på, överväg att lägga till en absolut lokal versionsmodifierare. Lägg till något som “+ test1” för att framgångsrikt lägga in versionsnumret i debian.master - changelog innan kompilering. Detta kan utvecklas till mycket användbart för att identifiera din kärna om att få detta gjort också visas som en jakt på uname -a . Observera att om den nya Ubuntu-kärnan släpps kommer den onekligen att vara nyare än kärnan kräver (som alltid återställs), så var försiktig när du uppdaterar. OBS: se till att prova att använda som config_localversion, _will_ kan möjligen avbryta bygget.
Bygga kärnan
Det är enkelt att bygga kärnan. Ändra den administrativa katalogen till rotkatalogen som skapats av detta kärnkällträd, och kör sedan jag skulle säga följande kommandon kort därefter:
-
LANG = C fakeroot debian / rena regler# Bygga somper:LANG = C fakeroot debian / regler h2-taggar binär binär gemensam binär fa л perarch# Om klienter vill ha Linux-verktyg eller en kärna med reducerad latens, använd sprint istället:LANG = C fakeroot debian / binära regler
Om bygget lyckas skapas en uppsättning av endast tre binärfiler för .deb-paketet i den här listkatalogen ovanför byggrotkatalogen. Till exempel, efter att ha byggt en kärna med tolkningen “4.8.0-17.19” på ett amd64-system kommer dessa flera (eller fyra) .deb-paket att växa:
-
CD ..ls * .deb ubuntu headers-4.8.0-17_4.8.0-17.19_all.deb linux-4.8.0-17-generic_4.8.0-17.19_amd64.deb rubriker linux-image-4.8.0-17-generic_4.8.0-17.19_amd64.deb
Du kommer naturligtvis att hitta ytterligare ett Linux-paket i senare mönster som du till och med bör installera om du tar ett.
Testa en ny kärna
Installera tre paket (i byggmetod eller annat målsystem) på grund av dpkg -i och efter det
-
starta om sudo: dpkg -i linux - 4.8.0-17.19 * .debsudo omstart
Felsökningssymboler
Ibland är det vettigt att du kan skapa felsökningssymboler så effektivt. Ytterligare två steg krävs. Den första pkg-config-dbgsym måste laddas. För det andra, om du skapar mål i binär typ – *, måste du lägga till ‘skipdbg är lika med false’.
-
sudo apt-get install pkg-config-dbgsymLANG = C fakeroot debian enligt rena reglerLANG = C fakeroot debian regler binary-headers binary-common-binary-perarch skipdbg = false
Se även
Ovanstående serie presenterar ett mycket enkelt recept för att få själva källorna och bygga dem i detta skede. Om du vill ha mer framgång i kärnutvecklingen än tydliga konfigurationsändringar, bör du titta här