Ubuntu'da Çekirdek Derleme

Başlatan screenshot, 02 Mayıs 2010 - 03:35:47

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

screenshot

Bir süredir Ubuntu 10.04 sürümü üzerinde çekirdek derlemeye çalıştım. Yaklaşık 10 deneme sonrasında birazdan paylaşacağım bilgilere ulaştım. Forumda sağolsun bu konuda paylaşım yapan arkadaşlarımız olmuş. Hemen hemen bütün yöntemleri denememe rağmen bir türlü başarılı olamamıştım. Şu an kendi derlediğim güncel çekirdeği sorunsuz kullanıyorum.

Neden böyle bir ihtiyaç duyduğumu soracak olursanız mevcut çekirdek ile usb aygıtımı kullanamıyordum. Bazı modülleri eklemem gerekiyordu. Mecburiyetten çekirdek derlemem gerekti.

Lafı fazla uzatmadan kuruluma geçeyim.

KONSOLDAN ÇEKİRDEK  KURULUMU

# 1
Derleme için gerekli paketleri kuruyoruz.
sudo apt-get install build-essential bin86  kernel-package libqt3-headers libqt3-mt-dev wget libncurses5  libncurses5-dev

# 2
Derleme işlemini gerçekleştireceğimiz dizine geçiyoruz
cd /usr/src

# 3
Yapacağımız  işlemler için root yetkilerine ihtiyacımız olacak. Root yetkilerini  alıyoruz.
sudo -s

# 4
www.kernel.org adresinden en son "stable" sürümüne bakıyoruz. Ben bu yazıyı oluştururken 2.6.33.3 sürümü vardı. Ben anlatımı bu çekirdek sürümü için yapacağım. Şimdi bu çekirdeği indiriyoruz.
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.3.tar.bz2
# 5
linux-2.6.33.3.tar.bz2  isimli indirdiğimiz çekirdeği arşivden çıkartıyoruz tar xjvf linux-2.6.33.tar.bz2
# 6
Kerneli açtığımız dizine geçiyoruz cd linux-2.6.33.3

# 7
Eski ayarları temizliyoruz make mrproper

# 8

Konfigürasyon menüsüne geçiyoruz. Burada sisteminizin ihtiyaçlarınıza göre gerekli modülleri ekleyip  çıkartabilirsiniz. Bu adımda çok dikkatli olmanızı öneriyorum. Herşeyi kernel çekirdeğine dahil ederseniz çekirdek   şişer ve sistem açılışı gecikir. Derleme süresi uzar. Bazı durumlarda hata vermesi muhtemeldir.
"*" Simgesi kernel çekirdeğine dahil edilecek  öğeleri işaret ediyor.
"M" harfi özelliğin modül olarak derlenmesi  gerektiğini belirtiyor.
"------>" Ana kategori olduğuna işaret ediyor. Enter tuşuna basarak alt bölümlere geçebiliriz.  İşlemimizi bitirdikten sonra klavyeden yön tuşlarını kullanarak exit üzerine gelip entere basıp yaptığımız değişiklikleri yapılandırma dosyasına kaydediyoruz. 
Görsel arayüzü kullanmak istersek bu komutu
make xconfig
Konsolda devam etmek istersek bu komutu kullanıyoruz.
make menuconfig

# 9
Modüllerin bağımlılıklarını ve gerekli olan dosyaların yerinde olup olmadığını kontrol ediyoruz make dep

# 10
Yapılandırma dosyasında kullanılmayan fazlalıkları temizliyoruz make clean

# 11
Çekirdek imajını derliyoruz. Bende yaklaşık 15 dakika kadar sürdü make bzImage

# 12
Modülleri derliyoruz. Bu derleme yaklaşık 1.5 saat kadar sürdü make modules

# 13
Çekirdek Modülü olarak  işaretlediğimiz modülleri /lib/modules dizini içine yüklüyoruz make modules_install

