28
İSTANBUL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ SİSTEM PROGRAMLAMA – ÖDEV 1 : GÜNCEL KERNEL YÜKLEMEK RAMAZAN FURKAN MATARACI 1306151324

Linux kernel compilation and Arch Linux installation

Embed Size (px)

Citation preview

Page 1: Linux kernel compilation and Arch Linux installation

İSTANBUL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİBİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

SİSTEM PROGRAMLAMA – ÖDEV 1 :

GÜNCEL KERNEL YÜKLEMEK

RAMAZAN FURKAN MATARACI1306151324

Page 2: Linux kernel compilation and Arch Linux installation

Özet

Bu yönergede linux tabanlı bir işletim sistemi dağıtımı olan Arch Linux’un güncelsürümünün Oracle VirtualBox isimli sanallaştırma yazılımıyla kurulumu ve bu kuruluma ait olan linux kernel sürümünün,var olan en güncel kernel sürümü ile değiştirilmesi anlatılmaktadır.

Anlatılanların gerçeklenebilmesi için gerekli olan program veya programları aşağıdaki linklerden indirebilirsiniz.Ayrıca bu linklerden işlem esnasında karşılaşabileceğiniz problemleri aşmanıza yardımcı olabileceğini düşündüğüm web sayfalarına da erişebilirsiniz.

1.Arch Linux indirme linki :

https://www.archlinux.org/download/

2.En güncel Linux Kernel’ını indirme linki :

www.kernel.org

3.Arch Linux Wiki sayfası :

https://wiki.archlinux.org/

4.Arch Linux Kurulum Yönergesi :

https://wiki.archlinux.org/index.php/installation_guide

5.Linux kernel derleme yönergesi :

https://wiki.archlinux.org/index.php/Kernels/Traditional_compilation

6.Oracle VirtualBox indirme linki :

https://www.virtualbox.org/wiki/Downloads

Page 3: Linux kernel compilation and Arch Linux installation

1.ARCH LINUX KURULUMU

a.Oracle VirtualBox ortamı :

Oracle VirtualBox’ı kurmak için ;

Windows - OSX : Dökümanın özet kısmında verdiğim linkteki yükleyici sihirbazındaki yönergeleri takip ederek kurabilirsiniz.Linux : aptitude tabanlı dağıtımlar için terminali açıp , sudo apt-get install virtualbox komutunu girin. pacman tabanlı dağıtımlar için terminali açıp ,sudo pacman -S virtualbox komutunu girin.

Page 4: Linux kernel compilation and Arch Linux installation

Kurulum tamamlandıktan sonra VirtualBox programı aşağıdaki gibi bir görüntüde açılmış olmalı.Bu pencereden “Yeni” butonuna tıklayarak yeni bir sanal makine oluşturun.Karşınıza çıkan pencereyi hangi işletim sistemini kurmayı istiyorsanız ona uygun olarak doldurun ve ileri butonuna tıklayın.Benim kuracağım işletim sistemi Arch Linux olduğu için buna uygun olarak gerekli yerleri aşağıdaki gibi doldurdum.(İpucu : eğer adı kısmına işletim sisteminin adını yazacak olursanız türünü ve sürümünü VirtualBox otamatik olarak doldurmakta)

Page 5: Linux kernel compilation and Arch Linux installation

Bundan sonraki karşınıza çıkacak olan pencerelerdeki ayarların varsayılan olarak bırakılmasını öneririm fakat ihtiyaçlarınıza bağlı olarak düzenlemekte elbette özgürsünüz.Bir önceki adım başarı ile geçildiyse ,ilk adımda boş olarak karşınıza çıkan pencerede bu sefer ayarlarını yaptığınız işletim sistemine ait bilgiler olacaktır.Örnek olarak aşağıdaki ekran görüntüsünde tamamen varsayılan ayarlar üzerine yapılandırılmış bir Arch Linux konfigrasyonunu görebilirsiniz.İşletim sistemini başlatmak için pencerede yeşil ok işareti ile gösterilen “Başlat” butonuna tıklayın.

Page 6: Linux kernel compilation and Arch Linux installation

“Başlat” butonuna tıkladıktan sonra sizden işletim sistemine ait uzantısı .iso olan işletim sistemi imajını dosya-dizin ağacındaki konumunu yazmanızı veya dosya seçim sihirbazından seçmenizi isteyen bir pencere ile karşılaşacaksınız.Bu pencereye, dökümanın “Özet” bölümündeki linklerden birincisi aracılığıyla bilgisayarınıza indirdiğiniz dosyanın konumunu belirtin.

