07.01.2013 Views

Linux i386 Önyükleme Kodu NASIL

Linux i386 Önyükleme Kodu NASIL

Linux i386 Önyükleme Kodu NASIL

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Linux</strong> <strong>i386</strong> <strong>Önyükleme</strong> <strong>Kodu</strong> <strong>NASIL</strong><br />

A¸sa˘gıdaki bütün hedefler linux/Makefile’ının vmlinux hedefine ba˘gımlıdır. Bunlar,<br />

linux/arch/<strong>i386</strong>/boot/Makefile içinde bazı seçenekler ile ilgili hedefler olu¸sturarak yapılır.<br />

Hedef Komut<br />

linux/arch/<strong>i386</strong>/Makefile içindeki hedefler<br />

zImage (1) @$(MAKE) –C arch/<strong>i386</strong>/boot zImage (2)<br />

bzImage @$(MAKE) –C arch/<strong>i386</strong>/boot bzImage<br />

zlilo @$(MAKE) –C arch/<strong>i386</strong>/boot BOOTIMAGE=zImage zlilo<br />

bzlilo @$(MAKE) –C arch/<strong>i386</strong>/boot BOOTIMAGE=bzImage zlilo<br />

zdisk @$(MAKE) –C arch/<strong>i386</strong>/boot BOOTIMAGE=zImage zdisk<br />

bzdisk @$(MAKE) –C arch/<strong>i386</strong>/boot BOOTIMAGE=bzImage zdisk<br />

install @$(MAKE) –C arch/<strong>i386</strong>/boot BOOTIMAGE=bzImage install<br />

Bu makefile’ın linux/Makefile tarafından ihraç edilen bazı çevre de˘gi¸skenlerini yeniden tanımlaması önemlidir.<br />

Özellikle:<br />

OBJCOPY=$(CROSS_COMPILE)objcopy –O binary –R .note –R .comment –S<br />

Etki, altdizindeki makefile’lara geçecek ve aracın davranı¸sı de˘gi¸secektir. objcopy komut satırı seçeneklerinin<br />

ayrıntıları için GNU Binary Utilities: objcopy (B18) ’ye bakınız.<br />

$(LIBS)’in niçin "$(TOPDIR)/arch/<strong>i386</strong>/lib/lib.a"’yı iki defa içerdi˘gi belli de˘gildir.<br />

LIBS := $(TOPDIR)/arch/<strong>i386</strong>/lib/lib.a $(LIBS) $(TOPDIR)/arch/<strong>i386</strong>/lib/lib.a<br />

Bazı araç dizileri ile ortaya çıkan ilintileme sorunları üzerinde çalı¸stırmak için olabilir.<br />

2.4. linux/arch/<strong>i386</strong>/boot/Makefile<br />

linux/arch/<strong>i386</strong>/boot/Makefile ne linux/arch/<strong>i386</strong>/Makefile içerisine ne de<br />

linux/Makefile içerisine dahil edilmedi˘gi için biraz daha ba˘gımsızdır.<br />

Bununla birlikte biraz ili¸ski vardır:<br />

• linux/Makefile: yerle¸sik çekirdek görüntüsü linux/vmlinux’u üretir;<br />

• linux/arch/<strong>i386</strong>/boot/Makefile: önyükleme kodunu üretir;<br />

• linux/arch/<strong>i386</strong>/Makefile: linux/vmlinux’un önyükleme kodu olu¸sturulmadan önce hazır<br />

oldu˘gunu kontrol eder ve hedefleri linux/Makefile’a ihraç eder (bzImage gibi).<br />

zdisk, zlilo veya zdisk hedefleri için gereken $(BOOTIMAGE) de˘geri<br />

linux/arch/<strong>i386</strong>/Makefile’dan gelir.<br />

Hedef Komut<br />

linux/arch/<strong>i386</strong>/boot/Makefile içindeki hedefler<br />

zImage $(OBJCOPY) compressed/vmlinux compressed/vmlinux.out<br />

tools/build bootsect setup compressed/vmlinux.out $(ROOT_DEV) > zImage<br />

bzImage $(OBJCOPY) compressed/bvmlinux compressed/bvmlinux.out<br />

tools/build –b bbootsect bsetup compressed/bvmlinux.out $(ROOT_DEV) \<br />

> bzImage<br />

zdisk dd bs=8192 if=$(BOOTIMAGE) of=/dev/fd0<br />

http://belgeler.org <strong>Linux</strong> Kitaplı˘gı 8 / 77

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!