# 14
Kök dosya sisteminin bağlanabilmesi için gerekli çekirdek modülleri,  Kök dosya sisteminde bulunan; ancak bu DS bağlanmadan önce yüklenmesi gereken modüller için initrd isimli paketimizi oluşturuyoruz. mkinitramfs 2.6.33.3 -o /boot/initrd.img-2.6.33.3-generic

# 15
Çekirdek imajını /boot dizinine kopyalıyoruz cp /usr/src/linux-2.6.33.3/arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.3-generic

# 16
System.map dosyasını /boot dizinine kopyalıyoruz cp System.map /boot/System.map-KERNEL_VERSION

# 17
Sembolik bağ oluşturuyoruz. ln -s /boot/System.map-KERNEL_VERSION /boot/System.map

# 18
/usr/src dizine geçiyoruz cd ..

# 19
www.kernel.org  adresinden indirdiğimiz linux-2.6.33.3.tar.bz2 arşivini siliyoruz. Fazlalık benim için sorun olmaz derseniz kalabilirde :) rm linux-2.6.33.3.tar.bz2


Buraya kadar sorunsuz işlemleri gerçekleştirdiyseniz derlediğimiz kerneli kullanmak için grub/grub2'e eklememiz gerekiyor.

Grub için /boot/grub/menu.lst
Grub2 için /boot/grub/grub.cfg dosyalarını kullanacaksınız. Grub versiyonunu öğrenmek için aşağıdaki komutu kullanabilirsiniz.
dpkg -l | grep grub


DERLENEN ÇEKİRDEĞİN GRUB2'e EKLENMESİ

# 1
  Grub2 ayar dosyamızın yedeğini alalım sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.yedek
# 2
  Yaptığımız değişikliklerin aktif olması için yazma izni alıyoruz sudo chmod +w /boot/grub/grub.cfg

# 3

Grub2 ayar dosyamızı açıyoruz sudo gedit /boot/grub/grub.cfg

# 4
Açılan sayfada ### BEGIN /etc/grub.d/10_linux ### satırını buluyoruz ve 1 satır altına şunu ekliyoruz. menuentry 'Ubuntu, Linux 2.6.33.3-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,6)'
    search --no-floppy --fs-uuid --set 57a40b28-08a8-4fe5-ba57-7fb4fc063d83
    linux    /boot/vmlinuz-2.6.33.3-generic root=UUID=57a40b28-08a8-4fe5-ba57-7fb4fc063d83 ro   quiet splash
    initrd    /boot/initrd.img-2.6.33.3-generic
}
menuentry 'Ubuntu, Linux 2.6.33.3-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,6)'
    search --no-floppy --fs-uuid --set 57a40b28-08a8-4fe5-ba57-7fb4fc063d83
    echo    'Loading Linux 2.6.33.3-generic ...'
    linux    /boot/vmlinuz-2.6.33.3-generic root=UUID=57a40b28-08a8-4fe5-ba57-7fb4fc063d83 ro single
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.33.3-generic
}


# 5
Eklediğimiz satırdaki 57a40b28-08a8-4fe5-ba57-7fb4fc063d83 kısmını ve set root='(hd0,6)' kısmını ubuntunun kurulu olduğu bölüme göre değiştirmeniz gerekiyor. Mevcut kernelinizin olduğu satırlara bakıp gerekli değişikliği yapabilirsiniz. Yada şu komutla öğrenebilirsiniz.
sudo blkid
Gerekli değişiklikleri yaptıktan sonra dosyamızı kaydedip kapatıyoruz.

# 6
    Yaptığımız değişiklikleri güncelliyoruz sudo update-grub2

  Bilgisayarı yeniden başlatın ve Ubuntu, Linux 2.6.33.3-generic ile giriş yapın.


DERLENEN ÇEKİRDEĞİN GRUB'A EKLENMESİ

# 1
Grub ayar dosyamızın yedeğini alalım sudo cp /boot/grub/menu.lst   /boot/grub/menu.lst.yedek