Page 7: Linux kernel compilation and Arch Linux installation

b.Arch Linux live CD ile Arch Linux kurulumu :

Page 8: Linux kernel compilation and Arch Linux installation

İmaj dosyasını başarı ile ekledikten sonra ,karşınıza gelen seçeneklerden en üsttekini klavyenizdeki yön tuşları yardımı ile seçin ve “Enter” tuşuna basın.Arch Linux Live CD içinde gelen shell’in varsayılan klavye düzeni A.B.D.’nin kullandığı US standardında olmakta bunu değiştirip klavye ayarlarını Türkçe – Q veya Türkçe – F standardına getirebilirsiniz.

Türkçe – Q için komut satırına loadkeys trq komutunu girin.Türkçe – F için komut satırına loadkeys trf komutunu girin.

Page 9: Linux kernel compilation and Arch Linux installation

Klavye düzenini ayarladıktan sonra kuruluma başlayabilirsiniz.İlk olarak yapılacak iş Linux kurmaya elverişli olmayan dosya düzenini değiştirmek olacak.Bunun için terminale cfdisk yazın.Cfdisk, komut satırında çalışan ve dosya sistemini parçalara ayırmaya yarayan bir açık kaynaklı yazılımdır.Bu yazılım yardımıyla sadece kurulum esnasında değil kurulumdan sonraki herhangi bir zamanda var olan dosya tablonuzla oyanayabilir ve yeni mantıksal dosyalama alanları oluşturabilirsiniz.Temel bir Arch Linux kurulumu için üç adet dosyalama alanına ihtiyaç duyulur bunlar ;

1)Swap alanı : Sistem belleğinin kapasitesinin yetmediği durumlarda kullanılan,bellek yerine geçen fakat bellek kadar hızlı olmayan depolama alanıdır.Yapacağım Arch Linux kurulumunda gelişmiş bir GUI(Kullanıcı Arayüzü) kurmayacağım için swap alanını 1GB olarak seçtim.2)BIOS boot alanı : Makine başlarken(boot anında) yerine getirilmesi zaruri olan bazı işlemlerin yapılabilmesi için gerekli olan dosya alanı.

3)Linux Dosya Sistemi : İşletim sisteminize ait kök dizinin kurulacağı alan.Bu alana kişisel multimedyalarınız da dahil olacağından bu alanı diğer alanlardan büyük seçmenizi tavsiye ederim.

Page 10: Linux kernel compilation and Arch Linux installation

Ekran görüntüsünde örnek bir ayırma işlemi görülebilir...Ayırma işlemi bittikten sonra yaptığınız ayarları “Write” seçeneğini seçerek kaydedin.Kaydettikten sonra fdisk -l komutu ile yaptığınız ayırma işlemini kontrol edebilirsiniz.

Aşağıdaki gibi bir sonuç işlemin başarı ile gerçekleştiği manasına gelir.

Page 11: Linux kernel compilation and Arch Linux installation

Cfdiskteki işlemler bittikten sonra oluşturduğunuz alanların dosya formatlarını ayarlamanız gerekir.Bu işlemi yapmak için herbir dosya alanının cfdisk programında “device” başlığı altındaki adını bilmeniz ve bu alanların özelliklerini bilmeniz gerekmekte ben yapacak olduğum kurulumda , /dev/sda1 alanını swap memory /dev/sda2 alanını linux dosya sistemi /dev/sda3 alanını ise BIOS boot alanı olarak belirlemiştim.İlk önce swap alanını oluşturmak için terminale mkswap /dev/sda1 sonrasında swapon /dev/sda1 yazıyorum.Bu komutlarla sırasıyla,swap alanını belirlemiş ve aktif etmiş oluyorum.

Page 12: Linux kernel compilation and Arch Linux installation

https://wiki.archlinux.org/index.php/File_systemsLinkindeki tabloya bakarak hangi dosya sistemi ile linux dosya alanınıformatlamak istediğinize karar verebilirsiniz.Komut satırına mkfs.ext4 /dev/sda2 yazarak linux dosya alanımı ext4 formatına getirdim.Aşağıdaki ekran görüntüsünde bunu görebilirsiniz.

Page 13: Linux kernel compilation and Arch Linux installation

Formatlama işlemleri bittikten sonra kök (/) dizinini kurmak için öncelikle /dev/sda2 alanını bir başka dizinle bağlamak(mount) gerekmektedir.Bunun için gerekli olan örnek terminal komutu aşağıdadır;

mount /dev/sda2 /mnt

