Slackware'de çekirdek derleme...

Başlatan hasansahin, 24 Mayıs 2008 - 01:56:44

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

hasansahin

Slackware 12.1 üzerinde son moda çekirdek olan 2.6.25.4 derledim. İlginç bir sonuç elde ettim. Hantal bir çekirdek olduğu iddia edilen hugesmp.s ile tamamen bana özel 2.6.25.4 arasında hiçbir hız farkı göremedim.

Çekirdeği o kadar çok özelleştirdim ki, kendi donanımım haricinde hiçbir eklentiye yer vermedim. (modul veya gömülü) Kabul ediyorum, benim gibi bir masaüstü kullanıcısı (ne kadar CAD/CAM çalışsamda bende bir masaüstü kullanıcısıyım) için hız farkı aramak çok doğru olmasa da, en azından %5 bir hız farkı bekliyordum. 3 saattir sistemi test ediyorum ama fark yok :)

Diğer bir ilginç konuda; çekirdeğe Xen desteği verdiğim zaman(yeni derlenen çekirdeğe) nvidia klasik sürücüsü yüklenmiyor. Çekirdek Xen üzerinde çalıştığı için Nvidia sürücüsü yüklenemez diyor. Benim için ilginç bir deneyim oldu. İlaveten sahip olduğum donanımı aşağıya yapıştırayım, bir de siz inceleyin ve çekirdek derlemenin masaüstü kullanıcısı için ne kadar gerekli olduğunu tartışalım.

lspci
00:00.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a1)
00:01.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a2)
00:01.1 SMBus: nVidia Corporation MCP55 SMBus (rev a2)
00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)
00:04.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)
00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)
00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)
00:06.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)
00:06.1 Audio device: nVidia Corporation MCP55 High Definition Audio (rev a2)
00:0f.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 20)
01:0a.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)
02:00.0 VGA compatible controller: nVidia Corporation Geforce 9600 GT 512mb (rev a1)


Son olarak; sistemde 2 GB 800 mhz ram olduğunu ve SATA2 7200 sabit diskim olduğunu hatırlatayım.

NOT : Çekirdek derleme işi aşağıdaki linkteki yönergelere göre yapılmıştır. Yanlız /proc/config.gz kullanılmadan ve tamamen özelleştirilerek derlenmiştir.

http://alien.slackbook.org/dokuwiki/doku.php?id=linux:kernelbuilding

Anyone who has never made a mistake has never tried anything new.
Albert Einstein.

ufuk_k

Ben de öyle tahmin ediyorum, bir iki denemem oldu hatalı ama (nvidia sürücüsü yüklenmiyordu) hız farkını ben de göremedim. Ben menuconfig ile yapıyorum, xconfigin konsol tipi eski hali. Çok bir fark yok sanırım. Ekran kartı için binary sürücü yükledin mi? Yüklediysen yeni derlediğin kernelde nvidia için özel bir ayar yaptın mı?

heartsmagic

Zaten sistemde hız farkı olacağını sanmam ben. Başlangıçta yüklenen modüller vs. belki fark eder. Hız farkını yapacak meseleler zaten huge kernelde de ekli durumdadır. Tek farkı bir dünya şeyin fazlalık olarak oraya eklenmesidir diyebiliriz. En azından ben böyle biliyorum. %5 artış olacağını bilsem hiç durmam kullandığım her dağıtımda kendim derlerim kerneli :)
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.

hasansahin

Alıntı YapBen de öyle tahmin ediyorum, bir iki denemem oldu hatalı ama (nvidia sürücüsü yüklenmiyordu) hız farkını ben de göremedim. Ben menuconfig ile yapıyorum, xconfigin konsol tipi eski hali. Çok bir fark yok sanırım. Ekran kartı için binary sürücü yükledin mi? Yüklediysen yeni derlediğin kernelde nvidia için özel bir ayar yaptın mı?

İlk denemeden sonra Xen desteğini kaldırıp tekrar derleyince binary sürücüyü kurabildim. Kernelde nvidia için yaptığım ayar şu oldu:
graphics support kısmında /dev/agpgart desteği vererek AMD ve NVIDIA seçeneklerini seçtim. Hemen altındaki framebuffer kısmında da yine nvidia seçeneklerini seçtim. Buna mukabilen çekirdek derlendikten sonra -binary sürücüyü yüklemeden- xorg.conf dosyasında sürücüyü "nv" olarak gösterebildim. Bu da nvidia desteği verebilmişim anlamına geliyor sanırım  ;D