# 2
Grub ayar dosyamızı açalım. sudo gedit   /boot/grub/menu.lst
 
# 3
Açılan   sayfada ## ## End Default Options   ## satırını buluyoruz ve 1   satır altına şunu ekliyoruz. title      Ubuntu, kernel 2.6.33.3-generic
uuid      57a40b28-08a8-4fe5-ba57-7fb4fc063d83
kernel      /boot/vmlinuz-2.6.33.3-generic   root=UUID=57a40b28-08a8-4fe5-ba57-7fb4fc063d83 ro   quiet splash
initrd       /boot/initrd.img-2.6.33.3-generic
quiet

title      Ubuntu, kernel 2.6.33.3-generic (recovery mode)
uuid      57a40b28-08a8-4fe5-ba57-7fb4fc063d83
kernel      /boot/vmlinuz-2.6.33.3-generic   root=UUID=57a40b28-08a8-4fe5-ba57-7fb4fc063d83 ro  single
initrd      /boot/initrd.img-2.6.33.3-generic
 


# 4

Eklediğimiz   satırdaki uuid 57a40b28-08a8-4fe5-ba57-7fb4fc063d83   kısımlarını ubuntunun kurulu olduğu bölüme göre değiştirmeniz gerekiyor.   Mevcut kernelinizin olduğu satırlara bakıp gerekli değişikliği   yapabilirsiniz. Yada şu komutla öğrenebilirsiniz.
  sudo blkid
Gerekli değişiklikleri yaptıktan sonra dosyamızı kaydedip kapatıyoruz.
 
  # 5
      Yaptığımız değişiklikleri güncelliyoruz sudo update-grub

    Bilgisayarı yeniden başlatın ve   Ubuntu, Linux 2.6.33.3-generic ile giriş yapın.


Kaynaklar:
http://forum.ubuntu-tr.net/index.php/topic,2268.0.html
http://ubuntuforums.org/showthread.php?t=311158
http://www.gentoo.org/doc/tr/handbook/handbook-x86.xml?part=1&chap=7
http://www.belgeler.org/howto/kernel-nasil_derlenir.html
"Zihin Fukara Olunca , Fikir Ukala Olur"

zeitgeist

Ayrıntılı ve güzel bir belge olmuş, teşekkürler  @screenshot.
Özgürlüğü ne kadar anlarsan o kadar az sahip olursun. John Fowles

bytan

Teşekkürler @screenshot.

Konuyu taşıyarak sabitliyorum.
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

Felâsife

Azmin ve mücadelenin mutlu sonu, tebrikler :)
Maceraya hazır mısın!  Bir BSD almaz mısın?

Yiğit Ateş

Mükemmel bir belge olmuş @screenshot. Peki bir hız farkı hissettin mi?

screenshot

Alıntı yapılan: Yiğit Ateş - 02 Mayıs 2010 - 15:47:39
Mükemmel bir belge olmuş @screenshot. Peki bir hız farkı hissettin mi?

Yiğit ubuntunun hızını soruyorsan pek bir şey değişmedi. Mevcut çekirdek ile derlediğim çekirdek arasında açılışta 1-2sn gibi bir fark var. Ubuntu aynı hızla çalışıyor. Tek fark şu an usb aygıtımı sorunsuz kullanabiliyorum.

Çekirdek derleme hızı süresi hakkındaysa sorduğun diğer yöntemlere göre bu derleme daha hızlı oldu. Yaklaşık 2 saat gibi bir sürede tamamladım. Diğer yöntemler ile yaklaşık 3-3.5 saat kadar sürüyordu.

Şu an kafamda bazı sorular var. Daha önce denediğim yöntemlerde mevcut çekirdeğin ayarları derlenecek kernele aktarılıyor. Ben bunu denemedim. Acaba denesem hata alırmıyım yada bir değişiklik olurmu diye sormaktan kendimi alamıyorum. Kısa bir süre sonra denemeyi düşünüyorum.