mount(bağlama) işlemini yaptıktan sonra /mnt dizinine Arch Linux kök dizinini kurmak için pacstrap /mnt base base-devel komutunu terminale yazın.Bu işlemin tamamlanma süresi internet bağlantı hızına ve donanım hızına bağlı olarak değişebilir.Komuttaki base ve base-devel terimleri kök dizini kurarken yüklenecek olan programları bulunduran yazılım paketlerini ifade eder bu paketlerin kurulmasıyla birlikte Linux kernelı derlerken ihtiyaç duyulan bütün bağımlı yazılımlar kurulmuş olur.Bu yazılımlara örnek olarak açık kaynaklı C derleyicisi olan gcc verilebilir.

Page 14: Linux kernel compilation and Arch Linux installation
Page 15: Linux kernel compilation and Arch Linux installation

Eğer pacstrap komutu başarılı bir şekilde sonlandıysa üstteki ekran görüntüsünde olduğu gibi bir ekran çıktısı elde edilir.Bu ekran çıktısını elde ettikten sonra Arch Linux kurulumu tamamlanmış demektir.Aslında bu noktadan sonra arch-chroot /mnt komutuyla yeni kurulmuş kök dizinine erişebiliriz fakat dökümanın başlarında cfdisk ile yapmış olduğumuz ayırma işlemlerini dosya sistemi tablolama sistemine dahil etmek olası hataları engellemek açısından önemlidir.Bunun için genfstab -U /mnt >> /mnt/etc/fstab komutunu verin.Bundan sonraki kısım,üzerinde herhangi bir değişiklik yapılmamış olan kurulumu yapılandırmak üzerine olacaktır.

c.Arch Linux KonfigrasyonuI.Dil,Klavye ve Saat Bölgesi ayarları

Standart Arch Linux kurulumunda dil ve klavye ayarları varsayılan olarak A.B.D. için ayarlanmıştır.Birkaç dosya düzenlemesiyle Arch Linux,Türkçe’ye uygun hale getirilebilir.Başlamadan önce terminale nano ve sudo komutunu girin.Eğer bu iki program sistemde yüklü değilse pacman -S nano sudo komutu terminale yazılarak yükleme işlemini gerçekleştirin.Ortam hazır olduktan sonra nano /etc/locale.conf komutuyla dosyayı açıp içerisine LANG = tr_TR.UTF-8 satırını ekleyin.İşlem bittiğinde yapılan değişiklikleri ctrl+o tuşlarına basarak kaydedin.Bu işlemle işletim sisteminin içerisindeki birçok dizin adı ve program çıktıları Türkçe hale getirilmiş olur.Klavye düzenini Türkçe’ye çekmek için ise,komut satırına nano /etc/vconsole.conf komutunu girin ve açılan dosyaya

KEYMAP=trqFONT=iso09.16

satırlarını ekleyip kaydedin.Saat bölgesini seçmek için ise ln -s /usr/share/zoneinfo/Europe/Istanbul /etc/localtime komutu terminale yazın.Yeni eklenen saat bilgilerini donanıma işlemek için terminale hwclock--systohc --utc komutunu verin.

Page 16: Linux kernel compilation and Arch Linux installation

II.Ağ Yapılandırması

Ethernet bağlantılarına izin vermek için öncelikle ethernet arayüzünün ismine ihtiyaç duyulur ifconfig veya iwconfig komutlarını terminale girerek ethernet arayüzüne ait isim bilgisine ulaşılabilir.Örnek bir ifconfig sonucu aşağıdaki ekran görüntüsünde görülebilir.

Çıktının ilk kelimesi olan enp0s3 bu örnekteki ethernet kartının ismidir.Bu ismi kullanarak terminale systemctl enable [email protected] komutunu yazarak ethrenet kartı aktif hale getirebilirsiniz.WiFi(ieee802.11) kartını tanıtmak ve bu kart üzerinden bir WLAN’a dahil olmak için aşağıdaki komutu kullanarak gerekli programları indirebilirsiniz.

pacman -S wireless_tools wpa_supplicant wpa_actiond dialog

Page 17: Linux kernel compilation and Arch Linux installation

III.Kullancı Yapılandırması