Zaten ister xconfig ister menuconfig kullan, başka grafik ve Nvidia seçeneği yok :)
Anyone who has never made a mistake has never tried anything new.
Albert Einstein.

ufuk_k

Anladım. İşte nv sürücüsü değil de, binary sürücüyü indirip kurduğun zaman derlediğin kernelin ve modüllerin onunla uyumlu çalışması gerekiyor. Nvidia sitesinden binary indirip kurdum Slackware'de, kendi kerneliyle hiç bir sorun olmadan sürücü yüklendi, 3D desteği falan. Ama ben yeni kernel derledikten sonra sürücüyü tekrar kurmam gerekti ve o noktada sürücü hata verdi.

hasansahin

hata nedir? biraz açarsan belki yardımcı olabilirim. Sürücü hiç yüklenmedimi yoksa yüklendi fakat sorunlumu çalışıyor?
Yukarıda söylediğim çekirdeği xen desteği ile derlersen Nvidia binary sürücüsü yüklenmiyor?
Anyone who has never made a mistake has never tried anything new.
Albert Einstein.

ufuk_k

Hatanın üzerine gitmemiştim, zaten beta bir sürümdü. Ve ben epey bir hata yapmıştım, nvidia binary sürücüyü önce huge.smp kerneli üzerine kurup daha sonra kernel.orgdan indirip derlediğim kernele tekrar kurmaya çalışırken, nvidia eski sürücüyü uninstall ettiği halde yenisi kurarken hata vermişti. Log dosyasından hatırladığım kadarıyla derlediğim kernelle ilgili sorun var diyordu ve modülleri oluşturmuyordu.

ufuk_k

Az önce 2.6.25.4 son sürümü kernel.orgdan indirip derledim. Hiç bir sorun olmasan başlattım. Anca 169.12 numaralı nvidia binary driver indirip kurmaya kalkınca, kurulum bittikten sonra Unable to install gibisinden yapamadığına dair hata alıyorum, önceden aldığım gibi. /var/log/nvidia-installer.log dosyasındaki hatanın olduğu kısım:

/tmp/selfgz1112/NVIDIA-Linux-x86-169.12-pkg1/usr/src/nv/nv-vm.c: In function
   'nv_set_page_attrib_uncached':
   /tmp/selfgz1112/NVIDIA-Linux-x86-169.12-pkg1/usr/src/nv/nv-vm.c:64: warning:
   'change_page_attr' is deprecated (declared at include/asm/cacheflush.h:28)
   /tmp/selfgz1112/NVIDIA-Linux-x86-169.12-pkg1/usr/src/nv/nv-vm.c: In function
   'nv_set_page_attrib_cached':
   /tmp/selfgz1112/NVIDIA-Linux-x86-169.12-pkg1/usr/src/nv/nv-vm.c:79: warning:
   'change_page_attr' is deprecated (declared at include/asm/cacheflush.h:28)
   /tmp/selfgz1112/NVIDIA-Linux-x86-169.12-pkg1/usr/src/nv/nv-vm.c: In function
   'nv_flush_caches':
   /tmp/selfgz1112/NVIDIA-Linux-x86-169.12-pkg1/usr/src/nv/nv-vm.c:364: error:
   implicit declaration of function 'global_flush_tlb'
   make[4]: *** [/tmp/selfgz1112/NVIDIA-Linux-x86-169.12-pkg1/usr/src/nv/nv-vm.
   o] Error 1
   make[3]: *** [_module_/tmp/selfgz1112/NVIDIA-Linux-x86-169.12-pkg1/usr/src/n
   v] Error 2
   make[2]: *** [sub-make] Error 2
   NVIDIA: left KBUILD.
   nvidia.ko failed to build!
   make[1]: *** [module] Error 1
   make: *** [module] Error 2
-> Error.
ERROR: Unable to build the NVIDIA kernel module.
ERROR: Installation has failed.  Please see the file
       '/var/log/nvidia-installer.log' for details.  You may find suggestions
       on fixing installation problems in the README available on the Linux
       driver download page at www.nvidia.com.


Bunu araştırdım. Ve aynı hatayı alan bir-iki kişiye daha rastladım. Olaya hemen nvidia yetkili müdahale etmiş. Ama nasıl müdahale, bir link vermiş sadece, o da nvidia driver hatalarında rapor ederkenki prosedürü yazmış. 2.6.25 kernelinin 169.12 sürücüyle sorunu olduğundan şüpheleniyorum, bir kaç şey de gördüm ama tam emin değilim. Ayrıca ben kernele isim verip kopyaladığımda, vmlinuz-ufuk-2.6.25.4 şeklinde /boot altına kopyaladım ve menu.lst'de aynı kerneli verdim. Boot ediyor, hatasız. Ancak:
uname -r
2.6.25.4-smp
Bu nedir anlamadım. Ne sourceta -smp geçiyor ne de başka bir yerde. Kısacası kurcalıyorum işte, nedir ne değildir diye.

