Fast: Hur Man Fixar Samling Av Linux 2.6-kärnmoduler.

November 16, 2021 By Lucas Nibbi Off

 

Under de senaste veckorna har flera läsare berättat för oss att de har kommit på att kompilera en Linux 2.6 kärnmodul.

Rekommenderas: Fortect

  • 1. Ladda ner och installera Fortect
  • 2. Öppna programmet och klicka på "Skanna"
  • 3. Klicka på "Reparera" för att starta reparationsprocessen
  • Ladda ner den här programvaran och fixa din dator på några minuter.

     

     

    Moduler

    Kärnor måste kompilera unika änvanliga anpassade applikationer. Tidigare versioner inklusive kärnan måste lämnasmycket runt dessa parametrar, som vanligtvis sparas i makefiler.Även om de är uppbyggda hierarkiskt, många redundanta parametrarsamlats i barnhjälpsakter och betalat för dem tunga och ganska storasvårt att hålla. Lyckligtvis finns det en fantastisk metoddessa punkter, kända inom medicin som kbuild, och dessutom processen att montera utomhusdelarloadable är nu helt integrerat i det mesta av standardkärnanKonstruktionsmekanism. För att lära dig långt om hur man kompilerar varje delrekommenderas inte (som alla produkter du kan köpa)kan hittas i den här manualen) se på en gång linux / Documentation / kbuild / modules.txt datorfilen.

    Så låt oss bara titta på din egen makefil för att förstå hur den delen kallas. Sammanställa hej-1.c :

    Ur teknisk synvinkel är det mesta av den första kursen verklig.utan tvekan behövs nya “allt” och dessutom “rena” mål för rentBekvämlighet. Du

    kan nu kompilera den uppdaterade modulen genom att utfärda kommandoordet tillåt. Du bör få ett resultat lika medföljande:

    Obs. 2.6-kärnan introducerar en ny konvention för att passa identifierande filer:Kärnmoduler har nu ett nytt .ko tillägg.(tillhör anstånd old.o ),det skiljer sig något, inklusive traditionella artikelfiler. …Anledningen är normalt att heand innehåller en extra modinfo-sektionatt det är ytterligare nyheter om komponenten som kunde sparas. Fontänenvi kommer inom kort att se allt som resurser detta är bra för.

    Inget speciellt, tillräckligt långt bort. Det ändras när du slutar använda det.modinfo är en av våra nya modeller, hello-5.ko .Of

    Du hittar många användbara instruktioner här. Författarens arbete förFelrapporter, licensinnehåll, till och med en beskrivningParametrarna det kommer att ta.

    Ytterligare aspekter av makefiler för att ta emot kärnmoduler:tillgängligt i linux och dokumentation / kbuild / makefiles.txt . En varningLäs detta tillvägagångssätt och att ha att göra med filer innan du börjar hacka.Makefiler. Detta kommer förmodligen att spara en hel del arbete.

    kompilera kärnmodul linux 2.6

    Det är varaktighet att infoga den nyligen kompilerade kursen för detta.kärna med insmod ./hello-1.ko (ignoreravad du än har att se på skadade kärnor; a är vad vi avsersnart).

    Alla moduler som laddas in i kärnan är utan tvekan listade i och proc / moduler . Gå vidare och kör den här filen så att du kan se denatt din modul är sanningen är en ny del av otvivelaktigt kärnan. Grattis,Nu är du vanligtvis författaren till Linux-kärnkoden! När ny idé bärav, tvinga din kärnmodul och använd rmmod hello-1. Ta en titt på / var / ved / meddelanden för att se vilken det ärLoggfilen för sin egen sparade utrustning.

    Här är en annan övning för läsaren. Se de flesta på grund av kommentarerna ovanreturnera sats init_module () ?Ändra avkastningen sant värde för alla typer av negativ utrustning, kompilera och ladda nermodul en andra instans. Vad är problemet ?

      obj-m Hej-1 + =. OAllt:        Reach -C / lib / modules / rr (uname -r shell) / build M = $ (PWD) Modulerena:        vara -C / lib / moduler $ (uname -r skal) / producera M = $ (PWD) rensa
      Värdnamn: ! / lkmpg-exempel / 02-HelloWorld nummermärkemake -C /lib/modules/2.6.11/build M = / principal / lkmpg-examples / 02-HelloWorld Modulemake [1]: ange `/ usr / src kontra linux-2 directory.6.11 '  CC [m] /root/lkmpg-examples/02-HelloWorld/hello-1.o Byggmoduler, nivå 2. MODPOST   CC /root/lkmpg-examples/02-HelloWorld/hello-1.mod.o LD [M] /root/lkmpg-examples/02-HelloWorld/hello-1.komake [1]: avsluta telefonkatalogen `/usr/src/linux-2.6.11 'Värdnamn: ~ / lkmpg-examples 02-HelloWorld #        Färg = "# 000000"> Värdnamn: ~ / lkmpg-exempel för varje 02-HelloWorld #
     
      Värdnamn: ~ / lkmpg-exempel per 02-HelloWorld # modinfo hello-5. NSFilnamn: hello-5. NSLicens: GPLAv Peter Jay Saltzmanvermagic: 2.6.11 proaktiv PENTIUMII 4KSTACKS gcc-3.3beror på:parm: overload myintArray: Ett heltal (Int array)parm: mystring: egenskaper (charp)parm: mylong: alltid heltal (lång)parm: myint: heltal (int)parm: myshort: begränsat heltal (kort)Värdnamn: ~ / lkmpg-examples kontra 02-HelloWorld #

    Kärnmoduler som du behöver ska utvecklas lite annorlunda än naturliga anpassade applikationer. Vi är engagerade som kan använda äldre kärnversionerFör att hantera dessa inställningar, vilka typer av makefiler lagras vanligtvis i professionella makefiler. Även om de är ordnade hierarkiskt, är många av dem överflödiga.Bevarade temps i barnmakefiler och designade dem också svårare att underhålla.Lyckligtvis kommer det för närvarande att finnas ett nytt sätt som pekar på att uppfylla villkor som kallas kbuild och den bästa processen för att skapa ett laddningsbart utländskt webbtema.är nu helt integrerad direkt i den erogena kärnans konstruktionsmekanism. Lär dig mer om hur du monterar områden som inte är detEn del av den officiella kärnan (som alla fall du kommer att köpa i denna handledning), bildfilen linux/ Dokumentation / kbuild och modules.txt .

    Så låt oss ta en titt på den allmänna makefilen som kan kompilera delen som heter hello-1.c :

    Ur en teknisk synvinkel är det helt enkelt nödvändigt att titta på det första garnet,"Alla" i "rena" milstolpar har lagts till för enkelhetens skull.

    Rekommenderas: Fortect

    Är du trött på att din dator går långsamt? Är det full av virus och skadlig kod? Var inte rädd, min vän, för Fortect är här för att rädda dagen! Detta kraftfulla verktyg är utformat för att diagnostisera och reparera alla slags Windows-problem, samtidigt som det ökar prestanda, optimerar minnet och håller din dator igång som ny. Så vänta inte längre - ladda ner Fortect idag!

  • 1. Ladda ner och installera Fortect
  • 2. Öppna programmet och klicka på "Skanna"
  • 3. Klicka på "Reparera" för att starta reparationsprocessen

  • Du är nu redo att kompilera modulen som anropas av själva make-kommandot.Du bör förmodligen få den faktiska följande utdata:

     Värdnamn: ~ per lkmpg-examples / 02-HelloWorld # makemake -C /lib/modules/2.6.11/build M = / root - lkmpg-examples / 02-HelloWorld Modulemake [1]: förslag `/ usr / src eller linux-2 directory.6.11 '  CC [m] /root/lkmpg-examples/02-HelloWorld/hello-1.o Bygguppdrag, nivå 2. MODPOST   CC /root/lkmpg-examples/02-HelloWorld/hello-1.mod.o LD [M] /root/lkmpg-examples/02-HelloWorld/hello-1.komake [1]: avsluta katalogen `/usr/src/linux-2.6.11 'Värdnamn: ! / lkmpg-exempel / 02-HelloWorld #

    Observera att en ny spårnamnkonvention diskuteras om 2.6-kärnan: delar av dessa kärnor har nu .ko Extension (istället för den gamla .extension) i , vilket skiljer den från vanliga objektFiler. Detta kan bero på att de har en annan .modinfo-sektion som ger ytterligare idéer omModulen ägde rum. Idag kommer vi sannolikt då att se vad det egentligen är typiskt och den här informationen används.

    Använd modinfo hello - * .ko för att inse vad denna information är.

     Värdnamn: ~ / lkmpg-examples per 02-HelloWorld # modinfo hello-1.koFilnamn: Hello-1. NSvermagic: 2.6.11 proaktiv PENTIUMII 4KSTACKS gcc-3.3beror på: 

    Inget speciellt än. Detta kommer att förändras så fort jag verkligen involverar Modinfos anställda i våra progressiva produkter. hi-5.ko .

     Värdnamn: ! / lkmpg-exempel / 02-HelloWorld nummer modinfo hello-5. NSFilnamn: hello-5. NSLicens: GPLAv Peter Jay Saltzmanvermagic: 2.6.11 proaktiv PENTIUMII 4KSTACKS gcc-3.3beror på:parm: myintArray: array relaterad till heltal (array relativt int)parm: mystring: linje moder natur (charp)parm: mylong: särskilt långt heltalparm: myint: heltal (int)parm: myshort: mycket kort heltal (kort)värdnamn: ~ / lkmpg-exempel eller 02-HelloWorld # 

    Du kommer att hitta många användbara svar här. En kedja av misstag meddelanden,Licensinformation, inklusive en specifik kort information om parametrarna som accepteras av den här uppgiften.

    Mer information om hur de make-filer som är tillgängliga för kärnmoduler ska hittas i linux / Dokumentation / kbuild / makefiles.txt .Se till att du läser detta tillsammans med de relaterade filerna, innan du startar bra makefiler.Detta kommer förmodligen att spara dig en hel del arbete.

    Det är dags att lägga till den nykompilerade komponenten med insmod ./hello-1.ko. placeras i kärnan(Ignorera vad du än tittar på på orena kärnor, vi kommer ner till det snart).

    Alla saker som laddas in i kärnan visas i / proc / sektioner .Fortsätt även att titta på det här för att ta reda på vilken modul som en egen modul faktiskt är länkad till med hjälp av en del av kärnan.Grattis, vem som helst är nu författaren till hela Linux-kärnkoden! När en stor idé försvinnerTa bort modulen från min kärna med rmmod hello-1. Kolla in det / var / journal / meddelanden endast om de vill se att det loggas för att hjälpa dig i syslog-filen.

    Här är den motsatta övningen för läsaren. Kolla denna snabba översikt över returinformation och fakta för. TILL init_module () ? Ersätt returvärdet med ett nedåtriktat värde, kompilera om och ladda om en komponent.Vad är problemet ?

     obj-m + antyder hello-1.oAllt:gör -C / lib per moduler / $ (uname -r skal) kontra build M = RR (PWD) -C Modulerena:make / lib / segments / $ (uname -r shell) build M = $ (PWD) distinct 

    kompilera kärnsegment linux 2.6

     

     

    Ladda ner den här programvaran och fixa din dator på några minuter.
    < id="1">Ändra denna unika makefil för att ersätta varje förekomst som finns i helloWorld och kernelRead-anvisningarna med hjälp av etiketterna för de moduler ditt företag vill skapa.Kompilera modulerna som ett resultat av att skapa dem i katalogen i de fall där webbmallsmodulerna verkligen finns.Bli nu superanvändaren att skriva.

    < id="2">Steg 1. Ladda ner den exakta webbplatskoden.Steg 2: extrahera tillhandahållskoden.Steg 3: Installera de nödvändiga paketen.Gå på utkik efter: konfigurera kärnan.Steg 5: bygg för närvarande kärnan.Steg 6. Uppdatera starthanteraren (valfritt)Steg sex: starta om och kontrollera eventuell kärnversion.

    hello.c skaffa C-kod.Lägg till följande ursprungliga c-prefix:Spara en viss fil.Spara och stäng filen.Sammanställ var och en av våra hello.c-kurser:Bli root (använd su även känd som även sudo) och ladda ner typen av komponent:Se till att modulen är laddad:Se den specifika informationen i filen kontra var / log / meddelande:

     

     

     

    Compiling Kernel Module Linux 2 6
    커널 모듈 Linux 2 6 컴파일
    Compilazione Del Modulo Del Kernel Linux 2 6
    Kompilowanie Modulu Jadra Linux 2 6
    Compileren Van Kernelmodule Linux 2 6
    Kompilyaciya Modulya Yadra Linux 2 6
    Compilando Modulo Do Kernel Linux 2 6
    Compilar El Modulo Del Kernel Linux 2 6
    Kompilieren Des Kernelmoduls Linux 2 6