Linux tabanlı işletim sistemlerinde en yetkili kullanıcı root isimli kullanıcıdır.Adından da anlaşılacağı üzere bu kullanıcı tüm kök dizininde yazma-silme vb. haklara sahip kullanıcıdır.Fakat varsayılan olarak bu kullanıcı aktif değildir. Bu kullanıcıyı aktif etmek için passwd root komutunu terminale yazın ve bu kullanıcıya bir şifre atayın.İstek durumunda root dışında başka kullanıcılarda tanımlanabilir hatta başka kullanıcıların tanımlanması sistem güvenliği açısından bir çok olumlu etkiye sahip olacaktır.Yeni bir kullanıcı eklemek için terminale useradd -m -g users -G wheel,storage,power -s /bin/bash <kullanıcıadı> komutunu yazın.Bu komutla birlikte yeni kullanıcı eklenmiş olacaktır.Yeni oluşturulan bu kulannıcıya şifre atamak için passwd <kullanıcıadı> komutu kullanılabilir.Daha önceden kurulumunu yapmış olduğunuz sudo komutu kendinden sonra yazılan tüm komutlara yönetici yetkisi verir.Bu komutun aktif hale gelebilmesi için /etc/sudoers dosyasında birkaç değişiklik yapılması gerekmetedir.Bu dosyanın içerisindeki #%wheel ALL=(ALL) ALL satırının başındaki # karakterini kaldırarak yorum satırı olmaktan çıkarın.Değişiklikleri kaydedip dosyayı kapatın.

Page 18: Linux kernel compilation and Arch Linux installation

IV.Bootloader kurulumu

İşletim sisteminin,bilgisayar açılışında doğru çalışabilmesi için bir bootloader yazılımına ihtiyacı vardır.Linux tabanlı işletim sistemlerinde birden çok bootloader alternatifi bulunmakta bunlardan en popüler olan GRUB custom kernel kurulumunda hatalarçıkardığından ötürü onun yerine LILO isimli bootloader’ı baz alarak anlatıma devam edileceğim.Fakat popüler olması açısından GRUB kurulumunun nasıl yapıldığını da dökümanda açıklayacağım.

Güncel Linux Bootloaderları için : https://wiki.archlinux.org/index.php/Category:Boot_loadersweb sayfasındaki tabloyu inceleyebilirsiniz.

¤GRUB kurulumu;

BIOS boot kurulum için sırasıyla aşağıdaki komutları yazın.

pacman -S grub-bios os-prober

grub-install –target=i386-pc --recheck <boot sektörü.örnek = /dev/sda>

grub-mkconfig -o /boot/grub/grub.cfg

EFI kurulum için sırasıyla aşağıdaki komutları yazın.

pacman -S grub-bios os-prober

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader

grub-mkconfig -o /boot/grub/grub.cfg

Page 19: Linux kernel compilation and Arch Linux installation

¤LILO kurulumu;

LILO Arch Linux’un resmi repositorylerinde bulunmadığı için aşağıdaki AUR linkindeki kaynak kodlarından derleyip kurabilirsiniz.https://aur.archlinux.org/packages/lilo/

ya da yaourt isimli pacman arayüzü kullanarak AUR üzerindeki bu paket zahmetsiz bir şekilde kurabililirsiniz.yaourt kurulumu için öncelikle /etc/pacman.conf dosyasında bir kaç değişiklik yapmak gerekmekte.Dosyayı açın ve içerisine

[archlinuxfr]SigLevel = NeverServer = http://repo.archlinux.fr/$arch

satırlarını ekleyin ve dosyayı kaydedin.Bu işlemden sonra pacman -Sy ,pacman -S yaourt ,yaourt -S lilo komutlarını girin.İşlemler tamamlandıktan sonra /etc/lilo.conf dosyasını aşağıdakigibi ayarlayın.

# /etc/lilo.conf#

boot=/dev/sda# This line often fixes L40 errors on bootup# disk=/dev/hda bios=0x80

default=ArchLinuxtimeout=100lba32promptcompact

image=/boot/vmlinuz-linux label=Arch append="devfs=nomount" vga=788 root=/dev/sda2 read-only

#image=/boot/vmlinuz-linux# label=ArchRescue# root=/dev/hda8# read-only

#other=/dev/hda1# label=Windows

# End of file

Page 20: Linux kernel compilation and Arch Linux installation

Bu işlemden sonra terminale lilo komutunu yazın.Bu komutla birlikte yapılan değişiklikler onaylanmış olacaktır.

Bootlader kurulumu tamamlandıktan sonra sırasıyla ;

exit

umount /mnt

reboot

Page 21: Linux kernel compilation and Arch Linux installation

komutlarını terminale yazın.Makine yeniden başladıktan sonra işletimsistemi seçimi ekranından “Boot Existing OS” seçeneğini seçin.Bu seçenek sisteme kurulmuş olan Bootloader’a yönlendirir.

V. Temel grafik arayüzünün kurulumu