hasansahin

Ufuk bencede bu sürücü sorunu, çünkü 173.08 ile hiçbir sorun yaşamadım.
Anyone who has never made a mistake has never tried anything new.
Albert Einstein.

ufuk_k

Eski bir sürücü değil mi bu? Yahu bendeki şansa bak, kernel derlemişim, binary sürücü indiricem, Nvidia sitesi "under maintenance" diyor. Ben de orada başka bir linkten indirdim, eski ama neyse dedim. Yenisi ile bir daha deniyeyim.

MURATSPLAT

mkinitrd -c -k 2.6.24.4 -m reiserfs ya ben bunu yapmadan kuruyordum çekirdeği. Bu tam olarak ne işe yarıyordu.
Donanım:
GA-MA790XT-UD4P Anakart
AMD Phenom(tm) II X4 945 Processor
2048*2 DDR3(1333MHZ) + 2048*2 DDR3(1600MHZ) = 8 GB  Asus Nvidia GeForce GT-430 1GB DDR3 128bit Samsung HD502HJ 500 GB + Samsung HD322HJ 320 GB + Western Box USB 640 GB =1.4 TB ATI Technologies Inc SBx00 Azalia (Intel HDA) SkyStar HD 2 Digital Uydu Kartı Logitech MK250

ufuk_k

initrd imajı yapmaya yarıyor. Gerekli değil. Sadece belli durumlarda, örneğin sata sürücüleri kernele gömülü derlenmediğinde, kernel panic veriyor ve sistem açılmıyor. Bu durumlarda initrd imajı yapmak gerekiyor. Verdiğin komut reiserfs dosya sistemi için geçerli, ext3 için ext3 eklemek gerekiyor.

MURATSPLAT

#12
  imaj bir keren yapmıştım. yaptığımda da açılış 1-2 saniye yavaşlamıştım. Özel kernel derlemede bunun gerek olmadığı sonra ferketmiştim. Şuan sen  bunu söyleyince aklıma gelmişti. Eğer kendi sürücünü  çekirdeğe gömersen zaten imaj yapmanın bir anlamı olmuyor.

  Çekirdek derlemenin baya hız kattığını düşünüyorum. Mesala i386 ile derlenen bir çekirdek i686 yavaş çalışıyor. Ben hiç bir zaman slackware ile gelen çekirdek(buna 2.6.* seriside dahil) 1 saatten fazla kullanmadım.

Wlan tanıtmak eziyet olmasa şimdi oturup slackware kuracam  :D
Donanım:
GA-MA790XT-UD4P Anakart
AMD Phenom(tm) II X4 945 Processor
2048*2 DDR3(1333MHZ) + 2048*2 DDR3(1600MHZ) = 8 GB  Asus Nvidia GeForce GT-430 1GB DDR3 128bit Samsung HD502HJ 500 GB + Samsung HD322HJ 320 GB + Western Box USB 640 GB =1.4 TB ATI Technologies Inc SBx00 Azalia (Intel HDA) SkyStar HD 2 Digital Uydu Kartı Logitech MK250

hasansahin

Anyone who has never made a mistake has never tried anything new.
Albert Einstein.

MURATSPLAT

İşlemcim bu.

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 9
model name      : Intel(R) Celeron(R) M processor         1500MHz
stepping        : 5
cpu MHz         : 1500.079
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe up bts
bogomips        : 3002.28
clflush size    : 64

Donanım:
GA-MA790XT-UD4P Anakart
AMD Phenom(tm) II X4 945 Processor
2048*2 DDR3(1333MHZ) + 2048*2 DDR3(1600MHZ) = 8 GB  Asus Nvidia GeForce GT-430 1GB DDR3 128bit Samsung HD502HJ 500 GB + Samsung HD322HJ 320 GB + Western Box USB 640 GB =1.4 TB ATI Technologies Inc SBx00 Azalia (Intel HDA) SkyStar HD 2 Digital Uydu Kartı Logitech MK250

hasansahin

