Kernel Derlemede sorun

Başlatan yamak, 17 Ekim 2012, 14:39:40

yamak

BeagleBone için kernel derleme yaparken derleme esnasında şöyle bi hata alıyorum:
Alıntı Yapmake[1]: *** Hedef `include/config/extra/firmware/dir.h' i derlemek için  hiçbir kural yok, `firmware/am335x-pm-firmware.bin.gen.S' tarafından gereksinim duyuluyor. Durdu.
Bu hatanın sebebe nedir acaba?

Tagli

#1
.config dosyası yok sanırım. make menuconfig ile ayarlamaları yapıp kaydetmen gerekir. Veya varsayılan bir config dosyasını kopyalayacaksın. Bahsetmiş olduğum dosya isminden de anlaşılacağı üzere görünmez bir dosya. Grafik arayüzden bakıyorsan "show hidden files" gibi bir seçeneği işaretlemen gerek. Konsoldan bakıyorsan ls yanına -a veya -A argümanlarını vermelisin.

Bu başlığa bakmış mıydın?
Gökçe Tağlıoğlu

yamak

Hocam menuconfig ayarlarını yapıp kaydettim zaten. Firmware klasörünün içinde "am335x-pm-firmware.bin" adında bir dosya vardı bunun adının "am335x-pm-firmware.bin.gen.S" diye değiştirdim. Oldu galiba.Kernel i derledi ama rootfs ekleyip sistemi çalıştırmdım. Bu sorunun nedeni ne acaba.Madem .gen.S uzantısı olması gerekiyodu neden başta öyle değildi. bi .gen.S uzantısının manası nedir tam olarak.

Tagli

Hocam sen komple SDK'yı çektin sanırım. Ben sadece kernel'i çektim. Benimkinde firmware falan gibi klasörler yok, sadece standart kernel klasörü geliyor. SDK'ı hiç denemedim. Daha doğrusu, zamanında çektiğimde sadece Ubuntu 10.04 LTS desteklediğini yazıyordu. Ben yeni çıkan 12.04'ü kurmuş olduğum için SDK'yı kuramamıştım. Daha sonra da tekrar denemedim.
Gökçe Tağlıoğlu

yamak

#4
Evet hocam SDK yı indirdim ben 1.7 gb lık bi dosya. İçinde bir çok işlemci için defconfig'ler var.

mesaj birleştirme:: 18 Ekim 2012, 16:08:42

Hocam şu anda rootfs i de ekleyip sd karta yükledim. Ve bi yere geldi takıldı ekran çıktısı şöyle.2 tane hata var.
Welcome to The Ångström Distribution!

Starting POSIX Message Queue File System...                                    
Starting Debug File System...                                                  
Started Set Up Additional Binary Formats                               [  OK  ]
Started Apply Kernel Variables                                         [  OK  ]
Started Huge Pages File System                                         [  OK  ]
Starting Load Kernel Modules...                                                
Starting Remount API VFS...                                                    
Starting File System Check on Root Device...                                   
Starting udev Kernel Device Manager...                                         
Starting udev Coldplug all Devices...                                          
Starting Journal Service...                                                    
Started Journal Service                                                [  OK  ]
Starting Temporary Directory...                                                
Started POSIX Message Queue File System                                [  OK  ]
Started Debug File System                                              [  OK  ]
Failed to start Load Kernel Modules                                    [FAILED]
See 'systemctl status systemd-modules-load.service' for details.               
Started Configuration File System                                      [  OK  ]
Started FUSE Control File System                                       [  OK  ]
Started Temporary Directory                                            [  OK  ]
[   19.075042] udevd[61]: starting version 182
Started udev Kernel Device Manager                                     [  OK  ]
Started Remount API VFS                                                [  OK  ]
Started File System Check on Root Device                               [  OK  ]
Started udev Coldplug all Devices                                      [  OK  ]
Starting Remount Root FS...                                                    
[   19.507843] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Started Remount Root FS                                                [  OK  ]
Starting Recreate Volatile Files and Directories...                            
Starting Load Random Seed...                                                   
Started Machine ID first boot configure                                [  OK  ]
Starting Run pending postinsts...                                              
systemd-fsck[57]: Angstrom: clean, 14370/233856 files, 88090/933778 blocks
Started Load Random Seed                                               [  OK  ]
Failed to start Recreate Volatile Files and Directories                [FAILED]
See 'systemctl status systemd-tmpfiles-setup.service' for details.

Hocam menu configte şöyle seçenekler var:
(0) Compressed ROM boot loader base address   
(0) Compressed ROM boot loader BSS address

Bunları bu şekilde bırakaacaz mı yoksa değiştirmemiz mi gerekiyo

Tagli

O seçenekleri ben de bilmiyorum ama daha önce hiç öyle birşeyi ayarlamam gerekmemişti. Ancak yukarıda kernel modülleri ile ilgili bir hata göze çarpıyor. Muhtemelen kernel modülleri derlenmemiş veya kernel'e modül desteği verilmemiş. Ben hazır sistem kullanmayıp kendim kernel derleme yoluna gittiğimde kolaylık olsun diye kernel modülü desteğini tamamen kapatıyorum. rootfs'deki açılış betikleri modül yükleme komutları içeriyorsa ve yukarıda bahsettiğim gibi kernelde bu destek yoksa veya modüller derlenip rootfs içine kurulmadıysa hata vermesi beklenebilir.

Bence başlangıç için hazır derlenmiş kernel ve rootfs kullanıp bunlar üzerinden gitmek daha uygun olabilir. Hazır kernel'de mevcut config'lere (yani derlenirken kullanılan) /proc/config.gz üzerinden ulaşılabilir, tabi kernel bu özellik ile derlenmişse ama genelde düşünceli davranıp bunu açıyorlar. Bu durumda mevcut config'i zcat komutu ile açıp bir dosyaya yazabilir ve daha sonra inceleyebilirsin. Bu şekilde yaparsan, çalışan config'ler üzerinden ufak ufak değişiklikler yapıp deneyebilirsin.
Gökçe Tağlıoğlu

Erdem


yamak

Alıntı yapılan: Erdem  - 18 Ekim 2012, 18:17:13
# modprobe uio_pruss
Bu nasıl bi cevap. Çok uzun olduğu için üşendim okumaya.

Erdem

Kusura kalmayın biraz Nasreddin Hoca gibi ya tutarsa diye kısa yazdım  :)

Şimdi bende de beaglebone var ama bunları hiç denemedim. Daha doğrusu fırsatım olmadı.

Dün hata mesajına göre arama yapmıştım. Linux'ta bir donanımın sürücüsünü yüklemek için iki tane yöntem var. Bunlardan bir tanesi çekirdeğe gömmek. İkincisi ise ayrı bir modül olarak derleyip yüklemek. İşte derlenen modülün yükleme kısmını modprobe yapıyor.

Bu kısım çekirdek modülünün yüklenmesi için gerekliymiş sanırım.

# modprobe uio_pruss

http://blog.boxysean.com/2012/08/12/first-steps-with-the-beaglebone-pru/

Programmable Realtime Unit SubSystem hakkında burada daha fazla bilgi vermişler.

http://processors.wiki.ti.com/index.php/Programmable_Realtime_Unit_Subsystem

Beaglebone için çekirdek derlemenin ne tür bir avantaj sağladığını da bilmiyorum açıkçası.

yamak

Tamam hocam teşekkür ederim.