Şu zamana kadar yapılan kurulumda herhangi bir grafik arayüz kurulmadan sadece terminal ortamında işlemler yapılmıştır.Terminal ortamından biraz olsun kurtulmak adına minimal sistemler için geliştirilmiş X Window System grafik kullanıcı arayüzünün(GUI) kuruluşunu anlatacağım.X Window System GUI kurulumu için gerekliolan programları içeren paketleri aşağıdaki komutları kullanarak kurun.

sudo pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils xorg-twm xterm mesa xf86-video-vesa

kurulum tamamlandıktan sonra terminale startx yazarak grafik arayüz başlatılabilir.

Page 22: Linux kernel compilation and Arch Linux installation

VI.Firefox kurulumu

Güncel Linux kernel’ını indirmek için bir web tarayıcıya ihtiyaç duyulacaktır.Bu ihtiyacı gidermek için birçok Linux dağıtımında varsayılan olarak gelen web browser firefox’u kuracağım.İstenildiği takdirde başka web browserlarda kurulabilir.Kurulumu yapmak için terminale ;

Page 23: Linux kernel compilation and Arch Linux installation

sudo pacman -S firefox yazmak yeterli olacaktır.Kurulum gerçekleştikten sonra açık herhangi bir xterm’e firefox yazılarak Firefox başlatılabilir.

Page 24: Linux kernel compilation and Arch Linux installation

2.Yeni Kernel Derleme

a.En güncel kernel’ın indirilmesi ve tarball’ın açılması

Dökümanın özet kısmındaki linklerden ikincisini kullanarak açılan web sitesinde aşağıdaki butona basarak basarak en güncel kernel

sürümünü indirin.İndirme işlemi sonlandıktan sonra indiridiğiniz dosyanın (tarball) bulunduğu dizine gelerek(cd /home/<kullanıcıadı>/Downloads)

tar -xvf linux-4-7.6.tar.xz /usr/src komutunu girin.Sonrasında yine cd komutunu kullanarak cd /usr/src/linux-4.7.6 dizinine erişin ve kontrol amaçlı ls komutunu kullanarak dizinin içerisindeki dosyaları listeleyin.

b.Kernel yapılandırması

/usr/src/linux-4.7.6 dizininin içerisinde make menuconfig komutunu yazarak kernel ayarlarını yapmaya olanak sağlayan CLI(Command Line Interface) başlatılabilir.

Page 25: Linux kernel compilation and Arch Linux installation

Bu kısımdaki ayarların yapılandırılması tamamen kullanıcıya ait olup kullanıcı kendi sistemine uyan yapılandırmaları yapabilir.Örnek olarak ben NSA(National Security Agency)’in kernel’a izinsiz erişimleri engellemek için geliştirdiği eklentiyi gereksiz bulduğum için bu eklentiyi devre dışı bıraktım.Ayrıca burdan yapılcak olan başka yapılandırmalarla kernel’a kurulacak olan gereksiz donanım sürücüleri kaldırılarak sistem genelinde hız artışı sağlanabilir.

Bir seçeneği devre dışı bırakmak için üzerine klavye yön tuşları ile gelip “n” tuşuna , etkinleştirmek için ise “y” tuşuna basın.Yapılandırma işlemleri bittikten sonra menuden “save” seçeneğiyle yapılan seçimler .configure isimli bir dosyaya kaydedilir.

Page 26: Linux kernel compilation and Arch Linux installation

c.Kernel kurulumu

Yapılandırma yapıldıktan sonra terminale make komutunu vererek kernel kaynak kodlarını derlenmeye başlatılabilir.Bu işlem makinenin donanım özelliklerine bağlı olarak 30 dk ile 1 saat arası bir zaman alabilir.

Page 27: Linux kernel compilation and Arch Linux installation

Derleme işlemi bittikten sonra bazı dosyalar sistem içerisindeki /boot dizinine kopyalanması için terminalemake modules_install install komutunu girin.İşlemler bittikten sonra terminale sudo reboot komutunu yazarak makineyi yeniden başlatın eğer kurulum ve derleme aşamasında bir problem yaşanmadıysa aşağıdaki gibi bir ekran görüntüsüyle karşılaşılması gerekir.

Page 28: Linux kernel compilation and Arch Linux installation

d.Kurulan kernel sürümünü kontrol etmek

Eğer kernel kurulumunda başarılı olunduysa sistemin sorunsuz bir şekilde başlamış olması gerekir.Kullanıcı girişini yaptıktan sonra terminale uname -r komutunu girerek sistemde yüklü olan kernel sürümünü görebilirsiniz.Aşağıdaki gibi bir ekran görüntüsü kernel kurulumunun başarıyla gerçekleştiği anlamına gelmektedir.