Bu arada hepinize asıl ben teşekkür ederim.  @erginemr'nin açtığı başlıkta kendimde cesaret buldum ve çok şey öğrendim. @heartsmagic, @Felasife @.... değerli bilgileri ile sağolsun çok katkıda bulundu. Tekrardan teşekkürler.
"Zihin Fukara Olunca , Fikir Ukala Olur"

heartsmagic

@screenshot, mükemmel bir belgelendirme olmuş. Eline sağlık cidden.
Son sorunu eğer doğru anladıysam diğer çekirdeğin ayarlarının aktarılmasından bahsetmişsin. Mevcut çekirdeğin kaynak paketini çektiğinde eğer içinden .config dosyası çıkıyorsa bu dosya üzerinde kendi agıtına ait bölümü yapılandırıp aynen derleme yapabilirsin diye düşünüyorum. Tabii doğru anladıysam sorunu.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

screenshot

Alıntı yapılan: heartsmagic - 03 Mayıs 2010 - 05:19:42
Son sorunu eğer doğru anladıysam diğer çekirdeğin ayarlarının aktarılmasından bahsetmişsin. Mevcut çekirdeğin kaynak paketini çektiğinde eğer içinden .config dosyası çıkıyorsa bu dosya üzerinde kendi agıtına ait bölümü yapılandırıp aynen derleme yapabilirsin diye düşünüyorum. Tabii doğru anladıysam sorunu.
Evet aynen bahsettiğin gibi.
7nci adımdan sonra cp /boot/config-`uname -r` .config &&   make oldconfig komutu ile kullandığımız mevcut çekirdekten yapılandırma ayarlarını alıp derleyeceğimiz çekirdekte kullanabiliyoruz. Acaba sürüm farklılığından dolayı hata verirmi diye düşünmüştüm. Yaptığım denemede herhangi bir hata almadım.

Bu arada eklemeyi unutmuşum şimdi farkettim. Bu anlatımda deb paketi oluşmuyor. Temizlik yapmanız gerekirse mecburen elle temizlemek durumundasınız. 5nci adımda açtığımız arşiv klasörünü ve 14,15,16,17 nci adımlarda taşıdığımız dizinlerdeki dosyaları silmeniz ve grub ayarını eski haline getirmeniz yeterli.
"Zihin Fukara Olunca , Fikir Ukala Olur"

ardes

#8
@screenshot öncelikle bu güzel belge için teşekkurler, kafama takılan bir iki sorum var
1)8. adımda bir değişiklik yapmasak bi sorun oluştururmu yani öntanımlı olarak yüklenirmi?
2) bu derleme tüm linux türleri için geçerlimidir yani pardus veya slax de de böylemi yapılır? 

screenshot

Alıntı yapılan: ardes - 06 Mayıs 2010 - 02:20:17
1)8. adımda bir değişiklik yapmasak bi sorun oluştururmu yani öntanımlı olarak yüklenirmi?
2) bu derleme tüm linux türleri için geçerlimidir yani mesela pardus da veya slax de de böylemi yapılır?
8nci adım'da illaki bir değişiklik yapmanız gerekmiyor. Mesela ben kapalı gelen bir modülü açıp normalde tanınmayan aygıtımı çalışır hale getirdim. Mevcut çekirdek yapılandırmanızı kullanarak öntanımlı olarak derleme yapabilirsiniz. 

Ne yazık ki 2nci sorunuzun cevabını net olarak bilmiyorum.
"Zihin Fukara Olunca , Fikir Ukala Olur"

ardes

son olarak 16. adımda ki kod cp System.map /boot/System.map-KERNEL_VERSION
KERNEL_VERSION a kendi kernelimizi yazmayacağız değilmi? kod sizin verdiğiniz gibi kalacak.

heartsmagic

