Custom Kernel til Ubuntu

Alle tekniske spørgsmål som ikke hører ind under de andre fora.
Brugeravatar
Christian.Arvai
Admin
Indlæg: 10725
Tilmeldt: 26. apr 2008, 19:27
IRC nickname: Christian_Arvai
Geografisk sted: Holeby - Lolland

Custom Kernel til Ubuntu

Indlæg af Christian.Arvai »

Hej venner.

Jeg har et lille projekt, som at jeg vil se på i sommerferien. Jeg kan så godt bruge en hånd, da dette er lidt ud over hvad, at jeg plejer at finde på af skøre påfund ;)

Jeg vil lave min egen Kernel til Ubuntu, og have den installeret som fast Kernel på min Studie-pc. Som basic tager jeg bare den nyeste udgivelse, og så skal jeg have ændret navnet, sådan at Kernel hedder:

Kode: Vælg alt

4.1.15-1.1.1381_SKYN12nnmp


Dem af forums medlemmer, der kender Terminator-filmene, vil muligvis kunne huske dette fra filmen:
Billede

Det skulle gerne ende med at, jeg med en "uname -a" kan få noget der ligner dette:

Kode: Vælg alt

chr@chr:~$ uname -a
Linux chr 4.1.15-1.1.1381_SKYN12nnmp #86-Ubuntu SMP Mon May 4 04:32:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
chr@chr:~$

So, How to do it?

PS: Det haster ikke. Jeg skal lige forbi eksamen først, men det skader jo ikke at starte lidt op.
Med venlig hilsen Christian

"We can only see a short distance ahead, but we can see plenty there that needs to be done." -- Alan Turing
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Custom Kernel til Ubuntu

Indlæg af AJenbo »

Måske kan det gøres lettere med en hex editor :P Eller en falsk uname.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Custom Kernel til Ubuntu

Indlæg af lath »

Du kan sætte navnet et eller andet sted i konfiguratioen - så vidt jeg lige husker det. Kerne nummer kan man måske ikke sådan lige rette i - jeg har i alt fald ikke prøvet.

Den her guide ligner meget godt det jeg gjorde sidst(*) jeg lavede en kerne:
http://www.thegeekstuff.com/2013/06/compile-linux-kernel/

Meget vigtigt: Alle device driver der skal bruges ved boot - absolut skal - inkluderes i kernen=de må ikke være et kerne modul (som bor i en *.ko fil).

Har du glemt noget så får du en kernel panic ved boot, da kernen mangler device driveren for at komme videre i boot processen.

Det er specielt alt hvad der vedrører filsystemet, block device driver og så videre og hele vejen indtil mikroprocessoren - husk også device drivere for controllere, PCI og SATA er et godt eksempel.

/Lars

(*): Det er nok omkring 10+ år siden.
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Custom Kernel til Ubuntu

Indlæg af AJenbo »

Et godt sted at starte er her:
https://help.ubuntu.com/community/Kernel/Compile

Det er egentlig ikke så svært, og så længe du ikke ændre noget er alt sat op som med den normale kerne og du behøves ikke tage højde for ko-filer etc.
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: Custom Kernel til Ubuntu

Indlæg af NickyThomassen »

Jeg har ligesom Lars også tidligere bygget kernels uden de store problemer, og jeg overvejer faktisk også at starte igen, for udover alt det man lære, så kunne jeg godt mærke forskel på hastigheden. En custom kernel som kun indeholder det nødvendige, kører nemlig rigtig godt. Det skal dog nævnes, at jeg bruger strømbesparende hardware med begrænset ydelse.

Som generelt råd vil jeg anbefale at bygge alt ind i kernen, således at den ikke skal hente diverse moduler under opstart. Processen kan dog godt drille lidt, for som Lars skriver er grænsen imellem en panic og en fungerende kernel én driver.

Da jeg byggede var det på Debian, og der kunne man fortælle konfigurationsprogrammet at det skulle bruge den nuværende kernels indstillinger, hvilket gør tingende nemmere. Derefter kan man så gå ind og deaktivere fx SCSI enheder, forudsat at man ikke bruger dem, selvfølgelig ;)

