118
BlanKonf 2010 1 Agustus oleh: Dwi Sasongko S <[email protected]>

BlankOn

Embed Size (px)

DESCRIPTION

Membangun custom kernel, pengembangan kernel blankOn untuk pemula.

Citation preview

BlanKonf 2010

1 Agustus

oleh: Dwi Sasongko S

<[email protected]>

Pengertian Umum

Kernel adalah suatu perangkat lunak yang menjadi

bagian utama dari sebuah sistem operasi.

Perangkat ini yang menjadi penghubung antara

perangkat keras dan aplikasi pengguna.

Compiler

gcc --version

Linker

binutils

Ld -v

Make

Make

Make --version

sudo apt-get install kernel-package

sudo apt-cache show kernel-package

Kode sumber

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.x.x.*

Patch

kernel.org

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-

2.6.x.x.*

Situs lain

Platform specific

Hacking/devel version

Apa itu?

penambahan/pengurangan kode sumber

HOWTO:

patch -p1 –dry-run < ../file-patch.patch

patch -p1 < ../file-patch.patch

git apply file-patch.patch

Debian

$ make-kpkg clean

$ fakeroot make-kpkg –initrd –apend-to-version=-label_string

kernel_image kernel_header

LABEL_STRING:

Penanda versi rilis

NOTE:

Initramfs tidak terbentuk sejak rilis Lucid

sudo mkinitramfs -k -o initrd.img-2.6.32-15+drm33.5-no-custom 2.6.32.15+drm33.5-no-custom

Debian

$ dpkg -i linux-image*

$ dpkg -i linux-headers*

$ sudo update-grub2

Configuration Tools

Kconfig – menuconfig, xconfig, gconfig

y: untuk menjawab iya; fitur akan dikompile secara

built-in

n: untuk menolak; fitur tidak akan dikompile

m: module, fitur akan dikompile sebagai kernel

module, nantinya akan dipasang ke kernel pada

waktu runtime

?: untuk melihat keterangan pada fitur

Develop Kernel

Untouchable Codes?

Sulit?

!

Gunakan Linux

BlankOn-Dev, Pengembang BlankOn

LDD – Linux Device Driver

Hello World Device Driver ;-)

∀ ∀ #∃ %

hello.c

Makefile

∀ ∀ #∃ %

static int __init device_init(void) int ret; printk(KERN_INFO "Hello World"); return SUCCESS;

module_init(device_init);

∀ ∀ #∃ %&

obj-m += hello.o

all:make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:make -C /lib/modules/$(shell uname -r)/build M=$(PWD) cleanrm -f *.c~ Makefile~ *.symvers

∀ #∋(

# sudo insmod hello.ko# dmesg | tail

!∀ ∀#∃%

&∋%&

(∃&))∗)+)

,

−./

,

00∗

0∗∃∗./

,, ,,,

,

.12#34+/

,

&00)

−./

−&

5))

&

−&/

,

467 ∗%∗&4

∗8&33∗)3∀ ∀3∀93 :30∗0∗3

3;∗∗∗<.)))/

0

&)))7))7)∗

3∗&0

%∗&∗%∗&&&∋%=>+)?0 &.?≅Α/∗Β)90∃Β)90∃%0Χ&)Α)5&&33)∗)))3∗3

∗&∗(∗∗& &∆;& < ∗&∗

3∗

,

≅∗

∗−

&

∗.∗/03

.0/

0

03∗∗

−∗

∗∃

8&

−−

−33

&

000∗.#/0Ε7. /0Φ9ΒΦ

!∀#

∃%

&

∋()

)7

.3∗3∗∆;5Γ<3)∗/

−∗−∗

;∗<

0Η0ΗΗΙ1.,/

0∗3∗0.∗/ΗΗΗ0&∗3

Η)∗ΗΗ −∋)%−ϑΗΗΗ 0∃∗0

3∗33∗)&

&333+∗+0∗

404

))∗

)9)

Κ)−∗

)

∆)∗

+ ΓΛ#442(Γ≅Μ∋%Μ+ ΓΓ(∋4≅Μ>+)Μ+Γ ∋ΝΟ≅Μ∃Μ+(Ν5≅Μ33∗3&33&3&∆5Γ33∃3∗Μ

∆∗)∗

. /