Biraz eski :) yeni tip işlemcilerde (heleki core2duo veya AMD64 X2) çekirdek derlemek veya derlememek arasında hiçbir şey
farketmiyor.
Anyone who has never made a mistake has never tried anything new.
Albert Einstein.

MURATSPLAT

  Evet baya eskii . 3 senelik makine

  Farketmesi lazım. Çekirdeği derlerken işlemci tipini ayarlıyorsun. Mesala amd  bilmemne ailesi  yada intel bilmem ne ailesi. Ubuntunun ki generic oluyor genelde. Ve her işlemcinin destekleiği komut setleride farklı oluyor. Birde işin GCC boyutu var.

http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/i386-and-x86-64-Options.html
Donanım:
GA-MA790XT-UD4P Anakart
AMD Phenom(tm) II X4 945 Processor
2048*2 DDR3(1333MHZ) + 2048*2 DDR3(1600MHZ) = 8 GB  Asus Nvidia GeForce GT-430 1GB DDR3 128bit Samsung HD502HJ 500 GB + Samsung HD322HJ 320 GB + Western Box USB 640 GB =1.4 TB ATI Technologies Inc SBx00 Azalia (Intel HDA) SkyStar HD 2 Digital Uydu Kartı Logitech MK250

hasansahin

Elbetteki... Ama olay şu;

Alıntı YapSlackware'in resmi paketleri derlenirken genelde "-march=i486 -mtune=i686" ya da "-march=i386 -mcpu=i686" kullaniliyor. Yani 3/486'da calisacak ama 686'ya optimize edilmis kod. Programlarinizi kendiniz -march=686 ile derleyip hizlandirmayi dusunebilirsiniz; ama arada buyuk hatta fark edilebilir bir degisiklik olmayabilir. Cekirdek, glibc gibi temel paketler -march=686 ile derlenmedikten sonra sonraki paketleri boyle derlemek cok ise yaramaz. Ama dedigim gibi zaten Slackware'deki ontanimli optimizasyon i686 icin ve fazla birsey kaybetmis degilsiniz.

ALINTI : http://www.linuxnet.com.tr/modules.php?name=Forums&file=viewtopic&t=12027
Anyone who has never made a mistake has never tried anything new.
Albert Einstein.

ufuk_k

Herşeyi ayarladım ve kernel.orgdan indirdiğim bu tarihteki son sürüm kernel olan 2.6.25.4'ü Slackware altında derledim. Gereksiz olan bildiğim hemen herşeyi kapadım. Tüm listelerde benim donanımımla ilgili olmayan her seçeneği disable ettim. Sonra da nvidia binary sürücüsünü indirdim ve kurdum. Sorunsuz çalışıyor şu anda. Açılış hızında çok çok az denebilecek bir fark var. Çalışma hızı içi birşey diyemeyeceğim. Bir çok kernel özelliği sadece kernelin boyutu KB cinsinden artırıyor (1 KB gibi). Örneğin Slackware ile gelen kernel huge-smp 4.2 mb, benim derlediğim 2.8 mb tuttu (ya da 2.2. MB civarı oluyor). Kerneli bilmem ama, Slackware oldukça güzel çalışıyor, halen ince ayarlar yapıyorum.

hasansahin

Ufuk,

12.1 kullanıyorsan şiddetle gnomeslackbuild tavsiye ediyorum. Hocam varya compiz,emerald ve diğer komponentler inanılmaz bir bütünlük içinde çalışıyor. İlk defa ubuntu ile kıyaslanabilecek bir gnome kullanıyorum. Yeni çekirdeğinde var, tadından yenmez valla :)

Anyone who has never made a mistake has never tried anything new.
Albert Einstein.

ufuk_k

Alıntı yapılan: hasansahin - 31 Mayıs 2008 - 23:59:25
Ufuk,

12.1 kullanıyorsan şiddetle gnomeslackbuild tavsiye ediyorum. Hocam varya compiz,emerald ve diğer komponentler inanılmaz bir bütünlük içinde çalışıyor. İlk defa ubuntu ile kıyaslanabilecek bir gnome kullanıyorum. Yeni çekirdeğinde var, tadından yenmez valla :)



KDE'den de epey memnunum. Niyetim KDE 4.1 kararlı çıkınca Slackware altında kurup denemek. Bakalım nasıl olacak. Ama direk 3.5.9'u 4.1'e yükseltmek çok fena bir iş olabilir :)

hasansahin

Aman sakın ha :) Ben 3.5.9'dan 4.80'e çıkarttım ama darmadağın oldum :)
Anyone who has never made a mistake has never tried anything new.
Albert Einstein.