Du skal tage stilling til om du vil bruge Ubuntus LTS kernel (hvis en sådan findes?), eller om du hellere vil bruge vanilla fra kernel.org. Ulemper og fordele er de sædvanlige: En LTS kernel skal kun bygges én gang, imens kernel.org udgiver hver 3. måned. På den anden side er kernel.org current, set i forhold til patches og funktioner, og med lidt arbejde kan byggeprocessen automatiseres langt hen ad vejen.

Jeg vil anbefale at du bygger i hjemmemappen uden brug af sudo, og så laver en APT pakke ud af kernen, som du så installerer manuelt. På den måde bygger du uden risiko og har 100% styr på tingende.

Og ellers siger du bare til :)
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Custom Kernel til Ubuntu

Indlæg af AJenbo »

4.1 kerne er i øvrigt lige blevet erklæret for lts
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Custom Kernel til Ubuntu

Indlæg af lath »

Linux Foundation er host for et projekt der hedder Yocto(1):

Det er mest for embedded (indlejrede) systemer - men ser spændende ud på grund at de værktøjer der findes til den(2).
Umiddelbart ser Yocto ud til at være en slags "Linux from scratch(3) - the easy way" - for indlejrede systemer, men de har også support for x86 og x86-64 processorer, så man burde vel også kunne lave et image til sin egen DIY desktop Linux distro.

Links:
  1. https://www.yoctoproject.org/documentation
  2. https://www.yoctoproject.org/tools-resources/projects/gui-development-tools - her tænker der på "Hob" hvorfra du kan lave et DIY image - (jeg tror at jeg vil se om jeg kan lave noget til et til mine Raspberry Pi computere).
  3. http://www.linuxfromscratch.org/
      Se:
    • LFS
    • BFLS
    • ALFS
    • CLFS
    • HLFS
    • LiveCD: Bemærk at LiveCD ikke virker med LFS >=7.0

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
Brugeravatar
Christian.Arvai
Admin
Indlæg: 10725
Tilmeldt: 26. apr 2008, 19:27
IRC nickname: Christian_Arvai
Geografisk sted: Holeby - Lolland

Re: Custom Kernel til Ubuntu

Indlæg af Christian.Arvai »

I mangel på tid har jeg taget den nemme løsning. Jeg har lavet scriptet uname.sh med dette indhold:

Kode: Vælg alt

#!/bin/sh
#
# Author: Christian Arvai
# Credits to: Ubuntu Denmark LoCo Team
# For all Ubuntu releases from 12.04 to current stabil 
# To 32 and 64 bits systems
# This code is available under the creative commons attribution-sharealike license https://creativecommons.org/licenses/by-sa/4.0/

# print the kernel version
kernel=$(uname -v)
# print the operating system
os=$(uname -o)
# print the machine hardware name
bit=$(uname -m)
# print the network node hostname
user=$(uname -n)

echo "Linux $user 4.1.15-1.1.1381_SKYN12nnmp $kernel $bit $bit $bit $os"


Resultat "uname -a"

Kode: Vælg alt

Linux chr 3.19.0-20-generic #20-Ubuntu SMP Fri May 29 10:10:47 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Resultat "uname.sh"

Kode: Vælg alt

Linux chr 4.1.15-1.1.1381_SKYN12nnmp #20-Ubuntu SMP Fri May 29 10:10:47 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


Så behøver vi vist ikke at bruge mere energi på den joke ;) Jeg takker for hjælpen.
Med venlig hilsen Christian

"We can only see a short distance ahead, but we can see plenty there that needs to be done." -- Alan Turing
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Custom Kernel til Ubuntu

Indlæg af AJenbo »

Du kan omdøbe det det til uname i din egen ~/bin mappe så burde den vist blive taget før den rigtige kommando.
Brugeravatar
NickyThomassen
Admin
Indlæg: 3652
Tilmeldt: 5. mar 2010, 19:58
IRC nickname: nicky
Geografisk sted: 192.168.20.42

Re: Custom Kernel til Ubuntu

Indlæg af NickyThomassen »

AJenbo skrev:Du kan omdøbe det det til uname i din egen ~/bin mappe så burde den vist blive taget før den rigtige kommando.

Yep, Linux følger generelt FSH, som giver en klar præcedens over kommandoer:

Kode: Vælg alt

Alias <--> ~/bin <--> /usr/local/bin <--> /bin


Alias' er dem sat i Shell'ens rc-fil, fx ~/.bashrc for Bash.

Bare husk at holde styr på det... Programmet whereis kan bruges til at se hvor det kørte program ligger.