Bu yöntem tüm Linux dağıtımlarında geçerlidir. Sadece ilk adım fark ettirir ki, söylenen paketlerin dağıtıma göre kurulması gerekir.
@ardes, son sorun için cevap derlediğin kernel sürümü olacak. Eğer öyle bırakırsan aynen gördüğün gibi kalır.
Bir de @screenshot, sanırım make menuconfig yapılacaksa qt paketlerini ihtiyaç yok?
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

screenshot

Alıntı yapılan: heartsmagic - 06 Mayıs 2010 - 02:59:50
Bu yöntem tüm Linux dağıtımlarında geçerlidir. Sadece ilk adım fark ettirir ki, söylenen paketlerin dağıtıma göre kurulması gerekir.
@ardes, son sorun için cevap derlediğin kernel sürümü olacak. Eğer öyle bırakırsan aynen gördüğün gibi kalır.
Bir de @screenshot, sanırım make menuconfig yapılacaksa qt paketlerini ihtiyaç yok?
Evet haklısınız. Yazımı hazırlarken make xconfig komutunuda kullanabiliriz diye düşünmüştüm. Fakat bunu yazıma eklememişim. Hemen düzelteyim.
"Zihin Fukara Olunca , Fikir Ukala Olur"

ardes

yani böylemi olmalı ?cp System.map /boot/System.map-linux-2.6.33.3

ben bu kodu cp System.map /boot/System.map-KERNEL_VERSION diye verdim acaba bunu nasıl geri alabilirim ve  sonra kaçıncı adımdan devam etmem gerekiyor

heartsmagic

Sen bu komutu sudo ile mi verdin sudosuz mu? sudo ile vermediysen zaten hata döndürmüştür.

ls -l /boot ne diyor?

@screenshot, sanırım komutun başına sudo gerekiyor.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

screenshot

Alıntı yapılan: ardes - 06 Mayıs 2010 - 03:10:18
yani böylemi olmalı ?cp System.map /boot/System.map-linux-2.6.33.3

ben bu kodu cp System.map /boot/System.map-KERNEL_VERSION diye verdim acaba bunu nasıl geri alabilirim ve  sonra kaçıncı adımdan devam etmem gerekiyor

Dilerseniz aynı kalabilir. Düzenli olsun karıştırmayayım sonra diye düşünüp değiştirmek isterseniz mv /boot/System.map-KERNEL_VERSION /boot/System.map-linux-2.6.33.3 komutu sanırım yeterli olacaktır.


Alıntı yapılan: heartsmagic link=topic=18598.msg228790#msg228790   date=1273105404
@screenshot, sanırım komutun başına sudo gerekiyor.
Hocam 3ncü adımda root olmuştuk. O yüzden tekrar sudo eklemedim.
"Zihin Fukara Olunca , Fikir Ukala Olur"

ardes

ls -l /boot
total 22716
lrwxrwxrwx 1 root root      31 May  6 01:49 System.map -> /boot/System.map-KERNEL_VERSION
-rw-r--r-- 1 root root 1446660 Dec  2 05:03 System.map-2.6.30.9
-rw-r--r-- 1 root root 1549983 May  6 01:49 System.map-KERNEL_VERSION
-rw-r--r-- 1 root root   89635 Dec  2 04:47 config-2.6.30.9
drwxr-xr-x 3 root root    4096 May  6 02:12 grub
-rw-r--r-- 1 root root 5185722 May  5 03:34 initrd.img-2.6.30.9
-rw-r--r-- 1 root root       0 May  5 20:48 initrd.img-2.6.31-wl
-rw-r--r-- 1 root root 5112051 May  6 01:48 initrd.img-2.6.33.3-generic
-rw-r--r-- 1 root root  124152 Sep 11  2008 memtest86+.bin
drwxr-xr-x 9 root root    4096 Sep 30  2009 tmp
-rw-r--r-- 1 root root 4690640 Dec  2 05:03 vmlinuz-2.6.30.9
-rw-r--r-- 1 root root 4965632 May  6 01:48 vmlinuz-2.6.33.3-generic



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 06 Mayıs 2010 - 03:26:51