8(Ν(Ν(2&)∗)Π&/

∆0 0

∗&. / %(Γ././ %(./.Κ/Ο%(./Θ∗, %(∃ ∀9)Γ410Γ ∀99∀:Φ)

./

./

67,.∀9Β/ΟΕ7∀9Β

∗∃)∀≅+=?≅+=?≅+=?≅+=?≅+∃,.∀/ +∀!∀ ∀Β&∀&9(#Ν8∋∗∗,.32/

.9/

Θ∋ Ρ∗∗∋ Ο28Γ(&Μ5∗5. ∗/=∗>)?Μ

Ο&∋%Γ&>+)8&Θ∗#%ΓΟ0∋ &Μ∋%./=>+)?Μ

8.2/.8/.Γ/./3.Σ/,

.Κ/

6)∋∗.∃7/Ρ∃∗∗))ΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤ)ΤΤΤΤΤΤΤΤΤΤ)))ΤΤΤΤΤ)ΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤ)ΤΤΤΤΤ)ΤΤΤΤΤΤΤΤΤΤ))ΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤ))ΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤ)ΤΤΤΤΤΤΤΤΤΤ)))ΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤ)ΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤΤ?ΤΤΤΤΤ))ΤΤΤΤΤ?)ΤΤΤΤΤ)))))ΤΤΤΤΤΥΥΥ&ςςςςςςςς∗∗∗)

.Φ/

&∗∗&./ ∗./1&&∀∃& &∀&∀0∀Ε∀∀∀ &+∗∗∀ 0∀ 0∀ ∀9ς3ςςςςςςςς∀ ∀0∀ 0∀ΒΩ+&∀ 0∀ 0∀Ξ≅ΚςΑ∀:ςΚΑΚΦ(ςςςς9 Φ9ΒΦ9ΦςΒΑςςς ΦΒΒΑ∋%./=>+)?∀9Β+39ςςς:Κ9∀ ∀0∀ 0∀ΒΩ+&∀ 0∀ 0∀Ξ

.Α/

∆∃)∗

∋ΟΟΟ%∋ΝΓ≅&33 ∗33 ΓΝ%ΝΟ(≅ΜΜ ∋%ΝΟ∋#Ν∋2≅Μ Μ82Γ2Ν%≅Μ+ ∗+0 ∗Μ(#ΝΠ Γ%∋12≅(Ν8(85Γ≅∆5Γ30∃33∗∗3#∋4 4(8Γ≅∆5Γ30∃333#∋4 ΟΓ%#4Ν≅∆5Γ30∃333∋2 #2Ν%≅∆5Γ30∃3335 ∋Ο≅∆5Γ30∃333

.Β/

&∆03333∃33

0&∆0∆5Γ30∃33;∗∗<∆∆5Γ30∃3;<

&−Ο(91∗−

∆0∆#∋4 4(8Γ

∆∗

5&3∃3∗∗33)7

Ψ∗Ψ&

)−.∗/)Η

))−9))7

Η∃)∗∗)

0

Ν3−&(8 Γ

.Β/

∋Ζ

8

Ζ33+00)8∗∗0∗)∀∀Κ∀∀Α!∗#0

∗Μ∋ΕΜ1∆.333Η)[0∴)Η3ΡΠ)Η∴/Ρ0000∗0Μ∆1Μ[[0∃0Μ∆1Μ[[∗

0333Η))))

∆0∗Η

.Η;)))7))7)∗</

∗& −0∗0+)∗#Ο43)∗

−Ψ0%0Ψ

Η0∗∗)

ΠΗ3∗0%0)∗

Η3

∆)∗

−&)7∆#∋4 4(8Γ∗

5∆#∋4 ΟΓ%#4Ν8

!∗3

0 3∗

∗ ,∃∆;& <Ρ/

!∃∃∆#∋4 4(8Γ∆5 ∋Ο

./5(4Ε

+∗∃

#∆#∋4 4(8Γ∆(Ν8(85Γ&∆∗

−−

#−∗

&0)3)&

#∗.∃ /&/

,

−33))) )))

Θ0303

808

333∗33+3

Β

#Ο4

&33+)3∃Π&33))−3Ι∗330∗3

&33))∗3∗3Ν343∀∀:0∀Φ0Κ

,

,,

48∃8(0%(.880Θ0%(/)∀

∗ ∗#Ο40

%

>+)>)∗)

!∀#∃

%

&∋&((

!

)(∗(∗

)%(+

)&,−.

)&,−./0

−&123454

167//0

.−(1 ∗

.8(167/7 /09

!∀

#∃%

(#.((

67/

−..+

%#..

:1;<%#<=#<%<> <<<?<∋+

&∋(∃

)! ∗+!

#%%

(#.((%<1 <(<

67/

>.

(#.

67/

≅.((((

∋....(

)&

∋&

Α∋!

∗∀=<8><ΒΧ(<∆&∆

∗8(&

∗&

Α∋.

Α∋=

Α∋

)&

Α∋&

Α∋≅

Α∋3≅

Α∋−

)

+!!

(∗(∗1.#.((

%+

%((.∗ .∗.

%.∗ /0.∗./0

>&

&

&(!.((Ε

. (

3+

>

&

%

≅−Φ

&

%(

&−(Γ

!

−&1Η3455

167//0

.−(1 ∗

.8(167/ /0

)∗!

%(

ΑΙ

Α&

,!−!−!

&((. (+(.((<((

.(( ,−(

)&,

%∋ <((#(

.∗

!!∋

+.#<(1∗<((<%−<(∀.(∃