Alıntı yapılan: screenshot - 06 Mayıs 2010 - 03:25:19
Alıntı yapılan: ardes - 06 Mayıs 2010 - 03:10:18
yani böylemi olmalı ?cp System.map /boot/System.map-linux-2.6.33.3

ben bu kodu cp System.map /boot/System.map-KERNEL_VERSION diye verdim acaba bunu nasıl geri alabilirim ve  sonra kaçıncı adımdan devam etmem gerekiyor

Dilerseniz aynı kalabilir. Düzenli olsun karıştırmayayım sonra diye düşünüp değiştirmek isterseniz mv /boot/System.map-KERNEL_VERSION /boot/System.map-linux-2.6.33.3 komutu sanırım yeterli olacaktır.
teşekkurler

heartsmagic

Tamamdır @screenshot, kabaca bakmıştım soruyu sormadan önce ancak malum saat, gözümden kaçmış :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

marjinal1st

Ufak birşey sormak istiyorum. Diyelimki ben bir çekirdek derledim ve GRUB'a ekledim. Sistemi açtım, baktım kararsız-yavaş vs vs vs. yani olmamış. Ardından eski kararlı çekirdek ile açıp gerekli dosyaları temizlesem sistemim yine normal çalışır mı? Yani geri dönüş mümkün mü?
Bugün özgür yazılım için ne yaptın? :)

Yiğit Ateş

Alıntı yapılan: pisahmet - 07 Temmuz 2010 - 19:40:58
Ufak * bir şey sormak istiyorum. Diyelimki ben bir çekirdek derledim ve GRUB'a ekledim. Sistemi açtım, baktım kararsız-yavaş vs vs vs. yani olmamış. Ardından eski kararlı çekirdek ile açıp gerekli dosyaları temizlesem sistemim yine normal çalışır mı? Yani geri dönüş mümkün mü?
Elbette :)

if

#20
İşler biraz değişmiş. make xconfig komutuyla derlemeye devam ettim. @screenshot'ın anlatımındaki gibi değil daha farklı bir pencere karşıladı. Onlarca başlık, onlarca alt başlık ve seçenek mevcuttu ayrıca özelliklerin ne işe yaradığını anlatan açıklamalar da mevcuttu. Çoğundan bir şey anlamasamda gerekli bir özellik. Bütün özellikleri okudum o yüzden işlem çoook uzun sürdü:)

make deb komutuyla devam ettim ancak Warning: make deb is unnecessary now uyarısını verdi. Araştırdım ve make komuyutla devam edilmesi önerilmişti, öyle yaptım.

Mevcut çekirdeğin .config dosyasını @screenshot'ın verdiği şekilde kopyalayıp yeni çekirderdeğe eklersek, bu ayarlar hemen make xconfig komutuyla açtığımız pencerede görünür mü? Yoksa komutu vermeden önce .config dosyasını eklememiz mi gerek?


heartsmagic

Eğer başkasına ait hazır bir .config dosyası kullanacaksan, xconfig aşamasına gerek yok. Derleme aşamasına geçilebilir.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

if

Alıntı yapılan: heartsmagic - 21 Ekim 2010 - 15:32:15
Eğer başkasına ait hazır bir .config dosyası kullanacaksan, xconfig aşamasına gerek yok. Derleme aşamasına geçilebilir.

O zaman eklediğim .config dosyasından bazı özellikleri kaldırmak, bazı özellikler eklemek istersem bunları dosyayı açıp elle mi girmem/kaldırmam gerek?

heartsmagic

İki türlü de olur, eğer değişiklik yapacaksan yine xconfig yapabilirsin. Elle de yapman mümkün ancak değişiklik yaparken dikkat et, satır başındaki fazladan bir satır derlenmeyi engelleyebilir.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

if